Index: head/ObsoleteFiles.inc =================================================================== --- head/ObsoleteFiles.inc (revision 333387) +++ head/ObsoleteFiles.inc (revision 333388) @@ -1,10160 +1,10163 @@ # # $FreeBSD$ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently # removed entries first (with the date as a comment). Dynamic libraries are # special cased (OLD_LIBS). Static libraries or the generic links to # the dynamic libraries (lib*.so) should (if you don't know why to make an # exception, make this a "must") be viewed as normal files (OLD_FILES). # # In case of a complete directory hierarchy the sorting is in depth first # order. # # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # # Before you commit changes to this file please check if any entries in # tools/build/mk/OptionalObsoleteFiles.inc can be removed. The following # command tells which files are listed more than once regardless of some # architecture specific conditionals, so you can not blindly trust the # output: # ( grep '+=' /usr/src/ObsoleteFiles.inc | sort -u ; \ # grep '+=' /usr/src/tools/build/mk/OptionalObsoleteFiles.inc | sort -u) | \ # sort | uniq -d # # To find regular duplicates not dependent on optional components, you can # also use something that will not give you false positives, e.g.: # for t in `make -V TARGETS universe`; do # __MAKE_CONF=/dev/null make -f Makefile.inc1 TARGET=$t \ # -V OLD_FILES -V OLD_LIBS -V OLD_DIRS check-old | \ # xargs -n1 | sort | uniq -d; # done # # For optional components, you can use the following to see if some entries # in OptionalObsoleteFiles.inc have been obsoleted by ObsoleteFiles.inc # for o in tools/build/options/WITH*; do # __MAKE_CONF=/dev/null make -f Makefile.inc1 -D${o##*/} \ # -V OLD_FILES -V OLD_LIBS -V OLD_DIRS check-old | \ # xargs -n1 | sort | uniq -d; # done +# 20180508: retire nxge +OLD_FILES+=usr/share/man/man4/if_nxge.4.gz +OLD_FILES+=usr/share/man/man4/nxge.4.gz # 20180505: rhosts OLD_FILES+=usr/share/skel/dot.rhosts # 20180502: retire ixgb OLD_FILES+=usr/share/man/man4/if_ixgb.4.gz OLD_FILES+=usr/share/man/man4/ixgb.4.gz # 20180501: retire lmc OLD_FILES+=usr/include/dev/lmc/if_lmc.h OLD_DIRS+=usr/include/dev/lmc OLD_FILES+=usr/sbin/lmcconfig OLD_FILES+=usr/share/man/man4/lmc.4.gz OLD_FILES+=usr/share/man/man4/if_lmc.4.gz OLD_FILES+=usr/share/man/man8/lmcconfig.8.gz # 20180417: remove fuswintr and suswintr OLD_FILES+=usr/share/man/man9/fuswintr.9.gz OLD_FILES+=usr/share/man/man9/suswintr.9.gz # 20180413: remove Arcnet support OLD_FILES+=usr/include/net/if_arc.h OLD_FILES+=usr/share/man/man4/cm.4.gz # 20180409: remove FDDI support OLD_FILES+=usr/include/net/fddi.h OLD_FILES+=usr/share/man/man4/fpa.4.gz # 20180319: remove /boot/overlays, replaced by /boot/dtb/overlays OLD_DIRS+=boot/overlays # 20180311: remove sys/sys/i386/include/pcaudioio.h .if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/machine/pcaudioio.h .endif # 20180310: remove sys/sys/dataacq.h OLD_FILES+=usr/include/sys/dataacq.h # 20180306: remove DTrace scripts made obsolete by dwatch(1) OLD_FILES+=usr/share/dtrace/watch_execve OLD_FILES+=usr/share/dtrace/watch_kill OLD_FILES+=usr/share/dtrace/watch_vop_remove # 20180212: move devmatch OLD_FILES+=usr/sbin/devmatch # 20180211: remove usb.conf OLD_FILES+=etc/devd/usb.conf # 20180208: remove c_rehash(1) OLD_FILES+=usr/share/openssl/man/man1/c_rehash.1.gz # 20180206: remove gdbtui OLD_FILES+=usr/bin/gdbtui # 20180201: Obsolete forth files OLD_FILES+=boot/pcibios.4th # 20180114: new clang import which bumps version from 5.0.1 to 6.0.0. OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/common_interface_defs.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/esan_interface.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/msan_interface.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/tsan_interface.h OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/tsan_interface_atomic.h OLD_DIRS+=usr/lib/clang/5.0.1/include/sanitizer OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_builtin_vars.h OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_cmath.h OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_complex_builtins.h OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_intrinsics.h OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_math_forward_declares.h OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_runtime_wrapper.h OLD_FILES+=usr/lib/clang/5.0.1/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/5.0.1/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/5.0.1/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/5.0.1/include/adxintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/altivec.h OLD_FILES+=usr/lib/clang/5.0.1/include/ammintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/arm_acle.h OLD_FILES+=usr/lib/clang/5.0.1/include/arm_neon.h OLD_FILES+=usr/lib/clang/5.0.1/include/armintr.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx2intrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512cdintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512dqintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512ifmaintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512ifmavlintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512pfintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vbmiintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vbmivlintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vlcdintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vldqintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vpopcntdqintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/avxintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/bmiintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/clflushoptintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/clzerointrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/cpuid.h OLD_FILES+=usr/lib/clang/5.0.1/include/emmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/f16cintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/fma4intrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/fmaintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/fxsrintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/htmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/htmxlintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/ia32intrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/immintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/lwpintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/mm3dnow.h OLD_FILES+=usr/lib/clang/5.0.1/include/mm_malloc.h OLD_FILES+=usr/lib/clang/5.0.1/include/mmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/module.modulemap OLD_FILES+=usr/lib/clang/5.0.1/include/msa.h OLD_FILES+=usr/lib/clang/5.0.1/include/mwaitxintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/nmmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/opencl-c.h OLD_FILES+=usr/lib/clang/5.0.1/include/pkuintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/pmmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/popcntintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/rtmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/s390intrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/shaintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/smmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/tbmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/tmmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/vadefs.h OLD_FILES+=usr/lib/clang/5.0.1/include/vecintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/wmmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/x86intrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/xmmintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/xopintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/xsavecintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/xsaveintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/xsaveoptintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/xsavesintrin.h OLD_FILES+=usr/lib/clang/5.0.1/include/xtestintrin.h OLD_DIRS+=usr/lib/clang/5.0.1/include OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-i386.so OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-x86_64.so OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-armhf.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.safestack-i386.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats-i386.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats-x86_64.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats_client-i386.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/5.0.1/lib/freebsd OLD_DIRS+=usr/lib/clang/5.0.1/lib OLD_DIRS+=usr/lib/clang/5.0.1 # 20180109: Remove vestiges of digi(4) driver OLD_FILES+=usr/include/sys/digiio.h OLD_FILES+=usr/sbin/digictl OLD_FILES+=usr/share/man/man8/digictl.8.gz # 20180107: Convert remaining geli(8) tests to ATF OLD_FILES+=tests/sys/geom/class/eli/nokey_test.sh OLD_FILES+=tests/sys/geom/class/eli/readonly_test.sh # 20180106: Convert most geli(8) tests to ATF OLD_FILES+=tests/sys/geom/class/eli/attach_d_test.sh OLD_FILES+=tests/sys/geom/class/eli/configure_b_B_test.sh OLD_FILES+=tests/sys/geom/class/eli/detach_l_test.sh OLD_FILES+=tests/sys/geom/class/eli/init_B_test.sh OLD_FILES+=tests/sys/geom/class/eli/init_J_test.sh OLD_FILES+=tests/sys/geom/class/eli/init_a_test.sh OLD_FILES+=tests/sys/geom/class/eli/init_alias_test.sh OLD_FILES+=tests/sys/geom/class/eli/init_i_P_test.sh OLD_FILES+=tests/sys/geom/class/eli/integrity_copy_test.sh OLD_FILES+=tests/sys/geom/class/eli/integrity_data_test.sh OLD_FILES+=tests/sys/geom/class/eli/integrity_hmac_test.sh OLD_FILES+=tests/sys/geom/class/eli/onetime_a_test.sh OLD_FILES+=tests/sys/geom/class/eli/onetime_d_test.sh # 20171230: Remove /etc/skel from mtree OLD_DIRS+=/etc/skel # 20171208: Remove basename_r(3) OLD_FILES+=usr/share/man/man3/basename_r.3.gz # 20171204: Move fdformat man page from volume 1 to volume 8. OLD_FILES+=usr/share/man/man1/fdformat.1.gz # 20171203: libproc version bump OLD_LIBS+=usr/lib/libproc.so.4 OLD_LIBS+=usr/lib32/libproc.so.4 # 20171203: new clang import which bumps version from 5.0.0 to 5.0.1. OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/common_interface_defs.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/esan_interface.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/msan_interface.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/tsan_interface.h OLD_FILES+=usr/lib/clang/5.0.0/include/sanitizer/tsan_interface_atomic.h OLD_DIRS+=usr/lib/clang/5.0.0/include/sanitizer OLD_FILES+=usr/lib/clang/5.0.0/include/__clang_cuda_builtin_vars.h OLD_FILES+=usr/lib/clang/5.0.0/include/__clang_cuda_cmath.h OLD_FILES+=usr/lib/clang/5.0.0/include/__clang_cuda_complex_builtins.h OLD_FILES+=usr/lib/clang/5.0.0/include/__clang_cuda_intrinsics.h OLD_FILES+=usr/lib/clang/5.0.0/include/__clang_cuda_math_forward_declares.h OLD_FILES+=usr/lib/clang/5.0.0/include/__clang_cuda_runtime_wrapper.h OLD_FILES+=usr/lib/clang/5.0.0/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/5.0.0/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/5.0.0/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/5.0.0/include/adxintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/altivec.h OLD_FILES+=usr/lib/clang/5.0.0/include/ammintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/arm_acle.h OLD_FILES+=usr/lib/clang/5.0.0/include/arm_neon.h OLD_FILES+=usr/lib/clang/5.0.0/include/armintr.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx2intrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512cdintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512dqintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512ifmaintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512ifmavlintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512pfintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512vbmiintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512vbmivlintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512vlcdintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512vldqintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avx512vpopcntdqintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/avxintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/bmiintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/clflushoptintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/clzerointrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/cpuid.h OLD_FILES+=usr/lib/clang/5.0.0/include/emmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/f16cintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/fma4intrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/fmaintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/fxsrintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/htmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/htmxlintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/ia32intrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/immintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/lwpintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/mm3dnow.h OLD_FILES+=usr/lib/clang/5.0.0/include/mm_malloc.h OLD_FILES+=usr/lib/clang/5.0.0/include/mmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/module.modulemap OLD_FILES+=usr/lib/clang/5.0.0/include/msa.h OLD_FILES+=usr/lib/clang/5.0.0/include/mwaitxintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/nmmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/opencl-c.h OLD_FILES+=usr/lib/clang/5.0.0/include/pkuintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/pmmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/popcntintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/rtmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/s390intrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/shaintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/smmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/tbmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/tmmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/vadefs.h OLD_FILES+=usr/lib/clang/5.0.0/include/vecintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/wmmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/x86intrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/xmmintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/xopintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/xsavecintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/xsaveintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/xsaveoptintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/xsavesintrin.h OLD_FILES+=usr/lib/clang/5.0.0/include/xtestintrin.h OLD_DIRS+=usr/lib/clang/5.0.0/include OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-i386.so OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-x86_64.so OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.profile-armhf.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.safestack-i386.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.safestack-x86_64.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.stats-i386.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.stats-x86_64.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.stats_client-i386.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.stats_client-x86_64.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/5.0.0/lib/freebsd OLD_DIRS+=usr/lib/clang/5.0.0/lib OLD_DIRS+=usr/lib/clang/5.0.0 # 20171118: Remove old etc casper files OLD_FILES+=etc/casper/system.dns OLD_FILES+=etc/casper/system.grp OLD_FILES+=etc/casper/system.pwd OLD_FILES+=etc/casper/system.random OLD_FILES+=etc/casper/system.sysctl OLD_DIRS+=etc/casper # 20171116: lint(1) removal OLD_FILES+=usr/bin/lint OLD_FILES+=usr/libexec/lint1 OLD_FILES+=usr/libexec/lint2 OLD_FILES+=usr/libdata/lint/llib-lposix.ln OLD_FILES+=usr/libdata/lint/llib-lstdc.ln OLD_FILES+=usr/share/man/man1/lint.1.gz OLD_FILES+=usr/share/man/man7/lint.7.gz OLD_DIRS+=usr/libdata/lint # 20171114: Removal of all fortune datfiles other than freebsd-tips OLD_FILES+=usr/share/games/fortune/fortunes OLD_FILES+=usr/share/games/fortune/fortunes.dat OLD_FILES+=usr/share/games/fortune/gerrold.limerick OLD_FILES+=usr/share/games/fortune/gerrold.limerick.dat OLD_FILES+=usr/share/games/fortune/limerick OLD_FILES+=usr/share/games/fortune/limerick.dat OLD_FILES+=usr/share/games/fortune/murphy OLD_FILES+=usr/share/games/fortune/murphy-o OLD_FILES+=usr/share/games/fortune/murphy-o.dat OLD_FILES+=usr/share/games/fortune/murphy.dat OLD_FILES+=usr/share/games/fortune/startrek OLD_FILES+=usr/share/games/fortune/startrek.dat OLD_FILES+=usr/share/games/fortune/zippy OLD_FILES+=usr/share/games/fortune/zippy.dat # 20171112: Removal of eqnchar definition OLD_FILES+=usr/share/misc/eqnchar # 20171110: Removal of mailaddr man page OLD_FILES+=usr/share/man/man7/mailaddr.7.gz # 20171108: badsect(8) removal OLD_FILES+=sbin/badsect OLD_FILES+=rescue/badsect OLD_FILES+=usr/share/man/man8/badsect.8.gz # 20171105: fixing lib/libclang_rt CRTARCH for arm:armv[67]. .if ${MACHINE_ARCH:Marmv[67]*} != "" && \ (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-preinit-arm.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-arm.a OLD_LIBS+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-arm.so OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan_cxx-arm.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.safestack-arm.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.stats-arm.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.stats_client-arm.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.ubsan_standalone-arm.a OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a .endif # 20171104: libcap_random should be in /lib not in /usr/lib OLD_LIBS+=usr/lib/libcap_random.so.0 # 20171104: Casper can work only as shared library OLD_FILES+=usr/lib/libcasper.a OLD_FILES+=usr/lib/libcasper_p.a OLD_FILES+=usr/lib/libcap_dns.a OLD_FILES+=usr/lib/libcap_dns_p.a OLD_FILES+=usr/lib/libcap_grp.a OLD_FILES+=usr/lib/libcap_grp_p.a OLD_FILES+=usr/lib/libcap_pwd.a OLD_FILES+=usr/lib/libcap_pwd_p.a OLD_FILES+=usr/lib/libcap_random.a OLD_FILES+=usr/lib/libcap_random_p.a OLD_FILES+=usr/lib/libcap_sysctl.a OLD_FILES+=usr/lib/libcap_sysctl_p.a # 20171031: Removal of adding_user man page OLD_FILES+=usr/share/man/man7/adding_user.7.gz # 20171031: Disconnected libpathconv tests OLD_DIRS+=usr/tests/lib/libpathconv # 20171017: Removal of mbpool(9) OLD_FILES+=usr/include/sys/mbpool.h OLD_FILES+=usr/share/man/man9/mbpool.9.gz OLD_FILES+=usr/share/man/man9/mbp_destroy.9.gz OLD_FILES+=usr/share/man/man9/mbp_alloc.9.gz OLD_FILES+=usr/share/man/man9/mbp_ext_free.9.gz OLD_FILES+=usr/share/man/man9/mbp_count.9.gz OLD_FILES+=usr/share/man/man9/mbp_card_free.9.gz OLD_FILES+=usr/share/man/man9/mbp_get_keep.9.gz OLD_FILES+=usr/share/man/man9/mbp_free.9.gz OLD_FILES+=usr/share/man/man9/mbp_get.9.gz OLD_FILES+=usr/share/man/man9/mbp_create.9.gz OLD_FILES+=usr/share/man/man9/mbp_sync.9.gz # 20171010: Remove libstand OLD_FILES+=usr/lib/libstand.a OLD_FILES+=usr/lib/libstand_p.a OLD_FILES+=usr/include/stand.h OLD_FILES+=usr/share/man/man3/libstand.3.gz # 20171003: remove RCMDS OLD_FILES+=bin/rcp OLD_FILES+=rescue/rcp OLD_FILES+=usr/bin/rlogin OLD_FILES+=usr/bin/rsh OLD_FILES+=usr/libexec/rlogind OLD_FILES+=usr/libexec/rshd OLD_FILES+=usr/share/man/man1/rcp.1.gz OLD_FILES+=usr/share/man/man1/rlogin.1.gz OLD_FILES+=usr/share/man/man1/rsh.1.gz OLD_FILES+=usr/share/man/man8/rlogind.8.gz OLD_FILES+=usr/share/man/man8/rshd.8.gz # 20170927: crshared OLD_FILES+=usr/share/man/man9/crshared.9.gz # 20170927: procctl OLD_FILES+=usr/share/man/man8/procctl.8.gz OLD_FILES+=usr/sbin/procctl # 20170926: remove unneeded man aliases and locales directory OLD_FILES+=usr/share/man/en.ISO8859-1/man1 OLD_FILES+=usr/share/man/en.ISO8859-1/man2 OLD_FILES+=usr/share/man/en.ISO8859-1/man3 OLD_FILES+=usr/share/man/en.ISO8859-1/man4 OLD_FILES+=usr/share/man/en.ISO8859-1/man5 OLD_FILES+=usr/share/man/en.ISO8859-1/man6 OLD_FILES+=usr/share/man/en.ISO8859-1/man7 OLD_FILES+=usr/share/man/en.ISO8859-1/man8 OLD_FILES+=usr/share/man/en.ISO8859-1/man9 OLD_DIRS+=usr/share/man/en.ISO8859-1 OLD_FILES+=usr/share/man/en.ISO8859-1/mandoc.db OLD_FILES+=usr/share/man/en.UTF-8/man1 OLD_FILES+=usr/share/man/en.UTF-8/man2 OLD_FILES+=usr/share/man/en.UTF-8/man3 OLD_FILES+=usr/share/man/en.UTF-8/man4 OLD_FILES+=usr/share/man/en.UTF-8/man5 OLD_FILES+=usr/share/man/en.UTF-8/man6 OLD_FILES+=usr/share/man/en.UTF-8/man7 OLD_FILES+=usr/share/man/en.UTF-8/man8 OLD_FILES+=usr/share/man/en.UTF-8/man9 OLD_FILES+=usr/share/man/en.UTF-8/mandoc.db OLD_DIRS+=usr/share/man/en.UTF-8 OLD_FILES+=usr/share/man/en.ISO8859-15 OLD_FILES+=usr/share/openssl/man/en.ISO8859-1/man1 OLD_FILES+=usr/share/openssl/man/en.ISO8859-1/man3 OLD_FILES+=usr/share/openssl/man/en.ISO8859-1/mandoc.db OLD_DIRS+=usr/share/openssl/man/en.ISO8859-1 OLD_FILES+=usr/share/openssl/man/en.ISO8859-15 OLD_DIRS+=usr/share/man/ja/man1 OLD_DIRS+=usr/share/man/ja/man2 OLD_DIRS+=usr/share/man/ja/man3 OLD_DIRS+=usr/share/man/ja/man4 OLD_DIRS+=usr/share/man/ja/man5 OLD_DIRS+=usr/share/man/ja/man6 OLD_DIRS+=usr/share/man/ja/man7 OLD_DIRS+=usr/share/man/ja/man8 OLD_DIRS+=usr/share/man/ja/man9 OLD_DIRS+=usr/share/man/ja # 20170913: remove unneeded catman utility OLD_FILES+=etc/periodic/weekly/330.catman OLD_FILES+=usr/bin/catman OLD_FILES+=usr/libexec/catman.local OLD_FILES+=usr/share/man/man1/catman.1.gz OLD_FILES+=usr/share/man/man8/catman.local.8.gz OLD_DIRS+=usr/share/man/cat1 OLD_DIRS+=usr/share/man/cat2 OLD_DIRS+=usr/share/man/cat3 OLD_DIRS+=usr/share/man/cat4/amd64 OLD_DIRS+=usr/share/man/cat4/arm OLD_DIRS+=usr/share/man/cat4/i386 OLD_DIRS+=usr/share/man/cat4/powerpc OLD_DIRS+=usr/share/man/cat4/sparc64 OLD_DIRS+=usr/share/man/cat4 OLD_DIRS+=usr/share/man/cat5 OLD_DIRS+=usr/share/man/cat6 OLD_DIRS+=usr/share/man/cat7 OLD_DIRS+=usr/share/man/cat8/amd64 OLD_DIRS+=usr/share/man/cat8/arm OLD_DIRS+=usr/share/man/cat8/i386 OLD_DIRS+=usr/share/man/cat8/powerpc OLD_DIRS+=usr/share/man/cat8/sparc64 OLD_DIRS+=usr/share/man/cat8 OLD_DIRS+=usr/share/man/cat9 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat1 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat2 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat3 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat4/amd64 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat4/arm OLD_DIRS+=usr/share/man/en.ISO8859-1/cat4/i386 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat4/powerpc OLD_DIRS+=usr/share/man/en.ISO8859-1/cat4/sparc64 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat4 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat5 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat6 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat7 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat8/amd64 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat8/arm OLD_DIRS+=usr/share/man/en.ISO8859-1/cat8/i386 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat8/powerpc OLD_DIRS+=usr/share/man/en.ISO8859-1/cat8/sparc64 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat8 OLD_DIRS+=usr/share/man/en.ISO8859-1/cat9 OLD_DIRS+=usr/share/man/en.UTF-8/cat1 OLD_DIRS+=usr/share/man/en.UTF-8/cat2 OLD_DIRS+=usr/share/man/en.UTF-8/cat3 OLD_DIRS+=usr/share/man/en.UTF-8/cat4/amd64 OLD_DIRS+=usr/share/man/en.UTF-8/cat4/arm OLD_DIRS+=usr/share/man/en.UTF-8/cat4/i386 OLD_DIRS+=usr/share/man/en.UTF-8/cat4/powerpc OLD_DIRS+=usr/share/man/en.UTF-8/cat4/sparc64 OLD_DIRS+=usr/share/man/en.UTF-8/cat4 OLD_DIRS+=usr/share/man/en.UTF-8/cat5 OLD_DIRS+=usr/share/man/en.UTF-8/cat6 OLD_DIRS+=usr/share/man/en.UTF-8/cat7 OLD_DIRS+=usr/share/man/en.UTF-8/cat8/amd64 OLD_DIRS+=usr/share/man/en.UTF-8/cat8/arm OLD_DIRS+=usr/share/man/en.UTF-8/cat8/i386 OLD_DIRS+=usr/share/man/en.UTF-8/cat8/powerpc OLD_DIRS+=usr/share/man/en.UTF-8/cat8/sparc64 OLD_DIRS+=usr/share/man/en.UTF-8/cat8 OLD_DIRS+=usr/share/man/en.UTF-8/cat9 OLD_DIRS+=usr/share/man/ja/cat1 OLD_DIRS+=usr/share/man/ja/cat2 OLD_DIRS+=usr/share/man/ja/cat3 OLD_DIRS+=usr/share/man/ja/cat4/amd64 OLD_DIRS+=usr/share/man/ja/cat4/arm OLD_DIRS+=usr/share/man/ja/cat4/i386 OLD_DIRS+=usr/share/man/ja/cat4/powerpc OLD_DIRS+=usr/share/man/ja/cat4/sparc64 OLD_DIRS+=usr/share/man/ja/cat4 OLD_DIRS+=usr/share/man/ja/cat5 OLD_DIRS+=usr/share/man/ja/cat6 OLD_DIRS+=usr/share/man/ja/cat7 OLD_DIRS+=usr/share/man/ja/cat8/amd64 OLD_DIRS+=usr/share/man/ja/cat8/arm OLD_DIRS+=usr/share/man/ja/cat8/powerpc OLD_DIRS+=usr/share/man/ja/cat8/sparc64 OLD_DIRS+=usr/share/man/ja/cat8 OLD_DIRS+=usr/share/man/ja/cat9 OLD_DIRS+=usr/share/openssl/man/cat1 OLD_DIRS+=usr/share/openssl/man/cat3 OLD_DIRS+=usr/share/openssl/man/en.ISO8859-1/cat1 OLD_DIRS+=usr/share/openssl/man/en.ISO8859-1/cat3 # 20170802: ksyms(4) ioctl interface was removed OLD_FILES+=usr/include/sys/ksyms.h # 20170722: new clang import which bumps version from 4.0.0 to 5.0.0. OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/common_interface_defs.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/esan_interface.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/msan_interface.h OLD_FILES+=usr/lib/clang/4.0.0/include/sanitizer/tsan_interface_atomic.h OLD_DIRS+=usr/lib/clang/4.0.0/include/sanitizer OLD_FILES+=usr/lib/clang/4.0.0/include/__clang_cuda_builtin_vars.h OLD_FILES+=usr/lib/clang/4.0.0/include/__clang_cuda_cmath.h OLD_FILES+=usr/lib/clang/4.0.0/include/__clang_cuda_complex_builtins.h OLD_FILES+=usr/lib/clang/4.0.0/include/__clang_cuda_intrinsics.h OLD_FILES+=usr/lib/clang/4.0.0/include/__clang_cuda_math_forward_declares.h OLD_FILES+=usr/lib/clang/4.0.0/include/__clang_cuda_runtime_wrapper.h OLD_FILES+=usr/lib/clang/4.0.0/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/4.0.0/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/4.0.0/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/4.0.0/include/adxintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/altivec.h OLD_FILES+=usr/lib/clang/4.0.0/include/ammintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/arm_acle.h OLD_FILES+=usr/lib/clang/4.0.0/include/arm_neon.h OLD_FILES+=usr/lib/clang/4.0.0/include/armintr.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx2intrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512cdintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512dqintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512ifmaintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512ifmavlintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512pfintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512vbmiintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512vbmivlintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512vlcdintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512vldqintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/avxintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/bmiintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/clflushoptintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/cpuid.h OLD_FILES+=usr/lib/clang/4.0.0/include/emmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/f16cintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/fma4intrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/fmaintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/fxsrintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/htmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/htmxlintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/ia32intrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/immintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/mm3dnow.h OLD_FILES+=usr/lib/clang/4.0.0/include/mm_malloc.h OLD_FILES+=usr/lib/clang/4.0.0/include/mmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/module.modulemap OLD_FILES+=usr/lib/clang/4.0.0/include/msa.h OLD_FILES+=usr/lib/clang/4.0.0/include/mwaitxintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/nmmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/opencl-c.h OLD_FILES+=usr/lib/clang/4.0.0/include/pkuintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/pmmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/popcntintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/rtmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/s390intrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/shaintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/smmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/tbmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/tmmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/vadefs.h OLD_FILES+=usr/lib/clang/4.0.0/include/vecintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/wmmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/x86intrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/xmmintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/xopintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/xsavecintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/xsaveintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/xsaveoptintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/xsavesintrin.h OLD_FILES+=usr/lib/clang/4.0.0/include/xtestintrin.h OLD_DIRS+=usr/lib/clang/4.0.0/include OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.asan-i386.so OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.asan-x86_64.so OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.safestack-i386.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.safestack-x86_64.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.stats-i386.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.stats-x86_64.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.stats_client-i386.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.stats_client-x86_64.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/4.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/4.0.0/lib/freebsd OLD_DIRS+=usr/lib/clang/4.0.0/lib OLD_DIRS+=usr/lib/clang/4.0.0 OLD_FILES+=usr/bin/llvm-pdbdump # 20170610: chown-f_test replaced by chown_test OLD_FILES+=usr/tests/usr.sbin/chown/chown-f_test # 20170609: drop obsolete manpage link (if_rtwn.ko -> rtwn.ko) OLD_FILES+=usr/share/man/man4/if_rtwn.4.gz # 20170531: removal of groff OLD_FILES+=usr/bin/addftinfo OLD_FILES+=usr/bin/afmtodit OLD_FILES+=usr/bin/checknr OLD_FILES+=usr/bin/colcrt OLD_FILES+=usr/bin/eqn OLD_FILES+=usr/bin/grn OLD_FILES+=usr/bin/grodvi OLD_FILES+=usr/bin/groff OLD_FILES+=usr/bin/grog OLD_FILES+=usr/bin/grolbp OLD_FILES+=usr/bin/grolj4 OLD_FILES+=usr/bin/grops OLD_FILES+=usr/bin/grotty OLD_FILES+=usr/bin/hpftodit OLD_FILES+=usr/bin/indxbib OLD_FILES+=usr/bin/lkbib OLD_FILES+=usr/bin/lookbib OLD_FILES+=usr/bin/mmroff OLD_FILES+=usr/bin/neqn OLD_FILES+=usr/bin/nroff OLD_FILES+=usr/bin/pfbtops OLD_FILES+=usr/bin/pic OLD_FILES+=usr/bin/post-grohtml OLD_FILES+=usr/bin/pre-grohtml OLD_FILES+=usr/bin/psroff OLD_FILES+=usr/bin/refer OLD_FILES+=usr/bin/tbl OLD_FILES+=usr/bin/tfmtodit OLD_FILES+=usr/bin/troff OLD_FILES+=usr/bin/vgrind OLD_FILES+=usr/libexec/vfontedpr OLD_FILES+=usr/share/dict/eign OLD_FILES+=usr/share/groff_font/devX100-12/CB OLD_FILES+=usr/share/groff_font/devX100-12/CBI OLD_FILES+=usr/share/groff_font/devX100-12/CI OLD_FILES+=usr/share/groff_font/devX100-12/CR OLD_FILES+=usr/share/groff_font/devX100-12/DESC OLD_FILES+=usr/share/groff_font/devX100-12/HB OLD_FILES+=usr/share/groff_font/devX100-12/HBI OLD_FILES+=usr/share/groff_font/devX100-12/HI OLD_FILES+=usr/share/groff_font/devX100-12/HR OLD_FILES+=usr/share/groff_font/devX100-12/NB OLD_FILES+=usr/share/groff_font/devX100-12/NBI OLD_FILES+=usr/share/groff_font/devX100-12/NI OLD_FILES+=usr/share/groff_font/devX100-12/NR OLD_FILES+=usr/share/groff_font/devX100-12/S OLD_FILES+=usr/share/groff_font/devX100-12/TB OLD_FILES+=usr/share/groff_font/devX100-12/TBI OLD_FILES+=usr/share/groff_font/devX100-12/TI OLD_FILES+=usr/share/groff_font/devX100-12/TR OLD_DIRS+=usr/share/groff_font/devX100-12 OLD_FILES+=usr/share/groff_font/devX100/CB OLD_FILES+=usr/share/groff_font/devX100/CBI OLD_FILES+=usr/share/groff_font/devX100/CI OLD_FILES+=usr/share/groff_font/devX100/CR OLD_FILES+=usr/share/groff_font/devX100/DESC OLD_FILES+=usr/share/groff_font/devX100/HB OLD_FILES+=usr/share/groff_font/devX100/HBI OLD_FILES+=usr/share/groff_font/devX100/HI OLD_FILES+=usr/share/groff_font/devX100/HR OLD_FILES+=usr/share/groff_font/devX100/NB OLD_FILES+=usr/share/groff_font/devX100/NBI OLD_FILES+=usr/share/groff_font/devX100/NI OLD_FILES+=usr/share/groff_font/devX100/NR OLD_FILES+=usr/share/groff_font/devX100/S OLD_FILES+=usr/share/groff_font/devX100/TB OLD_FILES+=usr/share/groff_font/devX100/TBI OLD_FILES+=usr/share/groff_font/devX100/TI OLD_FILES+=usr/share/groff_font/devX100/TR OLD_DIRS+=usr/share/groff_font/devX100 OLD_FILES+=usr/share/groff_font/devX75-12/CB OLD_FILES+=usr/share/groff_font/devX75-12/CBI OLD_FILES+=usr/share/groff_font/devX75-12/CI OLD_FILES+=usr/share/groff_font/devX75-12/CR OLD_FILES+=usr/share/groff_font/devX75-12/DESC OLD_FILES+=usr/share/groff_font/devX75-12/HB OLD_FILES+=usr/share/groff_font/devX75-12/HBI OLD_FILES+=usr/share/groff_font/devX75-12/HI OLD_FILES+=usr/share/groff_font/devX75-12/HR OLD_FILES+=usr/share/groff_font/devX75-12/NB OLD_FILES+=usr/share/groff_font/devX75-12/NBI OLD_FILES+=usr/share/groff_font/devX75-12/NI OLD_FILES+=usr/share/groff_font/devX75-12/NR OLD_FILES+=usr/share/groff_font/devX75-12/S OLD_FILES+=usr/share/groff_font/devX75-12/TB OLD_FILES+=usr/share/groff_font/devX75-12/TBI OLD_FILES+=usr/share/groff_font/devX75-12/TI OLD_FILES+=usr/share/groff_font/devX75-12/TR OLD_DIRS+=usr/share/groff_font/devX75-12 OLD_FILES+=usr/share/groff_font/devX75/CB OLD_FILES+=usr/share/groff_font/devX75/CBI OLD_FILES+=usr/share/groff_font/devX75/CI OLD_FILES+=usr/share/groff_font/devX75/CR OLD_FILES+=usr/share/groff_font/devX75/DESC OLD_FILES+=usr/share/groff_font/devX75/HB OLD_FILES+=usr/share/groff_font/devX75/HBI OLD_FILES+=usr/share/groff_font/devX75/HI OLD_FILES+=usr/share/groff_font/devX75/HR OLD_FILES+=usr/share/groff_font/devX75/NB OLD_FILES+=usr/share/groff_font/devX75/NBI OLD_FILES+=usr/share/groff_font/devX75/NI OLD_FILES+=usr/share/groff_font/devX75/NR OLD_FILES+=usr/share/groff_font/devX75/S OLD_FILES+=usr/share/groff_font/devX75/TB OLD_FILES+=usr/share/groff_font/devX75/TBI OLD_FILES+=usr/share/groff_font/devX75/TI OLD_FILES+=usr/share/groff_font/devX75/TR OLD_DIRS+=usr/share/groff_font/devX75 OLD_FILES+=usr/share/groff_font/devascii/B OLD_FILES+=usr/share/groff_font/devascii/BI OLD_FILES+=usr/share/groff_font/devascii/CW OLD_FILES+=usr/share/groff_font/devascii/DESC OLD_FILES+=usr/share/groff_font/devascii/I OLD_FILES+=usr/share/groff_font/devascii/L OLD_FILES+=usr/share/groff_font/devascii/R OLD_FILES+=usr/share/groff_font/devascii/S OLD_DIRS+=usr/share/groff_font/devascii OLD_FILES+=usr/share/groff_font/devcp1047/B OLD_FILES+=usr/share/groff_font/devcp1047/BI OLD_FILES+=usr/share/groff_font/devcp1047/CW OLD_FILES+=usr/share/groff_font/devcp1047/DESC OLD_FILES+=usr/share/groff_font/devcp1047/I OLD_FILES+=usr/share/groff_font/devcp1047/L OLD_FILES+=usr/share/groff_font/devcp1047/R OLD_FILES+=usr/share/groff_font/devcp1047/S OLD_DIRS+=usr/share/groff_font/devcp1047 OLD_FILES+=usr/share/groff_font/devdvi/CW OLD_FILES+=usr/share/groff_font/devdvi/CWEC OLD_FILES+=usr/share/groff_font/devdvi/CWI OLD_FILES+=usr/share/groff_font/devdvi/CWIEC OLD_FILES+=usr/share/groff_font/devdvi/CWITC OLD_FILES+=usr/share/groff_font/devdvi/CWTC OLD_FILES+=usr/share/groff_font/devdvi/CompileFonts OLD_FILES+=usr/share/groff_font/devdvi/DESC OLD_FILES+=usr/share/groff_font/devdvi/EX OLD_FILES+=usr/share/groff_font/devdvi/HB OLD_FILES+=usr/share/groff_font/devdvi/HBEC OLD_FILES+=usr/share/groff_font/devdvi/HBI OLD_FILES+=usr/share/groff_font/devdvi/HBIEC OLD_FILES+=usr/share/groff_font/devdvi/HBITC OLD_FILES+=usr/share/groff_font/devdvi/HBTC OLD_FILES+=usr/share/groff_font/devdvi/HI OLD_FILES+=usr/share/groff_font/devdvi/HIEC OLD_FILES+=usr/share/groff_font/devdvi/HITC OLD_FILES+=usr/share/groff_font/devdvi/HR OLD_FILES+=usr/share/groff_font/devdvi/HREC OLD_FILES+=usr/share/groff_font/devdvi/HRTC OLD_FILES+=usr/share/groff_font/devdvi/MI OLD_FILES+=usr/share/groff_font/devdvi/Makefile OLD_FILES+=usr/share/groff_font/devdvi/S OLD_FILES+=usr/share/groff_font/devdvi/SA OLD_FILES+=usr/share/groff_font/devdvi/SB OLD_FILES+=usr/share/groff_font/devdvi/SC OLD_FILES+=usr/share/groff_font/devdvi/TB OLD_FILES+=usr/share/groff_font/devdvi/TBEC OLD_FILES+=usr/share/groff_font/devdvi/TBI OLD_FILES+=usr/share/groff_font/devdvi/TBIEC OLD_FILES+=usr/share/groff_font/devdvi/TBITC OLD_FILES+=usr/share/groff_font/devdvi/TBTC OLD_FILES+=usr/share/groff_font/devdvi/TI OLD_FILES+=usr/share/groff_font/devdvi/TIEC OLD_FILES+=usr/share/groff_font/devdvi/TITC OLD_FILES+=usr/share/groff_font/devdvi/TR OLD_FILES+=usr/share/groff_font/devdvi/TREC OLD_FILES+=usr/share/groff_font/devdvi/TRTC OLD_FILES+=usr/share/groff_font/devdvi/ec.map OLD_FILES+=usr/share/groff_font/devdvi/msam.map OLD_FILES+=usr/share/groff_font/devdvi/msbm.map OLD_FILES+=usr/share/groff_font/devdvi/tc.map OLD_FILES+=usr/share/groff_font/devdvi/texb.map OLD_FILES+=usr/share/groff_font/devdvi/texex.map OLD_FILES+=usr/share/groff_font/devdvi/texi.map OLD_FILES+=usr/share/groff_font/devdvi/texmi.map OLD_FILES+=usr/share/groff_font/devdvi/texr.map OLD_FILES+=usr/share/groff_font/devdvi/texsy.map OLD_FILES+=usr/share/groff_font/devdvi/textex.map OLD_FILES+=usr/share/groff_font/devdvi/textt.map OLD_DIRS+=usr/share/groff_font/devdvi OLD_FILES+=usr/share/groff_font/devhtml/B OLD_FILES+=usr/share/groff_font/devhtml/BI OLD_FILES+=usr/share/groff_font/devhtml/CB OLD_FILES+=usr/share/groff_font/devhtml/CBI OLD_FILES+=usr/share/groff_font/devhtml/CI OLD_FILES+=usr/share/groff_font/devhtml/CR OLD_FILES+=usr/share/groff_font/devhtml/DESC OLD_FILES+=usr/share/groff_font/devhtml/I OLD_FILES+=usr/share/groff_font/devhtml/R OLD_FILES+=usr/share/groff_font/devhtml/S OLD_DIRS+=usr/share/groff_font/devhtml OLD_FILES+=usr/share/groff_font/devkoi8-r/B OLD_FILES+=usr/share/groff_font/devkoi8-r/BI OLD_FILES+=usr/share/groff_font/devkoi8-r/CW OLD_FILES+=usr/share/groff_font/devkoi8-r/DESC OLD_FILES+=usr/share/groff_font/devkoi8-r/I OLD_FILES+=usr/share/groff_font/devkoi8-r/L OLD_FILES+=usr/share/groff_font/devkoi8-r/R OLD_FILES+=usr/share/groff_font/devkoi8-r/S OLD_DIRS+=usr/share/groff_font/devkoi8-r OLD_FILES+=usr/share/groff_font/devlatin1/B OLD_FILES+=usr/share/groff_font/devlatin1/BI OLD_FILES+=usr/share/groff_font/devlatin1/CW OLD_FILES+=usr/share/groff_font/devlatin1/DESC OLD_FILES+=usr/share/groff_font/devlatin1/I OLD_FILES+=usr/share/groff_font/devlatin1/L OLD_FILES+=usr/share/groff_font/devlatin1/R OLD_FILES+=usr/share/groff_font/devlatin1/S OLD_DIRS+=usr/share/groff_font/devlatin1 OLD_FILES+=usr/share/groff_font/devlbp/CB OLD_FILES+=usr/share/groff_font/devlbp/CI OLD_FILES+=usr/share/groff_font/devlbp/CR OLD_FILES+=usr/share/groff_font/devlbp/DESC OLD_FILES+=usr/share/groff_font/devlbp/EB OLD_FILES+=usr/share/groff_font/devlbp/EI OLD_FILES+=usr/share/groff_font/devlbp/ER OLD_FILES+=usr/share/groff_font/devlbp/HB OLD_FILES+=usr/share/groff_font/devlbp/HBI OLD_FILES+=usr/share/groff_font/devlbp/HI OLD_FILES+=usr/share/groff_font/devlbp/HNB OLD_FILES+=usr/share/groff_font/devlbp/HNBI OLD_FILES+=usr/share/groff_font/devlbp/HNI OLD_FILES+=usr/share/groff_font/devlbp/HNR OLD_FILES+=usr/share/groff_font/devlbp/HR OLD_FILES+=usr/share/groff_font/devlbp/TB OLD_FILES+=usr/share/groff_font/devlbp/TBI OLD_FILES+=usr/share/groff_font/devlbp/TI OLD_FILES+=usr/share/groff_font/devlbp/TR OLD_DIRS+=usr/share/groff_font/devlbp OLD_FILES+=usr/share/groff_font/devlj4/AB OLD_FILES+=usr/share/groff_font/devlj4/ABI OLD_FILES+=usr/share/groff_font/devlj4/AI OLD_FILES+=usr/share/groff_font/devlj4/ALBB OLD_FILES+=usr/share/groff_font/devlj4/ALBR OLD_FILES+=usr/share/groff_font/devlj4/AOB OLD_FILES+=usr/share/groff_font/devlj4/AOI OLD_FILES+=usr/share/groff_font/devlj4/AOR OLD_FILES+=usr/share/groff_font/devlj4/AR OLD_FILES+=usr/share/groff_font/devlj4/CB OLD_FILES+=usr/share/groff_font/devlj4/CBI OLD_FILES+=usr/share/groff_font/devlj4/CI OLD_FILES+=usr/share/groff_font/devlj4/CLARENDON OLD_FILES+=usr/share/groff_font/devlj4/CORONET OLD_FILES+=usr/share/groff_font/devlj4/CR OLD_FILES+=usr/share/groff_font/devlj4/DESC OLD_FILES+=usr/share/groff_font/devlj4/GB OLD_FILES+=usr/share/groff_font/devlj4/GBI OLD_FILES+=usr/share/groff_font/devlj4/GI OLD_FILES+=usr/share/groff_font/devlj4/GR OLD_FILES+=usr/share/groff_font/devlj4/LGB OLD_FILES+=usr/share/groff_font/devlj4/LGI OLD_FILES+=usr/share/groff_font/devlj4/LGR OLD_FILES+=usr/share/groff_font/devlj4/MARIGOLD OLD_FILES+=usr/share/groff_font/devlj4/OB OLD_FILES+=usr/share/groff_font/devlj4/OBI OLD_FILES+=usr/share/groff_font/devlj4/OI OLD_FILES+=usr/share/groff_font/devlj4/OR OLD_FILES+=usr/share/groff_font/devlj4/S OLD_FILES+=usr/share/groff_font/devlj4/SYMBOL OLD_FILES+=usr/share/groff_font/devlj4/TB OLD_FILES+=usr/share/groff_font/devlj4/TBI OLD_FILES+=usr/share/groff_font/devlj4/TI OLD_FILES+=usr/share/groff_font/devlj4/TNRB OLD_FILES+=usr/share/groff_font/devlj4/TNRBI OLD_FILES+=usr/share/groff_font/devlj4/TNRI OLD_FILES+=usr/share/groff_font/devlj4/TNRR OLD_FILES+=usr/share/groff_font/devlj4/TR OLD_FILES+=usr/share/groff_font/devlj4/UB OLD_FILES+=usr/share/groff_font/devlj4/UBI OLD_FILES+=usr/share/groff_font/devlj4/UCB OLD_FILES+=usr/share/groff_font/devlj4/UCBI OLD_FILES+=usr/share/groff_font/devlj4/UCI OLD_FILES+=usr/share/groff_font/devlj4/UCR OLD_FILES+=usr/share/groff_font/devlj4/UI OLD_FILES+=usr/share/groff_font/devlj4/UR OLD_FILES+=usr/share/groff_font/devlj4/WINGDINGS OLD_DIRS+=usr/share/groff_font/devlj4 OLD_FILES+=usr/share/groff_font/devps/AB OLD_FILES+=usr/share/groff_font/devps/ABI OLD_FILES+=usr/share/groff_font/devps/AI OLD_FILES+=usr/share/groff_font/devps/AR OLD_FILES+=usr/share/groff_font/devps/BMB OLD_FILES+=usr/share/groff_font/devps/BMBI OLD_FILES+=usr/share/groff_font/devps/BMI OLD_FILES+=usr/share/groff_font/devps/BMR OLD_FILES+=usr/share/groff_font/devps/CB OLD_FILES+=usr/share/groff_font/devps/CBI OLD_FILES+=usr/share/groff_font/devps/CI OLD_FILES+=usr/share/groff_font/devps/CR OLD_FILES+=usr/share/groff_font/devps/DESC OLD_FILES+=usr/share/groff_font/devps/EURO OLD_FILES+=usr/share/groff_font/devps/HB OLD_FILES+=usr/share/groff_font/devps/HBI OLD_FILES+=usr/share/groff_font/devps/HI OLD_FILES+=usr/share/groff_font/devps/HNB OLD_FILES+=usr/share/groff_font/devps/HNBI OLD_FILES+=usr/share/groff_font/devps/HNI OLD_FILES+=usr/share/groff_font/devps/HNR OLD_FILES+=usr/share/groff_font/devps/HR OLD_FILES+=usr/share/groff_font/devps/Makefile OLD_FILES+=usr/share/groff_font/devps/NB OLD_FILES+=usr/share/groff_font/devps/NBI OLD_FILES+=usr/share/groff_font/devps/NI OLD_FILES+=usr/share/groff_font/devps/NR OLD_FILES+=usr/share/groff_font/devps/PB OLD_FILES+=usr/share/groff_font/devps/PBI OLD_FILES+=usr/share/groff_font/devps/PI OLD_FILES+=usr/share/groff_font/devps/PR OLD_FILES+=usr/share/groff_font/devps/S OLD_FILES+=usr/share/groff_font/devps/SS OLD_FILES+=usr/share/groff_font/devps/TB OLD_FILES+=usr/share/groff_font/devps/TBI OLD_FILES+=usr/share/groff_font/devps/TI OLD_FILES+=usr/share/groff_font/devps/TR OLD_FILES+=usr/share/groff_font/devps/ZCMI OLD_FILES+=usr/share/groff_font/devps/ZD OLD_FILES+=usr/share/groff_font/devps/ZDR OLD_FILES+=usr/share/groff_font/devps/afmname OLD_FILES+=usr/share/groff_font/devps/dingbats.map OLD_FILES+=usr/share/groff_font/devps/dingbats.rmap OLD_FILES+=usr/share/groff_font/devps/download OLD_FILES+=usr/share/groff_font/devps/freeeuro.pfa OLD_FILES+=usr/share/groff_font/devps/lgreekmap OLD_FILES+=usr/share/groff_font/devps/prologue OLD_FILES+=usr/share/groff_font/devps/symbol.sed OLD_FILES+=usr/share/groff_font/devps/symbolchars OLD_FILES+=usr/share/groff_font/devps/symbolsl.afm OLD_FILES+=usr/share/groff_font/devps/symbolsl.pfa OLD_FILES+=usr/share/groff_font/devps/text.enc OLD_FILES+=usr/share/groff_font/devps/textmap OLD_FILES+=usr/share/groff_font/devps/zapfdr.pfa OLD_DIRS+=usr/share/groff_font/devps OLD_FILES+=usr/share/groff_font/devutf8/B OLD_FILES+=usr/share/groff_font/devutf8/BI OLD_FILES+=usr/share/groff_font/devutf8/CW OLD_FILES+=usr/share/groff_font/devutf8/DESC OLD_FILES+=usr/share/groff_font/devutf8/I OLD_FILES+=usr/share/groff_font/devutf8/L OLD_FILES+=usr/share/groff_font/devutf8/R OLD_FILES+=usr/share/groff_font/devutf8/S OLD_DIRS+=usr/share/groff_font/devutf8 OLD_DIRS+=usr/share/groff_font OLD_FILES+=usr/share/man/man1/addftinfo.1.gz OLD_FILES+=usr/share/man/man1/afmtodit.1.gz OLD_FILES+=usr/share/man/man1/checknr.1.gz OLD_FILES+=usr/share/man/man1/colcrt.1.gz OLD_FILES+=usr/share/man/man1/eqn.1.gz OLD_FILES+=usr/share/man/man1/grn.1.gz OLD_FILES+=usr/share/man/man1/grodvi.1.gz OLD_FILES+=usr/share/man/man1/groff.1.gz OLD_FILES+=usr/share/man/man1/grog.1.gz OLD_FILES+=usr/share/man/man1/grolbp.1.gz OLD_FILES+=usr/share/man/man1/grolj4.1.gz OLD_FILES+=usr/share/man/man1/grops.1.gz OLD_FILES+=usr/share/man/man1/grotty.1.gz OLD_FILES+=usr/share/man/man1/hpftodit.1.gz OLD_FILES+=usr/share/man/man1/indxbib.1.gz OLD_FILES+=usr/share/man/man1/lkbib.1.gz OLD_FILES+=usr/share/man/man1/lookbib.1.gz OLD_FILES+=usr/share/man/man1/mmroff.1.gz OLD_FILES+=usr/share/man/man1/neqn.1.gz OLD_FILES+=usr/share/man/man1/nroff.1.gz OLD_FILES+=usr/share/man/man1/pfbtops.1.gz OLD_FILES+=usr/share/man/man1/pic.1.gz OLD_FILES+=usr/share/man/man1/psroff.1.gz OLD_FILES+=usr/share/man/man1/refer.1.gz OLD_FILES+=usr/share/man/man1/tbl.1.gz OLD_FILES+=usr/share/man/man1/tfmtodit.1.gz OLD_FILES+=usr/share/man/man1/troff.1.gz OLD_FILES+=usr/share/man/man1/vgrind.1.gz OLD_FILES+=usr/share/man/man5/groff_font.5.gz OLD_FILES+=usr/share/man/man5/groff_out.5.gz OLD_FILES+=usr/share/man/man5/groff_tmac.5.gz OLD_FILES+=usr/share/man/man5/lj4_font.5.gz OLD_FILES+=usr/share/man/man5/tmac.5.gz OLD_FILES+=usr/share/man/man5/vgrindefs.5.gz OLD_FILES+=usr/share/man/man7/ditroff.7.gz OLD_FILES+=usr/share/man/man7/groff.7.gz OLD_FILES+=usr/share/man/man7/groff_char.7.gz OLD_FILES+=usr/share/man/man7/groff_diff.7.gz OLD_FILES+=usr/share/man/man7/groff_man.7.gz OLD_FILES+=usr/share/man/man7/groff_mdoc.7.gz OLD_FILES+=usr/share/man/man7/groff_me.7.gz OLD_FILES+=usr/share/man/man7/groff_mm.7.gz OLD_FILES+=usr/share/man/man7/groff_mmse.7.gz OLD_FILES+=usr/share/man/man7/groff_ms.7.gz OLD_FILES+=usr/share/man/man7/groff_trace.7.gz OLD_FILES+=usr/share/man/man7/groff_www.7.gz OLD_FILES+=usr/share/man/man7/mdoc.samples.7.gz OLD_FILES+=usr/share/man/man7/me.7.gz OLD_FILES+=usr/share/man/man7/mm.7.gz OLD_FILES+=usr/share/man/man7/mmse.7.gz OLD_FILES+=usr/share/man/man7/ms.7.gz OLD_FILES+=usr/share/man/man7/orig_me.7.gz OLD_FILES+=usr/share/me/acm.me OLD_FILES+=usr/share/me/chars.me OLD_FILES+=usr/share/me/deltext.me OLD_FILES+=usr/share/me/eqn.me OLD_FILES+=usr/share/me/float.me OLD_FILES+=usr/share/me/footnote.me OLD_FILES+=usr/share/me/index.me OLD_FILES+=usr/share/me/letterhead.me OLD_FILES+=usr/share/me/local.me OLD_FILES+=usr/share/me/null.me OLD_FILES+=usr/share/me/refer.me OLD_FILES+=usr/share/me/revisions OLD_FILES+=usr/share/me/sh.me OLD_FILES+=usr/share/me/tbl.me OLD_FILES+=usr/share/me/thesis.me OLD_DIRS+=usr/share/me OLD_FILES+=usr/share/misc/vgrindefs OLD_FILES+=usr/share/misc/vgrindefs.db OLD_FILES+=usr/share/tmac/X.tmac OLD_FILES+=usr/share/tmac/Xps.tmac OLD_FILES+=usr/share/tmac/a4.tmac OLD_FILES+=usr/share/tmac/an-old.tmac OLD_FILES+=usr/share/tmac/an.tmac OLD_FILES+=usr/share/tmac/andoc.tmac OLD_FILES+=usr/share/tmac/composite.tmac OLD_FILES+=usr/share/tmac/cp1047.tmac OLD_FILES+=usr/share/tmac/devtag.tmac OLD_FILES+=usr/share/tmac/doc.tmac OLD_FILES+=usr/share/tmac/dvi.tmac OLD_FILES+=usr/share/tmac/e.tmac OLD_FILES+=usr/share/tmac/ec.tmac OLD_FILES+=usr/share/tmac/eqnrc OLD_FILES+=usr/share/tmac/europs.tmac OLD_FILES+=usr/share/tmac/html-end.tmac OLD_FILES+=usr/share/tmac/html.tmac OLD_FILES+=usr/share/tmac/hyphen.ru OLD_FILES+=usr/share/tmac/hyphen.us OLD_FILES+=usr/share/tmac/hyphenex.us OLD_FILES+=usr/share/tmac/koi8-r.tmac OLD_FILES+=usr/share/tmac/latin1.tmac OLD_FILES+=usr/share/tmac/latin2.tmac OLD_FILES+=usr/share/tmac/latin9.tmac OLD_FILES+=usr/share/tmac/lbp.tmac OLD_FILES+=usr/share/tmac/lj4.tmac OLD_FILES+=usr/share/tmac/m.tmac OLD_FILES+=usr/share/tmac/man.local OLD_FILES+=usr/share/tmac/man.tmac OLD_FILES+=usr/share/tmac/mandoc.tmac OLD_FILES+=usr/share/tmac/mdoc.local OLD_FILES+=usr/share/tmac/mdoc.tmac OLD_FILES+=usr/share/tmac/mdoc/doc-common OLD_FILES+=usr/share/tmac/mdoc/doc-ditroff OLD_FILES+=usr/share/tmac/mdoc/doc-nroff OLD_FILES+=usr/share/tmac/mdoc/doc-syms OLD_FILES+=usr/share/tmac/mdoc/fr.ISO8859-1 OLD_FILES+=usr/share/tmac/mdoc/ru.KOI8-R OLD_DIRS+=usr/share/tmac/mdoc OLD_FILES+=usr/share/tmac/me.tmac OLD_FILES+=usr/share/tmac/mm/0.MT OLD_FILES+=usr/share/tmac/mm/4.MT OLD_FILES+=usr/share/tmac/mm/5.MT OLD_FILES+=usr/share/tmac/mm/locale OLD_FILES+=usr/share/tmac/mm/mm.tmac OLD_FILES+=usr/share/tmac/mm/mmse.tmac OLD_FILES+=usr/share/tmac/mm/ms.cov OLD_FILES+=usr/share/tmac/mm/se_locale OLD_FILES+=usr/share/tmac/mm/se_ms.cov OLD_DIRS+=usr/share/tmac/mm OLD_FILES+=usr/share/tmac/ms.tmac OLD_FILES+=usr/share/tmac/mse.tmac OLD_FILES+=usr/share/tmac/papersize.tmac OLD_FILES+=usr/share/tmac/pic.tmac OLD_FILES+=usr/share/tmac/ps.tmac OLD_FILES+=usr/share/tmac/psatk.tmac OLD_FILES+=usr/share/tmac/psold.tmac OLD_FILES+=usr/share/tmac/pspic.tmac OLD_FILES+=usr/share/tmac/s.tmac OLD_FILES+=usr/share/tmac/safer.tmac OLD_FILES+=usr/share/tmac/tmac.orig_me OLD_FILES+=usr/share/tmac/tmac.vgrind OLD_FILES+=usr/share/tmac/trace.tmac OLD_FILES+=usr/share/tmac/troffrc OLD_FILES+=usr/share/tmac/troffrc-end OLD_FILES+=usr/share/tmac/tty-char.tmac OLD_FILES+=usr/share/tmac/tty.tmac OLD_FILES+=usr/share/tmac/unicode.tmac OLD_FILES+=usr/share/tmac/www.tmac OLD_DIRS+=usr/share/tmac # 20170607: remove incorrect atf_check(1) manpage link OLD_FILES+=usr/share/man/man1/atf_check.1.gz # 20170601: remove stale manpage OLD_FILES+=usr/share/man/man2/cap_rights_get.2.gz # 20170601: old libifconfig and libifc OLD_FILES+=usr/lib/libifc.a OLD_FILES+=usr/lib/libifc_p.a OLD_FILES+=usr/lib/libifconfig.a OLD_FILES+=usr/lib/libifconfig_p.a # 20170529: mount.conf(8) -> mount.conf(5) OLD_FILES+=usr/share/man/man8/mount.conf.8.gz # 20170525: remove misleading template OLD_FILES+=usr/share/misc/man.template # 20170525: disconnect the roff docs from the build OLD_FILES+=usr/share/doc/papers/beyond43.ascii.gz OLD_FILES+=usr/share/doc/papers/bio.ascii.gz OLD_FILES+=usr/share/doc/papers/contents.ascii.gz OLD_FILES+=usr/share/doc/papers/devfs.ascii.gz OLD_FILES+=usr/share/doc/papers/diskperf.ascii.gz OLD_FILES+=usr/share/doc/papers/fsinterface.ascii.gz OLD_FILES+=usr/share/doc/papers/hwpmc.ascii.gz OLD_FILES+=usr/share/doc/papers/jail.ascii.gz OLD_FILES+=usr/share/doc/papers/kernmalloc.ascii.gz OLD_FILES+=usr/share/doc/papers/kerntune.ascii.gz OLD_FILES+=usr/share/doc/papers/malloc.ascii.gz OLD_FILES+=usr/share/doc/papers/newvm.ascii.gz OLD_FILES+=usr/share/doc/papers/releng.ascii.gz OLD_FILES+=usr/share/doc/papers/sysperf.ascii.gz OLD_FILES+=usr/share/doc/papers/timecounter.ascii.gz OLD_DIRS+=usr/share/doc/papers OLD_FILES+=usr/share/doc/psd/01.cacm/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/01.cacm OLD_FILES+=usr/share/doc/psd/02.implement/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/02.implement OLD_FILES+=usr/share/doc/psd/03.iosys/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/03.iosys OLD_FILES+=usr/share/doc/psd/04.uprog/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/04.uprog OLD_FILES+=usr/share/doc/psd/05.sysman/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/05.sysman OLD_FILES+=usr/share/doc/psd/06.Clang/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/06.Clang OLD_FILES+=usr/share/doc/psd/12.make/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/12.make OLD_FILES+=usr/share/doc/psd/13.rcs/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/13.rcs OLD_FILES+=usr/share/doc/psd/13.rcs/rcs_func.ascii.gz OLD_DIRS+=usr/share/doc/psd/13.rcs OLD_FILES+=usr/share/doc/psd/15.yacc/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/15.yacc OLD_FILES+=usr/share/doc/psd/16.lex/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/16.lex OLD_FILES+=usr/share/doc/psd/17.m4/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/17.m4 OLD_FILES+=usr/share/doc/psd/18.gprof/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/18.gprof OLD_FILES+=usr/share/doc/psd/20.ipctut/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/20.ipctut OLD_FILES+=usr/share/doc/psd/21.ipc/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/21.ipc OLD_FILES+=usr/share/doc/psd/22.rpcgen/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/22.rpcgen OLD_FILES+=usr/share/doc/psd/23.rpc/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/23.rpc OLD_FILES+=usr/share/doc/psd/24.xdr/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/24.xdr OLD_FILES+=usr/share/doc/psd/25.xdrrfc/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/25.xdrrfc OLD_FILES+=usr/share/doc/psd/26.rpcrfc/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/26.rpcrfc OLD_FILES+=usr/share/doc/psd/27.nfsrfc/paper.ascii.gz OLD_DIRS+=usr/share/doc/psd/27.nfsrfc OLD_FILES+=usr/share/doc/psd/Title.ascii.gz OLD_FILES+=usr/share/doc/psd/contents.ascii.gz OLD_DIRS+=usr/share/doc/psd/ OLD_FILES+=usr/share/doc/smm/01.setup/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/01.setup OLD_FILES+=usr/share/doc/smm/02.config/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/02.config OLD_FILES+=usr/share/doc/smm/03.fsck/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/03.fsck OLD_FILES+=usr/share/doc/smm/04.quotas/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/04.quotas OLD_FILES+=usr/share/doc/smm/05.fastfs/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/05.fastfs OLD_FILES+=usr/share/doc/smm/06.nfs/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/06.nfs OLD_FILES+=usr/share/doc/smm/07.lpd/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/07.lpd OLD_FILES+=usr/share/doc/smm/08.sendmailop/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/08.sendmailop OLD_FILES+=usr/share/doc/smm/11.timedop/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/11.timedop OLD_FILES+=usr/share/doc/smm/12.timed/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/12.timed OLD_FILES+=usr/share/doc/smm/18.net/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/18.net OLD_FILES+=usr/share/doc/smm/Title.ascii.gz OLD_FILES+=usr/share/doc/smm/contents.ascii.gz OLD_DIRS+=usr/share/doc/smm OLD_FILES+=usr/share/doc/usd/04.csh/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/04.csh OLD_FILES+=usr/share/doc/usd/05.dc/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/05.dc OLD_FILES+=usr/share/doc/usd/06.bc/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/06.bc OLD_FILES+=usr/share/doc/usd/07.mail/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/07.mail OLD_FILES+=usr/share/doc/usd/10.exref/paper.ascii.gz OLD_FILES+=usr/share/doc/usd/10.exref/summary.ascii.gz OLD_DIRS+=usr/share/doc/usd/10.exref OLD_FILES+=usr/share/doc/usd/11.edit/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/11.edit OLD_FILES+=usr/share/doc/usd/12.vi/paper.ascii.gz OLD_FILES+=usr/share/doc/usd/12.vi/summary.ascii.gz OLD_FILES+=usr/share/doc/usd/12.vi/viapwh.ascii.gz OLD_DIRS+=usr/share/doc/usd/12.vi OLD_FILES+=usr/share/doc/usd/13.viref/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/13.viref OLD_FILES+=usr/share/doc/usd/18.msdiffs/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/18.msdiffs OLD_FILES+=usr/share/doc/usd/19.memacros/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/19.memacros OLD_FILES+=usr/share/doc/usd/20.meref/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/20.meref OLD_FILES+=usr/share/doc/usd/21.troff/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/21.troff OLD_FILES+=usr/share/doc/usd/22.trofftut/paper.ascii.gz OLD_DIRS+=usr/share/doc/usd/22.trofftut OLD_FILES+=usr/share/doc/usd/Title.ascii.gz OLD_FILES+=usr/share/doc/usd/contents.ascii.gz OLD_DIRS+=usr/share/doc/usd # 20170523: 64-bit inode support, library version bumps OLD_LIBS+=lib/libzfs.so.2 OLD_LIBS+=usr/lib/libarchive.so.6 OLD_LIBS+=usr/lib/libmilter.so.5 OLD_LIBS+=usr/lib32/libzfs.so.2 OLD_LIBS+=usr/lib32/libarchive.so.6 OLD_LIBS+=usr/lib32/libmilter.so.5 # 20170427: NATM configuration support removed OLD_FILES+=etc/rc.d/atm1 OLD_FILES+=etc/rc.d/atm2 OLD_FILES+=etc/rc.d/atm3 # 20170424: NATM support removed OLD_FILES+=rescue/atmconfig OLD_FILES+=sbin/atmconfig OLD_FILES+=usr/include/bsnmp/snmp_atm.h OLD_FILES+=usr/include/dev/utopia/idtphy.h OLD_FILES+=usr/include/dev/utopia/suni.h OLD_FILES+=usr/include/dev/utopia/utopia.h OLD_FILES+=usr/include/dev/utopia/utopia_priv.h OLD_DIRS+=usr/include/dev/utopia OLD_FILES+=usr/include/net/if_atm.h OLD_FILES+=usr/include/netgraph/atm/ng_atm.h OLD_FILES+=usr/include/netinet/if_atm.h OLD_FILES+=usr/include/netnatm/natm.h OLD_FILES+=usr/lib/debug/sbin/atmconfig.debug OLD_FILES+=usr/lib/debug/usr/lib/snmp_atm.so.6.debug OLD_FILES+=usr/lib/snmp_atm.so OLD_FILES+=usr/lib/snmp_atm.so.6 OLD_FILES+=usr/share/doc/atm/atmconfig.help OLD_FILES+=usr/share/doc/atm/atmconfig_device.help OLD_DIRS+=usr/share/doc/atm OLD_FILES+=usr/share/man/man3/snmp_atm.3.gz OLD_FILES+=usr/share/man/man4/en.4.gz OLD_FILES+=usr/share/man/man4/fatm.4.gz OLD_FILES+=usr/share/man/man4/hatm.4.gz OLD_FILES+=usr/share/man/man4/if_en.4.gz OLD_FILES+=usr/share/man/man4/if_fatm.4.gz OLD_FILES+=usr/share/man/man4/if_hatm.4.gz OLD_FILES+=usr/share/man/man4/if_patm.4.gz OLD_FILES+=usr/share/man/man4/natm.4.gz OLD_FILES+=usr/share/man/man4/natmip.4.gz OLD_FILES+=usr/share/man/man4/ng_atm.4.gz OLD_FILES+=usr/share/man/man4/patm.4.gz OLD_FILES+=usr/share/man/man4/utopia.4.gz OLD_FILES+=usr/share/man/man8/atmconfig.8.gz OLD_FILES+=usr/share/man/man9/utopia.9.gz OLD_FILES+=usr/share/snmp/defs/atm_freebsd.def OLD_FILES+=usr/share/snmp/defs/atm_tree.def OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-ATM-FREEBSD-MIB.txt OLD_FILES+=usr/share/snmp/mibs/BEGEMOT-ATM.txt # 20170420: remove GNU diff OLD_FILES+=usr/share/man/man7/diff.7.gz # 20170322: rename to _test to match the FreeBSD test suite name scheme OLD_FILES+=usr/tests/usr.bin/col/col OLD_FILES+=usr/tests/usr.bin/diff/diff OLD_FILES+=usr/tests/usr.bin/ident/ident OLD_FILES+=usr/tests/usr.bin/mkimg/mkimg OLD_FILES+=usr/tests/usr.bin/sdiff/sdiff OLD_FILES+=usr/tests/usr.bin/soelim/soelim OLD_FILES+=usr/tests/usr.sbin/pw/pw_config OLD_FILES+=usr/tests/usr.sbin/pw/pw_etcdir OLD_FILES+=usr/tests/usr.sbin/pw/pw_groupadd OLD_FILES+=usr/tests/usr.sbin/pw/pw_groupdel OLD_FILES+=usr/tests/usr.sbin/pw/pw_groupmod OLD_FILES+=usr/tests/usr.sbin/pw/pw_lock OLD_FILES+=usr/tests/usr.sbin/pw/pw_useradd OLD_FILES+=usr/tests/usr.sbin/pw/pw_userdel OLD_FILES+=usr/tests/usr.sbin/pw/pw_usermod OLD_FILES+=usr/tests/usr.sbin/pw/pw_usernext # 20170322: garbage collect old references to igb(4) OLD_FILES+=usr/share/man/man4/if_igb.4.gz OLD_FILES+=usr/share/man/man4/igb.4.gz # 20170319: io_test requires zh_TW.Big5 locale. OLD_FILES+=usr/tests/lib/libc/locale/io_test # 20170319: remove nls for non supported Big5* locales OLD_DIRS+=usr/share/nls/zh_HK.Big5HKSCS OLD_DIRS+=usr/share/nls/zh_TW.Big5 # 20170313: move .../sys/geom/eli/... to .../sys/geom/class/eli/... OLD_FILES+=usr/tests/sys/geom/eli/pbkdf2/pbkdf2 OLD_FILES+=usr/tests/sys/geom/eli/pbkdf2/Kyuafile OLD_FILES+=usr/tests/sys/geom/eli/Kyuafile OLD_DIRS+=usr/tests/sys/geom/eli/pbkdf2 OLD_DIRS+=usr/tests/sys/geom/eli # 20170313: sbin/ipftest and ipresend temporarily disconnected. OLD_FILES+=sbin/ipftest OLD_FILES+=sbin/ipresend # 20170311: Remove WITHOUT_MANDOCDB option OLD_FILES+=usr/share/man/man1/makewhatis.1.gz # 20170308: rename some tests OLD_FILES+=usr/tests/bin/pwait/pwait OLD_FILES+=usr/tests/usr.bin/timeout/timeout # 20170307: remove pcap-int.h OLD_FILES+=usr/include/pcap-int.h # 20170302: new libc++ import which bumps version from 3.9.1 to 4.0.0. OLD_FILES+=usr/include/c++/v1/__undef___deallocate OLD_FILES+=usr/include/c++/v1/tr1/__undef___deallocate # 20170302: new clang import which bumps version from 3.9.1 to 4.0.0. OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/common_interface_defs.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/esan_interface.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/msan_interface.h OLD_FILES+=usr/lib/clang/3.9.1/include/sanitizer/tsan_interface_atomic.h OLD_DIRS+=usr/lib/clang/3.9.1/include/sanitizer OLD_FILES+=usr/lib/clang/3.9.1/include/__clang_cuda_cmath.h OLD_FILES+=usr/lib/clang/3.9.1/include/__clang_cuda_intrinsics.h OLD_FILES+=usr/lib/clang/3.9.1/include/__clang_cuda_math_forward_declares.h OLD_FILES+=usr/lib/clang/3.9.1/include/__clang_cuda_runtime_wrapper.h OLD_FILES+=usr/lib/clang/3.9.1/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/3.9.1/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/3.9.1/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/3.9.1/include/adxintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/altivec.h OLD_FILES+=usr/lib/clang/3.9.1/include/ammintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/arm_acle.h OLD_FILES+=usr/lib/clang/3.9.1/include/arm_neon.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx2intrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512cdintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512dqintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512ifmaintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512ifmavlintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512pfintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512vbmiintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512vbmivlintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512vlcdintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512vldqintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/avxintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/bmiintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/clflushoptintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/cpuid.h OLD_FILES+=usr/lib/clang/3.9.1/include/cuda_builtin_vars.h OLD_FILES+=usr/lib/clang/3.9.1/include/emmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/f16cintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/fma4intrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/fmaintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/fxsrintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/htmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/htmxlintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/ia32intrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/immintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/mm3dnow.h OLD_FILES+=usr/lib/clang/3.9.1/include/mm_malloc.h OLD_FILES+=usr/lib/clang/3.9.1/include/mmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/module.modulemap OLD_FILES+=usr/lib/clang/3.9.1/include/msa.h OLD_FILES+=usr/lib/clang/3.9.1/include/mwaitxintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/nmmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/opencl-c.h OLD_FILES+=usr/lib/clang/3.9.1/include/pkuintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/pmmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/popcntintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/rtmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/s390intrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/shaintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/smmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/tbmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/tmmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/vadefs.h OLD_FILES+=usr/lib/clang/3.9.1/include/vecintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/wmmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/x86intrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/xmmintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/xopintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/xsavecintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/xsaveintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/xsaveoptintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/xsavesintrin.h OLD_FILES+=usr/lib/clang/3.9.1/include/xtestintrin.h OLD_DIRS+=usr/lib/clang/3.9.1/include OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.asan-i386.so OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.asan-x86_64.so OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.safestack-i386.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.safestack-x86_64.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.stats-i386.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.stats-x86_64.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.stats_client-i386.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.stats_client-x86_64.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/3.9.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/3.9.1/lib/freebsd OLD_DIRS+=usr/lib/clang/3.9.1/lib OLD_DIRS+=usr/lib/clang/3.9.1 # 20170226: SVR4 compatibility removed .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" OLD_FILES+=usr/share/man/man4/streams.4 OLD_FILES+=usr/share/man/man4/svr4.4 .endif # 20170219: OpenPAM RADULA upgrade removed the libpam tests OLD_FILES+=usr/tests/lib/libpam/Kyuafile OLD_FILES+=usr/tests/lib/libpam/t_openpam_ctype OLD_FILES+=usr/tests/lib/libpam/t_openpam_readlinev OLD_FILES+=usr/tests/lib/libpam/t_openpam_readword OLD_DIRS+=usr/test/lib/libpam # 20170206: remove bdes(1) OLD_FILES+=usr/bin/bdes OLD_FILES+=usr/lib/debug/usr/bin/bdes.debug OLD_FILES+=usr/share/man/man1/bdes.1.gz # 20170206: merged projects/ipsec OLD_FILES+=usr/include/netinet/ip_ipsec.h OLD_FILES+=usr/include/netinet6/ip6_ipsec.h # 20170128: remove pc98 support OLD_FILES+=usr/include/dev/ic/i8251.h OLD_FILES+=usr/include/dev/ic/i8255.h OLD_FILES+=usr/include/dev/ic/rsa.h OLD_FILES+=usr/include/dev/ic/wd33c93reg.h OLD_FILES+=usr/include/sys/disk/pc98.h OLD_FILES+=usr/include/sys/diskpc98.h OLD_FILES+=usr/share/man/man4/i386/ct.4.gz OLD_FILES+=usr/share/man/man4/i386/snc.4.gz OLD_FILES+=usr/share/syscons/keymaps/jp.pc98.iso.kbd OLD_FILES+=usr/share/syscons/keymaps/jp.pc98.kbd OLD_FILES+=usr/share/vt/keymaps/jp.pc98.iso.kbd OLD_FILES+=usr/share/vt/keymaps/jp.pc98.kbd # 20170110: Four files from ggate tests consolidated into one OLD_FILES+=usr/tests/sys/geom/class/gate/1_test OLD_FILES+=usr/tests/sys/geom/class/gate/2_test OLD_FILES+=usr/tests/sys/geom/class/gate/3_test OLD_FILES+=usr/tests/sys/geom/class/gate/conf.sh # 20170103: libbsnmptools.so made into an INTERNALLIB OLD_FILES+=usr/lib/libbsnmptools.a OLD_FILES+=usr/lib/libbsnmptools_p.a OLD_LIBS+=usr/lib/libbsnmptools.so.0 OLD_LIBS+=usr/lib/libbsnmptools.so # 20170102: sysdecode_getfsstat_flags() renamed to sysdecode_getfsstat_mode() OLD_FILES+=usr/share/man/man3/sysdecode_getfsstat_flags.3.gz # 20161230: libarchive ACL pax test renamed to test_acl_pax_posix1e.tar.uu OLD_FILES+=usr/tests/lib/libarchive/test_acl_pax.tar.uu # 20161229: Three files from gnop tests consolidated into one OLD_FILES+=usr/tests/sys/geom/class/nop/1_test OLD_FILES+=usr/tests/sys/geom/class/nop/2_test OLD_FILES+=usr/tests/sys/geom/class/nop/conf.sh # 20161217: new clang import which bumps version from 3.9.0 to 3.9.1. OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/common_interface_defs.h OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/esan_interface.h OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/msan_interface.h OLD_FILES+=usr/lib/clang/3.9.0/include/sanitizer/tsan_interface_atomic.h OLD_DIRS+=usr/lib/clang/3.9.0/include/sanitizer OLD_FILES+=usr/lib/clang/3.9.0/include/__clang_cuda_cmath.h OLD_FILES+=usr/lib/clang/3.9.0/include/__clang_cuda_intrinsics.h OLD_FILES+=usr/lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h OLD_FILES+=usr/lib/clang/3.9.0/include/__clang_cuda_runtime_wrapper.h OLD_FILES+=usr/lib/clang/3.9.0/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/3.9.0/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/3.9.0/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/3.9.0/include/adxintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/altivec.h OLD_FILES+=usr/lib/clang/3.9.0/include/ammintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/arm_acle.h OLD_FILES+=usr/lib/clang/3.9.0/include/arm_neon.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx2intrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512cdintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512dqintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512ifmaintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512ifmavlintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512pfintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vbmiintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vbmivlintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vlcdintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vldqintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/avxintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/bmiintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/clflushoptintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/cpuid.h OLD_FILES+=usr/lib/clang/3.9.0/include/cuda_builtin_vars.h OLD_FILES+=usr/lib/clang/3.9.0/include/emmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/f16cintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/fma4intrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/fmaintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/fxsrintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/htmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/htmxlintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/ia32intrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/immintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/mm3dnow.h OLD_FILES+=usr/lib/clang/3.9.0/include/mm_malloc.h OLD_FILES+=usr/lib/clang/3.9.0/include/mmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/module.modulemap OLD_FILES+=usr/lib/clang/3.9.0/include/mwaitxintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/nmmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/opencl-c.h OLD_FILES+=usr/lib/clang/3.9.0/include/pkuintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/pmmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/popcntintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/rtmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/s390intrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/shaintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/smmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/tbmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/tmmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/vadefs.h OLD_FILES+=usr/lib/clang/3.9.0/include/vecintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/wmmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/x86intrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/xmmintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/xopintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/xsavecintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/xsaveintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/xsaveoptintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/xsavesintrin.h OLD_FILES+=usr/lib/clang/3.9.0/include/xtestintrin.h OLD_DIRS+=usr/lib/clang/3.9.0/include OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-i386.so OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan-x86_64.so OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.safestack-i386.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.safestack-x86_64.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.stats-i386.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.stats-x86_64.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.stats_client-i386.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.stats_client-x86_64.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/3.9.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/3.9.0/lib/freebsd OLD_DIRS+=usr/lib/clang/3.9.0/lib OLD_DIRS+=usr/lib/clang/3.9.0 # 20161205: libproc version bump OLD_LIBS+=usr/lib/libproc.so.3 OLD_LIBS+=usr/lib32/libproc.so.3 # 20161127: Remove vm_page_cache(9) OLD_FILES+=usr/share/man/man9/vm_page_cache.9.gz # 20161124: new clang import which bumps version from 3.8.0 to 3.9.0. OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/common_interface_defs.h OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/msan_interface.h OLD_FILES+=usr/lib/clang/3.8.0/include/sanitizer/tsan_interface_atomic.h OLD_DIRS+=usr/lib/clang/3.8.0/include/sanitizer OLD_FILES+=usr/lib/clang/3.8.0/include/__clang_cuda_runtime_wrapper.h OLD_FILES+=usr/lib/clang/3.8.0/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/3.8.0/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/3.8.0/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/3.8.0/include/adxintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/altivec.h OLD_FILES+=usr/lib/clang/3.8.0/include/ammintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/arm_acle.h OLD_FILES+=usr/lib/clang/3.8.0/include/arm_neon.h OLD_FILES+=usr/lib/clang/3.8.0/include/avx2intrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/avx512cdintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/avx512dqintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/avx512vldqintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/avxintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/bmiintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/cpuid.h OLD_FILES+=usr/lib/clang/3.8.0/include/cuda_builtin_vars.h OLD_FILES+=usr/lib/clang/3.8.0/include/emmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/f16cintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/fma4intrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/fmaintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/fxsrintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/htmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/htmxlintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/ia32intrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/immintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/mm3dnow.h OLD_FILES+=usr/lib/clang/3.8.0/include/mm_malloc.h OLD_FILES+=usr/lib/clang/3.8.0/include/mmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/module.modulemap OLD_FILES+=usr/lib/clang/3.8.0/include/nmmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/pkuintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/pmmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/popcntintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/rtmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/s390intrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/shaintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/smmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/tbmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/tmmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/vadefs.h OLD_FILES+=usr/lib/clang/3.8.0/include/vecintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/wmmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/x86intrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/xmmintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/xopintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/xsavecintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/xsaveintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/xsaveoptintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/xsavesintrin.h OLD_FILES+=usr/lib/clang/3.8.0/include/xtestintrin.h OLD_DIRS+=usr/lib/clang/3.8.0/include OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-i386.so OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan-x86_64.so OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.safestack-i386.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.safestack-x86_64.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/3.8.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/3.8.0/lib/freebsd OLD_DIRS+=usr/lib/clang/3.8.0/lib OLD_DIRS+=usr/lib/clang/3.8.0 # 20161121: Hyper-V manuals only apply to amd64 and i386. .if ${TARGET_ARCH} != "amd64" && ${TARGET_ARCH} != "i386" OLD_FILES+=usr/share/man/man4/hv_kvp.4.gz OLD_FILES+=usr/share/man/man4/hv_netvsc.4.gz OLD_FILES+=usr/share/man/man4/hv_storvsc.4.gz OLD_FILES+=usr/share/man/man4/hv_utils.4.gz OLD_FILES+=usr/share/man/man4/hv_vmbus.4.gz OLD_FILES+=usr/share/man/man4/hv_vss.4.gz .endif # 20161118: Remove hv_ata_pci_disengage(4) OLD_FILES+=usr/share/man/man4/hv_ata_pci_disengage.4.gz # 20161017: urtwn(4) was merged into rtwn(4) OLD_FILES+=usr/share/man/man4/urtwn.4.gz OLD_FILES+=usr/share/man/man4/urtwnfw.4.gz # 20161015: Remove GNU rcs OLD_FILES+=usr/bin/ci OLD_FILES+=usr/bin/co OLD_FILES+=usr/bin/merge OLD_FILES+=usr/bin/rcs OLD_FILES+=usr/bin/rcsclean OLD_FILES+=usr/bin/rcsdiff OLD_FILES+=usr/bin/rcsfreeze OLD_FILES+=usr/bin/rcsmerge OLD_FILES+=usr/bin/rlog OLD_FILES+=usr/share/doc/psd/13.rcs/paper.ascii.gz OLD_FILES+=usr/share/doc/psd/13.rcs/rcs_func.ascii.gz OLD_DIRS+=usr/share/doc/psd/13.rcs OLD_FILES+=usr/share/man/man1/ci.1.gz OLD_FILES+=usr/share/man/man1/co.1.gz OLD_FILES+=usr/share/man/man1/merge.1.gz OLD_FILES+=usr/share/man/man1/rcs.1.gz OLD_FILES+=usr/share/man/man1/rcsclean.1.gz OLD_FILES+=usr/share/man/man1/rcsdiff.1.gz OLD_FILES+=usr/share/man/man1/rcsfreeze.1.gz OLD_FILES+=usr/share/man/man1/rcsintro.1.gz OLD_FILES+=usr/share/man/man1/rcsmerge.1.gz OLD_FILES+=usr/share/man/man1/rlog.1.gz OLD_FILES+=usr/share/man/man5/rcsfile.5.gz # 20161010: remove link to removed m_getclr(9) macro OLD_FILES+=usr/share/man/man9/m_getclr.9.gz # 20161003: MK_ELFCOPY_AS_OBJCOPY option retired OLD_FILES+=usr/bin/elfcopy OLD_FILES+=usr/share/man/man1/elfcopy.1.gz # 20160906: libkqueue tests moved to /usr/tests/sys/kqueue/libkqueue OLD_FILES+=usr/tests/sys/kqueue/kqtest OLD_FILES+=usr/tests/sys/kqueue/kqueue_test # 20160903: idle page zeroing support removed OLD_FILES+=usr/share/man/man9/pmap_zero_idle.9.gz # 20160901: Remove digi(4) OLD_FILES+=usr/share/man/man4/digi.4.gz # 20160819: Remove ie(4) OLD_FILES+=usr/share/man/man4/i386/ie.4.gz # 20160819: Remove spic(4) OLD_FILES+=usr/share/man/man4/spic.4.gz # 20160819: Remove wl(4) and wlconfig(8) OLD_FILES+=usr/share/man/man4/i386/wl.4.gz OLD_FILES+=usr/sbin/wlconfig OLD_FILES+=usr/share/man/man8/i386/wlconfig.8.gz # 20160819: Remove si(4) and sicontrol(8) OLD_FILES+=usr/share/man/man4/si.4.gz OLD_FILES+=usr/sbin/sicontrol OLD_FILES+=usr/share/man/man8/sicontrol.8.gz # 20160819: Remove scd(4) OLD_FILES+=usr/share/man/man4/scd.4.gz # 20160815: Remove mcd(4) OLD_FILES+=usr/share/man/man4/mcd.4.gz # 20160805: lockmgr_waiters(9) removed OLD_FILES+=usr/share/man/man9/lockmgr_waiters.9.gz # 20160703: POSIXify locales with variants OLD_FILES+=usr/share/locale/zh_Hant_TW.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hant_TW.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/zh_Hant_TW.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_Hant_TW.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/zh_Hant_TW.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_Hant_TW.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/zh_Hant_TW.UTF-8 OLD_FILES+=usr/share/locale/zh_Hant_TW.Big5/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hant_TW.Big5/LC_CTYPE OLD_FILES+=usr/share/locale/zh_Hant_TW.Big5/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_Hant_TW.Big5/LC_MONETARY OLD_FILES+=usr/share/locale/zh_Hant_TW.Big5/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_Hant_TW.Big5/LC_TIME OLD_DIRS+=usr/share/locale/zh_Hant_TW.Big5 OLD_FILES+=usr/share/locale/zh_Hant_HK.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hant_HK.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/zh_Hant_HK.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_Hant_HK.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/zh_Hant_HK.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_Hant_HK.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/zh_Hant_HK.UTF-8 OLD_FILES+=usr/share/locale/zh_Hans_CN.eucCN/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hans_CN.eucCN/LC_CTYPE OLD_FILES+=usr/share/locale/zh_Hans_CN.eucCN/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_Hans_CN.eucCN/LC_MONETARY OLD_FILES+=usr/share/locale/zh_Hans_CN.eucCN/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_Hans_CN.eucCN/LC_TIME OLD_DIRS+=usr/share/locale/zh_Hans_CN.eucCN OLD_FILES+=usr/share/locale/zh_Hans_CN.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hans_CN.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/zh_Hans_CN.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_Hans_CN.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/zh_Hans_CN.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_Hans_CN.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/zh_Hans_CN.UTF-8 OLD_FILES+=usr/share/locale/zh_Hans_CN.GBK/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hans_CN.GBK/LC_CTYPE OLD_FILES+=usr/share/locale/zh_Hans_CN.GBK/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_Hans_CN.GBK/LC_MONETARY OLD_FILES+=usr/share/locale/zh_Hans_CN.GBK/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_Hans_CN.GBK/LC_TIME OLD_DIRS+=usr/share/locale/zh_Hans_CN.GBK OLD_FILES+=usr/share/locale/zh_Hans_CN.GB2312/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hans_CN.GB2312/LC_CTYPE OLD_FILES+=usr/share/locale/zh_Hans_CN.GB2312/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_Hans_CN.GB2312/LC_MONETARY OLD_FILES+=usr/share/locale/zh_Hans_CN.GB2312/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_Hans_CN.GB2312/LC_TIME OLD_DIRS+=usr/share/locale/zh_Hans_CN.GB2312 OLD_FILES+=usr/share/locale/zh_Hans_CN.GB18030/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hans_CN.GB18030/LC_CTYPE OLD_FILES+=usr/share/locale/zh_Hans_CN.GB18030/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_Hans_CN.GB18030/LC_MONETARY OLD_FILES+=usr/share/locale/zh_Hans_CN.GB18030/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_Hans_CN.GB18030/LC_TIME OLD_DIRS+=usr/share/locale/zh_Hans_CN.GB18030 OLD_FILES+=usr/share/locale/sr_Latn_RS.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/sr_Latn_RS.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/sr_Latn_RS.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/sr_Latn_RS.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/sr_Latn_RS.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_Latn_RS.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/sr_Latn_RS.UTF-8 OLD_FILES+=usr/share/locale/sr_Latn_RS.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/sr_Latn_RS.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/sr_Latn_RS.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/sr_Latn_RS.ISO8859-2/LC_MONETARY OLD_FILES+=usr/share/locale/sr_Latn_RS.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_Latn_RS.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/sr_Latn_RS.ISO8859-2 OLD_FILES+=usr/share/locale/sr_Cyrl_RS.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/sr_Cyrl_RS.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/sr_Cyrl_RS.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/sr_Cyrl_RS.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/sr_Cyrl_RS.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_Cyrl_RS.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/sr_Cyrl_RS.UTF-8 OLD_FILES+=usr/share/locale/sr_Cyrl_RS.ISO8859-5/LC_COLLATE OLD_FILES+=usr/share/locale/sr_Cyrl_RS.ISO8859-5/LC_CTYPE OLD_FILES+=usr/share/locale/sr_Cyrl_RS.ISO8859-5/LC_MESSAGES OLD_FILES+=usr/share/locale/sr_Cyrl_RS.ISO8859-5/LC_MONETARY OLD_FILES+=usr/share/locale/sr_Cyrl_RS.ISO8859-5/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_Cyrl_RS.ISO8859-5/LC_TIME OLD_DIRS+=usr/share/locale/sr_Cyrl_RS.ISO8859-5 OLD_FILES+=usr/share/locale/mn_Cyrl_MN.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/mn_Cyrl_MN.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/mn_Cyrl_MN.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/mn_Cyrl_MN.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/mn_Cyrl_MN.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/mn_Cyrl_MN.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/mn_Cyrl_MN.UTF-8 OLD_FILES+=usr/share/locale/kk_Cyrl_KZ.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/kk_Cyrl_KZ.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/kk_Cyrl_KZ.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/kk_Cyrl_KZ.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/kk_Cyrl_KZ.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/kk_Cyrl_KZ.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/kk_Cyrl_KZ.UTF-8 # 20160608: removed pam_verbose_error OLD_LIBS+=usr/lib/libpam.so.5 OLD_LIBS+=usr/lib/pam_chroot.so.5 OLD_LIBS+=usr/lib/pam_deny.so.5 OLD_LIBS+=usr/lib/pam_echo.so.5 OLD_LIBS+=usr/lib/pam_exec.so.5 OLD_LIBS+=usr/lib/pam_ftpusers.so.5 OLD_LIBS+=usr/lib/pam_group.so.5 OLD_LIBS+=usr/lib/pam_guest.so.5 OLD_LIBS+=usr/lib/pam_krb5.so.5 OLD_LIBS+=usr/lib/pam_ksu.so.5 OLD_LIBS+=usr/lib/pam_lastlog.so.5 OLD_LIBS+=usr/lib/pam_login_access.so.5 OLD_LIBS+=usr/lib/pam_nologin.so.5 OLD_LIBS+=usr/lib/pam_opie.so.5 OLD_LIBS+=usr/lib/pam_opieaccess.so.5 OLD_LIBS+=usr/lib/pam_passwdqc.so.5 OLD_LIBS+=usr/lib/pam_permit.so.5 OLD_LIBS+=usr/lib/pam_radius.so.5 OLD_LIBS+=usr/lib/pam_rhosts.so.5 OLD_LIBS+=usr/lib/pam_rootok.so.5 OLD_LIBS+=usr/lib/pam_securetty.so.5 OLD_LIBS+=usr/lib/pam_self.so.5 OLD_LIBS+=usr/lib/pam_ssh.so.5 OLD_LIBS+=usr/lib/pam_tacplus.so.5 OLD_LIBS+=usr/lib/pam_unix.so.5 OLD_LIBS+=usr/lib32/libpam.so.5 OLD_LIBS+=usr/lib32/pam_chroot.so.5 OLD_LIBS+=usr/lib32/pam_deny.so.5 OLD_LIBS+=usr/lib32/pam_echo.so.5 OLD_LIBS+=usr/lib32/pam_exec.so.5 OLD_LIBS+=usr/lib32/pam_ftpusers.so.5 OLD_LIBS+=usr/lib32/pam_group.so.5 OLD_LIBS+=usr/lib32/pam_guest.so.5 OLD_LIBS+=usr/lib32/pam_krb5.so.5 OLD_LIBS+=usr/lib32/pam_ksu.so.5 OLD_LIBS+=usr/lib32/pam_lastlog.so.5 OLD_LIBS+=usr/lib32/pam_login_access.so.5 OLD_LIBS+=usr/lib32/pam_nologin.so.5 OLD_LIBS+=usr/lib32/pam_opie.so.5 OLD_LIBS+=usr/lib32/pam_opieaccess.so.5 OLD_LIBS+=usr/lib32/pam_passwdqc.so.5 OLD_LIBS+=usr/lib32/pam_permit.so.5 OLD_LIBS+=usr/lib32/pam_radius.so.5 OLD_LIBS+=usr/lib32/pam_rhosts.so.5 OLD_LIBS+=usr/lib32/pam_rootok.so.5 OLD_LIBS+=usr/lib32/pam_securetty.so.5 OLD_LIBS+=usr/lib32/pam_self.so.5 OLD_LIBS+=usr/lib32/pam_ssh.so.5 OLD_LIBS+=usr/lib32/pam_tacplus.so.5 OLD_LIBS+=usr/lib32/pam_unix.so.5 # 20160523: remove extranous ALTQ files OLD_FILES+=usr/include/altq/altq_codel.h OLD_FILES+=usr/include/altq/altq_fairq.h # 20160519: remove DTrace Toolkit from base OLD_FILES+=usr/sbin/dtruss OLD_FILES+=usr/share/dtrace/toolkit/execsnoop OLD_FILES+=usr/share/dtrace/toolkit/hotkernel OLD_FILES+=usr/share/dtrace/toolkit/hotuser OLD_FILES+=usr/share/dtrace/toolkit/opensnoop OLD_FILES+=usr/share/dtrace/toolkit/procsystime OLD_DIRS+=usr/share/dtrace/toolkit OLD_FILES+=usr/share/man/man1/dtruss.1.gz # 20160519: stale MLINK removed OLD_FILES+=usr/share/man/man9/rman_await_resource.9.gz # 20160517: ReiserFS removed OLD_FILES+=usr/share/man/man5/reiserfs.5.gz # 20160504: tests rework OLD_FILES+=usr/tests/lib/libc/regex/data/README # 20160430: kvm_getfiles(3) removed from kvm(3) OLD_LIBS+=lib/libkvm.so.6 OLD_LIBS+=usr/lib32/libkvm.so.6 OLD_FILES+=usr/share/man/man3/kvm_getfiles.3.gz # 20160423: remove mroute6d OLD_FILES+=etc/rc.d/mroute6d # 20160419: rename units.lib -> definitions.units OLD_FILES+=usr/share/misc/units.lib # 20160419: remove Big5HKSCS locales OLD_FILES+=usr/share/locale/zh_HK.Big5HKSCS/LC_COLLATE OLD_FILES+=usr/share/locale/zh_HK.Big5HKSCS/LC_CTYPE OLD_FILES+=usr/share/locale/zh_HK.Big5HKSCS/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_HK.Big5HKSCS/LC_MONETARY OLD_FILES+=usr/share/locale/zh_HK.Big5HKSCS/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_HK.Big5HKSCS/LC_TIME OLD_DIRS+=usr/share/locale/zh_HK.Big5HKSCS OLD_FILES+=usr/share/locale/zh_Hant_HK.Big5HKSCS/LC_COLLATE OLD_FILES+=usr/share/locale/zh_Hant_HK.Big5HKSCS/LC_CTYPE OLD_FILES+=usr/share/locale/zh_Hant_HK.Big5HKSCS/LC_MESSAGES OLD_FILES+=usr/share/locale/zh_Hant_HK.Big5HKSCS/LC_MONETARY OLD_FILES+=usr/share/locale/zh_Hant_HK.Big5HKSCS/LC_NUMERIC OLD_FILES+=usr/share/locale/zh_Hant_HK.Big5HKSCS/LC_TIME OLD_DIRS+=usr/share/locale/zh_Hant_HK.Big5HKSCS # 20160317: rman_res_t size bump to uintmax_t OLD_LIBS+=usr/lib/libdevinfo.so.5 OLD_LIBS+=usr/lib32/libdevinfo.so.5 # 20160305: new clang import which bumps version from 3.7.1 to 3.8.0. OLD_FILES+=usr/bin/macho-dump OLD_FILES+=usr/bin/tblgen OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/common_interface_defs.h OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/msan_interface.h OLD_FILES+=usr/lib/clang/3.7.1/include/sanitizer/tsan_interface_atomic.h OLD_DIRS+=usr/lib/clang/3.7.1/include/sanitizer OLD_FILES+=usr/lib/clang/3.7.1/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/3.7.1/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/3.7.1/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/3.7.1/include/adxintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/altivec.h OLD_FILES+=usr/lib/clang/3.7.1/include/ammintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/arm_acle.h OLD_FILES+=usr/lib/clang/3.7.1/include/arm_neon.h OLD_FILES+=usr/lib/clang/3.7.1/include/avx2intrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/avx512cdintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/avx512dqintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/avx512vldqintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/avxintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/bmiintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/cpuid.h OLD_FILES+=usr/lib/clang/3.7.1/include/cuda_builtin_vars.h OLD_FILES+=usr/lib/clang/3.7.1/include/emmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/f16cintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/fma4intrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/fmaintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/fxsrintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/htmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/htmxlintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/ia32intrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/immintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/mm3dnow.h OLD_FILES+=usr/lib/clang/3.7.1/include/mm_malloc.h OLD_FILES+=usr/lib/clang/3.7.1/include/mmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/module.modulemap OLD_FILES+=usr/lib/clang/3.7.1/include/nmmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/pmmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/popcntintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/rtmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/s390intrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/shaintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/smmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/tbmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/tmmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/vadefs.h OLD_FILES+=usr/lib/clang/3.7.1/include/vecintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/wmmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/x86intrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/xmmintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/xopintrin.h OLD_FILES+=usr/lib/clang/3.7.1/include/xtestintrin.h OLD_DIRS+=usr/lib/clang/3.7.1/include OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.safestack-i386.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.safestack-x86_64.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/3.7.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/3.7.1/lib/freebsd OLD_DIRS+=usr/lib/clang/3.7.1/lib OLD_DIRS+=usr/lib/clang/3.7.1 # 20160301: Remove taskqueue_enqueue_fast OLD_FILES+=usr/share/man/man9/taskqueue_enqueue_fast.9.gz # 20160225: Remove casperd and libcapsicum. OLD_FILES+=sbin/casperd OLD_FILES+=etc/rc.d/casperd OLD_FILES+=usr/share/man/man8/casperd.8.gz OLD_FILES+=usr/include/libcapsicum.h OLD_FILES+=usr/include/libcapsicum_service.h OLD_FILES+=usr/include/libcapsicum.h OLD_FILES+=usr/share/man/man3/libcapsicum.3.gz OLD_FILES+=usr/include/libcapsicum_dns.h OLD_FILES+=usr/include/libcapsicum_grp.h OLD_FILES+=usr/include/libcapsicum_impl.h OLD_FILES+=usr/include/libcapsicum_pwd.h OLD_FILES+=usr/include/libcapsicum_random.h OLD_FILES+=usr/include/libcapsicum_sysctl.h OLD_FILES+=libexec/casper/dns OLD_FILES+=libexec/casper/grp OLD_FILES+=libexec/casper/pwd OLD_FILES+=libexec/casper/random OLD_FILES+=libexec/casper/sysctl OLD_FILES+=libexec/casper/.debug/random.debug OLD_FILES+=libexec/casper/.debug/dns.debug OLD_FILES+=libexec/casper/.debug/sysctl.debug OLD_FILES+=libexec/casper/.debug/pwd.debug OLD_FILES+=libexec/casper/.debug/grp.debug OLD_DIRS+=libexec/casper/.debug OLD_DIRS+=libexec/casper OLD_FILES+=usr/lib/libcapsicum.a OLD_FILES+=usr/lib/libcapsicum.so OLD_LIBS+=lib/libcapsicum.so.0 OLD_FILES+=usr/lib/libcapsicum_p.a OLD_FILES+=usr/lib32/libcapsicum.a OLD_FILES+=usr/lib32/libcapsicum.so OLD_LIBS+=usr/lib32/libcapsicum.so.0 OLD_FILES+=usr/lib32/libcapsicum_p.a # 20160223: functionality from mkulzma(1) merged into mkuzip(1) OLD_FILES+=usr/bin/mkulzma OLD_FILES+=usr/share/man/man4/geom_uncompress.4.gz OLD_FILES+=usr/share/man/man8/mkulzma.8.gz # 20160211: Remove obsolete unbound-control-setup OLD_FILES+=usr/sbin/unbound-control-setup # 20160121: cc.h moved OLD_FILES+=usr/include/netinet/cc.h # 20160116: Update mandoc to cvs snapshot 20160116 OLD_FILES+=usr/share/mdocml/example.style.css OLD_FILES+=usr/share/mdocml/style.css OLD_DIRS+=usr/share/mdocml # 20160114: SA-16:06.snmpd OLD_FILES+=usr/share/examples/etc/snmpd.config # 20160107: GNU ld installed as ld.bfd and linked as ld OLD_FILES+=usr/lib/debug/usr/bin/ld.debug # 20151225: new clang import which bumps version from 3.7.0 to 3.7.1. OLD_FILES+=usr/lib/clang/3.7.0/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/3.7.0/include/sanitizer/asan_interface.h OLD_FILES+=usr/lib/clang/3.7.0/include/sanitizer/common_interface_defs.h OLD_FILES+=usr/lib/clang/3.7.0/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/3.7.0/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/3.7.0/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/3.7.0/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/3.7.0/include/sanitizer/msan_interface.h OLD_FILES+=usr/lib/clang/3.7.0/include/sanitizer/tsan_interface_atomic.h OLD_DIRS+=usr/lib/clang/3.7.0/include/sanitizer OLD_FILES+=usr/lib/clang/3.7.0/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/3.7.0/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/3.7.0/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/3.7.0/include/adxintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/altivec.h OLD_FILES+=usr/lib/clang/3.7.0/include/ammintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/arm_acle.h OLD_FILES+=usr/lib/clang/3.7.0/include/arm_neon.h OLD_FILES+=usr/lib/clang/3.7.0/include/avx2intrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/avx512cdintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/avx512dqintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/avx512vldqintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/avxintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/bmiintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/cpuid.h OLD_FILES+=usr/lib/clang/3.7.0/include/cuda_builtin_vars.h OLD_FILES+=usr/lib/clang/3.7.0/include/emmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/f16cintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/fma4intrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/fmaintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/fxsrintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/htmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/htmxlintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/ia32intrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/immintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/mm3dnow.h OLD_FILES+=usr/lib/clang/3.7.0/include/mm_malloc.h OLD_FILES+=usr/lib/clang/3.7.0/include/mmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/module.modulemap OLD_FILES+=usr/lib/clang/3.7.0/include/nmmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/pmmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/popcntintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/rtmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/s390intrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/shaintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/smmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/tbmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/tmmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/vadefs.h OLD_FILES+=usr/lib/clang/3.7.0/include/vecintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/wmmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/x86intrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/xmmintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/xopintrin.h OLD_FILES+=usr/lib/clang/3.7.0/include/xtestintrin.h OLD_DIRS+=usr/lib/clang/3.7.0/include OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan-preinit-i386.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.safestack-i386.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.safestack-x86_64.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a OLD_FILES+=usr/lib/clang/3.7.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/3.7.0/lib/freebsd OLD_DIRS+=usr/lib/clang/3.7.0/lib OLD_DIRS+=usr/lib/clang/3.7.0 # 20151130: libelf moved from /usr/lib to /lib (libkvm dependency in r291406) OLD_LIBS+=usr/lib/libelf.so.2 # 20151115: Fox bad upgrade scheme OLD_FILES+=usr/share/locale/zh_CN.GB18030/zh_Hans_CN.GB18030 OLD_FILES+=usr/share/locale/zh_CN.GB2312/zh_Hans_CN.GB2312 OLD_FILES+=usr/share/locale/zh_CN.GBK/zh_Hans_CN.GBK OLD_FILES+=usr/share/locale/zh_CN.UTF-8/zh_Hans_CN.UTF-8 OLD_FILES+=usr/share/locale/zh_CN.eucCN/zh_Hans_CN.eucCN OLD_FILES+=usr/share/locale/zh_TW.Big5/zh_Hant_TW.Big5 OLD_FILES+=usr/share/locale/zh_TW.UTF-8/zh_Hant_TW.UTF-8 # 20151107: String collation improvements OLD_FILES+=usr/share/locale/UTF-8/LC_CTYPE OLD_DIRS+=usr/share/locale/UTF-8 OLD_FILES+=usr/share/locale/kk_KZ.PT154/LC_COLLATE OLD_FILES+=usr/share/locale/kk_KZ.PT154/LC_CTYPE OLD_FILES+=usr/share/locale/kk_KZ.PT154/LC_MESSAGES OLD_FILES+=usr/share/locale/kk_KZ.PT154/LC_MONETARY OLD_FILES+=usr/share/locale/kk_KZ.PT154/LC_NUMERIC OLD_FILES+=usr/share/locale/kk_KZ.PT154/LC_TIME OLD_DIRS+=usr/share/locale/kk_KZ.PT154/ OLD_FILES+=usr/share/locale/la_LN.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/la_LN.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/la_LN.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/la_LN.ISO8859-1 OLD_FILES+=usr/share/locale/la_LN.ISO8859-13/LC_COLLATE OLD_FILES+=usr/share/locale/la_LN.ISO8859-13/LC_CTYPE OLD_DIRS+=usr/share/locale/la_LN.ISO8859-13 OLD_FILES+=usr/share/locale/la_LN.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/la_LN.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/la_LN.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/la_LN.ISO8859-15 OLD_FILES+=usr/share/locale/la_LN.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/la_LN.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/la_LN.ISO8859-2/LC_TIME OLD_DIRS+=usr/share/locale/la_LN.ISO8859-2 OLD_FILES+=usr/share/locale/la_LN.ISO8859-4/LC_COLLATE OLD_FILES+=usr/share/locale/la_LN.ISO8859-4/LC_CTYPE OLD_FILES+=usr/share/locale/la_LN.ISO8859-4/LC_TIME OLD_DIRS+=usr/share/locale/la_LN.ISO8859-4 OLD_FILES+=usr/share/locale/la_LN.US-ASCII/LC_COLLATE OLD_FILES+=usr/share/locale/la_LN.US-ASCII/LC_CTYPE OLD_FILES+=usr/share/locale/la_LN.US-ASCII/LC_TIME OLD_DIRS+=usr/share/locale/la_LN.US-ASCII OLD_FILES+=usr/share/locale/lt_LT.ISO8859-4/LC_MESSAGES OLD_FILES+=usr/share/locale/lt_LT.ISO8859-4/LC_TIME OLD_FILES+=usr/share/locale/lt_LT.ISO8859-4/LC_COLLATE OLD_FILES+=usr/share/locale/lt_LT.ISO8859-4/LC_MONETARY OLD_FILES+=usr/share/locale/lt_LT.ISO8859-4/LC_CTYPE OLD_FILES+=usr/share/locale/lt_LT.ISO8859-4/LC_NUMERIC OLD_DIRS+=usr/share/locale/lt_LT.ISO8859-4 OLD_FILES+=usr/share/locale/no_NO.ISO8859-1/LC_COLLATE OLD_FILES+=usr/share/locale/no_NO.ISO8859-1/LC_CTYPE OLD_FILES+=usr/share/locale/no_NO.ISO8859-1/LC_MESSAGES OLD_FILES+=usr/share/locale/no_NO.ISO8859-1/LC_MONETARY OLD_FILES+=usr/share/locale/no_NO.ISO8859-1/LC_NUMERIC OLD_FILES+=usr/share/locale/no_NO.ISO8859-1/LC_TIME OLD_DIRS+=usr/share/locale/no_NO.ISO8859-1 OLD_FILES+=usr/share/locale/no_NO.ISO8859-15/LC_COLLATE OLD_FILES+=usr/share/locale/no_NO.ISO8859-15/LC_CTYPE OLD_FILES+=usr/share/locale/no_NO.ISO8859-15/LC_MESSAGES OLD_FILES+=usr/share/locale/no_NO.ISO8859-15/LC_MONETARY OLD_FILES+=usr/share/locale/no_NO.ISO8859-15/LC_NUMERIC OLD_FILES+=usr/share/locale/no_NO.ISO8859-15/LC_TIME OLD_DIRS+=usr/share/locale/no_NO.ISO8859-15 OLD_FILES+=usr/share/locale/no_NO.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/no_NO.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/no_NO.UTF-8/LC_MESSAGES OLD_FILES+=usr/share/locale/no_NO.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/no_NO.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/no_NO.UTF-8/LC_TIME OLD_DIRS+=usr/share/locale/no_NO.UTF-8 OLD_FILES+=usr/share/locale/sr_YU.ISO8859-2/LC_COLLATE OLD_FILES+=usr/share/locale/sr_YU.ISO8859-2/LC_TIME OLD_FILES+=usr/share/locale/sr_YU.ISO8859-2/LC_CTYPE OLD_FILES+=usr/share/locale/sr_YU.ISO8859-2/LC_MESSAGES OLD_FILES+=usr/share/locale/sr_YU.ISO8859-2/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_YU.ISO8859-2/LC_MONETARY OLD_DIRS+=usr/share/locale/sr_YU.ISO8859-2 OLD_FILES+=usr/share/locale/sr_YU.ISO8859-5/LC_COLLATE OLD_FILES+=usr/share/locale/sr_YU.ISO8859-5/LC_MONETARY OLD_FILES+=usr/share/locale/sr_YU.ISO8859-5/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_YU.ISO8859-5/LC_CTYPE OLD_FILES+=usr/share/locale/sr_YU.ISO8859-5/LC_TIME OLD_FILES+=usr/share/locale/sr_YU.ISO8859-5/LC_MESSAGES OLD_DIRS+=usr/share/locale/sr_YU.ISO8859-5 OLD_FILES+=usr/share/locale/sr_YU.UTF-8/LC_COLLATE OLD_FILES+=usr/share/locale/sr_YU.UTF-8/LC_MONETARY OLD_FILES+=usr/share/locale/sr_YU.UTF-8/LC_CTYPE OLD_FILES+=usr/share/locale/sr_YU.UTF-8/LC_TIME OLD_FILES+=usr/share/locale/sr_YU.UTF-8/LC_NUMERIC OLD_FILES+=usr/share/locale/sr_YU.UTF-8/LC_MESSAGES OLD_DIRS+=usr/share/locale/sr_YU.UTF-8 # 20151101: added missing _test suffix on multiple tests in lib/libc OLD_FILES+=usr/tests/lib/libc/c063/faccessat OLD_FILES+=usr/tests/lib/libc/c063/fchmodat OLD_FILES+=usr/tests/lib/libc/c063/fchownat OLD_FILES+=usr/tests/lib/libc/c063/fexecve OLD_FILES+=usr/tests/lib/libc/c063/fstatat OLD_FILES+=usr/tests/lib/libc/c063/linkat OLD_FILES+=usr/tests/lib/libc/c063/mkdirat OLD_FILES+=usr/tests/lib/libc/c063/mkfifoat OLD_FILES+=usr/tests/lib/libc/c063/mknodat OLD_FILES+=usr/tests/lib/libc/c063/openat OLD_FILES+=usr/tests/lib/libc/c063/readlinkat OLD_FILES+=usr/tests/lib/libc/c063/renameat OLD_FILES+=usr/tests/lib/libc/c063/symlinkat OLD_FILES+=usr/tests/lib/libc/c063/unlinkat OLD_FILES+=usr/tests/lib/libc/c063/utimensat OLD_FILES+=usr/tests/lib/libc/string/memchr OLD_FILES+=usr/tests/lib/libc/string/memcpy OLD_FILES+=usr/tests/lib/libc/string/memmem OLD_FILES+=usr/tests/lib/libc/string/memset OLD_FILES+=usr/tests/lib/libc/string/strcat OLD_FILES+=usr/tests/lib/libc/string/strchr OLD_FILES+=usr/tests/lib/libc/string/strcmp OLD_FILES+=usr/tests/lib/libc/string/strcpy OLD_FILES+=usr/tests/lib/libc/string/strcspn OLD_FILES+=usr/tests/lib/libc/string/strerror OLD_FILES+=usr/tests/lib/libc/string/strlen OLD_FILES+=usr/tests/lib/libc/string/strpbrk OLD_FILES+=usr/tests/lib/libc/string/strrchr OLD_FILES+=usr/tests/lib/libc/string/strspn OLD_FILES+=usr/tests/lib/libc/string/swab # 20151101: 430.status-rwho was renamed to 430.status-uptime OLD_FILES+=etc/periodic/daily/430.status-rwho # 20151030: OpenSSL 1.0.2d import OLD_FILES+=usr/share/openssl/man/man3/CMS_set1_signer_certs.3.gz OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_ctrl.3.gz OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_ctrl_str.3.gz OLD_FILES+=usr/share/openssl/man/man3/d2i_509_CRL_fp.3.gz OLD_LIBS+=lib/libcrypto.so.7 OLD_LIBS+=usr/lib/libssl.so.7 OLD_LIBS+=usr/lib32/libcrypto.so.7 OLD_LIBS+=usr/lib32/libssl.so.7 # 20151029: LinuxKPI moved to sys/compat/linuxkpi OLD_FILES+=usr/include/dev/usb/usb_compat_linux.h # 20151015: test symbols moved to /usr/lib/debug OLD_DIRS+=usr/tests/lib/atf/libatf-c++/.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/.debug/atf_c++_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/.debug/build_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/.debug/check_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/.debug/config_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/.debug/macros_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/.debug/tests_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/.debug/utils_test.debug OLD_DIRS+=usr/tests/lib/atf/libatf-c++/detail/.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/.debug/application_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/.debug/env_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/.debug/exceptions_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/.debug/fs_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/.debug/process_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/.debug/sanity_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/.debug/text_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c++/detail/.debug/version_helper.debug OLD_DIRS+=usr/tests/lib/atf/libatf-c/.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/.debug/atf_c_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/.debug/build_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/.debug/check_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/.debug/config_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/.debug/error_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/.debug/macros_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/.debug/tc_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/.debug/tp_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/.debug/utils_test.debug OLD_DIRS+=usr/tests/lib/atf/libatf-c/detail/.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/dynstr_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/env_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/fs_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/list_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/map_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/process_helpers.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/process_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/sanity_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/text_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/user_test.debug OLD_FILES+=usr/tests/lib/atf/libatf-c/detail/.debug/version_helper.debug OLD_DIRS+=usr/tests/lib/atf/test-programs/.debug OLD_FILES+=usr/tests/lib/atf/test-programs/.debug/c_helpers.debug OLD_FILES+=usr/tests/lib/atf/test-programs/.debug/cpp_helpers.debug OLD_DIRS+=usr/tests/lib/libc/c063/.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/faccessat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/fchmodat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/fchownat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/fexecve.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/fstatat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/linkat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/mkdirat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/mkfifoat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/mknodat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/openat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/readlinkat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/renameat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/symlinkat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/unlinkat.debug OLD_FILES+=usr/tests/lib/libc/c063/.debug/utimensat.debug OLD_DIRS+=usr/tests/lib/libc/db/.debug OLD_FILES+=usr/tests/lib/libc/db/.debug/h_db.debug OLD_DIRS+=usr/tests/lib/libc/gen/.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/alarm_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/arc4random_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/assert_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/basedirname_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/dir_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/floatunditf_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/fnmatch_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/fpclassify2_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/fpclassify_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/fpsetmask_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/fpsetround_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/ftok_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/getcwd_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/getgrent_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/glob_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/humanize_number_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/isnan_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/nice_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/pause_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/raise_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/realpath_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/setdomainname_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/sethostname_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/sleep_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/syslog_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/time_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/ttyname_test.debug OLD_FILES+=usr/tests/lib/libc/gen/.debug/vis_test.debug OLD_DIRS+=usr/tests/lib/libc/gen/execve/.debug OLD_FILES+=usr/tests/lib/libc/gen/execve/.debug/execve_test.debug OLD_DIRS+=usr/tests/lib/libc/gen/posix_spawn/.debug OLD_FILES+=usr/tests/lib/libc/gen/posix_spawn/.debug/fileactions_test.debug OLD_FILES+=usr/tests/lib/libc/gen/posix_spawn/.debug/h_fileactions.debug OLD_FILES+=usr/tests/lib/libc/gen/posix_spawn/.debug/h_spawn.debug OLD_FILES+=usr/tests/lib/libc/gen/posix_spawn/.debug/h_spawnattr.debug OLD_FILES+=usr/tests/lib/libc/gen/posix_spawn/.debug/spawn_test.debug OLD_FILES+=usr/tests/lib/libc/gen/posix_spawn/.debug/spawnattr_test.debug OLD_DIRS+=usr/tests/lib/libc/hash/.debug OLD_FILES+=usr/tests/lib/libc/hash/.debug/h_hash.debug OLD_FILES+=usr/tests/lib/libc/hash/.debug/sha2_test.debug OLD_DIRS+=usr/tests/lib/libc/inet/.debug OLD_FILES+=usr/tests/lib/libc/inet/.debug/inet_network_test.debug OLD_DIRS+=usr/tests/lib/libc/locale/.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/io_test.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/mbrtowc_test.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/mbsnrtowcs_test.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/mbstowcs_test.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/mbtowc_test.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/wcscspn_test.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/wcspbrk_test.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/wcsspn_test.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/wcstod_test.debug OLD_FILES+=usr/tests/lib/libc/locale/.debug/wctomb_test.debug OLD_DIRS+=usr/tests/lib/libc/net/.debug OLD_FILES+=usr/tests/lib/libc/net/.debug/ether_aton_test.debug OLD_FILES+=usr/tests/lib/libc/net/.debug/getprotoent_test.debug OLD_FILES+=usr/tests/lib/libc/net/.debug/h_dns_server.debug OLD_FILES+=usr/tests/lib/libc/net/.debug/h_nsd_recurse.debug OLD_FILES+=usr/tests/lib/libc/net/.debug/h_protoent.debug OLD_FILES+=usr/tests/lib/libc/net/.debug/h_servent.debug OLD_DIRS+=usr/tests/lib/libc/regex/.debug OLD_FILES+=usr/tests/lib/libc/regex/.debug/exhaust_test.debug OLD_FILES+=usr/tests/lib/libc/regex/.debug/h_regex.debug OLD_FILES+=usr/tests/lib/libc/regex/.debug/regex_att_test.debug OLD_DIRS+=usr/tests/lib/libc/ssp/.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_fgets.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_getcwd.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_gets.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_memcpy.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_memmove.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_memset.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_raw.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_read.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_readlink.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_snprintf.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_sprintf.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_stpcpy.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_stpncpy.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_strcat.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_strcpy.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_strncat.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_strncpy.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_vsnprintf.debug OLD_FILES+=usr/tests/lib/libc/ssp/.debug/h_vsprintf.debug OLD_DIRS+=usr/tests/lib/libc/stdio/.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/clearerr_test.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/fflush_test.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/fmemopen2_test.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/fmemopen_test.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/fopen_test.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/fputc_test.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/mktemp_test.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/popen_test.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/printf_test.debug OLD_FILES+=usr/tests/lib/libc/stdio/.debug/scanf_test.debug OLD_DIRS+=usr/tests/lib/libc/stdlib/.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/abs_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/atoi_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/div_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/exit_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/getenv_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/h_getopt.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/h_getopt_long.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/hsearch_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/posix_memalign_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/random_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/strtod_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/strtol_test.debug OLD_FILES+=usr/tests/lib/libc/stdlib/.debug/system_test.debug OLD_DIRS+=usr/tests/lib/libc/string/.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/memchr.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/memcpy.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/memmem.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/memset.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strcat.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strchr.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strcmp.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strcpy.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strcspn.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strerror.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strlen.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strpbrk.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strrchr.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/strspn.debug OLD_FILES+=usr/tests/lib/libc/string/.debug/swab.debug OLD_DIRS+=usr/tests/lib/libc/sys/.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/access_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/chroot_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/clock_gettime_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/connect_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/dup_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/fsync_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/getcontext_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/getgroups_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/getitimer_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/getlogin_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/getpid_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/getrusage_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/getsid_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/gettimeofday_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/issetugid_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/kevent_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/kill_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/link_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/listen_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/mincore_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/mkdir_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/mkfifo_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/mknod_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/mlock_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/mmap_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/mprotect_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/msgctl_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/msgget_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/msgrcv_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/msgsnd_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/msync_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/nanosleep_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/pipe2_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/pipe_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/poll_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/revoke_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/select_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/setrlimit_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/setuid_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/sigaction_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/sigqueue_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/sigtimedwait_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/socketpair_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/stat_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/timer_create_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/truncate_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/ucontext_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/umask_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/unlink_test.debug OLD_FILES+=usr/tests/lib/libc/sys/.debug/write_test.debug OLD_DIRS+=usr/tests/lib/libc/termios/.debug OLD_FILES+=usr/tests/lib/libc/termios/.debug/tcsetpgrp_test.debug OLD_DIRS+=usr/tests/lib/libc/tls/.debug OLD_FILES+=usr/tests/lib/libc/tls/.debug/h_tls_dlopen.so.debug OLD_FILES+=usr/tests/lib/libc/tls/.debug/libh_tls_dynamic.so.1.debug OLD_FILES+=usr/tests/lib/libc/tls/.debug/tls_dlopen_test.debug OLD_FILES+=usr/tests/lib/libc/tls/.debug/tls_dynamic_test.debug OLD_DIRS+=usr/tests/lib/libc/ttyio/.debug OLD_FILES+=usr/tests/lib/libc/ttyio/.debug/ttyio_test.debug OLD_DIRS+=usr/tests/lib/libcrypt/.debug OLD_FILES+=usr/tests/lib/libcrypt/.debug/crypt_tests.debug OLD_DIRS+=usr/tests/lib/libmp/.debug OLD_FILES+=usr/tests/lib/libmp/.debug/legacy_test.debug OLD_DIRS+=usr/tests/lib/libnv/.debug OLD_FILES+=usr/tests/lib/libnv/.debug/dnv_tests.debug OLD_FILES+=usr/tests/lib/libnv/.debug/nv_array_tests.debug OLD_FILES+=usr/tests/lib/libnv/.debug/nv_tests.debug OLD_FILES+=usr/tests/lib/libnv/.debug/nvlist_add_test.debug OLD_FILES+=usr/tests/lib/libnv/.debug/nvlist_exists_test.debug OLD_FILES+=usr/tests/lib/libnv/.debug/nvlist_free_test.debug OLD_FILES+=usr/tests/lib/libnv/.debug/nvlist_get_test.debug OLD_FILES+=usr/tests/lib/libnv/.debug/nvlist_move_test.debug OLD_FILES+=usr/tests/lib/libnv/.debug/nvlist_send_recv_test.debug OLD_DIRS+=usr/tests/lib/libpam/.debug OLD_FILES+=usr/tests/lib/libpam/.debug/t_openpam_ctype.debug OLD_FILES+=usr/tests/lib/libpam/.debug/t_openpam_readlinev.debug OLD_FILES+=usr/tests/lib/libpam/.debug/t_openpam_readword.debug OLD_DIRS+=usr/tests/lib/libproc/.debug OLD_FILES+=usr/tests/lib/libproc/.debug/proc_test.debug OLD_FILES+=usr/tests/lib/libproc/.debug/target_prog.debug OLD_DIRS+=usr/tests/lib/librt/.debug OLD_FILES+=usr/tests/lib/librt/.debug/sched_test.debug OLD_FILES+=usr/tests/lib/librt/.debug/sem_test.debug OLD_DIRS+=usr/tests/lib/libthr/.debug OLD_FILES+=usr/tests/lib/libthr/.debug/barrier_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/cond_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/condwait_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/detach_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/equal_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/fork_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/fpu_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/h_atexit.debug OLD_FILES+=usr/tests/lib/libthr/.debug/h_cancel.debug OLD_FILES+=usr/tests/lib/libthr/.debug/h_exit.debug OLD_FILES+=usr/tests/lib/libthr/.debug/h_resolv.debug OLD_FILES+=usr/tests/lib/libthr/.debug/join_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/kill_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/mutex_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/once_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/preempt_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/rwlock_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/sem_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/siglongjmp_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/sigmask_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/sigsuspend_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/sleep_test.debug OLD_FILES+=usr/tests/lib/libthr/.debug/swapcontext_test.debug OLD_DIRS+=usr/tests/lib/libthr/dlopen/.debug OLD_FILES+=usr/tests/lib/libthr/dlopen/.debug/dlopen_test.debug OLD_FILES+=usr/tests/lib/libthr/dlopen/.debug/h_pthread_dlopen.so.1.debug OLD_FILES+=usr/tests/lib/libthr/dlopen/.debug/main_pthread_create_test.debug OLD_DIRS+=usr/tests/lib/libutil/.debug OLD_FILES+=usr/tests/lib/libutil/.debug/flopen_test.debug OLD_FILES+=usr/tests/lib/libutil/.debug/grp_test.debug OLD_FILES+=usr/tests/lib/libutil/.debug/humanize_number_test.debug OLD_FILES+=usr/tests/lib/libutil/.debug/pidfile_test.debug OLD_FILES+=usr/tests/lib/libutil/.debug/trimdomain-nodomain_test.debug OLD_FILES+=usr/tests/lib/libutil/.debug/trimdomain_test.debug OLD_DIRS+=usr/tests/lib/libxo/.debug OLD_FILES+=usr/tests/lib/libxo/.debug/libenc_test.so.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_01.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_02.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_03.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_04.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_05.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_06.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_07.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_08.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_09.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_10.debug OLD_FILES+=usr/tests/lib/libxo/.debug/test_11.debug OLD_DIRS+=usr/tests/lib/msun/.debug OLD_FILES+=usr/tests/lib/msun/.debug/acos_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/asin_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/atan_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/cbrt_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/ceil_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/cos_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/cosh_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/erf_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/exp_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/fmod_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/infinity_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/ldexp_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/log_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/pow_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/precision_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/round_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/scalbn_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/sin_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/sinh_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/sqrt_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/tan_test.debug OLD_FILES+=usr/tests/lib/msun/.debug/tanh_test.debug OLD_DIRS+=usr/tests/libexec/rtld-elf/.debug OLD_FILES+=usr/tests/libexec/rtld-elf/.debug/ld_library_pathfds.debug OLD_FILES+=usr/tests/libexec/rtld-elf/.debug/libpythagoras.so.0.debug OLD_FILES+=usr/tests/libexec/rtld-elf/.debug/target.debug OLD_DIRS+=usr/tests/sbin/devd/.debug OLD_FILES+=usr/tests/sbin/devd/.debug/client_test.debug OLD_DIRS+=usr/tests/sbin/dhclient/.debug OLD_FILES+=usr/tests/sbin/dhclient/.debug/option-domain-search_test.debug OLD_DIRS+=usr/tests/share/examples/tests/atf/.debug OLD_FILES+=usr/tests/share/examples/tests/atf/.debug/printf_test.debug OLD_DIRS+=usr/tests/share/examples/tests/plain/.debug OLD_FILES+=usr/tests/share/examples/tests/plain/.debug/printf_test.debug OLD_DIRS+=usr/tests/sys/aio/.debug OLD_FILES+=usr/tests/sys/aio/.debug/aio_kqueue_test.debug OLD_FILES+=usr/tests/sys/aio/.debug/aio_test.debug OLD_FILES+=usr/tests/sys/aio/.debug/lio_kqueue_test.debug OLD_DIRS+=usr/tests/sys/fifo/.debug OLD_FILES+=usr/tests/sys/fifo/.debug/fifo_create.debug OLD_FILES+=usr/tests/sys/fifo/.debug/fifo_io.debug OLD_FILES+=usr/tests/sys/fifo/.debug/fifo_misc.debug OLD_FILES+=usr/tests/sys/fifo/.debug/fifo_open.debug OLD_DIRS+=usr/tests/sys/file/.debug OLD_FILES+=usr/tests/sys/file/.debug/closefrom_test.debug OLD_FILES+=usr/tests/sys/file/.debug/dup_test.debug OLD_FILES+=usr/tests/sys/file/.debug/fcntlflags_test.debug OLD_FILES+=usr/tests/sys/file/.debug/flock_helper.debug OLD_FILES+=usr/tests/sys/file/.debug/ftruncate_test.debug OLD_FILES+=usr/tests/sys/file/.debug/newfileops_on_fork_test.debug OLD_DIRS+=usr/tests/sys/kern/.debug OLD_FILES+=usr/tests/sys/kern/.debug/kern_descrip_test.debug OLD_FILES+=usr/tests/sys/kern/.debug/ptrace_test.debug OLD_FILES+=usr/tests/sys/kern/.debug/unix_seqpacket_test.debug OLD_DIRS+=usr/tests/sys/kern/execve/.debug OLD_FILES+=usr/tests/sys/kern/execve/.debug/execve_helper.debug OLD_FILES+=usr/tests/sys/kern/execve/.debug/good_aout.debug OLD_DIRS+=usr/tests/sys/kqueue/.debug OLD_FILES+=usr/tests/sys/kqueue/.debug/kqtest.debug OLD_DIRS+=usr/tests/sys/mqueue/.debug OLD_FILES+=usr/tests/sys/mqueue/.debug/mqtest1.debug OLD_FILES+=usr/tests/sys/mqueue/.debug/mqtest2.debug OLD_FILES+=usr/tests/sys/mqueue/.debug/mqtest3.debug OLD_FILES+=usr/tests/sys/mqueue/.debug/mqtest4.debug OLD_FILES+=usr/tests/sys/mqueue/.debug/mqtest5.debug OLD_DIRS+=usr/tests/sys/netinet/.debug OLD_FILES+=usr/tests/sys/netinet/.debug/udp_dontroute.debug OLD_DIRS+=usr/tests/sys/pjdfstest/.debug OLD_FILES+=usr/tests/sys/pjdfstest/.debug/pjdfstest.debug OLD_DIRS+=usr/tests/sys/vm/.debug OLD_FILES+=usr/tests/sys/vm/.debug/mmap_test.debug # 20151015: Rename files due to file-installed-as-dir bug OLD_FILES+=usr/share/doc/legal/realtek OLD_FILES+=usr/share/doc/legal/realtek/LICENSE OLD_DIRS+=usr/share/doc/legal/realtek OLD_DIRS+=usr/share/doc/legal/intel_ipw OLD_FILES+=usr/share/doc/legal/intel_ipw/LICENSE OLD_FILES+=usr/share/doc/legal/intel_iwn OLD_FILES+=usr/share/doc/legal/intel_iwn/LICENSE OLD_DIRS+=usr/share/doc/legal/intel_iwn OLD_DIRS+=usr/share/doc/legal/intel_iwi OLD_FILES+=usr/share/doc/legal/intel_iwi/LICENSE OLD_DIRS+=usr/share/doc/legal/intel_wpi OLD_FILES+=usr/share/doc/legal/intel_wpi/LICENSE # 20151006: new libc++ import OLD_FILES+=usr/include/c++/__tuple_03 OLD_FILES+=usr/include/c++/v1/__tuple_03 OLD_FILES+=usr/include/c++/v1/tr1/__tuple_03 # 20151006: new clang import which bumps version from 3.6.1 to 3.7.0. OLD_FILES+=usr/lib/clang/3.6.1/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/3.6.1/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/3.6.1/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/3.6.1/include/adxintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/altivec.h OLD_FILES+=usr/lib/clang/3.6.1/include/ammintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/arm_acle.h OLD_FILES+=usr/lib/clang/3.6.1/include/arm_neon.h OLD_FILES+=usr/lib/clang/3.6.1/include/avx2intrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/avxintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/bmiintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/cpuid.h OLD_FILES+=usr/lib/clang/3.6.1/include/emmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/f16cintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/fma4intrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/fmaintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/ia32intrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/immintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/mm3dnow.h OLD_FILES+=usr/lib/clang/3.6.1/include/mm_malloc.h OLD_FILES+=usr/lib/clang/3.6.1/include/mmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/module.modulemap OLD_FILES+=usr/lib/clang/3.6.1/include/nmmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/pmmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/popcntintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/rtmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/shaintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/smmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/tbmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/tmmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/wmmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/x86intrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/xmmintrin.h OLD_FILES+=usr/lib/clang/3.6.1/include/xopintrin.h OLD_DIRS+=usr/lib/clang/3.6.1/include OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.san-i386.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.san-x86_64.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.ubsan-i386.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.ubsan-x86_64.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.ubsan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.6.1/lib/freebsd/libclang_rt.ubsan_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/3.6.1/lib/freebsd OLD_DIRS+=usr/lib/clang/3.6.1/lib OLD_DIRS+=usr/lib/clang/3.6.1 # 20150928: unused sgsmsg utility is removed OLD_FILES+=usr/bin/sgsmsg # 20150926: remove links to removed/unimplemented mbuf(9) macros OLD_FILES+=usr/share/man/man9/MEXT_ADD_REF.9.gz OLD_FILES+=usr/share/man/man9/MEXTFREE.9.gz OLD_FILES+=usr/share/man/man9/MEXT_IS_REF.9.gz OLD_FILES+=usr/share/man/man9/MEXT_REM_REF.9.gz OLD_FILES+=usr/share/man/man9/MFREE.9.gz # 20150818: *allocm() are gone in jemalloc 4.0.0 OLD_FILES+=usr/share/man/man3/allocm.3.gz OLD_FILES+=usr/share/man/man3/dallocm.3.gz OLD_FILES+=usr/share/man/man3/nallocm.3.gz OLD_FILES+=usr/share/man/man3/rallocm.3.gz OLD_FILES+=usr/share/man/man3/sallocm.3.gz # 20150802: Remove netbsd's test on pw(8) OLD_FILES+=usr/tests/usr.sbin/pw/pw_test # 20150719: Remove libarchive.pc OLD_FILES+=usr/libdata/pkgconfig/libarchive.pc # 20150705: Rename DTrace provider man pages. OLD_FILES+=usr/share/man/man4/dtrace-io.4.gz OLD_FILES+=usr/share/man/man4/dtrace-ip.4.gz OLD_FILES+=usr/share/man/man4/dtrace-proc.4.gz OLD_FILES+=usr/share/man/man4/dtrace-sched.4.gz OLD_FILES+=usr/share/man/man4/dtrace-tcp.4.gz OLD_FILES+=usr/share/man/man4/dtrace-udp.4.gz # 20150704: nvlist private headers no longer installed OLD_FILES+=usr/include/sys/nv_impl.h OLD_FILES+=usr/include/sys/nvlist_impl.h OLD_FILES+=usr/include/sys/nvpair_impl.h # 20150624 OLD_LIBS+=usr/lib/libugidfw.so.4 OLD_LIBS+=usr/lib32/libugidfw.so.4 # 20150604: Move nvlist man pages to section 9. OLD_FILES+=usr/share/man/man3/libnv.3.gz OLD_FILES+=usr/share/man/man3/nv.3.gz OLD_FILES+=usr/share/man/man3/nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_add_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_add_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_add_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_add_null.3.gz OLD_FILES+=usr/share/man/man3/nvlist_add_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_add_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_add_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_add_stringf.3.gz OLD_FILES+=usr/share/man/man3/nvlist_add_stringv.3.gz OLD_FILES+=usr/share/man/man3/nvlist_clone.3.gz OLD_FILES+=usr/share/man/man3/nvlist_create.3.gz OLD_FILES+=usr/share/man/man3/nvlist_destroy.3.gz OLD_FILES+=usr/share/man/man3/nvlist_dump.3.gz OLD_FILES+=usr/share/man/man3/nvlist_empty.3.gz OLD_FILES+=usr/share/man/man3/nvlist_error.3.gz OLD_FILES+=usr/share/man/man3/nvlist_exists.3.gz OLD_FILES+=usr/share/man/man3/nvlist_exists_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_exists_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_exists_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_exists_null.3.gz OLD_FILES+=usr/share/man/man3/nvlist_exists_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_exists_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_exists_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_exists_type.3.gz OLD_FILES+=usr/share/man/man3/nvlist_fdump.3.gz OLD_FILES+=usr/share/man/man3/nvlist_flags.3.gz OLD_FILES+=usr/share/man/man3/nvlist_free.3.gz OLD_FILES+=usr/share/man/man3/nvlist_free_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_free_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_free_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_free_null.3.gz OLD_FILES+=usr/share/man/man3/nvlist_free_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_free_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_free_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_free_type.3.gz OLD_FILES+=usr/share/man/man3/nvlist_get_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_get_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_get_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_get_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_get_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_get_parent.3.gz OLD_FILES+=usr/share/man/man3/nvlist_get_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_move_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_move_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_move_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_move_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_next.3.gz OLD_FILES+=usr/share/man/man3/nvlist_pack.3.gz OLD_FILES+=usr/share/man/man3/nvlist_recv.3.gz OLD_FILES+=usr/share/man/man3/nvlist_send.3.gz OLD_FILES+=usr/share/man/man3/nvlist_set_error.3.gz OLD_FILES+=usr/share/man/man3/nvlist_size.3.gz OLD_FILES+=usr/share/man/man3/nvlist_take_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_take_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_take_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_take_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_take_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_take_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_unpack.3.gz OLD_FILES+=usr/share/man/man3/nvlist_xfer.3.gz # 20150702: Remove duplicated nvlist includes. OLD_FILES+=usr/include/dnv.h OLD_FILES+=usr/include/nv.h # 20150528: PCI IOV device driver methods moved to a separate kobj interface. OLD_FILES+=usr/share/man/man9/PCI_ADD_VF.9.gz OLD_FILES+=usr/share/man/man9/PCI_INIT_IOV.9.gz OLD_FILES+=usr/share/man/man9/PCI_UNINIT_IOV.9.gz # 20150525: new clang import which bumps version from 3.6.0 to 3.6.1. OLD_FILES+=usr/lib/clang/3.6.0/include/__stddef_max_align_t.h OLD_FILES+=usr/lib/clang/3.6.0/include/__wmmintrin_aes.h OLD_FILES+=usr/lib/clang/3.6.0/include/__wmmintrin_pclmul.h OLD_FILES+=usr/lib/clang/3.6.0/include/adxintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/altivec.h OLD_FILES+=usr/lib/clang/3.6.0/include/ammintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/arm_acle.h OLD_FILES+=usr/lib/clang/3.6.0/include/arm_neon.h OLD_FILES+=usr/lib/clang/3.6.0/include/avx2intrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/avx512bwintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/avx512erintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/avx512fintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/avx512vlbwintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/avx512vlintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/avxintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/bmi2intrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/bmiintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/cpuid.h OLD_FILES+=usr/lib/clang/3.6.0/include/emmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/f16cintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/fma4intrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/fmaintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/ia32intrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/immintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/lzcntintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/mm3dnow.h OLD_FILES+=usr/lib/clang/3.6.0/include/mm_malloc.h OLD_FILES+=usr/lib/clang/3.6.0/include/mmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/module.modulemap OLD_FILES+=usr/lib/clang/3.6.0/include/nmmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/pmmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/popcntintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/prfchwintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/rdseedintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/rtmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/shaintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/smmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/tbmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/tmmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/wmmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/x86intrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/xmmintrin.h OLD_FILES+=usr/lib/clang/3.6.0/include/xopintrin.h OLD_DIRS+=usr/lib/clang/3.6.0/include OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.san-i386.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.san-x86_64.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.ubsan-i386.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.ubsan-x86_64.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.ubsan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.6.0/lib/freebsd/libclang_rt.ubsan_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/3.6.0/lib/freebsd OLD_DIRS+=usr/lib/clang/3.6.0/lib OLD_DIRS+=usr/lib/clang/3.6.0 # 20150521 OLD_FILES+=usr/bin/demandoc OLD_FILES+=usr/share/man/man1/demandoc.1.gz OLD_FILES+=usr/share/man/man3/mandoc.3.gz OLD_FILES+=usr/share/man/man3/mandoc_headers.3.gz # 20150520 OLD_FILES+=usr/lib/libheimsqlite.a OLD_FILES+=usr/lib/libheimsqlite.so OLD_LIBS+=usr/lib/libheimsqlite.so.11 OLD_FILES+=usr/lib/libheimsqlite_p.a OLD_FILES+=usr/lib32/libheimsqlite.a OLD_FILES+=usr/lib32/libheimsqlite.so OLD_LIBS+=usr/lib32/libheimsqlite.so.11 OLD_FILES+=usr/lib32/libheimsqlite_p.a # 20150518: tzdata2015c update OLD_FILES+=usr/share/zoneinfo/America/Montreal # 20150506 OLD_FILES+=usr/share/man/man9/NDHASGIANT.9.gz # 20150504 OLD_FILES+=usr/share/examples/etc/libmap32.conf OLD_FILES+=usr/include/bsdstat.h OLD_LIBS+=usr/lib32/private/libatf-c++.so.2 OLD_LIBS+=usr/lib32/private/libbsdstat.so.1 OLD_LIBS+=usr/lib32/private/libheimipcs.so.11 OLD_LIBS+=usr/lib32/private/libsqlite3.so.0 OLD_LIBS+=usr/lib32/private/libunbound.so.5 OLD_LIBS+=usr/lib32/private/libatf-c.so.1 OLD_LIBS+=usr/lib32/private/libheimipcc.so.11 OLD_LIBS+=usr/lib32/private/libldns.so.5 OLD_LIBS+=usr/lib32/private/libssh.so.5 OLD_LIBS+=usr/lib32/private/libucl.so.1 OLD_DIRS+=usr/lib32/private OLD_LIBS+=usr/lib/private/libatf-c++.so.2 OLD_LIBS+=usr/lib/private/libbsdstat.so.1 OLD_LIBS+=usr/lib/private/libheimipcs.so.11 OLD_LIBS+=usr/lib/private/libsqlite3.so.0 OLD_LIBS+=usr/lib/private/libunbound.so.5 OLD_LIBS+=usr/lib/private/libatf-c.so.1 OLD_LIBS+=usr/lib/private/libheimipcc.so.11 OLD_LIBS+=usr/lib/private/libldns.so.5 OLD_LIBS+=usr/lib/private/libssh.so.5 OLD_LIBS+=usr/lib/private/libucl.so.1 OLD_DIRS+=usr/lib/private # 20150501 OLD_FILES+=usr/bin/soeliminate OLD_FILES+=usr/share/man/man1/soeliminate.1.gz # 20150501: Remove the nvlist_.*[vf] functions manpages. OLD_FILES+=usr/share/man/man3/nvlist_addf_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addf_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addf_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addf_null.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addf_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addf_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addf_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addv_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addv_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addv_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addv_null.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addv_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addv_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_addv_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsf.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsf_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsf_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsf_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsf_null.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsf_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsf_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsf_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsf_type.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsv.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsv_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsv_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsv_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsv_null.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsv_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsv_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsv_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_existsv_type.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freef.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freef_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freef_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freef_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freef_null.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freef_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freef_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freef_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freef_type.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freev.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freev_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freev_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freev_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freev_null.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freev_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freev_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freev_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_freev_type.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getf_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getf_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getf_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getf_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getf_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getf_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getv_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getv_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getv_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getv_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getv_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_getv_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_movef_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_movef_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_movef_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_movef_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_movev_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_movev_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_movev_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_movev_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takef_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takef_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takef_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takef_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takef_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takef_string.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takev_binary.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takev_bool.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takev_descriptor.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takev_number.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takev_nvlist.3.gz OLD_FILES+=usr/share/man/man3/nvlist_takev_string.3.gz # 20150429: remove never written documentation OLD_FILES+=usr/share/doc/papers/hwpmc.ascii.gz # 20150427: test/sys/kern/mmap_test moved to test/sys/vm/mmap_test OLD_FILES+=usr/tests/sys/kern/mmap_test # 20150422: zlib.c moved from net to libkern OLD_FILES+=usr/include/net/zlib.h OLD_FILES+=usr/include/net/zutil.h # 20150418 OLD_FILES+=sbin/mount_oldnfs OLD_FILES+=usr/share/man/man8/mount_oldnfs.8.gz # 20150416: ALTQ moved to net/altq OLD_FILES+=usr/include/altq/altq_rmclass_debug.h OLD_FILES+=usr/include/altq/altq.h OLD_FILES+=usr/include/altq/altq_cdnr.h OLD_FILES+=usr/include/altq/altq_hfsc.h OLD_FILES+=usr/include/altq/altq_priq.h OLD_FILES+=usr/include/altq/altqconf.h OLD_FILES+=usr/include/altq/altq_classq.h OLD_FILES+=usr/include/altq/altq_red.h OLD_FILES+=usr/include/altq/if_altq.h OLD_FILES+=usr/include/altq/altq_var.h OLD_FILES+=usr/include/altq/altq_rmclass.h OLD_FILES+=usr/include/altq/altq_cbq.h OLD_FILES+=usr/include/altq/altq_rio.h OLD_DIRS+=usr/include/altq # 20150330: ntp 4.2.8p1 OLD_FILES+=usr/share/doc/ntp/driver1.html OLD_FILES+=usr/share/doc/ntp/driver10.html OLD_FILES+=usr/share/doc/ntp/driver11.html OLD_FILES+=usr/share/doc/ntp/driver12.html OLD_FILES+=usr/share/doc/ntp/driver16.html OLD_FILES+=usr/share/doc/ntp/driver18.html OLD_FILES+=usr/share/doc/ntp/driver19.html OLD_FILES+=usr/share/doc/ntp/driver2.html OLD_FILES+=usr/share/doc/ntp/driver20.html OLD_FILES+=usr/share/doc/ntp/driver22.html OLD_FILES+=usr/share/doc/ntp/driver26.html OLD_FILES+=usr/share/doc/ntp/driver27.html OLD_FILES+=usr/share/doc/ntp/driver28.html OLD_FILES+=usr/share/doc/ntp/driver29.html OLD_FILES+=usr/share/doc/ntp/driver3.html OLD_FILES+=usr/share/doc/ntp/driver30.html OLD_FILES+=usr/share/doc/ntp/driver32.html OLD_FILES+=usr/share/doc/ntp/driver33.html OLD_FILES+=usr/share/doc/ntp/driver34.html OLD_FILES+=usr/share/doc/ntp/driver35.html OLD_FILES+=usr/share/doc/ntp/driver36.html OLD_FILES+=usr/share/doc/ntp/driver37.html OLD_FILES+=usr/share/doc/ntp/driver4.html OLD_FILES+=usr/share/doc/ntp/driver5.html OLD_FILES+=usr/share/doc/ntp/driver6.html OLD_FILES+=usr/share/doc/ntp/driver7.html OLD_FILES+=usr/share/doc/ntp/driver8.html OLD_FILES+=usr/share/doc/ntp/driver9.html OLD_FILES+=usr/share/doc/ntp/ldisc.html OLD_FILES+=usr/share/doc/ntp/measure.html OLD_FILES+=usr/share/doc/ntp/mx4200data.html OLD_FILES+=usr/share/doc/ntp/notes.html OLD_FILES+=usr/share/doc/ntp/patches.html OLD_FILES+=usr/share/doc/ntp/porting.html OLD_FILES+=usr/share/man/man1/sntp.1.gz # 20150329 .if ${TARGET_ARCH} == "arm" OLD_FILES+=usr/include/bootconfig.h .endif # 20150326 OLD_FILES+=usr/share/man/man1/pmcstudy.1.gz # 20150315: new clang import which bumps version from 3.5.1 to 3.6.0. OLD_FILES+=usr/include/clang/3.5.1/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.5.1/__wmmintrin_pclmul.h OLD_FILES+=usr/include/clang/3.5.1/altivec.h OLD_FILES+=usr/include/clang/3.5.1/ammintrin.h OLD_FILES+=usr/include/clang/3.5.1/arm_acle.h OLD_FILES+=usr/include/clang/3.5.1/arm_neon.h OLD_FILES+=usr/include/clang/3.5.1/avx2intrin.h OLD_FILES+=usr/include/clang/3.5.1/avxintrin.h OLD_FILES+=usr/include/clang/3.5.1/bmi2intrin.h OLD_FILES+=usr/include/clang/3.5.1/bmiintrin.h OLD_FILES+=usr/include/clang/3.5.1/cpuid.h OLD_FILES+=usr/include/clang/3.5.1/emmintrin.h OLD_FILES+=usr/include/clang/3.5.1/f16cintrin.h OLD_FILES+=usr/include/clang/3.5.1/fma4intrin.h OLD_FILES+=usr/include/clang/3.5.1/fmaintrin.h OLD_FILES+=usr/include/clang/3.5.1/ia32intrin.h OLD_FILES+=usr/include/clang/3.5.1/immintrin.h OLD_FILES+=usr/include/clang/3.5.1/lzcntintrin.h OLD_FILES+=usr/include/clang/3.5.1/mm3dnow.h OLD_FILES+=usr/include/clang/3.5.1/mm_malloc.h OLD_FILES+=usr/include/clang/3.5.1/mmintrin.h OLD_FILES+=usr/include/clang/3.5.1/module.modulemap OLD_FILES+=usr/include/clang/3.5.1/nmmintrin.h OLD_FILES+=usr/include/clang/3.5.1/pmmintrin.h OLD_FILES+=usr/include/clang/3.5.1/popcntintrin.h OLD_FILES+=usr/include/clang/3.5.1/prfchwintrin.h OLD_FILES+=usr/include/clang/3.5.1/rdseedintrin.h OLD_FILES+=usr/include/clang/3.5.1/rtmintrin.h OLD_FILES+=usr/include/clang/3.5.1/shaintrin.h OLD_FILES+=usr/include/clang/3.5.1/smmintrin.h OLD_FILES+=usr/include/clang/3.5.1/tbmintrin.h OLD_FILES+=usr/include/clang/3.5.1/tmmintrin.h OLD_FILES+=usr/include/clang/3.5.1/wmmintrin.h OLD_FILES+=usr/include/clang/3.5.1/x86intrin.h OLD_FILES+=usr/include/clang/3.5.1/xmmintrin.h OLD_FILES+=usr/include/clang/3.5.1/xopintrin.h OLD_DIRS+=usr/include/clang/3.5.1 OLD_DIRS+=usr/include/clang OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.san-i386.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.san-x86_64.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.ubsan-i386.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.ubsan-x86_64.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.ubsan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.5.1/lib/freebsd/libclang_rt.ubsan_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/3.5.1/lib/freebsd OLD_DIRS+=usr/lib/clang/3.5.1/lib OLD_DIRS+=usr/lib/clang/3.5.1 # 20150302: binutils documentation distributed as a manpage OLD_FILES+=usr/share/doc/binutils/as.txt OLD_FILES+=usr/share/doc/binutils/ld.txt OLD_DIRS+=usr/share/doc/binutils # 20150222: Removed bcd(6) and ppt(6) OLD_FILES+=usr/bin/bcd OLD_FILES+=usr/bin/ppt OLD_FILES+=usr/share/man/man6/bcd.6.gz OLD_FILES+=usr/share/man/man6/ppt.6.gz # 20150217: Removed remnants of ar(4) driver OLD_FILES+=usr/include/dev/ic/hd64570.h # 20150212: /usr/games moving into /usr/bin OLD_FILES+=usr/games/bcd OLD_FILES+=usr/games/caesar OLD_FILES+=usr/games/factor OLD_FILES+=usr/games/fortune OLD_FILES+=usr/games/grdc OLD_FILES+=usr/games/morse OLD_FILES+=usr/games/number OLD_FILES+=usr/games/pom OLD_FILES+=usr/games/ppt OLD_FILES+=usr/games/primes OLD_FILES+=usr/games/random OLD_FILES+=usr/games/rot13 OLD_FILES+=usr/games/strfile OLD_FILES+=usr/games/unstr OLD_DIRS+=usr/games # 20150209: liblzma header OLD_FILES+=usr/include/lzma/lzma.h # 20150124: spl.9 and friends OLD_FILES+=usr/share/man/man9/spl.9.gz OLD_FILES+=usr/share/man/man9/spl0.9.gz OLD_FILES+=usr/share/man/man9/splbio.9.gz OLD_FILES+=usr/share/man/man9/splclock.9.gz OLD_FILES+=usr/share/man/man9/splhigh.9.gz OLD_FILES+=usr/share/man/man9/splimp.9.gz OLD_FILES+=usr/share/man/man9/splnet.9.gz OLD_FILES+=usr/share/man/man9/splsoftclock.9.gz OLD_FILES+=usr/share/man/man9/splsofttty.9.gz OLD_FILES+=usr/share/man/man9/splstatclock.9.gz OLD_FILES+=usr/share/man/man9/spltty.9.gz OLD_FILES+=usr/share/man/man9/splvm.9.gz OLD_FILES+=usr/share/man/man9/splx.9.gz # 20150118: toeplitz.c moved from netinet to net OLD_FILES+=usr/include/netinet/toeplitz.h # 20150118: new clang import which bumps version from 3.5.0 to 3.5.1. OLD_FILES+=usr/include/clang/3.5.0/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.5.0/__wmmintrin_pclmul.h OLD_FILES+=usr/include/clang/3.5.0/altivec.h OLD_FILES+=usr/include/clang/3.5.0/ammintrin.h OLD_FILES+=usr/include/clang/3.5.0/arm_acle.h OLD_FILES+=usr/include/clang/3.5.0/arm_neon.h OLD_FILES+=usr/include/clang/3.5.0/avx2intrin.h OLD_FILES+=usr/include/clang/3.5.0/avxintrin.h OLD_FILES+=usr/include/clang/3.5.0/bmi2intrin.h OLD_FILES+=usr/include/clang/3.5.0/bmiintrin.h OLD_FILES+=usr/include/clang/3.5.0/cpuid.h OLD_FILES+=usr/include/clang/3.5.0/emmintrin.h OLD_FILES+=usr/include/clang/3.5.0/f16cintrin.h OLD_FILES+=usr/include/clang/3.5.0/fma4intrin.h OLD_FILES+=usr/include/clang/3.5.0/fmaintrin.h OLD_FILES+=usr/include/clang/3.5.0/ia32intrin.h OLD_FILES+=usr/include/clang/3.5.0/immintrin.h OLD_FILES+=usr/include/clang/3.5.0/lzcntintrin.h OLD_FILES+=usr/include/clang/3.5.0/mm3dnow.h OLD_FILES+=usr/include/clang/3.5.0/mm_malloc.h OLD_FILES+=usr/include/clang/3.5.0/mmintrin.h OLD_FILES+=usr/include/clang/3.5.0/module.modulemap OLD_FILES+=usr/include/clang/3.5.0/nmmintrin.h OLD_FILES+=usr/include/clang/3.5.0/pmmintrin.h OLD_FILES+=usr/include/clang/3.5.0/popcntintrin.h OLD_FILES+=usr/include/clang/3.5.0/prfchwintrin.h OLD_FILES+=usr/include/clang/3.5.0/rdseedintrin.h OLD_FILES+=usr/include/clang/3.5.0/rtmintrin.h OLD_FILES+=usr/include/clang/3.5.0/shaintrin.h OLD_FILES+=usr/include/clang/3.5.0/smmintrin.h OLD_FILES+=usr/include/clang/3.5.0/tbmintrin.h OLD_FILES+=usr/include/clang/3.5.0/tmmintrin.h OLD_FILES+=usr/include/clang/3.5.0/wmmintrin.h OLD_FILES+=usr/include/clang/3.5.0/x86intrin.h OLD_FILES+=usr/include/clang/3.5.0/xmmintrin.h OLD_FILES+=usr/include/clang/3.5.0/xopintrin.h OLD_DIRS+=usr/include/clang/3.5.0 OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.asan-i386.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.asan-x86_64.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.profile-i386.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.profile-x86_64.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.san-i386.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.san-x86_64.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.ubsan-i386.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.ubsan-x86_64.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.ubsan_cxx-i386.a OLD_FILES+=usr/lib/clang/3.5.0/lib/freebsd/libclang_rt.ubsan_cxx-x86_64.a OLD_DIRS+=usr/lib/clang/3.5.0/lib/freebsd OLD_DIRS+=usr/lib/clang/3.5.0/lib OLD_DIRS+=usr/lib/clang/3.5.0 # 20150102: removal of asr(4) OLD_FILES+=usr/share/man/man4/asr.4.gz # 20150102: removal of texinfo OLD_FILES+=usr/bin/info OLD_FILES+=usr/bin/infokey OLD_FILES+=usr/bin/install-info OLD_FILES+=usr/bin/makeinfo OLD_FILES+=usr/bin/texindex OLD_FILES+=usr/share/info/am-utils.info.gz OLD_FILES+=usr/share/info/as.info.gz OLD_FILES+=usr/share/info/binutils.info.gz OLD_FILES+=usr/share/info/com_err.info.gz OLD_FILES+=usr/share/info/cpp.info.gz OLD_FILES+=usr/share/info/cppinternals.info.gz OLD_FILES+=usr/share/info/diff.info.gz OLD_FILES+=usr/share/info/dir OLD_FILES+=usr/share/info/gcc.info.gz OLD_FILES+=usr/share/info/gccint.info.gz OLD_FILES+=usr/share/info/gdb.info.gz OLD_FILES+=usr/share/info/gdbint.info.gz OLD_FILES+=usr/share/info/gperf.info.gz OLD_FILES+=usr/share/info/grep.info.gz OLD_FILES+=usr/share/info/groff.info.gz OLD_FILES+=usr/share/info/heimdal.info.gz OLD_FILES+=usr/share/info/history.info.gz OLD_FILES+=usr/share/info/info-stnd.info.gz OLD_FILES+=usr/share/info/info.info.gz OLD_FILES+=usr/share/info/ld.info.gz OLD_FILES+=usr/share/info/regex.info.gz OLD_FILES+=usr/share/info/rluserman.info.gz OLD_FILES+=usr/share/info/stabs.info.gz OLD_FILES+=usr/share/info/texinfo.info.gz OLD_FILES+=usr/share/man/man1/info.1.gz OLD_FILES+=usr/share/man/man1/infokey.1.gz OLD_FILES+=usr/share/man/man1/install-info.1.gz OLD_FILES+=usr/share/man/man1/makeinfo.1.gz OLD_FILES+=usr/share/man/man1/texindex.1.gz OLD_FILES+=usr/share/man/man5/info.5.gz OLD_FILES+=usr/share/man/man5/texinfo.5.gz OLD_DIRS+=usr/share/info # 20141231: new clang import which bumps version from 3.4.1 to 3.5.0. OLD_FILES+=usr/include/clang/3.4.1/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.4.1/__wmmintrin_pclmul.h OLD_FILES+=usr/include/clang/3.4.1/altivec.h OLD_FILES+=usr/include/clang/3.4.1/ammintrin.h OLD_FILES+=usr/include/clang/3.4.1/arm_neon.h OLD_FILES+=usr/include/clang/3.4.1/avx2intrin.h OLD_FILES+=usr/include/clang/3.4.1/avxintrin.h OLD_FILES+=usr/include/clang/3.4.1/bmi2intrin.h OLD_FILES+=usr/include/clang/3.4.1/bmiintrin.h OLD_FILES+=usr/include/clang/3.4.1/cpuid.h OLD_FILES+=usr/include/clang/3.4.1/emmintrin.h OLD_FILES+=usr/include/clang/3.4.1/f16cintrin.h OLD_FILES+=usr/include/clang/3.4.1/fma4intrin.h OLD_FILES+=usr/include/clang/3.4.1/fmaintrin.h OLD_FILES+=usr/include/clang/3.4.1/immintrin.h OLD_FILES+=usr/include/clang/3.4.1/lzcntintrin.h OLD_FILES+=usr/include/clang/3.4.1/mm3dnow.h OLD_FILES+=usr/include/clang/3.4.1/mm_malloc.h OLD_FILES+=usr/include/clang/3.4.1/mmintrin.h OLD_FILES+=usr/include/clang/3.4.1/module.map OLD_FILES+=usr/include/clang/3.4.1/nmmintrin.h OLD_FILES+=usr/include/clang/3.4.1/pmmintrin.h OLD_FILES+=usr/include/clang/3.4.1/popcntintrin.h OLD_FILES+=usr/include/clang/3.4.1/prfchwintrin.h OLD_FILES+=usr/include/clang/3.4.1/rdseedintrin.h OLD_FILES+=usr/include/clang/3.4.1/rtmintrin.h OLD_FILES+=usr/include/clang/3.4.1/shaintrin.h OLD_FILES+=usr/include/clang/3.4.1/smmintrin.h OLD_FILES+=usr/include/clang/3.4.1/tbmintrin.h OLD_FILES+=usr/include/clang/3.4.1/tmmintrin.h OLD_FILES+=usr/include/clang/3.4.1/wmmintrin.h OLD_FILES+=usr/include/clang/3.4.1/x86intrin.h OLD_FILES+=usr/include/clang/3.4.1/xmmintrin.h OLD_FILES+=usr/include/clang/3.4.1/xopintrin.h OLD_DIRS+=usr/include/clang/3.4.1 # 20141225: Remove gpib/ieee488 OLD_FILES+=usr/include/dev/ieee488/ibfoo_int.h OLD_FILES+=usr/include/dev/ieee488/tnt4882.h OLD_FILES+=usr/include/dev/ieee488/ugpib.h OLD_FILES+=usr/include/dev/ieee488/upd7210.h OLD_DIRS+=usr/include/dev/ieee488 OLD_FILES+=usr/include/gpib/gpib.h OLD_DIRS+=usr/include/gpib OLD_FILES+=usr/lib/libgpib.a OLD_FILES+=usr/lib/libgpib_p.a OLD_FILES+=usr/lib/libgpib.so OLD_LIBS+=usr/lib/libgpib.so.3 OLD_FILES+=usr/lib/libgpib_p.a OLD_FILES+=usr/lib32/libgpib.a OLD_FILES+=usr/lib32/libgpib_p.a OLD_FILES+=usr/lib32/libgpib.so OLD_LIBS+=usr/lib32/libgpib.so.3 OLD_FILES+=usr/share/man/man3/gpib.3.gz OLD_FILES+=usr/share/man/man3/ibclr.3.gz OLD_FILES+=usr/share/man/man3/ibdev.3.gz OLD_FILES+=usr/share/man/man3/ibdma.3.gz OLD_FILES+=usr/share/man/man3/ibeos.3.gz OLD_FILES+=usr/share/man/man3/ibeot.3.gz OLD_FILES+=usr/share/man/man3/ibloc.3.gz OLD_FILES+=usr/share/man/man3/ibonl.3.gz OLD_FILES+=usr/share/man/man3/ibpad.3.gz OLD_FILES+=usr/share/man/man3/ibrd.3.gz OLD_FILES+=usr/share/man/man3/ibsad.3.gz OLD_FILES+=usr/share/man/man3/ibsic.3.gz OLD_FILES+=usr/share/man/man3/ibtmo.3.gz OLD_FILES+=usr/share/man/man3/ibtrg.3.gz OLD_FILES+=usr/share/man/man3/ibwrt.3.gz OLD_FILES+=usr/share/man/man4/gpib.4.gz OLD_FILES+=usr/share/man/man4/pcii.4.gz OLD_FILES+=usr/share/man/man4/tnt4882.4.gz # 20141224: libxo moved to /lib OLD_LIBS+=usr/lib/libxo.so.0 # 20141223: remove in6_gif.h, in_gif.h and if_stf.h OLD_FILES+=usr/include/net/if_stf.h OLD_FILES+=usr/include/netinet/in_gif.h OLD_FILES+=usr/include/netinet6/in6_gif.h # 20141209: pw tests broken into a file per command OLD_FILES+=usr/tests/usr.sbin/pw/pw_delete OLD_FILES+=usr/tests/usr.sbin/pw/pw_modify # 20141202: update to mandoc CVS 20141201 OLD_FILES+=usr.bin/preconv OLD_FILES+=share/man/man1/preconv.1.gz # 20141129: mrouted rc.d scripts removed from base OLD_FILES+=etc/rc.d/mrouted # 20141126: convert sbin/mdconfig/tests to ATF format tests OLD_FILES+=usr/tests/sbin/mdconfig/legacy_test OLD_FILES+=usr/tests/sbin/mdconfig/mdconfig.test OLD_FILES+=usr/tests/sbin/mdconfig/run.pl # 20141126: remove xform_ipip decapsulation fallback OLD_FILES+=usr/include/netipsec/ipip_var.h # 20141122: mandoc updated to 1.13.1 OLD_FILES+=usr/share/mdocml/external.png # 20141111: SF_KQUEUE code removed OLD_FILES+=usr/include/sys/sf_base.h OLD_FILES+=usr/include/sys/sf_sync.h # 20141109: faith/faithd removal OLD_FILES+=etc/rc.d/faith OLD_FILES+=usr/share/man/man4/faith.4.gz OLD_FILES+=usr/share/man/man4/if_faith.4.gz OLD_FILES+=usr/sbin/faithd OLD_FILES+=usr/share/man/man8/faithd.8.gz # 20141107: overhaul if_gre(4) OLD_FILES+=usr/include/netinet/ip_gre.h # 20141102: postrandom obsoleted by new /dev/random code OLD_FILES+=etc/rc.d/postrandom # 20141031: initrandom obsoleted by new /dev/random code OLD_FILES+=etc/rc.d/initrandom # 20141030: atf 0.21 import OLD_FILES+=usr/share/man/man3/atf-c++-api.3.gz # 20141028: debug files accidentally installed as directory name OLD_FILES+=usr/lib/debug/usr/lib/i18n OLD_FILES+=usr/lib/debug/usr/lib/private OLD_FILES+=usr/lib/debug/usr/lib32/i18n OLD_FILES+=usr/lib/debug/usr/lib32/private # 20141015: OpenSSL 1.0.1j import OLD_FILES+=usr/share/openssl/man/man3/CMS_sign_add1_signer.3.gz # 20141003: libproc version bump OLD_LIBS+=usr/lib/libproc.so.2 OLD_LIBS+=usr/lib32/libproc.so.2 # 20140922: sleepq_calc_signal_retval.9 and sleepq_catch_signals.9 removed OLD_FILES+=usr/share/man/man9/sleepq_calc_signal_retval.9.gz OLD_FILES+=usr/share/man/man9/sleepq_catch_signals.9.gz # 20140917: hv_kvpd rc.d script removed in favor of devd configuration OLD_FILES+=etc/rc.d/hv_kvpd # 20140917: libnv was accidentally being installed to /usr/lib instead of /lib OLD_LIBS+=usr/lib/libnv.so.0 # 20140829: rc.d/kerberos removed OLD_FILES+=etc/rc.d/kerberos # 20140827: tzdata2014f import OLD_FILES+=usr/share/zoneinfo/Asia/Chongqing OLD_FILES+=usr/share/zoneinfo/Asia/Harbin OLD_FILES+=usr/share/zoneinfo/Asia/Kashgar # 20140814: libopie version bump OLD_LIBS+=usr/lib/libopie.so.7 OLD_LIBS+=usr/lib32/libopie.so.7 # 20140811: otp-sha renamed to otp-sha1 OLD_FILES+=usr/bin/otp-sha OLD_FILES+=usr/share/man/man1/otp-sha.1.gz # 20140807: Remove private lib files that should not be installed. OLD_FILES+=usr/lib32/private/libatf-c.a OLD_FILES+=usr/lib32/private/libatf-c.so OLD_FILES+=usr/lib32/private/libatf-c_p.a OLD_FILES+=usr/lib32/private/libatf-c++.a OLD_FILES+=usr/lib32/private/libatf-c++.so OLD_FILES+=usr/lib32/private/libatf-c++_p.a OLD_FILES+=usr/lib32/private/libbsdstat.a OLD_FILES+=usr/lib32/private/libbsdstat.so OLD_FILES+=usr/lib32/private/libbsdstat_p.a OLD_FILES+=usr/lib32/private/libheimipcc.a OLD_FILES+=usr/lib32/private/libheimipcc.so OLD_FILES+=usr/lib32/private/libheimipcc_p.a OLD_FILES+=usr/lib32/private/libheimipcs.a OLD_FILES+=usr/lib32/private/libheimipcs.so OLD_FILES+=usr/lib32/private/libheimipcs_p.a OLD_FILES+=usr/lib32/private/libldns.a OLD_FILES+=usr/lib32/private/libldns.so OLD_FILES+=usr/lib32/private/libldns_p.a OLD_FILES+=usr/lib32/private/libssh.a OLD_FILES+=usr/lib32/private/libssh.so OLD_FILES+=usr/lib32/private/libssh_p.a OLD_FILES+=usr/lib32/private/libunbound.a OLD_FILES+=usr/lib32/private/libunbound.so OLD_FILES+=usr/lib32/private/libunbound_p.a OLD_FILES+=usr/lib32/private/libucl.a OLD_FILES+=usr/lib32/private/libucl.so OLD_FILES+=usr/lib32/private/libucl_p.a OLD_FILES+=usr/lib/private/libatf-c.a OLD_FILES+=usr/lib/private/libatf-c.so OLD_FILES+=usr/lib/private/libatf-c_p.a OLD_FILES+=usr/lib/private/libatf-c++.a OLD_FILES+=usr/lib/private/libatf-c++.so OLD_FILES+=usr/lib/private/libatf-c++_p.a OLD_FILES+=usr/lib/private/libbsdstat.a OLD_FILES+=usr/lib/private/libbsdstat.so OLD_FILES+=usr/lib/private/libbsdstat_p.a OLD_FILES+=usr/lib/private/libheimipcc.a OLD_FILES+=usr/lib/private/libheimipcc.so OLD_FILES+=usr/lib/private/libheimipcc_p.a OLD_FILES+=usr/lib/private/libheimipcs.a OLD_FILES+=usr/lib/private/libheimipcs.so OLD_FILES+=usr/lib/private/libheimipcs_p.a OLD_FILES+=usr/lib/private/libldns.a OLD_FILES+=usr/lib/private/libldns.so OLD_FILES+=usr/lib/private/libldns_p.a OLD_FILES+=usr/lib/private/libssh.a OLD_FILES+=usr/lib/private/libssh.so OLD_FILES+=usr/lib/private/libssh_p.a OLD_FILES+=usr/lib/private/libunbound.a OLD_FILES+=usr/lib/private/libunbound.so OLD_FILES+=usr/lib/private/libunbound_p.a OLD_FILES+=usr/lib/private/libucl.a OLD_FILES+=usr/lib/private/libucl.so OLD_FILES+=usr/lib/private/libucl_p.a # 20140803: Remove an obsolete man page OLD_FILES+=usr/share/man/man9/pmap_change_wiring.9.gz # 20140731 OLD_FILES+=usr/share/man/man9/SYSCTL_ADD_OID.9.gz # 20140728: libsbuf restored to old version. OLD_LIBS+=lib/libsbuf.so.7 OLD_LIBS+=usr/lib32/libsbuf.so.7 # 20140728: Remove an obsolete man page OLD_FILES+=usr/share/man/man9/VOP_GETVOBJECT.9.gz OLD_FILES+=usr/share/man/man9/VOP_CREATEVOBJECT.9.gz OLD_FILES+=usr/share/man/man9/VOP_DESTROYVOBJECT.9.gz # 20140723: renamed to PCBGROUP.9 OLD_FILES+=usr/share/man/man9/PCBGROUPS.9.gz # 20140722: browse_packages_ftp.sh removed OLD_FILES+=usr/share/examples/bsdconfig/browse_packages_ftp.sh # 20140718: Remove obsolete man pages OLD_FILES+=usr/share/man/man9/zero_copy.9.gz OLD_FILES+=usr/share/man/man9/zero_copy_sockets.9.gz # 20140718: Remove an obsolete man page OLD_FILES+=usr/share/man/man9/pmap_page_protect.9.gz # 20140717: Remove an obsolete man page OLD_FILES+=usr/share/man/man9/pmap_clear_reference.9.gz # 20140716: Remove an incorrectly named man page OLD_FILES+=usr/share/man/man9/pmap_ts_modified.9.gz # 20140712: Removal of bsd.dtrace.mk OLD_FILES+=usr/share/mk/bsd.dtrace.mk # 20140705: turn libreadline into an internal lib OLD_LIBS+=lib/libreadline.so.8 OLD_FILES+=usr/lib/libreadline.a OLD_FILES+=usr/lib/libreadline_p.a OLD_FILES+=usr/lib/libreadline.so OLD_FILES+=usr/lib/libhistory.a OLD_FILES+=usr/lib/libhistory_p.a OLD_FILES+=usr/lib/libhistory.so OLD_LIBS+=usr/lib/libhistory.so.8 OLD_FILES+=usr/lib32/libhistory.a OLD_FILES+=usr/lib32/libhistory.so OLD_LIBS+=usr/lib32/libhistory.so.8 OLD_FILES+=usr/lib32/libhistory_p.a OLD_FILES+=usr/lib32/libreadline.a OLD_FILES+=usr/lib32/libreadline.so OLD_LIBS+=usr/lib32/libreadline.so.8 OLD_FILES+=usr/lib32/libreadline_p.a OLD_FILES+=usr/include/readline/chardefs.h OLD_FILES+=usr/include/readline/history.h OLD_FILES+=usr/include/readline/keymaps.h OLD_FILES+=usr/include/readline/readline.h OLD_FILES+=usr/include/readline/tilde.h OLD_FILES+=usr/include/readline/rlconf.h OLD_FILES+=usr/include/readline/rlstdc.h OLD_FILES+=usr/include/readline/rltypedefs.h OLD_FILES+=usr/include/readline/rltypedefs.h OLD_DIRS+=usr/include/readline OLD_FILES+=usr/share/info/readline.info.gz OLD_FILES+=usr/share/man/man3/readline.3.gz OLD_FILES+=usr/share/man/man3/rlhistory.3.gz # 20140625: csup removal OLD_FILES+=usr/bin/csup OLD_FILES+=usr/bin/cpasswd OLD_FILES+=usr/share/man/man1/csup.1.gz OLD_FILES+=usr/share/man/man1/cpasswd.1.gz OLD_FILES+=usr/share/examples/cvsup/README OLD_FILES+=usr/share/examples/cvsup/cvs-supfile OLD_FILES+=usr/share/examples/cvsup/stable-supfile OLD_FILES+=usr/share/examples/cvsup/standard-supfile OLD_DIRS+=usr/share/examples/cvsup # 20140614: send-pr removal OLD_FILES+=usr/bin/sendbug OLD_FILES+=usr/share/info/send-pr.info.gz OLD_FILES+=usr/share/man/man1/send-pr.1.gz OLD_FILES+=usr/share/man/man1/sendbug.1.gz OLD_FILES+=etc/gnats/freefall OLD_DIRS+=etc/gnats # 20140512: new clang import which bumps version from 3.4 to 3.4.1. OLD_FILES+=usr/include/clang/3.4/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.4/__wmmintrin_pclmul.h OLD_FILES+=usr/include/clang/3.4/altivec.h OLD_FILES+=usr/include/clang/3.4/ammintrin.h OLD_FILES+=usr/include/clang/3.4/avx2intrin.h OLD_FILES+=usr/include/clang/3.4/avxintrin.h OLD_FILES+=usr/include/clang/3.4/bmi2intrin.h OLD_FILES+=usr/include/clang/3.4/bmiintrin.h OLD_FILES+=usr/include/clang/3.4/cpuid.h OLD_FILES+=usr/include/clang/3.4/emmintrin.h OLD_FILES+=usr/include/clang/3.4/f16cintrin.h OLD_FILES+=usr/include/clang/3.4/fma4intrin.h OLD_FILES+=usr/include/clang/3.4/fmaintrin.h OLD_FILES+=usr/include/clang/3.4/immintrin.h OLD_FILES+=usr/include/clang/3.4/lzcntintrin.h OLD_FILES+=usr/include/clang/3.4/mm3dnow.h OLD_FILES+=usr/include/clang/3.4/mm_malloc.h OLD_FILES+=usr/include/clang/3.4/mmintrin.h OLD_FILES+=usr/include/clang/3.4/module.map OLD_FILES+=usr/include/clang/3.4/nmmintrin.h OLD_FILES+=usr/include/clang/3.4/pmmintrin.h OLD_FILES+=usr/include/clang/3.4/popcntintrin.h OLD_FILES+=usr/include/clang/3.4/prfchwintrin.h OLD_FILES+=usr/include/clang/3.4/rdseedintrin.h OLD_FILES+=usr/include/clang/3.4/rtmintrin.h OLD_FILES+=usr/include/clang/3.4/shaintrin.h OLD_FILES+=usr/include/clang/3.4/smmintrin.h OLD_FILES+=usr/include/clang/3.4/tbmintrin.h OLD_FILES+=usr/include/clang/3.4/tmmintrin.h OLD_FILES+=usr/include/clang/3.4/wmmintrin.h OLD_FILES+=usr/include/clang/3.4/x86intrin.h OLD_FILES+=usr/include/clang/3.4/xmmintrin.h OLD_FILES+=usr/include/clang/3.4/xopintrin.h OLD_FILES+=usr/include/clang/3.4/arm_neon.h OLD_FILES+=usr/include/clang/3.4/module.map OLD_DIRS+=usr/include/clang/3.4 # 20140505: Bogusly installing src.opts.mk OLD_FILES+=usr/share/mk/src.opts.mk # 20140505: Reject PR kern/187551 OLD_FILES+=usr/tests/sbin/ifconfig/fibs_test # 20140502: Removal of lindev(4) OLD_FILES+=usr/share/man/man4/lindev.4.gz # 20140425 OLD_FILES+=usr/lib/libssp_p.a OLD_FILES+=usr/lib/libstand_p.a OLD_FILES+=usr/lib32/libssp_p.a OLD_FILES+=usr/lib32/libstand_p.a # 20140314: AppleTalk OLD_DIRS+=usr/include/netatalk OLD_FILES+=usr/include/netatalk/aarp.h OLD_FILES+=usr/include/netatalk/at.h OLD_FILES+=usr/include/netatalk/at_extern.h OLD_FILES+=usr/include/netatalk/at_var.h OLD_FILES+=usr/include/netatalk/ddp.h OLD_FILES+=usr/include/netatalk/ddp_pcb.h OLD_FILES+=usr/include/netatalk/ddp_var.h OLD_FILES+=usr/include/netatalk/endian.h OLD_FILES+=usr/include/netatalk/phase2.h # 20140314: Remove IPX/SPX OLD_LIBS+=lib/libipx.so.5 OLD_FILES+=usr/include/netipx/ipx.h OLD_FILES+=usr/include/netipx/ipx_if.h OLD_FILES+=usr/include/netipx/ipx_pcb.h OLD_FILES+=usr/include/netipx/ipx_var.h OLD_FILES+=usr/include/netipx/spx.h OLD_FILES+=usr/include/netipx/spx_debug.h OLD_FILES+=usr/include/netipx/spx_timer.h OLD_FILES+=usr/include/netipx/spx_var.h OLD_DIRS+=usr/include/netipx OLD_FILES+=usr/lib/libipx.a OLD_FILES+=usr/lib/libipx.so OLD_FILES+=usr/lib/libipx_p.a OLD_FILES+=usr/lib32/libipx.a OLD_FILES+=usr/lib32/libipx.so OLD_LIBS+=usr/lib32/libipx.so.5 OLD_FILES+=usr/lib32/libipx_p.a OLD_FILES+=usr/sbin/IPXrouted OLD_FILES+=usr/share/man/man3/ipx.3.gz OLD_FILES+=usr/share/man/man3/ipx_addr.3.gz OLD_FILES+=usr/share/man/man3/ipx_ntoa.3.gz OLD_FILES+=usr/share/man/man4/ef.4.gz OLD_FILES+=usr/share/man/man4/if_ef.4.gz OLD_FILES+=usr/share/man/man8/IPXrouted.8.gz # 20140314: bsdconfig usermgmt rewrite OLD_FILES+=usr/libexec/bsdconfig/070.usermgmt/userinput # 20140307: bsdconfig groupmgmt rewrite OLD_FILES+=usr/libexec/bsdconfig/070.usermgmt/groupinput # 20140223: Remove libyaml OLD_FILES+=usr/lib/private/libyaml.a OLD_FILES+=usr/lib/private/libyaml.so OLD_LIBS+=usr/lib/private/libyaml.so.1 OLD_FILES+=usr/lib/private/libyaml_p.a OLD_FILES+=usr/lib32/private/libyaml.a OLD_FILES+=usr/lib32/private/libyaml.so OLD_LIBS+=usr/lib32/private/libyaml.so.1 OLD_FILES+=usr/lib32/private/libyaml_p.a # 20140216: new clang import which bumps version from 3.3 to 3.4. OLD_FILES+=usr/bin/llvm-prof OLD_FILES+=usr/include/clang/3.3/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.3/__wmmintrin_pclmul.h OLD_FILES+=usr/include/clang/3.3/altivec.h OLD_FILES+=usr/include/clang/3.3/ammintrin.h OLD_FILES+=usr/include/clang/3.3/avx2intrin.h OLD_FILES+=usr/include/clang/3.3/avxintrin.h OLD_FILES+=usr/include/clang/3.3/bmi2intrin.h OLD_FILES+=usr/include/clang/3.3/bmiintrin.h OLD_FILES+=usr/include/clang/3.3/cpuid.h OLD_FILES+=usr/include/clang/3.3/emmintrin.h OLD_FILES+=usr/include/clang/3.3/f16cintrin.h OLD_FILES+=usr/include/clang/3.3/fma4intrin.h OLD_FILES+=usr/include/clang/3.3/fmaintrin.h OLD_FILES+=usr/include/clang/3.3/immintrin.h OLD_FILES+=usr/include/clang/3.3/lzcntintrin.h OLD_FILES+=usr/include/clang/3.3/mm3dnow.h OLD_FILES+=usr/include/clang/3.3/mm_malloc.h OLD_FILES+=usr/include/clang/3.3/mmintrin.h OLD_FILES+=usr/include/clang/3.3/module.map OLD_FILES+=usr/include/clang/3.3/nmmintrin.h OLD_FILES+=usr/include/clang/3.3/pmmintrin.h OLD_FILES+=usr/include/clang/3.3/popcntintrin.h OLD_FILES+=usr/include/clang/3.3/prfchwintrin.h OLD_FILES+=usr/include/clang/3.3/rdseedintrin.h OLD_FILES+=usr/include/clang/3.3/rtmintrin.h OLD_FILES+=usr/include/clang/3.3/smmintrin.h OLD_FILES+=usr/include/clang/3.3/tmmintrin.h OLD_FILES+=usr/include/clang/3.3/wmmintrin.h OLD_FILES+=usr/include/clang/3.3/x86intrin.h OLD_FILES+=usr/include/clang/3.3/xmmintrin.h OLD_FILES+=usr/include/clang/3.3/xopintrin.h OLD_FILES+=usr/share/man/man1/llvm-prof.1.gz OLD_FILES+=usr/share/man/man1/llvm-ranlib.1.gz OLD_DIRS+=usr/include/clang/3.3 # 20140216: nve(4) removed OLD_FILES+=usr/share/man/man4/if_nve.4.gz OLD_FILES+=usr/share/man/man4/nve.4.gz # 20140205: Open Firmware device moved OLD_FILES+=usr/include/dev/ofw/ofw_nexus.h # 20140128: libelf and libdwarf import OLD_LIBS+=usr/lib/libelf.so.1 OLD_LIBS+=usr/lib32/libelf.so.1 OLD_LIBS+=usr/lib/libdwarf.so.3 OLD_LIBS+=usr/lib32/libdwarf.so.3 # 20140123: apicvar header moved to x86 OLD_FILES+=usr/include/machine/apicvar.h # 20131215: libcam version bumped OLD_LIBS+=lib/libcam.so.6 usr/lib32/libcam.so.6 # 20131202: libcapsicum and libcasper moved to /lib/ OLD_LIBS+=usr/lib/libcapsicum.so.0 OLD_LIBS+=usr/lib/libcasper.so.0 # 20131109: extattr(2) mlinks fixed OLD_FILES+=usr/share/man/man2/extattr_delete_list.2.gz OLD_FILES+=usr/share/man/man2/extattr_get_list.2.gz # 20131107: example files removed OLD_FILES+=usr/share/examples/libusb20/aux.c OLD_FILES+=usr/share/examples/libusb20/aux.h # 20131105: tzdata 2013h import OLD_FILES+=usr/share/zoneinfo/America/Shiprock OLD_FILES+=usr/share/zoneinfo/Antarctica/South_Pole # 20131103: WITH_LIBICONV_COMPAT removal OLD_FILES+=usr/include/_libiconv_compat.h OLD_FILES+=usr/lib/libiconv.a OLD_FILES+=usr/lib/libiconv.so OLD_FILES+=usr/lib/libiconv.so.3 OLD_FILES+=usr/lib/libiconv_p.a OLD_FILES+=usr/lib32/libiconv.a OLD_FILES+=usr/lib32/libiconv.so OLD_FILES+=usr/lib32/libiconv.so.3 OLD_FILES+=usr/lib32/libiconv_p.a # 20131103: removal of utxrm(8), use 'utx rm' instead. OLD_FILES+=usr/sbin/utxrm OLD_FILES+=usr/share/man/man8/utxrm.8.gz # 20131031: pkg_install has been removed OLD_FILES+=etc/periodic/daily/220.backup-pkgdb OLD_FILES+=etc/periodic/daily/490.status-pkg-changes OLD_FILES+=etc/periodic/security/460.chkportsum OLD_FILES+=etc/periodic/weekly/400.status-pkg OLD_FILES+=usr/sbin/pkg_add OLD_FILES+=usr/sbin/pkg_create OLD_FILES+=usr/sbin/pkg_delete OLD_FILES+=usr/sbin/pkg_info OLD_FILES+=usr/sbin/pkg_updating OLD_FILES+=usr/sbin/pkg_version OLD_FILES+=usr/share/man/man1/pkg_add.1.gz OLD_FILES+=usr/share/man/man1/pkg_create.1.gz OLD_FILES+=usr/share/man/man1/pkg_delete.1.gz OLD_FILES+=usr/share/man/man1/pkg_info.1.gz OLD_FILES+=usr/share/man/man1/pkg_updating.1.gz OLD_FILES+=usr/share/man/man1/pkg_version.1.gz # 20131030: /etc/keys moved to /usr/share/keys OLD_DIRS+=etc/keys OLD_DIRS+=etc/keys/pkg OLD_DIRS+=etc/keys/pkg/revoked OLD_DIRS+=etc/keys/pkg/trusted OLD_FILES+=etc/keys/pkg/trusted/pkg.freebsd.org.2013102301 # 20131028: ng_fec(4) removed OLD_FILES+=usr/include/netgraph/ng_fec.h OLD_FILES+=usr/share/man/man4/ng_fec.4.gz # 20131027: header moved OLD_FILES+=usr/include/net/pf_mtag.h # 20131023: remove never used iscsi directory OLD_DIRS+=usr/share/examples/iscsi # 20131021: isf(4) removed OLD_FILES+=usr/sbin/isfctl OLD_FILES+=usr/share/man/man4/isf.4.gz OLD_FILES+=usr/share/man/man8/isfctl.8.gz # 20131014: libbsdyml becomes private OLD_FILES+=usr/lib/libbsdyml.a OLD_FILES+=usr/lib/libbsdyml.so OLD_LIBS+=usr/lib/libbsdyml.so.0 OLD_FILES+=usr/lib/libbsdyml_p.a OLD_FILES+=usr/lib32/libbsdyml.a OLD_FILES+=usr/lib32/libbsdyml.so OLD_LIBS+=usr/lib32/libbsdyml.so.0 OLD_FILES+=usr/lib32/libbsdyml_p.a OLD_FILES+=usr/share/man/man3/libbsdyml.3.gz OLD_FILES+=usr/include/bsdyml.h # 20131013: Removal of the ATF tools OLD_FILES+=etc/atf/FreeBSD.conf OLD_FILES+=etc/atf/atf-run.hooks OLD_FILES+=etc/atf/common.conf OLD_FILES+=usr/bin/atf-config OLD_FILES+=usr/bin/atf-report OLD_FILES+=usr/bin/atf-run OLD_FILES+=usr/bin/atf-version OLD_FILES+=usr/share/atf/atf-run.hooks OLD_FILES+=usr/share/examples/atf/atf-run.hooks OLD_FILES+=usr/share/examples/atf/tests-results.css OLD_FILES+=usr/share/man/man1/atf-config.1.gz OLD_FILES+=usr/share/man/man1/atf-report.1.gz OLD_FILES+=usr/share/man/man1/atf-run.1.gz OLD_FILES+=usr/share/man/man1/atf-version.1.gz OLD_FILES+=usr/share/man/man5/atf-formats.5.gz OLD_FILES+=usr/share/xml/atf/tests-results.dtd OLD_FILES+=usr/share/xsl/atf/tests-results.xsl # 20131009: freebsd-version moved from /libexec to /bin OLD_FILES+=libexec/freebsd-version # 20131001: ar and ranlib from binutils not used OLD_FILES+=usr/bin/gnu-ar OLD_FILES+=usr/bin/gnu-ranlib OLD_FILES+=usr/share/man/man1/gnu-ar.1.gz OLD_FILES+=usr/share/man/man1/gnu-ranlib.1.gz # 20130930: BIND removed from base OLD_FILES+=etc/mtree/BIND.chroot.dist OLD_FILES+=etc/namedb OLD_FILES+=etc/periodic/daily/470.status-named OLD_FILES+=usr/bin/dig OLD_FILES+=usr/bin/nslookup OLD_FILES+=usr/bin/nsupdate OLD_DIRS+=usr/include/lwres OLD_FILES+=usr/include/lwres/context.h OLD_FILES+=usr/include/lwres/int.h OLD_FILES+=usr/include/lwres/ipv6.h OLD_FILES+=usr/include/lwres/lang.h OLD_FILES+=usr/include/lwres/list.h OLD_FILES+=usr/include/lwres/lwbuffer.h OLD_FILES+=usr/include/lwres/lwpacket.h OLD_FILES+=usr/include/lwres/lwres.h OLD_FILES+=usr/include/lwres/net.h OLD_FILES+=usr/include/lwres/netdb.h OLD_FILES+=usr/include/lwres/platform.h OLD_FILES+=usr/include/lwres/result.h OLD_FILES+=usr/include/lwres/string.h OLD_FILES+=usr/include/lwres/version.h OLD_FILES+=usr/lib/liblwres.a OLD_FILES+=usr/lib/liblwres.so OLD_LIBS+=usr/lib/liblwres.so.90 OLD_FILES+=usr/lib/liblwres_p.a OLD_FILES+=usr/sbin/arpaname OLD_FILES+=usr/sbin/ddns-confgen OLD_FILES+=usr/sbin/dnssec-dsfromkey OLD_FILES+=usr/sbin/dnssec-keyfromlabel OLD_FILES+=usr/sbin/dnssec-keygen OLD_FILES+=usr/sbin/dnssec-revoke OLD_FILES+=usr/sbin/dnssec-settime OLD_FILES+=usr/sbin/dnssec-signzone OLD_FILES+=usr/sbin/dnssec-verify OLD_FILES+=usr/sbin/genrandom OLD_FILES+=usr/sbin/isc-hmac-fixup OLD_FILES+=usr/sbin/lwresd OLD_FILES+=usr/sbin/named OLD_FILES+=usr/sbin/named-checkconf OLD_FILES+=usr/sbin/named-checkzone OLD_FILES+=usr/sbin/named-compilezone OLD_FILES+=usr/sbin/named-journalprint OLD_FILES+=usr/sbin/named.reconfig OLD_FILES+=usr/sbin/named.reload OLD_FILES+=usr/sbin/nsec3hash OLD_FILES+=usr/sbin/rndc OLD_FILES+=usr/sbin/rndc-confgen OLD_DIRS+=usr/share/doc/bind9 OLD_FILES+=usr/share/doc/bind9/CHANGES OLD_FILES+=usr/share/doc/bind9/COPYRIGHT OLD_FILES+=usr/share/doc/bind9/FAQ OLD_FILES+=usr/share/doc/bind9/HISTORY OLD_FILES+=usr/share/doc/bind9/README OLD_DIRS+=usr/share/doc/bind9/arm OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch01.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch02.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch03.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch04.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch05.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch06.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch07.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch08.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch09.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.ch10.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.html OLD_FILES+=usr/share/doc/bind9/arm/Bv9ARM.pdf OLD_FILES+=usr/share/doc/bind9/arm/man.arpaname.html OLD_FILES+=usr/share/doc/bind9/arm/man.ddns-confgen.html OLD_FILES+=usr/share/doc/bind9/arm/man.dig.html OLD_FILES+=usr/share/doc/bind9/arm/man.dnssec-dsfromkey.html OLD_FILES+=usr/share/doc/bind9/arm/man.dnssec-keyfromlabel.html OLD_FILES+=usr/share/doc/bind9/arm/man.dnssec-keygen.html OLD_FILES+=usr/share/doc/bind9/arm/man.dnssec-revoke.html OLD_FILES+=usr/share/doc/bind9/arm/man.dnssec-settime.html OLD_FILES+=usr/share/doc/bind9/arm/man.dnssec-signzone.html OLD_FILES+=usr/share/doc/bind9/arm/man.dnssec-verify.html OLD_FILES+=usr/share/doc/bind9/arm/man.genrandom.html OLD_FILES+=usr/share/doc/bind9/arm/man.host.html OLD_FILES+=usr/share/doc/bind9/arm/man.isc-hmac-fixup.html OLD_FILES+=usr/share/doc/bind9/arm/man.named-checkconf.html OLD_FILES+=usr/share/doc/bind9/arm/man.named-checkzone.html OLD_FILES+=usr/share/doc/bind9/arm/man.named-journalprint.html OLD_FILES+=usr/share/doc/bind9/arm/man.named.html OLD_FILES+=usr/share/doc/bind9/arm/man.nsec3hash.html OLD_FILES+=usr/share/doc/bind9/arm/man.nsupdate.html OLD_FILES+=usr/share/doc/bind9/arm/man.rndc-confgen.html OLD_FILES+=usr/share/doc/bind9/arm/man.rndc.conf.html OLD_FILES+=usr/share/doc/bind9/arm/man.rndc.html OLD_DIRS+=usr/share/doc/bind9/misc OLD_FILES+=usr/share/doc/bind9/misc/dnssec OLD_FILES+=usr/share/doc/bind9/misc/format-options.pl OLD_FILES+=usr/share/doc/bind9/misc/ipv6 OLD_FILES+=usr/share/doc/bind9/misc/migration OLD_FILES+=usr/share/doc/bind9/misc/migration-4to9 OLD_FILES+=usr/share/doc/bind9/misc/options OLD_FILES+=usr/share/doc/bind9/misc/rfc-compliance OLD_FILES+=usr/share/doc/bind9/misc/roadmap OLD_FILES+=usr/share/doc/bind9/misc/sdb OLD_FILES+=usr/share/doc/bind9/misc/sort-options.pl OLD_FILES+=usr/share/man/man1/arpaname.1.gz OLD_FILES+=usr/share/man/man1/dig.1.gz OLD_FILES+=usr/share/man/man1/nslookup.1.gz OLD_FILES+=usr/share/man/man1/nsupdate.1.gz OLD_FILES+=usr/share/man/man3/lwres.3.gz OLD_FILES+=usr/share/man/man3/lwres_addr_parse.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_add.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_back.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_clear.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_first.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_forward.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_getmem.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_getuint16.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_getuint32.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_getuint8.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_init.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_invalidate.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_putmem.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_putuint16.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_putuint32.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_putuint8.3.gz OLD_FILES+=usr/share/man/man3/lwres_buffer_subtract.3.gz OLD_FILES+=usr/share/man/man3/lwres_conf_clear.3.gz OLD_FILES+=usr/share/man/man3/lwres_conf_get.3.gz OLD_FILES+=usr/share/man/man3/lwres_conf_init.3.gz OLD_FILES+=usr/share/man/man3/lwres_conf_parse.3.gz OLD_FILES+=usr/share/man/man3/lwres_conf_print.3.gz OLD_FILES+=usr/share/man/man3/lwres_config.3.gz OLD_FILES+=usr/share/man/man3/lwres_context.3.gz OLD_FILES+=usr/share/man/man3/lwres_context_allocmem.3.gz OLD_FILES+=usr/share/man/man3/lwres_context_create.3.gz OLD_FILES+=usr/share/man/man3/lwres_context_destroy.3.gz OLD_FILES+=usr/share/man/man3/lwres_context_freemem.3.gz OLD_FILES+=usr/share/man/man3/lwres_context_initserial.3.gz OLD_FILES+=usr/share/man/man3/lwres_context_nextserial.3.gz OLD_FILES+=usr/share/man/man3/lwres_context_sendrecv.3.gz OLD_FILES+=usr/share/man/man3/lwres_endhostent.3.gz OLD_FILES+=usr/share/man/man3/lwres_endhostent_r.3.gz OLD_FILES+=usr/share/man/man3/lwres_freeaddrinfo.3.gz OLD_FILES+=usr/share/man/man3/lwres_freehostent.3.gz OLD_FILES+=usr/share/man/man3/lwres_gabn.3.gz OLD_FILES+=usr/share/man/man3/lwres_gabnrequest_free.3.gz OLD_FILES+=usr/share/man/man3/lwres_gabnrequest_parse.3.gz OLD_FILES+=usr/share/man/man3/lwres_gabnrequest_render.3.gz OLD_FILES+=usr/share/man/man3/lwres_gabnresponse_free.3.gz OLD_FILES+=usr/share/man/man3/lwres_gabnresponse_parse.3.gz OLD_FILES+=usr/share/man/man3/lwres_gabnresponse_render.3.gz OLD_FILES+=usr/share/man/man3/lwres_gai_strerror.3.gz OLD_FILES+=usr/share/man/man3/lwres_getaddrinfo.3.gz OLD_FILES+=usr/share/man/man3/lwres_getaddrsbyname.3.gz OLD_FILES+=usr/share/man/man3/lwres_gethostbyaddr.3.gz OLD_FILES+=usr/share/man/man3/lwres_gethostbyaddr_r.3.gz OLD_FILES+=usr/share/man/man3/lwres_gethostbyname.3.gz OLD_FILES+=usr/share/man/man3/lwres_gethostbyname2.3.gz OLD_FILES+=usr/share/man/man3/lwres_gethostbyname_r.3.gz OLD_FILES+=usr/share/man/man3/lwres_gethostent.3.gz OLD_FILES+=usr/share/man/man3/lwres_gethostent_r.3.gz OLD_FILES+=usr/share/man/man3/lwres_getipnode.3.gz OLD_FILES+=usr/share/man/man3/lwres_getipnodebyaddr.3.gz OLD_FILES+=usr/share/man/man3/lwres_getipnodebyname.3.gz OLD_FILES+=usr/share/man/man3/lwres_getnamebyaddr.3.gz OLD_FILES+=usr/share/man/man3/lwres_getnameinfo.3.gz OLD_FILES+=usr/share/man/man3/lwres_getrrsetbyname.3.gz OLD_FILES+=usr/share/man/man3/lwres_gnba.3.gz OLD_FILES+=usr/share/man/man3/lwres_gnbarequest_free.3.gz OLD_FILES+=usr/share/man/man3/lwres_gnbarequest_parse.3.gz OLD_FILES+=usr/share/man/man3/lwres_gnbarequest_render.3.gz OLD_FILES+=usr/share/man/man3/lwres_gnbaresponse_free.3.gz OLD_FILES+=usr/share/man/man3/lwres_gnbaresponse_parse.3.gz OLD_FILES+=usr/share/man/man3/lwres_gnbaresponse_render.3.gz OLD_FILES+=usr/share/man/man3/lwres_herror.3.gz OLD_FILES+=usr/share/man/man3/lwres_hstrerror.3.gz OLD_FILES+=usr/share/man/man3/lwres_inetntop.3.gz OLD_FILES+=usr/share/man/man3/lwres_lwpacket_parseheader.3.gz OLD_FILES+=usr/share/man/man3/lwres_lwpacket_renderheader.3.gz OLD_FILES+=usr/share/man/man3/lwres_net_ntop.3.gz OLD_FILES+=usr/share/man/man3/lwres_noop.3.gz OLD_FILES+=usr/share/man/man3/lwres_nooprequest_free.3.gz OLD_FILES+=usr/share/man/man3/lwres_nooprequest_parse.3.gz OLD_FILES+=usr/share/man/man3/lwres_nooprequest_render.3.gz OLD_FILES+=usr/share/man/man3/lwres_noopresponse_free.3.gz OLD_FILES+=usr/share/man/man3/lwres_noopresponse_parse.3.gz OLD_FILES+=usr/share/man/man3/lwres_noopresponse_render.3.gz OLD_FILES+=usr/share/man/man3/lwres_packet.3.gz OLD_FILES+=usr/share/man/man3/lwres_resutil.3.gz OLD_FILES+=usr/share/man/man3/lwres_sethostent.3.gz OLD_FILES+=usr/share/man/man3/lwres_sethostent_r.3.gz OLD_FILES+=usr/share/man/man3/lwres_string_parse.3.gz OLD_FILES+=usr/share/man/man5/named.conf.5.gz OLD_FILES+=usr/share/man/man5/rndc.conf.5.gz OLD_FILES+=usr/share/man/man8/ddns-confgen.8.gz OLD_FILES+=usr/share/man/man8/dnssec-dsfromkey.8.gz OLD_FILES+=usr/share/man/man8/dnssec-keyfromlabel.8.gz OLD_FILES+=usr/share/man/man8/dnssec-keygen.8.gz OLD_FILES+=usr/share/man/man8/dnssec-revoke.8.gz OLD_FILES+=usr/share/man/man8/dnssec-settime.8.gz OLD_FILES+=usr/share/man/man8/dnssec-signzone.8.gz OLD_FILES+=usr/share/man/man8/dnssec-verify.8.gz OLD_FILES+=usr/share/man/man8/genrandom.8.gz OLD_FILES+=usr/share/man/man8/isc-hmac-fixup.8.gz OLD_FILES+=usr/share/man/man8/lwresd.8.gz OLD_FILES+=usr/share/man/man8/named-checkconf.8.gz OLD_FILES+=usr/share/man/man8/named-checkzone.8.gz OLD_FILES+=usr/share/man/man8/named-compilezone.8.gz OLD_FILES+=usr/share/man/man8/named-journalprint.8.gz OLD_FILES+=usr/share/man/man8/named.8.gz OLD_FILES+=usr/share/man/man8/named.reconfig.8.gz OLD_FILES+=usr/share/man/man8/named.reload.8.gz OLD_FILES+=usr/share/man/man8/nsec3hash.8.gz OLD_FILES+=usr/share/man/man8/rndc-confgen.8.gz OLD_FILES+=usr/share/man/man8/rndc.8.gz OLD_DIRS+=var/named/dev OLD_DIRS+=var/named/etc OLD_DIRS+=var/named/etc/namedb OLD_FILES+=var/named/etc/namedb/PROTO.localhost-v6.rev OLD_FILES+=var/named/etc/namedb/PROTO.localhost.rev OLD_DIRS+=var/named/etc/namedb/dynamic OLD_FILES+=var/named/etc/namedb/make-localhost OLD_DIRS+=var/named/etc/namedb/master OLD_FILES+=var/named/etc/namedb/master/empty.db OLD_FILES+=var/named/etc/namedb/master/localhost-forward.db OLD_FILES+=var/named/etc/namedb/master/localhost-reverse.db #OLD_FILES+=var/named/etc/namedb/named.conf # intentionally left out OLD_FILES+=var/named/etc/namedb/named.root OLD_DIRS+=var/named/etc/namedb/working OLD_DIRS+=var/named/etc/namedb/slave OLD_DIRS+=var/named/var OLD_DIRS+=var/named/var/dump OLD_DIRS+=var/named/var/log OLD_DIRS+=var/named/var/run OLD_DIRS+=var/named/var/run/named OLD_DIRS+=var/named/var/stats OLD_DIRS+=var/run/named # 20130923: example moved OLD_FILES+=usr/share/examples/bsdconfig/browse_packages.sh # 20130908: libssh becomes private OLD_FILES+=usr/lib/libssh.a OLD_FILES+=usr/lib/libssh.so OLD_LIBS+=usr/lib/libssh.so.5 OLD_FILES+=usr/lib/libssh_p.a OLD_FILES+=usr/lib32/libssh.a OLD_FILES+=usr/lib32/libssh.so OLD_LIBS+=usr/lib32/libssh.so.5 OLD_FILES+=usr/lib32/libssh_p.a # 20130903: gnupatch is no more OLD_FILES+=usr/bin/gnupatch OLD_FILES+=usr/share/man/man1/gnupatch.1.gz # 20130829: bsdpatch is patch unconditionally OLD_FILES+=usr/bin/bsdpatch OLD_FILES+=usr/share/man/man1/bsdpatch.1.gz # 20130822: bind 9.9.3-P2 import OLD_LIBS+=usr/lib/liblwres.so.80 # 20130814: vm_page_busy(9) OLD_FILES+=usr/share/man/man9/vm_page_flash.9.gz OLD_FILES+=usr/share/man/man9/vm_page_io.9.gz OLD_FILES+=usr/share/man/man9/vm_page_io_finish.9.gz OLD_FILES+=usr/share/man/man9/vm_page_io_start.9.gz OLD_FILES+=usr/share/man/man9/vm_page_wakeup.9.gz # 20130710: libkvm version bump OLD_LIBS+=lib/libkvm.so.5 OLD_LIBS+=usr/lib32/libkvm.so.5 # 20130623: dialog update from 1.1 to 1.2 OLD_LIBS+=usr/lib/libdialog.so.7 OLD_LIBS+=usr/lib32/libdialog.so.7 # 20130616: vfs_mount.9 removed OLD_FILES+=usr/share/man/man9/vfs_mount.9.gz # 20130614: remove CVS from base OLD_FILES+=usr/bin/cvs OLD_FILES+=usr/bin/cvsbug OLD_FILES+=usr/share/doc/psd/28.cvs/paper.ascii.gz OLD_FILES+=usr/share/doc/psd/28.cvs/paper.ps.gz OLD_DIRS+=usr/share/doc/psd/28.cvs OLD_FILES+=usr/share/examples/cvs/contrib/README OLD_FILES+=usr/share/examples/cvs/contrib/clmerge OLD_FILES+=usr/share/examples/cvs/contrib/cln_hist OLD_FILES+=usr/share/examples/cvs/contrib/commit_prep OLD_FILES+=usr/share/examples/cvs/contrib/cvs2vendor OLD_FILES+=usr/share/examples/cvs/contrib/cvs_acls OLD_FILES+=usr/share/examples/cvs/contrib/cvscheck OLD_FILES+=usr/share/examples/cvs/contrib/cvscheck.man OLD_FILES+=usr/share/examples/cvs/contrib/cvshelp.man OLD_FILES+=usr/share/examples/cvs/contrib/descend.man OLD_FILES+=usr/share/examples/cvs/contrib/easy-import OLD_FILES+=usr/share/examples/cvs/contrib/intro.doc OLD_FILES+=usr/share/examples/cvs/contrib/log OLD_FILES+=usr/share/examples/cvs/contrib/log_accum OLD_FILES+=usr/share/examples/cvs/contrib/mfpipe OLD_FILES+=usr/share/examples/cvs/contrib/rcs-to-cvs OLD_FILES+=usr/share/examples/cvs/contrib/rcs2log OLD_FILES+=usr/share/examples/cvs/contrib/rcslock OLD_FILES+=usr/share/examples/cvs/contrib/sccs2rcs OLD_DIRS+=usr/share/examples/cvs/contrib OLD_DIRS+=usr/share/examples/cvs OLD_FILES+=usr/share/info/cvs.info.gz OLD_FILES+=usr/share/info/cvsclient.info.gz OLD_FILES+=usr/share/man/man1/cvs.1.gz OLD_FILES+=usr/share/man/man5/cvs.5.gz OLD_FILES+=usr/share/man/man8/cvsbug.8.gz # 20130607: WITH_DEBUG_FILES added OLD_FILES+=lib/libufs.so.6.symbols OLD_FILES+=usr/lib32/libufs.so.6.symbols # 20130417: nfs fha moved from nfsserver to nfs OLD_FILES+=usr/include/nfsserver/nfs_fha.h # 20130411: new clang import which bumps version from 3.2 to 3.3. OLD_FILES+=usr/include/clang/3.2/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.2/__wmmintrin_pclmul.h OLD_FILES+=usr/include/clang/3.2/altivec.h OLD_FILES+=usr/include/clang/3.2/ammintrin.h OLD_FILES+=usr/include/clang/3.2/avx2intrin.h OLD_FILES+=usr/include/clang/3.2/avxintrin.h OLD_FILES+=usr/include/clang/3.2/bmi2intrin.h OLD_FILES+=usr/include/clang/3.2/bmiintrin.h OLD_FILES+=usr/include/clang/3.2/cpuid.h OLD_FILES+=usr/include/clang/3.2/emmintrin.h OLD_FILES+=usr/include/clang/3.2/f16cintrin.h OLD_FILES+=usr/include/clang/3.2/fma4intrin.h OLD_FILES+=usr/include/clang/3.2/fmaintrin.h OLD_FILES+=usr/include/clang/3.2/immintrin.h OLD_FILES+=usr/include/clang/3.2/lzcntintrin.h OLD_FILES+=usr/include/clang/3.2/mm3dnow.h OLD_FILES+=usr/include/clang/3.2/mm_malloc.h OLD_FILES+=usr/include/clang/3.2/mmintrin.h OLD_FILES+=usr/include/clang/3.2/module.map OLD_FILES+=usr/include/clang/3.2/nmmintrin.h OLD_FILES+=usr/include/clang/3.2/pmmintrin.h OLD_FILES+=usr/include/clang/3.2/popcntintrin.h OLD_FILES+=usr/include/clang/3.2/rtmintrin.h OLD_FILES+=usr/include/clang/3.2/smmintrin.h OLD_FILES+=usr/include/clang/3.2/tmmintrin.h OLD_FILES+=usr/include/clang/3.2/wmmintrin.h OLD_FILES+=usr/include/clang/3.2/x86intrin.h OLD_FILES+=usr/include/clang/3.2/xmmintrin.h OLD_FILES+=usr/include/clang/3.2/xopintrin.h OLD_DIRS+=usr/include/clang/3.2 # 20130404: legacy ATA stack removed OLD_FILES+=etc/periodic/daily/405.status-ata-raid OLD_FILES+=rescue/atacontrol OLD_FILES+=sbin/atacontrol OLD_FILES+=usr/share/man/man8/atacontrol.8.gz OLD_FILES+=usr/share/man/man4/atapicam.4.gz OLD_FILES+=usr/share/man/man4/ataraid.4.gz OLD_FILES+=usr/sbin/burncd OLD_FILES+=usr/share/man/man8/burncd.8.gz # 20130316: vinum.4 removed OLD_FILES+=usr/share/man/man4/vinum.4.gz # 20130312: fortunes-o removed OLD_FILES+=usr/share/games/fortune/fortunes-o OLD_FILES+=usr/share/games/fortune/fortunes-o.dat # 20130311: Ports are no more available via cvsup OLD_FILES+=usr/share/examples/cvsup/ports-supfile OLD_FILES+=usr/share/examples/cvsup/refuse OLD_FILES+=usr/share/examples/cvsup/refuse.README # 20130309: NWFS and NCP supports removed OLD_FILES+=usr/bin/ncplist OLD_FILES+=usr/bin/ncplogin OLD_FILES+=usr/bin/ncplogout OLD_FILES+=usr/include/fs/nwfs/nwfs.h OLD_FILES+=usr/include/fs/nwfs/nwfs_mount.h OLD_FILES+=usr/include/fs/nwfs/nwfs_node.h OLD_FILES+=usr/include/fs/nwfs/nwfs_subr.h OLD_DIRS+=usr/include/fs/nwfs OLD_FILES+=usr/include/netncp/ncp.h OLD_FILES+=usr/include/netncp/ncp_cfg.h OLD_FILES+=usr/include/netncp/ncp_conn.h OLD_FILES+=usr/include/netncp/ncp_file.h OLD_FILES+=usr/include/netncp/ncp_lib.h OLD_FILES+=usr/include/netncp/ncp_ncp.h OLD_FILES+=usr/include/netncp/ncp_nls.h OLD_FILES+=usr/include/netncp/ncp_rcfile.h OLD_FILES+=usr/include/netncp/ncp_rq.h OLD_FILES+=usr/include/netncp/ncp_sock.h OLD_FILES+=usr/include/netncp/ncp_subr.h OLD_FILES+=usr/include/netncp/ncp_user.h OLD_FILES+=usr/include/netncp/ncpio.h OLD_FILES+=usr/include/netncp/nwerror.h OLD_DIRS+=usr/include/netncp OLD_FILES+=usr/lib/libncp.a OLD_FILES+=usr/lib/libncp.so OLD_LIBS+=usr/lib/libncp.so.4 OLD_FILES+=usr/lib/libncp_p.a OLD_FILES+=usr/lib32/libncp.a OLD_FILES+=usr/lib32/libncp.so OLD_LIBS+=usr/lib32/libncp.so.4 OLD_FILES+=usr/lib32/libncp_p.a OLD_FILES+=usr/sbin/mount_nwfs OLD_FILES+=usr/share/examples/nwclient/dot.nwfsrc OLD_FILES+=usr/share/examples/nwclient/nwfs.sh.sample OLD_DIRS+=usr/share/examples/nwclient OLD_FILES+=usr/share/man/man1/ncplist.1.gz OLD_FILES+=usr/share/man/man1/ncplogin.1.gz OLD_FILES+=usr/share/man/man1/ncplogout.1.gz OLD_FILES+=usr/share/man/man8/mount_nwfs.8.gz # 20130302: NTFS support removed OLD_FILES+=rescue/mount_ntfs OLD_FILES+=sbin/mount_ntfs OLD_FILES+=usr/include/fs/ntfs/ntfs.h OLD_FILES+=usr/include/fs/ntfs/ntfs_compr.h OLD_FILES+=usr/include/fs/ntfs/ntfs_ihash.h OLD_FILES+=usr/include/fs/ntfs/ntfs_inode.h OLD_FILES+=usr/include/fs/ntfs/ntfs_subr.h OLD_FILES+=usr/include/fs/ntfs/ntfs_vfsops.h OLD_FILES+=usr/include/fs/ntfs/ntfsmount.h OLD_DIRS+=usr/include/fs/ntfs OLD_FILES+=usr/share/man/man8/mount_ntfs.8.gz # 20130302: PORTALFS support removed OLD_FILES+=usr/include/fs/portalfs/portal.h OLD_DIRS+=usr/include/fs/portalfs OLD_FILES+=usr/sbin/mount_portalfs OLD_FILES+=usr/share/examples/portal/README OLD_FILES+=usr/share/examples/portal/portal.conf OLD_DIRS+=usr/share/examples/portal OLD_FILES+=usr/share/man/man8/mount_portalfs.8.gz # 20130302: CODAFS support removed OLD_FILES+=usr/share/man/man4/coda.4.gz # 20130302: XFS support removed OLD_FILES+=usr/share/man/man5/xfs.5.gz # 20130302: Capsicum overhaul OLD_FILES+=usr/share/man/man2/cap_getrights.2.gz OLD_FILES+=usr/share/man/man2/cap_new.2.gz # 20130213: OpenSSL 1.0.1e import OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_verifyrecover.3.gz OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_verifyrecover_init.3.gz # 20130116: removed long unused directories for .1aout section manpages OLD_FILES+=usr/share/man/en.ISO8859-1/man1aout OLD_FILES+=usr/share/man/en.UTF-8/man1aout OLD_DIRS+=usr/share/man/man1aout OLD_DIRS+=usr/share/man/cat1aout OLD_DIRS+=usr/share/man/en.ISO8859-1/cat1aout OLD_DIRS+=usr/share/man/en.UTF-8/cat1aout # 20130110: bsd.compat.mk removed OLD_FILES+=usr/share/mk/bsd.compat.mk # 20130103: gnats-supfile removed OLD_FILES+=usr/share/examples/cvsup/gnats-supfile # 20121230: libdisk removed OLD_FILES+=usr/share/man/man3/libdisk.3.gz usr/include/libdisk.h OLD_FILES+=usr/lib/libdisk.a usr/lib32/libdisk.a # 20121230: remove wrongly created directories for auditdistd OLD_DIRS+=var/dist OLD_DIRS+=var/remote # 20121114: zpool-features manual page moved from section 5 to 7 OLD_FILES+=usr/share/man/man5/zpool-features.5.gz # 20121022: remove harp, hfa and idt man page OLD_FILES+=usr/share/man/man4/harp.4.gz OLD_FILES+=usr/share/man/man4/hfa.4.gz OLD_FILES+=usr/share/man/man4/idt.4.gz OLD_FILES+=usr/share/man/man4/if_idt.4.gz # 20121022: VFS_LOCK_GIANT elimination OLD_FILES+=usr/share/man/man9/VFS_LOCK_GIANT.9.gz OLD_FILES+=usr/share/man/man9/VFS_UNLOCK_GIANT.9.gz # 20121004: remove incomplete unwind.h OLD_FILES+=usr/include/clang/3.2/unwind.h # 20120910: NetBSD compat shims removed OLD_FILES+=usr/include/cam/scsi/scsi_low_pisa.h OLD_FILES+=usr/include/sys/device_port.h # 20120909: doc and www supfiles removed OLD_FILES+=usr/share/examples/cvsup/doc-supfile OLD_FILES+=usr/share/examples/cvsup/www-supfile # 20120908: pf cleanup OLD_FILES+=usr/include/net/if_pflow.h # 20120816: new clang import which bumps version from 3.1 to 3.2 OLD_FILES+=usr/bin/llvm-ld OLD_FILES+=usr/bin/llvm-stub OLD_FILES+=usr/include/clang/3.1/altivec.h OLD_FILES+=usr/include/clang/3.1/avx2intrin.h OLD_FILES+=usr/include/clang/3.1/avxintrin.h OLD_FILES+=usr/include/clang/3.1/bmi2intrin.h OLD_FILES+=usr/include/clang/3.1/bmiintrin.h OLD_FILES+=usr/include/clang/3.1/cpuid.h OLD_FILES+=usr/include/clang/3.1/emmintrin.h OLD_FILES+=usr/include/clang/3.1/fma4intrin.h OLD_FILES+=usr/include/clang/3.1/immintrin.h OLD_FILES+=usr/include/clang/3.1/lzcntintrin.h OLD_FILES+=usr/include/clang/3.1/mm3dnow.h OLD_FILES+=usr/include/clang/3.1/mm_malloc.h OLD_FILES+=usr/include/clang/3.1/mmintrin.h OLD_FILES+=usr/include/clang/3.1/module.map OLD_FILES+=usr/include/clang/3.1/nmmintrin.h OLD_FILES+=usr/include/clang/3.1/pmmintrin.h OLD_FILES+=usr/include/clang/3.1/popcntintrin.h OLD_FILES+=usr/include/clang/3.1/smmintrin.h OLD_FILES+=usr/include/clang/3.1/tmmintrin.h OLD_FILES+=usr/include/clang/3.1/unwind.h OLD_FILES+=usr/include/clang/3.1/wmmintrin.h OLD_FILES+=usr/include/clang/3.1/x86intrin.h OLD_FILES+=usr/include/clang/3.1/xmmintrin.h OLD_DIRS+=usr/include/clang/3.1 OLD_FILES+=usr/share/man/man1/llvm-ld.1.gz # 20120712: OpenSSL 1.0.1c import OLD_LIBS+=lib/libcrypto.so.6 OLD_LIBS+=usr/lib/libssl.so.6 OLD_LIBS+=usr/lib32/libcrypto.so.6 OLD_LIBS+=usr/lib32/libssl.so.6 OLD_FILES+=usr/include/openssl/aes_locl.h OLD_FILES+=usr/include/openssl/bio_lcl.h OLD_FILES+=usr/include/openssl/e_os.h OLD_FILES+=usr/include/openssl/fips.h OLD_FILES+=usr/include/openssl/fips_rand.h OLD_FILES+=usr/include/openssl/md2.h OLD_FILES+=usr/include/openssl/pq_compat.h OLD_FILES+=usr/include/openssl/store.h OLD_FILES+=usr/include/openssl/tmdiff.h OLD_FILES+=usr/include/openssl/ui_locl.h OLD_FILES+=usr/share/openssl/man/man3/CRYPTO_set_id_callback.3.gz # 20120621: remove old man page OLD_FILES+=usr/share/man/man8/vnconfig.8.gz # 20120619: TOE support updated OLD_FILES+=usr/include/netinet/toedev.h # 20120613: auth.conf removed OLD_FILES+=etc/auth.conf OLD_FILES+=usr/share/examples/etc/auth.conf OLD_FILES+=usr/share/man/man3/auth.3.gz OLD_FILES+=usr/share/man/man3/auth_getval.3.gz OLD_FILES+=usr/share/man/man5/auth.conf.5.gz # 20120530: kde pam lives now in ports OLD_FILES+=etc/pam.d/kde # 20120521: byacc import OLD_FILES+=usr/bin/yyfix OLD_FILES+=usr/share/man/man1/yyfix.1.gz # 20120505: new clang import installed a redundant internal header OLD_FILES+=usr/include/clang/3.1/stdalign.h # 20120428: MD2 removed from libmd OLD_LIBS+=lib/libmd.so.5 OLD_FILES+=usr/include/md2.h OLD_LIBS+=usr/lib32/libmd.so.5 OLD_FILES+=usr/share/man/man3/MD2Data.3.gz OLD_FILES+=usr/share/man/man3/MD2End.3.gz OLD_FILES+=usr/share/man/man3/MD2File.3.gz OLD_FILES+=usr/share/man/man3/MD2FileChunk.3.gz OLD_FILES+=usr/share/man/man3/MD2Final.3.gz OLD_FILES+=usr/share/man/man3/MD2Init.3.gz OLD_FILES+=usr/share/man/man3/MD2Update.3.gz OLD_FILES+=usr/share/man/man3/md2.3.gz # 20120425: libusb version bump (r234684) OLD_LIBS+=usr/lib/libusb.so.2 OLD_LIBS+=usr/lib32/libusb.so.2 OLD_FILES+=usr/share/man/man3/libsub_get_active_config_descriptor.3.gz # 20120415: new clang import which bumps version from 3.0 to 3.1 OLD_FILES+=usr/include/clang/3.0/altivec.h OLD_FILES+=usr/include/clang/3.0/avxintrin.h OLD_FILES+=usr/include/clang/3.0/emmintrin.h OLD_FILES+=usr/include/clang/3.0/immintrin.h OLD_FILES+=usr/include/clang/3.0/mm3dnow.h OLD_FILES+=usr/include/clang/3.0/mm_malloc.h OLD_FILES+=usr/include/clang/3.0/mmintrin.h OLD_FILES+=usr/include/clang/3.0/nmmintrin.h OLD_FILES+=usr/include/clang/3.0/pmmintrin.h OLD_FILES+=usr/include/clang/3.0/smmintrin.h OLD_FILES+=usr/include/clang/3.0/tmmintrin.h OLD_FILES+=usr/include/clang/3.0/wmmintrin.h OLD_FILES+=usr/include/clang/3.0/x86intrin.h OLD_FILES+=usr/include/clang/3.0/xmmintrin.h OLD_DIRS+=usr/include/clang/3.0 # 20120412: BIND 9.8.1 release notes removed OLD_FILES+=usr/share/doc/bind9/RELEASE-NOTES-BIND-9.8.1.pdf OLD_FILES+=usr/share/doc/bind9/RELEASE-NOTES-BIND-9.8.1.txt OLD_FILES+=usr/share/doc/bind9/RELEASE-NOTES-BIND-9.8.1.html OLD_FILES+=usr/share/doc/bind9/release-notes.css # 20120330: legacy(4) moved to x86 OLD_FILES+=usr/include/machine/legacyvar.h # 20120324: MPI headers updated OLD_FILES+=usr/include/dev/mpt/mpilib/mpi_inb.h # 20120322: hwpmc_mips24k.h removed OLD_FILES+=usr/include/dev/hwpmc/hwpmc_mips24k.h # 20120322: Update heimdal to 1.5.1. OLD_FILES+=usr/include/krb5-v4compat.h \ usr/include/krb_err.h \ usr/include/hdb-private.h \ usr/share/man/man3/krb5_addresses.3.gz \ usr/share/man/man3/krb5_cc_cursor.3.gz \ usr/share/man/man3/krb5_cc_ops.3.gz \ usr/share/man/man3/krb5_config.3.gz \ usr/share/man/man3/krb5_config_get_int_default.3.gz \ usr/share/man/man3/krb5_context.3.gz \ usr/share/man/man3/krb5_data.3.gz \ usr/share/man/man3/krb5_err.3.gz \ usr/share/man/man3/krb5_errx.3.gz \ usr/share/man/man3/krb5_keyblock.3.gz \ usr/share/man/man3/krb5_keytab_entry.3.gz \ usr/share/man/man3/krb5_kt_cursor.3.gz \ usr/share/man/man3/krb5_kt_ops.3.gz \ usr/share/man/man3/krb5_set_warn_dest.3.gz \ usr/share/man/man3/krb5_verr.3.gz \ usr/share/man/man3/krb5_verrx.3.gz \ usr/share/man/man3/krb5_vwarnx.3.gz \ usr/share/man/man3/krb5_warn.3.gz \ usr/share/man/man3/krb5_warnx.3.gz OLD_LIBS+=usr/lib/libasn1.so.10 \ usr/lib/libhdb.so.10 \ usr/lib/libheimntlm.so.10 \ usr/lib/libhx509.so.10 \ usr/lib/libkadm5clnt.so.10 \ usr/lib/libkadm5srv.so.10 \ usr/lib/libkafs5.so.10 \ usr/lib/libkrb5.so.10 \ usr/lib/libroken.so.10 \ usr/lib32/libasn1.so.10 \ usr/lib32/libhdb.so.10 \ usr/lib32/libheimntlm.so.10 \ usr/lib32/libhx509.so.10 \ usr/lib32/libkadm5clnt.so.10 \ usr/lib32/libkadm5srv.so.10 \ usr/lib32/libkafs5.so.10 \ usr/lib32/libkrb5.so.10 \ usr/lib32/libroken.so.10 # 20120309: Remove fifofs header files. OLD_FILES+=usr/include/fs/fifofs/fifo.h OLD_DIRS+=usr/include/fs/fifofs # 20120304: xlocale cleanup OLD_FILES+=usr/include/_xlocale_ctype.h # 20120225: libarchive 3.0.3 OLD_FILES+=usr/share/man/man3/archive_read_data_into_buffer.3.gz \ usr/share/man/man3/archive_read_support_compression_all.3.gz \ usr/share/man/man3/archive_read_support_compression_bzip2.3.gz \ usr/share/man/man3/archive_read_support_compression_compress.3.gz \ usr/share/man/man3/archive_read_support_compression_gzip.3.gz \ usr/share/man/man3/archive_read_support_compression_lzma.3.gz \ usr/share/man/man3/archive_read_support_compression_none.3.gz \ usr/share/man/man3/archive_read_support_compression_program.3.gz \ usr/share/man/man3/archive_read_support_compression_program_signature.3.gz \ usr/share/man/man3/archive_read_support_compression_xz.3.gz \ usr/share/man/man3/archive_write_set_callbacks.3.gz \ usr/share/man/man3/archive_write_set_compression_bzip2.3.gz \ usr/share/man/man3/archive_write_set_compression_compress.3.gz \ usr/share/man/man3/archive_write_set_compression_gzip.3.gz \ usr/share/man/man3/archive_write_set_compression_none.3.gz \ usr/share/man/man3/archive_write_set_compression_program.3.gz OLD_LIBS+=usr/lib/libarchive.so.5 OLD_LIBS+=usr/lib32/libarchive.so.5 # 20120113: removal of wtmpcvt(1) OLD_FILES+=usr/bin/wtmpcvt OLD_FILES+=usr/share/man/man1/wtmpcvt.1.gz # 20111214: eventtimers(7) moved to eventtimers(4) OLD_FILES+=usr/share/man/man7/eventtimers.7.gz # 20111125: amd(4) removed OLD_FILES+=usr/share/man/man4/amd.4.gz # 20111125: libodialog removed OLD_FILES+=usr/lib/libodialog.a OLD_FILES+=usr/lib/libodialog.so OLD_LIBS+=usr/lib/libodialog.so.7 OLD_FILES+=usr/lib/libodialog_p.a OLD_FILES+=usr/lib32/libodialog.a OLD_FILES+=usr/lib32/libodialog.so OLD_LIBS+=usr/lib32/libodialog.so.7 OLD_FILES+=usr/lib32/libodialog_p.a # 20110930: sysinstall removed OLD_FILES+=usr/sbin/sysinstall OLD_FILES+=usr/share/man/man8/sysinstall.8.gz OLD_FILES+=usr/lib/libftpio.a OLD_FILES+=usr/lib/libftpio.so OLD_LIBS+=usr/lib/libftpio.so.8 OLD_FILES+=usr/lib/libftpio_p.a OLD_FILES+=usr/lib32/libftpio.a OLD_FILES+=usr/lib32/libftpio.so OLD_LIBS+=usr/lib32/libftpio.so.8 OLD_FILES+=usr/lib32/libftpio_p.a OLD_FILES+=usr/include/ftpio.h OLD_FILES+=usr/share/man/man3/ftpio.3.gz # 20110915: rename congestion control manpages OLD_FILES+=usr/share/man/man9/cc.9.gz # 20110831: atomic page flags operations OLD_FILES+=usr/share/man/man9/vm_page_flag.9.gz OLD_FILES+=usr/share/man/man9/vm_page_flag_clear.9.gz OLD_FILES+=usr/share/man/man9/vm_page_flag_set.9.gz # 20110828: library version bump for 9.0 OLD_LIBS+=lib/libcam.so.5 OLD_LIBS+=lib/libpcap.so.7 OLD_LIBS+=lib/libufs.so.5 OLD_LIBS+=usr/lib/libbsnmp.so.5 OLD_LIBS+=usr/lib/libdwarf.so.2 OLD_LIBS+=usr/lib/libopie.so.6 OLD_LIBS+=usr/lib/librtld_db.so.1 OLD_LIBS+=usr/lib/libtacplus.so.4 OLD_LIBS+=usr/lib32/libcam.so.5 OLD_LIBS+=usr/lib32/libpcap.so.7 OLD_LIBS+=usr/lib32/libufs.so.5 OLD_LIBS+=usr/lib32/libbsnmp.so.5 OLD_LIBS+=usr/lib32/libdwarf.so.2 OLD_LIBS+=usr/lib32/libopie.so.6 OLD_LIBS+=usr/lib32/librtld_db.so.1 OLD_LIBS+=usr/lib32/libtacplus.so.4 # 20110817: no more acd.4, ad.4, afd.4 and ast.4 OLD_FILES+=usr/share/man/man4/acd.4.gz OLD_FILES+=usr/share/man/man4/ad.4.gz OLD_FILES+=usr/share/man/man4/afd.4.gz OLD_FILES+=usr/share/man/man4/ast.4.gz # 20110718: no longer useful in the age of rc.d OLD_FILES+=usr/sbin/named.reconfig OLD_FILES+=usr/sbin/named.reload OLD_FILES+=usr/share/man/man8/named.reconfig.8.gz OLD_FILES+=usr/share/man/man8/named.reload.8.gz # 20110716: bind 9.8.0 import OLD_LIBS+=usr/lib/liblwres.so.50 OLD_FILES+=usr/share/doc/bind9/KNOWN-DEFECTS OLD_FILES+=usr/share/doc/bind9/NSEC3-NOTES OLD_FILES+=usr/share/doc/bind9/README.idnkit OLD_FILES+=usr/share/doc/bind9/README.pkcs11 # 20110709: vm_map_clean.9 -> vm_map_sync.9 OLD_FILES+=usr/share/man/man9/vm_map_clean.9.gz # 20110709: Catch up with removal of these functions. OLD_FILES+=usr/share/man/man9/vm_page_copy.9.gz OLD_FILES+=usr/share/man/man9/vm_page_protect.9.gz OLD_FILES+=usr/share/man/man9/vm_page_zero_fill.9.gz # 20110707: script no longer needed by /etc/rc.d/nfsd OLD_FILES+=etc/rc.d/nfsserver # 20110705: files moved so both NFS clients can share them OLD_FILES+=usr/include/nfsclient/krpc.h OLD_FILES+=usr/include/nfsclient/nfsdiskless.h # 20110705: the switch of default NFS client to the new one OLD_FILES+=sbin/mount_newnfs OLD_FILES+=usr/share/man/man8/mount_newnfs.8.gz OLD_FILES+=usr/include/nfsclient/nfs_kdtrace.h # 20110628: calendar.msk removed OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.msk # 20110517: libpkg removed OLD_FILES+=usr/include/pkg.h OLD_FILES+=usr/lib/libpkg.a OLD_FILES+=usr/lib/libpkg.so OLD_LIBS+=usr/lib/libpkg.so.0 OLD_FILES+=usr/lib/libpkg_p.a OLD_FILES+=usr/lib32/libpkg.a OLD_FILES+=usr/lib32/libpkg.so OLD_LIBS+=usr/lib32/libpkg.so.0 OLD_FILES+=usr/lib32/libpkg_p.a # 20110517: libsbuf version bump OLD_LIBS+=lib/libsbuf.so.5 OLD_LIBS+=usr/lib32/libsbuf.so.5 # 20110502: new clang import which bumps version from 2.9 to 3.0 OLD_FILES+=usr/include/clang/2.9/emmintrin.h OLD_FILES+=usr/include/clang/2.9/mm_malloc.h OLD_FILES+=usr/include/clang/2.9/mmintrin.h OLD_FILES+=usr/include/clang/2.9/pmmintrin.h OLD_FILES+=usr/include/clang/2.9/tmmintrin.h OLD_FILES+=usr/include/clang/2.9/xmmintrin.h OLD_DIRS+=usr/include/clang/2.9 # 20110417: removal of Objective-C support OLD_FILES+=usr/include/objc/encoding.h OLD_FILES+=usr/include/objc/hash.h OLD_FILES+=usr/include/objc/NXConstStr.h OLD_FILES+=usr/include/objc/objc-api.h OLD_FILES+=usr/include/objc/objc-decls.h OLD_FILES+=usr/include/objc/objc-list.h OLD_FILES+=usr/include/objc/objc.h OLD_FILES+=usr/include/objc/Object.h OLD_FILES+=usr/include/objc/Protocol.h OLD_FILES+=usr/include/objc/runtime.h OLD_FILES+=usr/include/objc/sarray.h OLD_FILES+=usr/include/objc/thr.h OLD_FILES+=usr/include/objc/typedstream.h OLD_FILES+=usr/lib/libobjc.a OLD_FILES+=usr/lib/libobjc.so OLD_FILES+=usr/lib/libobjc_p.a OLD_FILES+=usr/libexec/cc1obj OLD_LIBS+=usr/lib/libobjc.so.4 OLD_DIRS+=usr/include/objc OLD_FILES+=usr/lib32/libobjc.a OLD_FILES+=usr/lib32/libobjc.so OLD_FILES+=usr/lib32/libobjc_p.a OLD_LIBS+=usr/lib32/libobjc.so.4 # 20110331: firmware.img created at build time OLD_FILES+=usr/share/examples/kld/firmware/fwimage/firmware.img # 20110224: sticky.8 -> sticky.7 OLD_FILES+=usr/share/man/man8/sticky.8.gz # 20110220: new clang import which bumps version from 2.8 to 2.9 OLD_FILES+=usr/include/clang/2.8/emmintrin.h OLD_FILES+=usr/include/clang/2.8/mm_malloc.h OLD_FILES+=usr/include/clang/2.8/mmintrin.h OLD_FILES+=usr/include/clang/2.8/pmmintrin.h OLD_FILES+=usr/include/clang/2.8/tmmintrin.h OLD_FILES+=usr/include/clang/2.8/xmmintrin.h OLD_DIRS+=usr/include/clang/2.8 # 20110119: netinet/sctp_cc_functions.h removed OLD_FILES+=usr/include/netinet/sctp_cc_functions.h # 20110119: Remove SYSCTL_*X* sysctl additions. OLD_FILES+=usr/share/man/man9/SYSCTL_XINT.9.gz \ usr/share/man/man9/SYSCTL_XLONG.9.gz # 20110112: Update dialog to new version, rename old libdialog to libodialog, # removing associated man pages and header files. OLD_FILES+=usr/share/man/man3/draw_shadow.3.gz \ usr/share/man/man3/draw_box.3.gz usr/share/man/man3/line_edit.3.gz \ usr/share/man/man3/strheight.3.gz usr/share/man/man3/strwidth.3.gz \ usr/share/man/man3/dialog_create_rc.3.gz \ usr/share/man/man3/dialog_yesno.3.gz usr/share/man/man3/dialog_noyes.3.gz \ usr/share/man/man3/dialog_prgbox.3.gz \ usr/share/man/man3/dialog_textbox.3.gz usr/share/man/man3/dialog_menu.3.gz \ usr/share/man/man3/dialog_checklist.3.gz \ usr/share/man/man3/dialog_radiolist.3.gz \ usr/share/man/man3/dialog_inputbox.3.gz \ usr/share/man/man3/dialog_clear_norefresh.3.gz \ usr/share/man/man3/dialog_clear.3.gz usr/share/man/man3/dialog_update.3.gz \ usr/share/man/man3/dialog_fselect.3.gz \ usr/share/man/man3/dialog_notify.3.gz \ usr/share/man/man3/dialog_mesgbox.3.gz \ usr/share/man/man3/dialog_gauge.3.gz usr/share/man/man3/init_dialog.3.gz \ usr/share/man/man3/end_dialog.3.gz usr/share/man/man3/use_helpfile.3.gz \ usr/share/man/man3/use_helpline.3.gz usr/share/man/man3/get_helpline.3.gz \ usr/share/man/man3/restore_helpline.3.gz \ usr/share/man/man3/dialog_msgbox.3.gz \ usr/share/man/man3/dialog_ftree.3.gz usr/share/man/man3/dialog_tree.3.gz \ usr/share/examples/dialog/README usr/share/examples/dialog/checklist \ usr/share/examples/dialog/ftreebox usr/share/examples/dialog/infobox \ usr/share/examples/dialog/inputbox usr/share/examples/dialog/menubox \ usr/share/examples/dialog/msgbox usr/share/examples/dialog/prgbox \ usr/share/examples/dialog/radiolist usr/share/examples/dialog/textbox \ usr/share/examples/dialog/treebox usr/share/examples/dialog/yesno \ usr/share/examples/libdialog/Makefile usr/share/examples/libdialog/check1.c\ usr/share/examples/libdialog/check2.c usr/share/examples/libdialog/check3.c\ usr/share/examples/libdialog/dselect.c \ usr/share/examples/libdialog/fselect.c \ usr/share/examples/libdialog/ftree1.c \ usr/share/examples/libdialog/ftree1.test \ usr/share/examples/libdialog/ftree2.c \ usr/share/examples/libdialog/ftree2.test \ usr/share/examples/libdialog/gauge.c usr/share/examples/libdialog/input1.c \ usr/share/examples/libdialog/input2.c usr/share/examples/libdialog/menu1.c \ usr/share/examples/libdialog/menu2.c usr/share/examples/libdialog/menu3.c \ usr/share/examples/libdialog/msg.c usr/share/examples/libdialog/prgbox.c \ usr/share/examples/libdialog/radio1.c usr/share/examples/libdialog/radio2.c\ usr/share/examples/libdialog/radio3.c usr/share/examples/libdialog/text.c \ usr/share/examples/libdialog/tree.c usr/share/examples/libdialog/yesno.c OLD_DIRS+=usr/share/examples/libdialog usr/share/examples/dialog # 20101114: Remove long-obsolete MAKEDEV.8 OLD_FILES+=usr/share/man/man8/MAKEDEV.8.gz # 20101112: vgonel(9) has gone to private API a while ago OLD_FILES+=usr/share/man/man9/vgonel.9.gz # 20101112: removed gasp.info OLD_FILES+=usr/share/info/gasp.info.gz # 20101109: machine/mutex.h removed OLD_FILES+=usr/include/machine/mutex.h # 20101109: headers moved from machine/ to x86/ .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/machine/mptable.h .endif # 20101101: headers moved from machine/ to x86/ .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/machine/apicreg.h OLD_FILES+=usr/include/machine/mca.h .endif # 20101020: catch up with vm_page_sleep_if_busy rename OLD_FILES+=usr/share/man/man9/vm_page_sleep_busy.9.gz # 20101018: taskqueue(9) updates OLD_FILES+=usr/share/man/man9/taskqueue_find.9.gz # 20101011: removed subblock.h from liblzma OLD_FILES+=usr/include/lzma/subblock.h # 20101002: removed manpath.config OLD_FILES+=etc/manpath.config OLD_FILES+=usr/share/examples/etc/manpath.config # 20100910: renamed sbuf_overflowed to sbuf_error OLD_FILES+=usr/share/man/man9/sbuf_overflowed.9.gz # 20100815: retired last traces of chooseproc(9) OLD_FILES+=usr/share/man/man9/chooseproc.9.gz # 20100806: removal of unused libcompat routines OLD_FILES+=usr/share/man/man3/ascftime.3.gz OLD_FILES+=usr/share/man/man3/cfree.3.gz OLD_FILES+=usr/share/man/man3/cftime.3.gz OLD_FILES+=usr/share/man/man3/getpw.3.gz # 20100801: tzdata2010k import OLD_FILES+=usr/share/zoneinfo/Pacific/Ponape OLD_FILES+=usr/share/zoneinfo/Pacific/Truk # 20100725: acpi_aiboost(4) removal. OLD_FILES+=usr/share/man/man4/acpi_aiboost.4.gz # 20100724: nfsclient/nfs_lock.h moved to nfs/nfs_lock.h OLD_FILES+=usr/include/nfsclient/nfs_lock.h # 20100720: new clang import which bumps version from 2.0 to 2.8 OLD_FILES+=usr/include/clang/2.0/emmintrin.h OLD_FILES+=usr/include/clang/2.0/mm_malloc.h OLD_FILES+=usr/include/clang/2.0/mmintrin.h OLD_FILES+=usr/include/clang/2.0/pmmintrin.h OLD_FILES+=usr/include/clang/2.0/tmmintrin.h OLD_FILES+=usr/include/clang/2.0/xmmintrin.h OLD_DIRS+=usr/include/clang/2.0 # 20100706: removed pc-sysinstall's detect-vmware.sh OLD_FILES+=usr/share/pc-sysinstall/backend-query/detect-vmware.sh # 20100701: [powerpc] removed .if ${TARGET_ARCH} == "powerpc" OLD_FILES+=usr/include/machine/intr.h .endif # 20100514: library version bump for versioned symbols for liblzma OLD_LIBS+=usr/lib/liblzma.so.0 OLD_LIBS+=usr/lib32/liblzma.so.0 # 20100511: move GCC-specific headers to /usr/include/gcc .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/emmintrin.h OLD_FILES+=usr/include/mm_malloc.h OLD_FILES+=usr/include/pmmintrin.h OLD_FILES+=usr/include/xmmintrin.h .endif .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "arm" OLD_FILES+=usr/include/mmintrin.h .endif .if ${TARGET_ARCH} == "powerpc" OLD_FILES+=usr/include/altivec.h OLD_FILES+=usr/include/ppc-asm.h OLD_FILES+=usr/include/spe.h .endif # 20100416: [mips] removed .if ${TARGET_ARCH} == "mips" OLD_FILES+=usr/include/machine/psl.h .endif # 20100415: [mips] removed unused headers .if ${TARGET_ARCH} == "mips" OLD_FILES+=usr/include/machine/archtype.h OLD_FILES+=usr/include/machine/segments.h OLD_FILES+=usr/include/machine/rm7000.h OLD_FILES+=usr/include/machine/defs.h OLD_FILES+=usr/include/machine/queue.h .endif # 20100326: gcpio removal OLD_FILES+=usr/bin/gcpio OLD_FILES+=usr/share/info/cpio.info.gz OLD_FILES+=usr/share/man/man1/gcpio.1.gz # 20100322: libz update OLD_LIBS+=lib/libz.so.5 OLD_LIBS+=usr/lib32/libz.so.5 # 20100314: removal of regexp.h OLD_FILES+=usr/include/regexp.h OLD_FILES+=usr/share/man/man3/regexp.3.gz OLD_FILES+=usr/share/man/man3/regsub.3.gz # 20100303: actual removal of utmp.h OLD_FILES+=usr/include/utmp.h # 20100208: man pages moved .if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/share/man/man4/i386/alpm.4.gz OLD_FILES+=usr/share/man/man4/i386/amdpm.4.gz OLD_FILES+=usr/share/man/man4/i386/mcd.4.gz OLD_FILES+=usr/share/man/man4/i386/padlock.4.gz OLD_FILES+=usr/share/man/man4/i386/pcf.4.gz OLD_FILES+=usr/share/man/man4/i386/scd.4.gz OLD_FILES+=usr/share/man/man4/i386/viapm.4.gz .endif # 20100122: move BSDL bc/dc USD documents to /usr/share/doc/usd OLD_FILES+=usr/share/doc/papers/bc.ascii.gz OLD_FILES+=usr/share/doc/papers/dc.ascii.gz # 20100120: replacing GNU bc/dc with BSDL versions OLD_FILES+=usr/share/examples/bc/ckbook.b OLD_FILES+=usr/share/examples/bc/pi.b OLD_FILES+=usr/share/examples/bc/primes.b OLD_FILES+=usr/share/examples/bc/twins.b OLD_FILES+=usr/share/info/dc.info.gz OLD_DIRS+=usr/share/examples/bc # 20100114: removal of ttyslot(3) OLD_FILES+=usr/share/man/man3/ttyslot.3.gz # 20100113: remove utmp.h, replace it by utmpx.h OLD_FILES+=usr/share/man/man3/login.3.gz OLD_FILES+=usr/share/man/man3/logout.3.gz OLD_FILES+=usr/share/man/man3/logwtmp.3.gz OLD_FILES+=usr/share/man/man3/ulog_endutxent.3.gz OLD_FILES+=usr/share/man/man3/ulog_getutxent.3.gz OLD_FILES+=usr/share/man/man3/ulog_getutxline.3.gz OLD_FILES+=usr/share/man/man3/ulog_getutxuser.3.gz OLD_FILES+=usr/share/man/man3/ulog_pututxline.3.gz OLD_FILES+=usr/share/man/man3/ulog_setutxent.3.gz OLD_FILES+=usr/share/man/man3/ulog_setutxfile.3.gz OLD_FILES+=usr/share/man/man5/lastlog.5.gz OLD_FILES+=usr/share/man/man5/utmp.5.gz OLD_FILES+=usr/share/man/man5/wtmp.5.gz OLD_LIBS+=lib/libutil.so.8 OLD_LIBS+=usr/lib32/libutil.so.8 # 20100105: new userland semaphore implementation OLD_FILES+=usr/include/sys/semaphore.h # 20100103: ntptrace(8) removed OLD_FILES+=usr/sbin/ntptrace OLD_FILES+=usr/share/man/man8/ntptrace.8.gz # 20091229: remove no longer relevant examples OLD_FILES+=usr/share/examples/pppd/auth-down.sample OLD_FILES+=usr/share/examples/pppd/auth-up.sample OLD_FILES+=usr/share/examples/pppd/chap-secrets.sample OLD_FILES+=usr/share/examples/pppd/chat.sh.sample OLD_FILES+=usr/share/examples/pppd/ip-down.sample OLD_FILES+=usr/share/examples/pppd/ip-up.sample OLD_FILES+=usr/share/examples/pppd/options.sample OLD_FILES+=usr/share/examples/pppd/pap-secrets.sample OLD_FILES+=usr/share/examples/pppd/ppp.deny.sample OLD_FILES+=usr/share/examples/pppd/ppp.shells.sample OLD_DIRS+=usr/share/examples/pppd OLD_FILES+=usr/share/examples/slattach/unit-command.sh OLD_DIRS+=usr/share/examples/slattach OLD_FILES+=usr/share/examples/sliplogin/slip.hosts OLD_FILES+=usr/share/examples/sliplogin/slip.login OLD_FILES+=usr/share/examples/sliplogin/slip.logout OLD_FILES+=usr/share/examples/sliplogin/slip.slparms OLD_DIRS+=usr/share/examples/sliplogin OLD_FILES+=usr/share/examples/startslip/sldown.sh OLD_FILES+=usr/share/examples/startslip/slip.sh OLD_FILES+=usr/share/examples/startslip/slup.sh OLD_DIRS+=usr/share/examples/startslip # 20091202: unify rc.firewall and rc.firewall6. OLD_FILES+=etc/rc.d/ip6fw OLD_FILES+=etc/rc.firewall6 OLD_FILES+=usr/share/examples/etc/rc.firewall6 # 20091117: removal of rc.early(8) link OLD_FILES+=usr/share/man/man8/rc.early.8.gz # 20091117: usr/share/zoneinfo/GMT link removed OLD_FILES+=usr/share/zoneinfo/GMT # 20091027: pselect.3 implemented as syscall OLD_FILES+=usr/share/man/man3/pselect.3.gz # 20091005: fusword.9 and susword.9 removed OLD_FILES+=usr/share/man/man9/fusword.9.gz OLD_FILES+=usr/share/man/man9/susword.9.gz # 20090909: vesa and dpms promoted to be i386/amd64 common OLD_FILES+=usr/include/machine/pc/vesa.h OLD_FILES+=usr/share/man/man4/i386/dpms.4.gz # 20090904: remove lukemftpd OLD_FILES+=usr/libexec/lukemftpd OLD_FILES+=usr/share/man/man5/ftpd.conf.5.gz OLD_FILES+=usr/share/man/man5/ftpusers.5.gz OLD_FILES+=usr/share/man/man8/lukemftpd.8.gz # 20090902: BSD.{x11,x11-4}.dist are dead and BSD.local.dist lives in ports/ OLD_FILES+=etc/mtree/BSD.local.dist OLD_FILES+=etc/mtree/BSD.x11.dist OLD_FILES+=etc/mtree/BSD.x11-4.dist # 20090812: net80211 documentation overhaul OLD_FILES+=usr/share/man/man9/ieee80211_add_rates.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_add_xrates.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_alloc_node.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_attach.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_begin_scan.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_cfgget.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_cfgset.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_chan2ieee.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_chan2mode.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_create_ibss.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_crypto_attach.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_crypto_detach.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_decap.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_dump_pkt.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_dup_bss.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_encap.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_end_scan.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_find_node.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_fix_rate.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_free_allnodes.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_ieee2mhz.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_ioctl.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_lookup_node.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_media2rate.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_media_change.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_media_init.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_media_status.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_mhz2ieee.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_next_scan.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_node_attach.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_node_detach.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_node_lateattach.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_print_essid.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_proto_attach.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_proto_detach.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_rate2media.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_recv_mgmt.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_send_mgmt.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_setmode.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_timeout_nodes.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_watchdog.9.gz OLD_FILES+=usr/share/man/man9/ieee80211_wep_crypt.9.gz # 20090801: vimage.h removed in favour of vnet.h OLD_FILES+=usr/include/sys/vimage.h # 20101208: libbsnmp was moved to usr/lib OLD_LIBS+=lib/libbsnmp.so.5 # 20090719: library version bump for 8.0 OLD_LIBS+=lib/libalias.so.6 OLD_LIBS+=lib/libavl.so.1 OLD_LIBS+=lib/libbegemot.so.3 OLD_LIBS+=lib/libbsdxml.so.3 OLD_LIBS+=lib/libbsnmp.so.4 OLD_LIBS+=lib/libcam.so.4 OLD_LIBS+=lib/libcrypt.so.4 OLD_LIBS+=lib/libcrypto.so.5 OLD_LIBS+=lib/libctf.so.1 OLD_LIBS+=lib/libdevstat.so.6 OLD_LIBS+=lib/libdtrace.so.1 OLD_LIBS+=lib/libedit.so.6 OLD_LIBS+=lib/libgeom.so.4 OLD_LIBS+=lib/libipsec.so.3 OLD_LIBS+=lib/libipx.so.4 OLD_LIBS+=lib/libkiconv.so.3 OLD_LIBS+=lib/libkvm.so.4 OLD_LIBS+=lib/libmd.so.4 OLD_LIBS+=lib/libncurses.so.7 OLD_LIBS+=lib/libncursesw.so.7 OLD_LIBS+=lib/libnvpair.so.1 OLD_LIBS+=lib/libpcap.so.6 OLD_LIBS+=lib/libreadline.so.7 OLD_LIBS+=lib/libsbuf.so.4 OLD_LIBS+=lib/libufs.so.4 OLD_LIBS+=lib/libumem.so.1 OLD_LIBS+=lib/libutil.so.7 OLD_LIBS+=lib/libuutil.so.1 OLD_LIBS+=lib/libz.so.4 OLD_LIBS+=lib/libzfs.so.1 OLD_LIBS+=lib/libzpool.so.1 OLD_LIBS+=usr/lib/libarchive.so.4 OLD_LIBS+=usr/lib/libauditd.so.4 OLD_LIBS+=usr/lib/libbluetooth.so.3 OLD_LIBS+=usr/lib/libbsm.so.2 OLD_LIBS+=usr/lib/libbz2.so.3 OLD_LIBS+=usr/lib/libcalendar.so.4 OLD_LIBS+=usr/lib/libcom_err.so.4 OLD_LIBS+=usr/lib/libdevinfo.so.4 OLD_LIBS+=usr/lib/libdialog.so.6 OLD_LIBS+=usr/lib/libdwarf.so.1 OLD_LIBS+=usr/lib/libfetch.so.5 OLD_LIBS+=usr/lib/libform.so.4 OLD_LIBS+=usr/lib/libformw.so.4 OLD_LIBS+=usr/lib/libftpio.so.7 OLD_LIBS+=usr/lib/libgnuregex.so.4 OLD_LIBS+=usr/lib/libgpib.so.2 OLD_LIBS+=usr/lib/libhistory.so.7 OLD_LIBS+=usr/lib/libmagic.so.3 OLD_LIBS+=usr/lib/libmemstat.so.2 OLD_LIBS+=usr/lib/libmenu.so.4 OLD_LIBS+=usr/lib/libmenuw.so.4 OLD_LIBS+=usr/lib/libmilter.so.4 OLD_LIBS+=usr/lib/libncp.so.3 OLD_LIBS+=usr/lib/libnetgraph.so.3 OLD_LIBS+=usr/lib/libngatm.so.3 OLD_LIBS+=usr/lib/libobjc.so.3 OLD_LIBS+=usr/lib/libopie.so.5 OLD_LIBS+=usr/lib/libpam.so.4 OLD_LIBS+=usr/lib/libpanel.so.4 OLD_LIBS+=usr/lib/libpanelw.so.4 OLD_LIBS+=usr/lib/libpmc.so.4 OLD_LIBS+=usr/lib/libproc.so.1 OLD_LIBS+=usr/lib/libradius.so.3 OLD_LIBS+=usr/lib/librpcsvc.so.4 OLD_LIBS+=usr/lib/libsdp.so.3 OLD_LIBS+=usr/lib/libsmb.so.3 OLD_LIBS+=usr/lib/libssh.so.4 OLD_LIBS+=usr/lib/libssl.so.5 OLD_LIBS+=usr/lib/libtacplus.so.3 OLD_LIBS+=usr/lib/libugidfw.so.3 OLD_LIBS+=usr/lib/libusb.so.1 OLD_LIBS+=usr/lib/libusbhid.so.3 OLD_LIBS+=usr/lib/libvgl.so.5 OLD_LIBS+=usr/lib/libwrap.so.5 OLD_LIBS+=usr/lib/libypclnt.so.3 OLD_LIBS+=usr/lib/pam_chroot.so.4 OLD_LIBS+=usr/lib/pam_deny.so.4 OLD_LIBS+=usr/lib/pam_echo.so.4 OLD_LIBS+=usr/lib/pam_exec.so.4 OLD_LIBS+=usr/lib/pam_ftpusers.so.4 OLD_LIBS+=usr/lib/pam_group.so.4 OLD_LIBS+=usr/lib/pam_guest.so.4 OLD_LIBS+=usr/lib/pam_krb5.so.4 OLD_LIBS+=usr/lib/pam_ksu.so.4 OLD_LIBS+=usr/lib/pam_lastlog.so.4 OLD_LIBS+=usr/lib/pam_login_access.so.4 OLD_LIBS+=usr/lib/pam_nologin.so.4 OLD_LIBS+=usr/lib/pam_opie.so.4 OLD_LIBS+=usr/lib/pam_opieaccess.so.4 OLD_LIBS+=usr/lib/pam_passwdqc.so.4 OLD_LIBS+=usr/lib/pam_permit.so.4 OLD_LIBS+=usr/lib/pam_radius.so.4 OLD_LIBS+=usr/lib/pam_rhosts.so.4 OLD_LIBS+=usr/lib/pam_rootok.so.4 OLD_LIBS+=usr/lib/pam_securetty.so.4 OLD_LIBS+=usr/lib/pam_self.so.4 OLD_LIBS+=usr/lib/pam_ssh.so.4 OLD_LIBS+=usr/lib/pam_tacplus.so.4 OLD_LIBS+=usr/lib/pam_unix.so.4 OLD_LIBS+=usr/lib/snmp_atm.so.5 OLD_LIBS+=usr/lib/snmp_bridge.so.5 OLD_LIBS+=usr/lib/snmp_hostres.so.5 OLD_LIBS+=usr/lib/snmp_mibII.so.5 OLD_LIBS+=usr/lib/snmp_netgraph.so.5 OLD_LIBS+=usr/lib/snmp_pf.so.5 OLD_LIBS+=usr/lib32/libalias.so.6 OLD_LIBS+=usr/lib32/libarchive.so.4 OLD_LIBS+=usr/lib32/libauditd.so.4 OLD_LIBS+=usr/lib32/libavl.so.1 OLD_LIBS+=usr/lib32/libbegemot.so.3 OLD_LIBS+=usr/lib32/libbluetooth.so.3 OLD_LIBS+=usr/lib32/libbsdxml.so.3 OLD_LIBS+=usr/lib32/libbsm.so.2 OLD_LIBS+=usr/lib32/libbsnmp.so.4 OLD_LIBS+=usr/lib32/libbz2.so.3 OLD_LIBS+=usr/lib32/libcalendar.so.4 OLD_LIBS+=usr/lib32/libcam.so.4 OLD_LIBS+=usr/lib32/libcom_err.so.4 OLD_LIBS+=usr/lib32/libcrypt.so.4 OLD_LIBS+=usr/lib32/libcrypto.so.5 OLD_LIBS+=usr/lib32/libctf.so.1 OLD_LIBS+=usr/lib32/libdevinfo.so.4 OLD_LIBS+=usr/lib32/libdevstat.so.6 OLD_LIBS+=usr/lib32/libdialog.so.6 OLD_LIBS+=usr/lib32/libdtrace.so.1 OLD_LIBS+=usr/lib32/libdwarf.so.1 OLD_LIBS+=usr/lib32/libedit.so.6 OLD_LIBS+=usr/lib32/libfetch.so.5 OLD_LIBS+=usr/lib32/libform.so.4 OLD_LIBS+=usr/lib32/libformw.so.4 OLD_LIBS+=usr/lib32/libftpio.so.7 OLD_LIBS+=usr/lib32/libgeom.so.4 OLD_LIBS+=usr/lib32/libgnuregex.so.4 OLD_LIBS+=usr/lib32/libgpib.so.2 OLD_LIBS+=usr/lib32/libhistory.so.7 OLD_LIBS+=usr/lib32/libipsec.so.3 OLD_LIBS+=usr/lib32/libipx.so.4 OLD_LIBS+=usr/lib32/libkiconv.so.3 OLD_LIBS+=usr/lib32/libkvm.so.4 OLD_LIBS+=usr/lib32/libmagic.so.3 OLD_LIBS+=usr/lib32/libmd.so.4 OLD_LIBS+=usr/lib32/libmemstat.so.2 OLD_LIBS+=usr/lib32/libmenu.so.4 OLD_LIBS+=usr/lib32/libmenuw.so.4 OLD_LIBS+=usr/lib32/libmilter.so.4 OLD_LIBS+=usr/lib32/libncp.so.3 OLD_LIBS+=usr/lib32/libncurses.so.7 OLD_LIBS+=usr/lib32/libncursesw.so.7 OLD_LIBS+=usr/lib32/libnetgraph.so.3 OLD_LIBS+=usr/lib32/libngatm.so.3 OLD_LIBS+=usr/lib32/libnvpair.so.1 OLD_LIBS+=usr/lib32/libobjc.so.3 OLD_LIBS+=usr/lib32/libopie.so.5 OLD_LIBS+=usr/lib32/libpam.so.4 OLD_LIBS+=usr/lib32/libpanel.so.4 OLD_LIBS+=usr/lib32/libpanelw.so.4 OLD_LIBS+=usr/lib32/libpcap.so.6 OLD_LIBS+=usr/lib32/libpmc.so.4 OLD_LIBS+=usr/lib32/libproc.so.1 OLD_LIBS+=usr/lib32/libradius.so.3 OLD_LIBS+=usr/lib32/libreadline.so.7 OLD_LIBS+=usr/lib32/librpcsvc.so.4 OLD_LIBS+=usr/lib32/libsbuf.so.4 OLD_LIBS+=usr/lib32/libsdp.so.3 OLD_LIBS+=usr/lib32/libsmb.so.3 OLD_LIBS+=usr/lib32/libssh.so.4 OLD_LIBS+=usr/lib32/libssl.so.5 OLD_LIBS+=usr/lib32/libtacplus.so.3 OLD_LIBS+=usr/lib32/libufs.so.4 OLD_LIBS+=usr/lib32/libugidfw.so.3 OLD_LIBS+=usr/lib32/libumem.so.1 OLD_LIBS+=usr/lib32/libusb.so.1 OLD_LIBS+=usr/lib32/libusbhid.so.3 OLD_LIBS+=usr/lib32/libutil.so.7 OLD_LIBS+=usr/lib32/libuutil.so.1 OLD_LIBS+=usr/lib32/libvgl.so.5 OLD_LIBS+=usr/lib32/libwrap.so.5 OLD_LIBS+=usr/lib32/libypclnt.so.3 OLD_LIBS+=usr/lib32/libz.so.4 OLD_LIBS+=usr/lib32/libzfs.so.1 OLD_LIBS+=usr/lib32/libzpool.so.1 OLD_LIBS+=usr/lib32/pam_chroot.so.4 OLD_LIBS+=usr/lib32/pam_deny.so.4 OLD_LIBS+=usr/lib32/pam_echo.so.4 OLD_LIBS+=usr/lib32/pam_exec.so.4 OLD_LIBS+=usr/lib32/pam_ftpusers.so.4 OLD_LIBS+=usr/lib32/pam_group.so.4 OLD_LIBS+=usr/lib32/pam_guest.so.4 OLD_LIBS+=usr/lib32/pam_krb5.so.4 OLD_LIBS+=usr/lib32/pam_ksu.so.4 OLD_LIBS+=usr/lib32/pam_lastlog.so.4 OLD_LIBS+=usr/lib32/pam_login_access.so.4 OLD_LIBS+=usr/lib32/pam_nologin.so.4 OLD_LIBS+=usr/lib32/pam_opie.so.4 OLD_LIBS+=usr/lib32/pam_opieaccess.so.4 OLD_LIBS+=usr/lib32/pam_passwdqc.so.4 OLD_LIBS+=usr/lib32/pam_permit.so.4 OLD_LIBS+=usr/lib32/pam_radius.so.4 OLD_LIBS+=usr/lib32/pam_rhosts.so.4 OLD_LIBS+=usr/lib32/pam_rootok.so.4 OLD_LIBS+=usr/lib32/pam_securetty.so.4 OLD_LIBS+=usr/lib32/pam_self.so.4 OLD_LIBS+=usr/lib32/pam_ssh.so.4 OLD_LIBS+=usr/lib32/pam_tacplus.so.4 OLD_LIBS+=usr/lib32/pam_unix.so.4 # 20090718: the gdm pam.d file is no longer required. OLD_FILES+=etc/pam.d/gdm # 20090714: net_add_domain(9) renamed to domain_add(9) OLD_FILES+=usr/share/man/man9/net_add_domain.9.gz # 20090713: vimage container structs removed. OLD_FILES+=usr/include/netinet/vinet.h OLD_FILES+=usr/include/netinet6/vinet6.h OLD_FILES+=usr/include/netipsec/vipsec.h # 20090712: ieee80211.4 -> net80211.4 OLD_FILES+=usr/share/man/man4/ieee80211.4.gz # 20090711: typo fixed, kproc_resume,.9 -> kproc_resume.9 OLD_FILES+=usr/share/man/man9/kproc_resume,.9.gz # 20090709: msgctl.3 msgget.3 msgrcv.3 msgsnd.3 manual pages moved OLD_FILES+=usr/share/man/man3/msgctl.3.gz OLD_FILES+=usr/share/man/man3/msgget.3.gz OLD_FILES+=usr/share/man/man3/msgrcv.3.gz OLD_FILES+=usr/share/man/man3/msgsnd.3.gz # 20090630: old kernel RPC implementation removal OLD_FILES+=usr/include/nfs/rpcv2.h # 20090624: update usbdi(9) OLD_FILES+=usr/share/man/man9/usbd_abort_default_pipe.9.gz OLD_FILES+=usr/share/man/man9/usbd_abort_pipe.9.gz OLD_FILES+=usr/share/man/man9/usbd_alloc_buffer.9.gz OLD_FILES+=usr/share/man/man9/usbd_alloc_xfer.9.gz OLD_FILES+=usr/share/man/man9/usbd_clear_endpoint_stall.9.gz OLD_FILES+=usr/share/man/man9/usbd_clear_endpoint_stall_async.9.gz OLD_FILES+=usr/share/man/man9/usbd_clear_endpoint_toggle.9.gz OLD_FILES+=usr/share/man/man9/usbd_close_pipe.9.gz OLD_FILES+=usr/share/man/man9/usbd_device2interface_handle.9.gz OLD_FILES+=usr/share/man/man9/usbd_do_request_async.9.gz OLD_FILES+=usr/share/man/man9/usbd_do_request_flags_pipe.9.gz OLD_FILES+=usr/share/man/man9/usbd_endpoint_count.9.gz OLD_FILES+=usr/share/man/man9/usbd_find_edesc.9.gz OLD_FILES+=usr/share/man/man9/usbd_find_idesc.9.gz OLD_FILES+=usr/share/man/man9/usbd_free_buffer.9.gz OLD_FILES+=usr/share/man/man9/usbd_free_xfer.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_buffer.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_config.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_config_desc.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_config_desc_full.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_config_descriptor.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_device_descriptor.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_endpoint_descriptor.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_interface_altindex.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_interface_descriptor.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_no_alts.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_quirks.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_speed.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_string.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_string_desc.9.gz OLD_FILES+=usr/share/man/man9/usbd_get_xfer_status.9.gz OLD_FILES+=usr/share/man/man9/usbd_interface2device_handle.9.gz OLD_FILES+=usr/share/man/man9/usbd_interface2endpoint_descriptor.9.gz OLD_FILES+=usr/share/man/man9/usbd_interface_count.9.gz OLD_FILES+=usr/share/man/man9/usbd_open_pipe.9.gz OLD_FILES+=usr/share/man/man9/usbd_open_pipe_intr.9.gz OLD_FILES+=usr/share/man/man9/usbd_pipe2device_handle.9.gz OLD_FILES+=usr/share/man/man9/usbd_set_config_index.9.gz OLD_FILES+=usr/share/man/man9/usbd_set_config_no.9.gz OLD_FILES+=usr/share/man/man9/usbd_set_interface.9.gz OLD_FILES+=usr/share/man/man9/usbd_setup_default_xfer.9.gz OLD_FILES+=usr/share/man/man9/usbd_setup_isoc_xfer.9.gz OLD_FILES+=usr/share/man/man9/usbd_setup_xfer.9.gz OLD_FILES+=usr/share/man/man9/usbd_sync_transfer.9.gz OLD_FILES+=usr/share/man/man9/usbd_transfer.9.gz OLD_FILES+=usr/share/man/man9/usb_find_desc.9.gz # 20090623: number of headers needed for a usb driver reduced OLD_FILES+=usr/include/dev/usb/usb_defs.h OLD_FILES+=usr/include/dev/usb/usb_error.h OLD_FILES+=usr/include/dev/usb/usb_handle_request.h OLD_FILES+=usr/include/dev/usb/usb_hid.h OLD_FILES+=usr/include/dev/usb/usb_lookup.h OLD_FILES+=usr/include/dev/usb/usb_mfunc.h OLD_FILES+=usr/include/dev/usb/usb_parse.h OLD_FILES+=usr/include/dev/usb/usb_revision.h # 20090609: devclass_add_driver is no longer public OLD_FILES+=usr/share/man/man9/devclass_add_driver.9.gz OLD_FILES+=usr/share/man/man9/devclass_delete_driver.9.gz OLD_FILES+=usr/share/man/man9/devclass_find_driver.9.gz # 20090605: removal of clists OLD_FILES+=usr/include/sys/clist.h # 20090602: removal of window(1) OLD_FILES+=usr/bin/window OLD_FILES+=usr/share/man/man1/window.1.gz # 20090531: bind 9.6.1rc1 import OLD_LIBS+=usr/lib/liblwres.so.30 # 20090530: removal of early.sh OLD_FILES+=etc/rc.d/early.sh # 20090527: renaming of S{LIST,TAILQ}_REMOVE_NEXT() to _REMOVE_AFTER() OLD_FILES+=usr/share/man/man3/SLIST_REMOVE_NEXT.3.gz OLD_FILES+=usr/share/man/man3/STAILQ_REMOVE_NEXT.3.gz # 20090527: removal of legacy USB stack OLD_FILES+=usr/include/legacy/dev/usb/dsbr100io.h OLD_FILES+=usr/include/legacy/dev/usb/ehcireg.h OLD_FILES+=usr/include/legacy/dev/usb/ehcivar.h OLD_FILES+=usr/include/legacy/dev/usb/hid.h OLD_FILES+=usr/include/legacy/dev/usb/if_urtwreg.h OLD_FILES+=usr/include/legacy/dev/usb/if_urtwvar.h OLD_FILES+=usr/include/legacy/dev/usb/ohcireg.h OLD_FILES+=usr/include/legacy/dev/usb/ohcivar.h OLD_FILES+=usr/include/legacy/dev/usb/rio500_usb.h OLD_FILES+=usr/include/legacy/dev/usb/rt2573_ucode.h OLD_FILES+=usr/include/legacy/dev/usb/sl811hsreg.h OLD_FILES+=usr/include/legacy/dev/usb/sl811hsvar.h OLD_FILES+=usr/include/legacy/dev/usb/ubser.h OLD_FILES+=usr/include/legacy/dev/usb/ucomvar.h OLD_FILES+=usr/include/legacy/dev/usb/udbp.h OLD_FILES+=usr/include/legacy/dev/usb/uftdireg.h OLD_FILES+=usr/include/legacy/dev/usb/ugraphire_rdesc.h OLD_FILES+=usr/include/legacy/dev/usb/uhcireg.h OLD_FILES+=usr/include/legacy/dev/usb/uhcivar.h OLD_FILES+=usr/include/legacy/dev/usb/usb.h OLD_FILES+=usr/include/legacy/dev/usb/usb_mem.h OLD_FILES+=usr/include/legacy/dev/usb/usb_port.h OLD_FILES+=usr/include/legacy/dev/usb/usb_quirks.h OLD_FILES+=usr/include/legacy/dev/usb/usbcdc.h OLD_FILES+=usr/include/legacy/dev/usb/usbdi.h OLD_FILES+=usr/include/legacy/dev/usb/usbdi_util.h OLD_FILES+=usr/include/legacy/dev/usb/usbdivar.h OLD_FILES+=usr/include/legacy/dev/usb/usbhid.h OLD_FILES+=usr/include/legacy/dev/usb/uxb360gp_rdesc.h OLD_DIRS+=usr/include/legacy/dev/usb OLD_DIRS+=usr/include/legacy/dev OLD_DIRS+=usr/include/legacy # 20090526: removal of makekey(8) OLD_FILES+=usr/libexec/makekey OLD_FILES+=usr/share/man/man8/makekey.8.gz # 20090522: removal of University of Michigan NFSv4 client OLD_FILES+=etc/rc.d/idmapd OLD_FILES+=sbin/idmapd OLD_FILES+=sbin/mount_nfs4 OLD_FILES+=usr/share/man/man8/idmapd.8.gz OLD_FILES+=usr/share/man/man8/mount_nfs4.8.gz # 20090513: removal of legacy versions of USB network interface drivers OLD_FILES+=usr/include/legacy/dev/usb/if_upgtvar.h OLD_FILES+=usr/include/legacy/dev/usb/usb_ethersubr.h # 20090417: removal of legacy versions of USB network interface drivers OLD_FILES+=usr/include/legacy/dev/usb/if_auereg.h OLD_FILES+=usr/include/legacy/dev/usb/if_axereg.h OLD_FILES+=usr/include/legacy/dev/usb/if_cdcereg.h OLD_FILES+=usr/include/legacy/dev/usb/if_cuereg.h OLD_FILES+=usr/include/legacy/dev/usb/if_kuereg.h OLD_FILES+=usr/include/legacy/dev/usb/if_ruereg.h OLD_FILES+=usr/include/legacy/dev/usb/if_rumreg.h OLD_FILES+=usr/include/legacy/dev/usb/if_rumvar.h OLD_FILES+=usr/include/legacy/dev/usb/if_udavreg.h OLD_FILES+=usr/include/legacy/dev/usb/if_uralreg.h OLD_FILES+=usr/include/legacy/dev/usb/if_uralvar.h OLD_FILES+=usr/include/legacy/dev/usb/if_zydfw.h OLD_FILES+=usr/include/legacy/dev/usb/if_zydreg.h OLD_FILES+=usr/include/legacy/dev/usb/kue_fw.h # 20090416: removal of ar(4), ray(4), sr(4), raycontrol(8) OLD_FILES+=usr/sbin/raycontrol OLD_FILES+=usr/share/man/man4/i386/ar.4.gz OLD_FILES+=usr/share/man/man4/i386/ray.4.gz OLD_FILES+=usr/share/man/man4/i386/sr.4.gz OLD_FILES+=usr/share/man/man8/raycontrol.8.gz # 20090410: VOP_LEASE.9 removed OLD_FILES+=usr/share/man/man9/VOP_LEASE.9.gz # 20090406: usb_sw_transfer.h removed OLD_FILES+=usr/include/dev/usb/usb_sw_transfer.h # 20090405: removal of if_ppp(4) and if_sl(4) OLD_FILES+=sbin/slattach rescue/slattach OLD_FILES+=sbin/startslip rescue/startslip OLD_FILES+=usr/include/net/if_ppp.h OLD_FILES+=usr/include/net/if_pppvar.h OLD_FILES+=usr/include/net/if_slvar.h OLD_FILES+=usr/include/net/ppp_comp.h OLD_FILES+=usr/include/net/slip.h OLD_FILES+=usr/sbin/sliplogin OLD_FILES+=usr/sbin/slstat OLD_FILES+=usr/sbin/pppd OLD_FILES+=usr/sbin/pppstats OLD_FILES+=usr/share/man/man1/startslip.1.gz OLD_FILES+=usr/share/man/man4/if_ppp.4.gz OLD_FILES+=usr/share/man/man4/if_sl.4.gz OLD_FILES+=usr/share/man/man4/ppp.4.gz OLD_FILES+=usr/share/man/man4/sl.4.gz OLD_FILES+=usr/share/man/man8/pppd.8.gz OLD_FILES+=usr/share/man/man8/pppstats.8.gz OLD_FILES+=usr/share/man/man8/slattach.8.gz OLD_FILES+=usr/share/man/man8/slip.8.gz OLD_FILES+=usr/share/man/man8/sliplogin.8.gz OLD_FILES+=usr/share/man/man8/slstat.8.gz # 20090321: libpcap upgraded to 1.0.0 OLD_LIBS+=lib/libpcap.so.5 OLD_LIBS+=usr/lib32/libpcap.so.5 # 20090319: uscanner(4) has been removed OLD_FILES+=usr/share/man/man4/uscanner.4.gz # 20090313: k8temp(4) renamed to amdtemp(4) OLD_FILES+=usr/share/man/man4/k8temp.4.gz # 20090308: libusb.so.1 renamed OLD_LIBS+=usr/lib/libusb20.so.1 OLD_FILES+=usr/lib/libusb20.a OLD_FILES+=usr/lib/libusb20.so OLD_FILES+=usr/lib/libusb20_p.a OLD_FILES+=usr/include/libusb20_compat01.h OLD_FILES+=usr/include/libusb20_compat10.h OLD_LIBS+=usr/lib32/libusb20.so.1 OLD_FILES+=usr/lib32/libusb20.a OLD_FILES+=usr/lib32/libusb20.so OLD_FILES+=usr/lib32/libusb20_p.a # 20090226: libmp(3) functions renamed OLD_LIBS+=usr/lib/libmp.so.6 OLD_LIBS+=usr/lib32/libmp.so.6 # 20090223: changeover of USB stacks OLD_FILES+=usr/include/dev/usb2/include/ufm2_ioctl.h OLD_FILES+=usr/include/dev/usb2/include/urio2_ioctl.h OLD_FILES+=usr/include/dev/usb2/include/usb2_cdc.h OLD_FILES+=usr/include/dev/usb2/include/usb2_defs.h OLD_FILES+=usr/include/dev/usb2/include/usb2_devid.h OLD_FILES+=usr/include/dev/usb2/include/usb2_devtable.h OLD_FILES+=usr/include/dev/usb2/include/usb2_endian.h OLD_FILES+=usr/include/dev/usb2/include/usb2_error.h OLD_FILES+=usr/include/dev/usb2/include/usb2_hid.h OLD_FILES+=usr/include/dev/usb2/include/usb2_ioctl.h OLD_FILES+=usr/include/dev/usb2/include/usb2_mfunc.h OLD_FILES+=usr/include/dev/usb2/include/usb2_revision.h OLD_FILES+=usr/include/dev/usb2/include/usb2_standard.h OLD_DIRS+=usr/include/dev/usb2/include OLD_DIRS+=usr/include/dev/usb2 OLD_FILES+=usr/include/dev/usb/dsbr100io.h OLD_FILES+=usr/include/dev/usb/ehcireg.h OLD_FILES+=usr/include/dev/usb/ehcivar.h OLD_FILES+=usr/include/dev/usb/hid.h OLD_FILES+=usr/include/dev/usb/if_auereg.h OLD_FILES+=usr/include/dev/usb/if_axereg.h OLD_FILES+=usr/include/dev/usb/if_cdcereg.h OLD_FILES+=usr/include/dev/usb/if_cuereg.h OLD_FILES+=usr/include/dev/usb/if_kuereg.h OLD_FILES+=usr/include/dev/usb/if_ruereg.h OLD_FILES+=usr/include/dev/usb/if_rumreg.h OLD_FILES+=usr/include/dev/usb/if_rumvar.h OLD_FILES+=usr/include/dev/usb/if_udavreg.h OLD_FILES+=usr/include/dev/usb/if_upgtvar.h OLD_FILES+=usr/include/dev/usb/if_uralreg.h OLD_FILES+=usr/include/dev/usb/if_uralvar.h OLD_FILES+=usr/include/dev/usb/if_urtwreg.h OLD_FILES+=usr/include/dev/usb/if_urtwvar.h OLD_FILES+=usr/include/dev/usb/if_zydfw.h OLD_FILES+=usr/include/dev/usb/if_zydreg.h OLD_FILES+=usr/include/dev/usb/kue_fw.h OLD_FILES+=usr/include/dev/usb/ohcireg.h OLD_FILES+=usr/include/dev/usb/ohcivar.h OLD_FILES+=usr/include/dev/usb/rio500_usb.h OLD_FILES+=usr/include/dev/usb/rt2573_ucode.h OLD_FILES+=usr/include/dev/usb/sl811hsreg.h OLD_FILES+=usr/include/dev/usb/sl811hsvar.h OLD_FILES+=usr/include/dev/usb/ubser.h OLD_FILES+=usr/include/dev/usb/ucomvar.h OLD_FILES+=usr/include/dev/usb/udbp.h OLD_FILES+=usr/include/dev/usb/uftdireg.h OLD_FILES+=usr/include/dev/usb/ugraphire_rdesc.h OLD_FILES+=usr/include/dev/usb/uhcireg.h OLD_FILES+=usr/include/dev/usb/uhcivar.h OLD_FILES+=usr/include/dev/usb/usb_ethersubr.h OLD_FILES+=usr/include/dev/usb/usb_mem.h OLD_FILES+=usr/include/dev/usb/usb_port.h OLD_FILES+=usr/include/dev/usb/usb_quirks.h OLD_FILES+=usr/include/dev/usb/usbcdc.h OLD_FILES+=usr/include/dev/usb/usbdivar.h OLD_FILES+=usr/include/dev/usb/uxb360gp_rdesc.h OLD_FILES+=usr/sbin/usbdevs OLD_FILES+=usr/share/man/man8/usbdevs.8.gz # 20090203: removal of pccard header files OLD_FILES+=usr/include/pccard/cardinfo.h OLD_FILES+=usr/include/pccard/cis.h OLD_DIRS+=usr/include/pccard # 20090203: adding_user.8 moved to adding_user.7 OLD_FILES+=usr/share/man/man8/adding_user.8.gz # 20090122: tzdata2009a import OLD_FILES+=usr/share/zoneinfo/Asia/Katmandu # 20090102: file 4.26 import OLD_FILES+=usr/share/misc/magic.mime OLD_FILES+=usr/share/misc/magic.mime.mgc # 20081223: bind 9.4.3 import, nsupdate.8 moved to nsupdate.1 OLD_FILES+=usr/share/man/man8/nsupdate.8.gz # 20081223: ipprotosw.h removed OLD_FILES+=usr/include/netinet/ipprotosw.h # 20081123: vfs_mountedon.9 removed OLD_FILES+=usr/share/man/man9/vfs_mountedon.9.gz # 20081023: FREE.9 and MALLOC.9 removed OLD_FILES+=usr/share/man/man9/FREE.9.gz OLD_FILES+=usr/share/man/man9/MALLOC.9.gz # 20080928: removal of inaccurate device_ids(9) manual page OLD_FILES+=usr/share/man/man9/device_ids.9.gz OLD_FILES+=usr/share/man/man9/major.9.gz OLD_FILES+=usr/share/man/man9/minor.9.gz OLD_FILES+=usr/share/man/man9/umajor.9.gz OLD_FILES+=usr/share/man/man9/uminor.9.gz # 20080917: removal of manpage for axed kernel primitive suser(9) OLD_FILES+=usr/share/man/man9/suser.9.gz OLD_FILES+=usr/share/man/man9/suser_cred.9.gz # 20080913: pax removed from rescue OLD_FILES+=rescue/pax # 20080823: removal of unneeded pt_chown, to implement grantpt(3) OLD_FILES+=usr/libexec/pt_chown # 20080822: ntp 4.2.4p5 import OLD_FILES+=usr/share/doc/ntp/driver23.html OLD_FILES+=usr/share/doc/ntp/driver24.html # 20080821: several man pages moved from man4.i386 to man4 .if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/share/man/man4/i386/acpi_aiboost.4.gz OLD_FILES+=usr/share/man/man4/i386/acpi_asus.4.gz OLD_FILES+=usr/share/man/man4/i386/acpi_fujitsu.4.gz OLD_FILES+=usr/share/man/man4/i386/acpi_ibm.4.gz OLD_FILES+=usr/share/man/man4/i386/acpi_panasonic.4.gz OLD_FILES+=usr/share/man/man4/i386/acpi_sony.4.gz OLD_FILES+=usr/share/man/man4/i386/acpi_toshiba.4.gz OLD_FILES+=usr/share/man/man4/i386/ichwd.4.gz OLD_FILES+=usr/share/man/man4/i386/if_ndis.4.gz OLD_FILES+=usr/share/man/man4/i386/io.4.gz OLD_FILES+=usr/share/man/man4/i386/linux.4.gz OLD_FILES+=usr/share/man/man4/i386/ndis.4.gz .endif # 20080820: MPSAFE TTY layer integrated OLD_FILES+=usr/include/sys/linedisc.h OLD_FILES+=usr/share/man/man3/posix_openpt.3.gz # 20080725: sgtty.h removed OLD_FILES+=usr/include/sgtty.h # 20080706: bsdlabel(8) removed on powerpc .if ${TARGET_ARCH} == "powerpc" OLD_FILES+=sbin/bsdlabel OLD_FILES+=usr/share/man/man8/bsdlabel.8.gz .endif # 20080704: sbsh(4) removed OLD_FILES+=usr/share/man/man4/if_sbsh.4.gz OLD_FILES+=usr/share/man/man4/sbsh.4.gz # 20080704: cnw(4) removed OLD_FILES+=usr/share/man/man4/if_cnw.4.gz OLD_FILES+=usr/share/man/man4/cnw.4.gz # 20080704: oltr(4) removed .if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/share/man/man4/i386/if_oltr.4.gz OLD_FILES+=usr/share/man/man4/i386/oltr.4.gz .endif # 20080704: arl(4) removed .if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/sbin/arlcontrol OLD_FILES+=usr/share/man/man4/i386/arl.4.gz OLD_FILES+=usr/share/man/man8/arlcontrol.8.gz .endif # 20080703: sunlabel only for sparc64 .if ${TARGET_ARCH} != "sparc64" OLD_FILES+=sbin/sunlabel OLD_FILES+=usr/share/man/man8/sunlabel.8.gz .endif # 20080701: wpa_supplicant.conf moved to share/examples/etc/ OLD_FILES+=usr/share/examples/wpa_supplicant/wpa_supplicant.conf OLD_DIRS+=usr/share/examples/wpa_supplicant # 20080614: pecoff image activator removed .if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/machine/pecoff_machdep.h .endif # 20080614: sgtty removed OLD_FILES+=usr/include/sys/ttychars.h OLD_FILES+=usr/include/sys/ttydev.h OLD_FILES+=usr/share/man/man3/gtty.3.gz OLD_FILES+=usr/share/man/man3/stty.3.gz # 20080609: gpt(8) removed OLD_FILES+=sbin/gpt OLD_FILES+=usr/share/man/man8/gpt.8.gz # 20080525: I4B removed OLD_FILES+=etc/isdn/answer OLD_FILES+=etc/isdn/isdntel OLD_FILES+=etc/isdn/record OLD_FILES+=etc/isdn/tell OLD_FILES+=etc/isdn/tell-record OLD_FILES+=etc/isdn/unknown_incoming OLD_FILES+=etc/isdn/holidays.D OLD_FILES+=etc/isdn/isdnd.rates.A OLD_FILES+=etc/isdn/isdnd.rates.D OLD_FILES+=etc/isdn/isdnd.rates.F OLD_FILES+=etc/isdn/isdnd.rates.L OLD_FILES+=etc/isdn/isdnd.rates.UK.BT OLD_FILES+=etc/isdn/isdnd.rc.sample OLD_FILES+=etc/isdn/isdntel.alias.sample OLD_DIRS+=etc/isdn OLD_FILES+=etc/rc.d/isdnd OLD_FILES+=usr/include/i4b/i4b_cause.h OLD_FILES+=usr/include/i4b/i4b_debug.h OLD_FILES+=usr/include/i4b/i4b_ioctl.h OLD_FILES+=usr/include/i4b/i4b_rbch_ioctl.h OLD_FILES+=usr/include/i4b/i4b_tel_ioctl.h OLD_FILES+=usr/include/i4b/i4b_trace.h OLD_DIRS+=usr/include/i4b OLD_FILES+=usr/sbin/dtmfdecode OLD_FILES+=usr/sbin/g711conv OLD_FILES+=usr/sbin/isdnd OLD_FILES+=usr/sbin/isdndebug OLD_FILES+=usr/sbin/isdndecode OLD_FILES+=usr/sbin/isdnmonitor OLD_FILES+=usr/sbin/isdnphone OLD_FILES+=usr/sbin/isdntel OLD_FILES+=usr/sbin/isdntelctl OLD_FILES+=usr/sbin/isdntrace OLD_FILES+=usr/share/isdn/0.al OLD_FILES+=usr/share/isdn/1.al OLD_FILES+=usr/share/isdn/2.al OLD_FILES+=usr/share/isdn/3.al OLD_FILES+=usr/share/isdn/4.al OLD_FILES+=usr/share/isdn/5.al OLD_FILES+=usr/share/isdn/6.al OLD_FILES+=usr/share/isdn/7.al OLD_FILES+=usr/share/isdn/8.al OLD_FILES+=usr/share/isdn/9.al OLD_FILES+=usr/share/isdn/beep.al OLD_FILES+=usr/share/isdn/msg.al OLD_DIRS+=usr/share/isdn OLD_FILES+=usr/share/man/man1/dtmfdecode.1.gz OLD_FILES+=usr/share/man/man1/g711conv.1.gz OLD_FILES+=usr/share/man/man4/i4b.4.gz OLD_FILES+=usr/share/man/man4/i4bcapi.4.gz OLD_FILES+=usr/share/man/man4/i4bctl.4.gz OLD_FILES+=usr/share/man/man4/i4bing.4.gz OLD_FILES+=usr/share/man/man4/i4bipr.4.gz OLD_FILES+=usr/share/man/man4/i4bisppp.4.gz OLD_FILES+=usr/share/man/man4/i4bq921.4.gz OLD_FILES+=usr/share/man/man4/i4bq931.4.gz OLD_FILES+=usr/share/man/man4/i4brbch.4.gz OLD_FILES+=usr/share/man/man4/i4btel.4.gz OLD_FILES+=usr/share/man/man4/i4btrc.4.gz OLD_FILES+=usr/share/man/man4/iavc.4.gz OLD_FILES+=usr/share/man/man4/isic.4.gz OLD_FILES+=usr/share/man/man4/ifpi.4.gz OLD_FILES+=usr/share/man/man4/ifpi2.4.gz OLD_FILES+=usr/share/man/man4/ifpnp.4.gz OLD_FILES+=usr/share/man/man4/ihfc.4.gz OLD_FILES+=usr/share/man/man4/itjc.4.gz OLD_FILES+=usr/share/man/man4/iwic.4.gz OLD_FILES+=usr/share/man/man5/isdnd.rc.5.gz OLD_FILES+=usr/share/man/man5/isdnd.rates.5.gz OLD_FILES+=usr/share/man/man5/isdnd.acct.5.gz OLD_FILES+=usr/share/man/man8/isdnd.8.gz OLD_FILES+=usr/share/man/man8/isdndebug.8.gz OLD_FILES+=usr/share/man/man8/isdndecode.8.gz OLD_FILES+=usr/share/man/man8/isdnmonitor.8.gz OLD_FILES+=usr/share/man/man8/isdnphone.8.gz OLD_FILES+=usr/share/man/man8/isdntel.8.gz OLD_FILES+=usr/share/man/man8/isdntelctl.8.gz OLD_FILES+=usr/share/man/man8/isdntrace.8.gz OLD_FILES+=usr/share/examples/isdn/contrib/README OLD_FILES+=usr/share/examples/isdn/contrib/anleitung.ppp OLD_FILES+=usr/share/examples/isdn/contrib/answer.c OLD_FILES+=usr/share/examples/isdn/contrib/answer.sh OLD_FILES+=usr/share/examples/isdn/contrib/convert.sh OLD_FILES+=usr/share/examples/isdn/contrib/hplay.c OLD_FILES+=usr/share/examples/isdn/contrib/i4b-ppp-newbie.txt OLD_FILES+=usr/share/examples/isdn/contrib/isdnctl OLD_FILES+=usr/share/examples/isdn/contrib/isdnd_acct OLD_FILES+=usr/share/examples/isdn/contrib/isdnd_acct.pl OLD_FILES+=usr/share/examples/isdn/contrib/isdntelmux.c OLD_FILES+=usr/share/examples/isdn/contrib/mrtg-isp0.sh OLD_FILES+=usr/share/examples/isdn/i4brunppp/Makefile OLD_FILES+=usr/share/examples/isdn/i4brunppp/README OLD_FILES+=usr/share/examples/isdn/i4brunppp/i4brunppp-isdnd.rc OLD_FILES+=usr/share/examples/isdn/i4brunppp/i4brunppp.8 OLD_FILES+=usr/share/examples/isdn/i4brunppp/i4brunppp.c OLD_FILES+=usr/share/examples/isdn/v21/Makefile OLD_FILES+=usr/share/examples/isdn/v21/README OLD_FILES+=usr/share/examples/isdn/v21/v21modem.c OLD_FILES+=usr/share/examples/isdn/FAQ OLD_FILES+=usr/share/examples/isdn/KERNEL OLD_FILES+=usr/share/examples/isdn/Overview OLD_FILES+=usr/share/examples/isdn/README OLD_FILES+=usr/share/examples/isdn/ROADMAP OLD_FILES+=usr/share/examples/isdn/ReleaseNotes OLD_FILES+=usr/share/examples/isdn/Resources OLD_FILES+=usr/share/examples/isdn/SupportedCards OLD_FILES+=usr/share/examples/isdn/ThankYou OLD_DIRS+=usr/share/examples/isdn/contrib OLD_DIRS+=usr/share/examples/isdn/i4brunppp OLD_DIRS+=usr/share/examples/isdn/v21 OLD_DIRS+=usr/share/examples/isdn OLD_FILES+=usr/share/examples/ppp/isdnd.rc OLD_FILES+=usr/share/examples/ppp/ppp.conf.isdn # 20080525: ng_atmpif removed OLD_FILES+=usr/include/netgraph/atm/ng_atmpif.h OLD_FILES+=usr/share/man/man4/ng_atmpif.4.gz # 20080522: pmap_addr_hint removed OLD_FILES+=usr/share/man/man9/pmap_addr_hint.9.gz # 20080517: ipsec_osdep.h removed OLD_FILES+=usr/include/netipsec/ipsec_osdep.h # 20080507: heimdal 1.1 import OLD_LIBS+=usr/lib/libasn1.so.9 OLD_LIBS+=usr/lib/libgssapi.so.9 OLD_LIBS+=usr/lib/libgssapi_krb5.so.9 OLD_LIBS+=usr/lib/libhdb.so.9 OLD_LIBS+=usr/lib/libkadm5clnt.so.9 OLD_LIBS+=usr/lib/libkadm5srv.so.9 OLD_LIBS+=usr/lib/libkafs5.so.9 OLD_LIBS+=usr/lib/libkrb5.so.9 OLD_LIBS+=usr/lib/libroken.so.9 OLD_LIBS+=usr/lib32/libgssapi.so.9 # 20080420: Symbol card support dropped OLD_FILES+=usr/include/dev/wi/spectrum24t_cf.h # 20080420: awi removal OLD_FILES+=usr/share/man/man4/awi.4.gz OLD_FILES+=usr/share/man/man4/if_awi.4.gz # 20080331: pkg_sign has been removed OLD_FILES+=usr/sbin/pkg_check OLD_FILES+=usr/sbin/pkg_sign OLD_FILES+=usr/share/man/man1/pkg_check.1.gz OLD_FILES+=usr/share/man/man1/pkg_sign.1.gz # 20080325: tzdata2008b import OLD_FILES+=usr/share/zoneinfo/Asia/Calcutta OLD_FILES+=usr/share/zoneinfo/Asia/Saigon # 20080314: stack_print(9) mlink fixed OLD_FILES+=usr/share/man/man9/stack_printf.9.gz # 20080312: libkse removal OLD_FILES+=usr/include/sys/kse.h OLD_FILES+=usr/lib/libkse.so OLD_LIBS+=usr/lib/libkse.so.3 OLD_FILES+=usr/share/man/man2/kse.2.gz OLD_FILES+=usr/share/man/man2/kse_create.2.gz OLD_FILES+=usr/share/man/man2/kse_exit.2.gz OLD_FILES+=usr/share/man/man2/kse_release.2.gz OLD_FILES+=usr/share/man/man2/kse_switchin.2.gz OLD_FILES+=usr/share/man/man2/kse_thr_interrupt.2.gz OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz OLD_FILES+=usr/lib32/libkse.so OLD_LIBS+=usr/lib32/libkse.so.3 # 20080225: bsdar/bsdranlib rename to ar/ranlib OLD_FILES+=usr/bin/bsdar OLD_FILES+=usr/bin/bsdranlib OLD_FILES+=usr/share/man/man1/bsdar.1.gz OLD_FILES+=usr/share/man/man1/bsdranlib.1.gz # 20080220: geom_lvm rename to geom_linux_lvm OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz # 20080126: oldcard.4 removal OLD_FILES+=usr/share/man/man4/card.4.gz OLD_FILES+=usr/share/man/man4/oldcard.4.gz # 20080122: Removed from the tree OLD_FILES+=usr/share/man/man9/BUF_REFCNT.9.gz # 20080108: Moved to section 2 OLD_FILES+=usr/share/man/man3/shm_open.3.gz OLD_FILES+=usr/share/man/man3/shm_unlink.3.gz # 20071207: Merged with fortunes-o.real OLD_FILES+=usr/share/games/fortune/fortunes2-o OLD_FILES+=usr/share/games/fortune/fortunes2-o.dat # 20071201: Removal of XRPU driver OLD_FILES+=usr/include/sys/xrpuio.h # 20071129: Disabled static versions of libkse by default OLD_FILES+=usr/lib/libkse.a OLD_FILES+=usr/lib/libkse_p.a OLD_FILES+=usr/lib/libkse_pic.a OLD_FILES+=usr/lib32/libkse.a OLD_FILES+=usr/lib32/libkse_p.a OLD_FILES+=usr/lib32/libkse_pic.a # 20071129: Removed a Solaris compatibility header OLD_FILES+=usr/include/sys/_elf_solaris.h # 20071125: Renamed to pmc_get_msr() OLD_FILES+=usr/share/man/man3/pmc_x86_get_msr.3.gz # 20071108: Removed very crunch OLDCARD support file OLD_FILES+=etc/defaults/pccard.conf # 20071025: rc.d/nfslocking superseded by rc.d/lockd and rc.d/statd OLD_FILES+=etc/rc.d/nfslocking # 20070930: rename of cached to nscd OLD_FILES+=etc/cached.conf OLD_FILES+=etc/rc.d/cached OLD_FILES+=usr/sbin/cached OLD_FILES+=usr/share/man/man5/cached.conf.5.gz OLD_FILES+=usr/share/man/man8/cached.8.gz # 20070807: removal of PowerPC specific header file. .if ${TARGET_ARCH} == "powerpc" OLD_FILES+=usr/include/machine/interruptvar.h .endif # 20070801: fast_ipsec.4 gone OLD_FILES+=usr/share/man/man4/fast_ipsec.4.gz # 20070715: netatm temporarily disconnected (removed 20080525) OLD_FILES+=rescue/atm OLD_FILES+=rescue/fore_dnld OLD_FILES+=rescue/ilmid OLD_FILES+=sbin/atm OLD_FILES+=sbin/fore_dnld OLD_FILES+=sbin/ilmid OLD_FILES+=usr/include/libatm.h OLD_FILES+=usr/include/netatm/atm.h OLD_FILES+=usr/include/netatm/atm_cm.h OLD_FILES+=usr/include/netatm/atm_if.h OLD_FILES+=usr/include/netatm/atm_ioctl.h OLD_FILES+=usr/include/netatm/atm_pcb.h OLD_FILES+=usr/include/netatm/atm_sap.h OLD_FILES+=usr/include/netatm/atm_sigmgr.h OLD_FILES+=usr/include/netatm/atm_stack.h OLD_FILES+=usr/include/netatm/atm_sys.h OLD_FILES+=usr/include/netatm/atm_var.h OLD_FILES+=usr/include/netatm/atm_vc.h OLD_FILES+=usr/include/netatm/ipatm/ipatm.h OLD_FILES+=usr/include/netatm/ipatm/ipatm_serv.h OLD_FILES+=usr/include/netatm/ipatm/ipatm_var.h OLD_FILES+=usr/include/netatm/port.h OLD_FILES+=usr/include/netatm/queue.h OLD_FILES+=usr/include/netatm/sigpvc/sigpvc_var.h OLD_FILES+=usr/include/netatm/spans/spans_cls.h OLD_FILES+=usr/include/netatm/spans/spans_kxdr.h OLD_FILES+=usr/include/netatm/spans/spans_var.h OLD_FILES+=usr/include/netatm/uni/sscf_uni.h OLD_FILES+=usr/include/netatm/uni/sscf_uni_var.h OLD_FILES+=usr/include/netatm/uni/sscop.h OLD_FILES+=usr/include/netatm/uni/sscop_misc.h OLD_FILES+=usr/include/netatm/uni/sscop_pdu.h OLD_FILES+=usr/include/netatm/uni/sscop_var.h OLD_FILES+=usr/include/netatm/uni/uni.h OLD_FILES+=usr/include/netatm/uni/uniip_var.h OLD_FILES+=usr/include/netatm/uni/unisig.h OLD_FILES+=usr/include/netatm/uni/unisig_decode.h OLD_FILES+=usr/include/netatm/uni/unisig_mbuf.h OLD_FILES+=usr/include/netatm/uni/unisig_msg.h OLD_FILES+=usr/include/netatm/uni/unisig_print.h OLD_FILES+=usr/include/netatm/uni/unisig_var.h OLD_FILES+=usr/lib/libatm.a OLD_FILES+=usr/lib/libatm_p.a OLD_FILES+=usr/sbin/atmarpd OLD_FILES+=usr/sbin/scspd OLD_FILES+=usr/share/man/en.ISO8859-1/man8/atm.8.gz OLD_FILES+=usr/share/man/en.ISO8859-1/man8/atmarpd.8.gz OLD_FILES+=usr/share/man/en.ISO8859-1/man8/fore_dnld.8.gz OLD_FILES+=usr/share/man/en.ISO8859-1/man8/ilmid.8.gz OLD_FILES+=usr/share/man/en.ISO8859-1/man8/scspd.8.gz OLD_FILES+=usr/share/man/man8/atm.8.gz OLD_FILES+=usr/share/man/man8/atmarpd.8.gz OLD_FILES+=usr/share/man/man8/fore_dnld.8.gz OLD_FILES+=usr/share/man/man8/ilmid.8.gz OLD_FILES+=usr/share/man/man8/scspd.8.gz OLD_FILES+=usr/share/examples/atm/NOTES OLD_FILES+=usr/share/examples/atm/README OLD_FILES+=usr/share/examples/atm/Startup OLD_FILES+=usr/share/examples/atm/atm-config.sh OLD_FILES+=usr/share/examples/atm/atm-sockets.txt OLD_FILES+=usr/share/examples/atm/cpcs-design.txt OLD_FILES+=usr/share/examples/atm/fore-microcode.txt OLD_FILES+=usr/share/examples/atm/sscf-design.txt OLD_FILES+=usr/share/examples/atm/sscop-design.txt OLD_LIBS+=lib/libatm.so.5 OLD_LIBS+=usr/lib/libatm.so OLD_DIRS+=usr/include/netatm/sigpvc OLD_DIRS+=usr/include/netatm/spans OLD_DIRS+=usr/include/netatm/ipatm OLD_DIRS+=usr/include/netatm/uni OLD_DIRS+=usr/include/netatm OLD_DIRS+=usr/share/examples/atm OLD_FILES+=usr/lib32/libatm.a OLD_FILES+=usr/lib32/libatm.so OLD_LIBS+=usr/lib32/libatm.so.5 OLD_FILES+=usr/lib32/libatm_p.a # 20070705: I4B headers repo-copied to include/i4b/ .if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/machine/i4b_cause.h OLD_FILES+=usr/include/machine/i4b_debug.h OLD_FILES+=usr/include/machine/i4b_ioctl.h OLD_FILES+=usr/include/machine/i4b_rbch_ioctl.h OLD_FILES+=usr/include/machine/i4b_tel_ioctl.h OLD_FILES+=usr/include/machine/i4b_trace.h .endif # 20070703: pf 4.1 import OLD_FILES+=usr/libexec/ftp-proxy # 20070701: KAME IPSec removal OLD_FILES+=usr/include/netinet6/ah.h OLD_FILES+=usr/include/netinet6/ah6.h OLD_FILES+=usr/include/netinet6/ah_aesxcbcmac.h OLD_FILES+=usr/include/netinet6/esp.h OLD_FILES+=usr/include/netinet6/esp6.h OLD_FILES+=usr/include/netinet6/esp_aesctr.h OLD_FILES+=usr/include/netinet6/esp_camellia.h OLD_FILES+=usr/include/netinet6/esp_rijndael.h OLD_FILES+=usr/include/netinet6/ipsec.h OLD_FILES+=usr/include/netinet6/ipsec6.h OLD_FILES+=usr/include/netinet6/ipcomp.h OLD_FILES+=usr/include/netinet6/ipcomp6.h OLD_FILES+=usr/include/netkey/key.h OLD_FILES+=usr/include/netkey/key_debug.h OLD_FILES+=usr/include/netkey/key_var.h OLD_FILES+=usr/include/netkey/keydb.h OLD_FILES+=usr/include/netkey/keysock.h OLD_DIRS+=usr/include/netkey # 20070701: remove wicontrol OLD_FILES+=usr/sbin/wicontrol OLD_FILES+=usr/share/man/man8/wicontrol.8.gz # 20070625: umapfs removal OLD_FILES+=rescue/mount_umapfs OLD_FILES+=sbin/mount_umapfs OLD_FILES+=usr/include/fs/umapfs/umap.h OLD_FILES+=usr/share/man/man8/mount_umapfs.8.gz OLD_DIRS+=usr/include/fs/umapfs # 20070618: Removal of the PROTO.localhost* files OLD_FILES+=etc/namedb/PROTO.localhost-v6.rev OLD_FILES+=etc/namedb/PROTO.localhost.rev OLD_FILES+=etc/namedb/make-localhost # 20070618: shared library version bump OLD_LIBS+=lib/libalias.so.5 OLD_LIBS+=lib/libbsnmp.so.3 OLD_LIBS+=lib/libncurses.so.6 OLD_LIBS+=lib/libncursesw.so.6 OLD_LIBS+=lib/libreadline.so.6 OLD_LIBS+=usr/lib/libdialog.so.5 OLD_LIBS+=usr/lib/libgnuregex.so.3 OLD_LIBS+=usr/lib/libhistory.so.6 OLD_LIBS+=usr/lib/libpam.so.3 OLD_LIBS+=usr/lib/libssh.so.3 OLD_LIBS+=usr/lib/pam_chroot.so.3 OLD_LIBS+=usr/lib/pam_deny.so.3 OLD_LIBS+=usr/lib/pam_echo.so.3 OLD_LIBS+=usr/lib/pam_exec.so.3 OLD_LIBS+=usr/lib/pam_ftpusers.so.3 OLD_LIBS+=usr/lib/pam_group.so.3 OLD_LIBS+=usr/lib/pam_guest.so.3 OLD_LIBS+=usr/lib/pam_krb5.so.3 OLD_LIBS+=usr/lib/pam_ksu.so.3 OLD_LIBS+=usr/lib/pam_lastlog.so.3 OLD_LIBS+=usr/lib/pam_login_access.so.3 OLD_LIBS+=usr/lib/pam_nologin.so.3 OLD_LIBS+=usr/lib/pam_opie.so.3 OLD_LIBS+=usr/lib/pam_opieaccess.so.3 OLD_LIBS+=usr/lib/pam_passwdqc.so.3 OLD_LIBS+=usr/lib/pam_permit.so.3 OLD_LIBS+=usr/lib/pam_radius.so.3 OLD_LIBS+=usr/lib/pam_rhosts.so.3 OLD_LIBS+=usr/lib/pam_rootok.so.3 OLD_LIBS+=usr/lib/pam_securetty.so.3 OLD_LIBS+=usr/lib/pam_self.so.3 OLD_LIBS+=usr/lib/pam_ssh.so.3 OLD_LIBS+=usr/lib/pam_tacplus.so.3 OLD_LIBS+=usr/lib/pam_unix.so.3 OLD_LIBS+=usr/lib/snmp_atm.so.4 OLD_LIBS+=usr/lib/snmp_bridge.so.4 OLD_LIBS+=usr/lib/snmp_hostres.so.4 OLD_LIBS+=usr/lib/snmp_mibII.so.4 OLD_LIBS+=usr/lib/snmp_netgraph.so.4 OLD_LIBS+=usr/lib/snmp_pf.so.4 OLD_LIBS+=usr/lib32/libalias.so.5 OLD_LIBS+=usr/lib32/libbsnmp.so.3 OLD_LIBS+=usr/lib32/libdialog.so.5 OLD_LIBS+=usr/lib32/libgnuregex.so.3 OLD_LIBS+=usr/lib32/libhistory.so.6 OLD_LIBS+=usr/lib32/libncurses.so.6 OLD_LIBS+=usr/lib32/libncursesw.so.6 OLD_LIBS+=usr/lib32/libpam.so.3 OLD_LIBS+=usr/lib32/libreadline.so.6 OLD_LIBS+=usr/lib32/libssh.so.3 OLD_LIBS+=usr/lib32/pam_chroot.so.3 OLD_LIBS+=usr/lib32/pam_deny.so.3 OLD_LIBS+=usr/lib32/pam_echo.so.3 OLD_LIBS+=usr/lib32/pam_exec.so.3 OLD_LIBS+=usr/lib32/pam_ftpusers.so.3 OLD_LIBS+=usr/lib32/pam_group.so.3 OLD_LIBS+=usr/lib32/pam_guest.so.3 OLD_LIBS+=usr/lib32/pam_krb5.so.3 OLD_LIBS+=usr/lib32/pam_ksu.so.3 OLD_LIBS+=usr/lib32/pam_lastlog.so.3 OLD_LIBS+=usr/lib32/pam_login_access.so.3 OLD_LIBS+=usr/lib32/pam_nologin.so.3 OLD_LIBS+=usr/lib32/pam_opie.so.3 OLD_LIBS+=usr/lib32/pam_opieaccess.so.3 OLD_LIBS+=usr/lib32/pam_passwdqc.so.3 OLD_LIBS+=usr/lib32/pam_permit.so.3 OLD_LIBS+=usr/lib32/pam_radius.so.3 OLD_LIBS+=usr/lib32/pam_rhosts.so.3 OLD_LIBS+=usr/lib32/pam_rootok.so.3 OLD_LIBS+=usr/lib32/pam_securetty.so.3 OLD_LIBS+=usr/lib32/pam_self.so.3 OLD_LIBS+=usr/lib32/pam_ssh.so.3 OLD_LIBS+=usr/lib32/pam_tacplus.so.3 OLD_LIBS+=usr/lib32/pam_unix.so.3 # 20070613: IPX over IP tunnel removal OLD_FILES+=usr/include/netipx/ipx_ip.h # 20070605: sched_core removal OLD_FILES+=usr/share/man/man4/sched_core.4.gz # 20070603: BIND 9.4.1 import OLD_LIBS+=usr/lib/liblwres.so.10 # 20070521: shared library version bump OLD_LIBS+=lib/libatm.so.4 OLD_LIBS+=lib/libbegemot.so.2 OLD_LIBS+=lib/libbsdxml.so.2 OLD_LIBS+=lib/libcam.so.3 OLD_LIBS+=lib/libcrypt.so.3 OLD_LIBS+=lib/libdevstat.so.5 OLD_LIBS+=lib/libedit.so.5 OLD_LIBS+=lib/libgeom.so.3 OLD_LIBS+=lib/libipsec.so.2 OLD_LIBS+=lib/libipx.so.3 OLD_LIBS+=lib/libkiconv.so.2 OLD_LIBS+=lib/libkse.so.2 OLD_LIBS+=lib/libkvm.so.3 OLD_LIBS+=lib/libm.so.4 OLD_LIBS+=lib/libmd.so.3 OLD_LIBS+=lib/libpcap.so.4 OLD_LIBS+=lib/libpthread.so.2 OLD_LIBS+=lib/libsbuf.so.3 OLD_LIBS+=lib/libthr.so.2 OLD_LIBS+=lib/libufs.so.3 OLD_LIBS+=lib/libutil.so.6 OLD_LIBS+=lib/libz.so.3 OLD_LIBS+=usr/lib/libbluetooth.so.2 OLD_LIBS+=usr/lib/libbsm.so.1 OLD_LIBS+=usr/lib/libbz2.so.2 OLD_LIBS+=usr/lib/libcalendar.so.3 OLD_LIBS+=usr/lib/libcom_err.so.3 OLD_LIBS+=usr/lib/libdevinfo.so.3 OLD_LIBS+=usr/lib/libfetch.so.4 OLD_LIBS+=usr/lib/libform.so.3 OLD_LIBS+=usr/lib/libformw.so.3 OLD_LIBS+=usr/lib/libftpio.so.6 OLD_LIBS+=usr/lib/libgpib.so.1 OLD_LIBS+=usr/lib/libkse.so.2 OLD_LIBS+=usr/lib/libmagic.so.2 OLD_LIBS+=usr/lib/libmemstat.so.1 OLD_LIBS+=usr/lib/libmenu.so.3 OLD_LIBS+=usr/lib/libmenuw.so.3 OLD_LIBS+=usr/lib/libmilter.so.3 OLD_LIBS+=usr/lib/libmp.so.5 OLD_LIBS+=usr/lib/libncp.so.2 OLD_LIBS+=usr/lib/libnetgraph.so.2 OLD_LIBS+=usr/lib/libngatm.so.2 OLD_LIBS+=usr/lib/libopie.so.4 OLD_LIBS+=usr/lib/libpanel.so.3 OLD_LIBS+=usr/lib/libpanelw.so.3 OLD_LIBS+=usr/lib/libpmc.so.3 OLD_LIBS+=usr/lib/libradius.so.2 OLD_LIBS+=usr/lib/librpcsvc.so.3 OLD_LIBS+=usr/lib/libsdp.so.2 OLD_LIBS+=usr/lib/libsmb.so.2 OLD_LIBS+=usr/lib/libstdc++.so.5 OLD_LIBS+=usr/lib/libtacplus.so.2 OLD_LIBS+=usr/lib/libthr.so.2 OLD_LIBS+=usr/lib/libthread_db.so.2 OLD_LIBS+=usr/lib/libugidfw.so.2 OLD_LIBS+=usr/lib/libusbhid.so.2 OLD_LIBS+=usr/lib/libvgl.so.4 OLD_LIBS+=usr/lib/libwrap.so.4 OLD_LIBS+=usr/lib/libypclnt.so.2 OLD_LIBS+=usr/lib/snmp_bridge.so.3 OLD_LIBS+=usr/lib/snmp_hostres.so.3 OLD_LIBS+=usr/lib32/libatm.so.4 OLD_LIBS+=usr/lib32/libbegemot.so.2 OLD_LIBS+=usr/lib32/libbluetooth.so.2 OLD_LIBS+=usr/lib32/libbsdxml.so.2 OLD_LIBS+=usr/lib32/libbsm.so.1 OLD_LIBS+=usr/lib32/libbz2.so.2 OLD_LIBS+=usr/lib32/libcalendar.so.3 OLD_LIBS+=usr/lib32/libcam.so.3 OLD_LIBS+=usr/lib32/libcom_err.so.3 OLD_LIBS+=usr/lib32/libcrypt.so.3 OLD_LIBS+=usr/lib32/libdevinfo.so.3 OLD_LIBS+=usr/lib32/libdevstat.so.5 OLD_LIBS+=usr/lib32/libedit.so.5 OLD_LIBS+=usr/lib32/libfetch.so.4 OLD_LIBS+=usr/lib32/libform.so.3 OLD_LIBS+=usr/lib32/libformw.so.3 OLD_LIBS+=usr/lib32/libftpio.so.6 OLD_LIBS+=usr/lib32/libgeom.so.3 OLD_LIBS+=usr/lib32/libgpib.so.1 OLD_LIBS+=usr/lib32/libipsec.so.2 OLD_LIBS+=usr/lib32/libipx.so.3 OLD_LIBS+=usr/lib32/libkiconv.so.2 OLD_LIBS+=usr/lib32/libkse.so.2 OLD_LIBS+=usr/lib32/libkvm.so.3 OLD_LIBS+=usr/lib32/libm.so.4 OLD_LIBS+=usr/lib32/libmagic.so.2 OLD_LIBS+=usr/lib32/libmd.so.3 OLD_LIBS+=usr/lib32/libmemstat.so.1 OLD_LIBS+=usr/lib32/libmenu.so.3 OLD_LIBS+=usr/lib32/libmenuw.so.3 OLD_LIBS+=usr/lib32/libmilter.so.3 OLD_LIBS+=usr/lib32/libmp.so.5 OLD_LIBS+=usr/lib32/libncp.so.2 OLD_LIBS+=usr/lib32/libnetgraph.so.2 OLD_LIBS+=usr/lib32/libngatm.so.2 OLD_LIBS+=usr/lib32/libopie.so.4 OLD_LIBS+=usr/lib32/libpanel.so.3 OLD_LIBS+=usr/lib32/libpanelw.so.3 OLD_LIBS+=usr/lib32/libpcap.so.4 OLD_LIBS+=usr/lib32/libpmc.so.3 OLD_LIBS+=usr/lib32/libpthread.so.2 OLD_LIBS+=usr/lib32/libradius.so.2 OLD_LIBS+=usr/lib32/librpcsvc.so.3 OLD_LIBS+=usr/lib32/libsbuf.so.3 OLD_LIBS+=usr/lib32/libsdp.so.2 OLD_LIBS+=usr/lib32/libsmb.so.2 OLD_LIBS+=usr/lib32/libstdc++.so.5 OLD_LIBS+=usr/lib32/libtacplus.so.2 OLD_LIBS+=usr/lib32/libthr.so.2 OLD_LIBS+=usr/lib32/libthread_db.so.2 OLD_LIBS+=usr/lib32/libufs.so.3 OLD_LIBS+=usr/lib32/libugidfw.so.2 OLD_LIBS+=usr/lib32/libusbhid.so.2 OLD_LIBS+=usr/lib32/libutil.so.6 OLD_LIBS+=usr/lib32/libvgl.so.4 OLD_LIBS+=usr/lib32/libwrap.so.4 OLD_LIBS+=usr/lib32/libypclnt.so.2 OLD_LIBS+=usr/lib32/libz.so.3 # 20070519: GCC 4.2 OLD_FILES+=usr/bin/f77 OLD_FILES+=usr/bin/protoize OLD_FILES+=usr/include/g2c.h OLD_FILES+=usr/libexec/f771 OLD_FILES+=usr/share/info/g77.info.gz OLD_FILES+=usr/share/man/man1/f77.1.gz OLD_FILES+=usr/include/c++/3.4/algorithm OLD_FILES+=usr/include/c++/3.4/backward/algo.h OLD_FILES+=usr/include/c++/3.4/backward/algobase.h OLD_FILES+=usr/include/c++/3.4/backward/alloc.h OLD_FILES+=usr/include/c++/3.4/backward/backward_warning.h OLD_FILES+=usr/include/c++/3.4/backward/bvector.h OLD_FILES+=usr/include/c++/3.4/backward/complex.h OLD_FILES+=usr/include/c++/3.4/backward/defalloc.h OLD_FILES+=usr/include/c++/3.4/backward/deque.h OLD_FILES+=usr/include/c++/3.4/backward/fstream.h OLD_FILES+=usr/include/c++/3.4/backward/function.h OLD_FILES+=usr/include/c++/3.4/backward/hash_map.h OLD_FILES+=usr/include/c++/3.4/backward/hash_set.h OLD_FILES+=usr/include/c++/3.4/backward/hashtable.h OLD_FILES+=usr/include/c++/3.4/backward/heap.h OLD_FILES+=usr/include/c++/3.4/backward/iomanip.h OLD_FILES+=usr/include/c++/3.4/backward/iostream.h OLD_FILES+=usr/include/c++/3.4/backward/istream.h OLD_FILES+=usr/include/c++/3.4/backward/iterator.h OLD_FILES+=usr/include/c++/3.4/backward/list.h OLD_FILES+=usr/include/c++/3.4/backward/map.h OLD_FILES+=usr/include/c++/3.4/backward/multimap.h OLD_FILES+=usr/include/c++/3.4/backward/multiset.h OLD_FILES+=usr/include/c++/3.4/backward/new.h OLD_FILES+=usr/include/c++/3.4/backward/ostream.h OLD_FILES+=usr/include/c++/3.4/backward/pair.h OLD_FILES+=usr/include/c++/3.4/backward/queue.h OLD_FILES+=usr/include/c++/3.4/backward/rope.h OLD_FILES+=usr/include/c++/3.4/backward/set.h OLD_FILES+=usr/include/c++/3.4/backward/slist.h OLD_FILES+=usr/include/c++/3.4/backward/stack.h OLD_FILES+=usr/include/c++/3.4/backward/stream.h OLD_FILES+=usr/include/c++/3.4/backward/streambuf.h OLD_FILES+=usr/include/c++/3.4/backward/strstream OLD_FILES+=usr/include/c++/3.4/backward/tempbuf.h OLD_FILES+=usr/include/c++/3.4/backward/tree.h OLD_FILES+=usr/include/c++/3.4/backward/vector.h OLD_FILES+=usr/include/c++/3.4/bits/allocator.h OLD_FILES+=usr/include/c++/3.4/bits/atomic_word.h OLD_FILES+=usr/include/c++/3.4/bits/atomicity.h OLD_FILES+=usr/include/c++/3.4/bits/basic_file.h OLD_FILES+=usr/include/c++/3.4/bits/basic_ios.h OLD_FILES+=usr/include/c++/3.4/bits/basic_ios.tcc OLD_FILES+=usr/include/c++/3.4/bits/basic_string.h OLD_FILES+=usr/include/c++/3.4/bits/basic_string.tcc OLD_FILES+=usr/include/c++/3.4/bits/boost_concept_check.h OLD_FILES+=usr/include/c++/3.4/bits/c++allocator.h OLD_FILES+=usr/include/c++/3.4/bits/c++config.h OLD_FILES+=usr/include/c++/3.4/bits/c++io.h OLD_FILES+=usr/include/c++/3.4/bits/c++locale.h OLD_FILES+=usr/include/c++/3.4/bits/c++locale_internal.h OLD_FILES+=usr/include/c++/3.4/bits/char_traits.h OLD_FILES+=usr/include/c++/3.4/bits/cmath.tcc OLD_FILES+=usr/include/c++/3.4/bits/codecvt.h OLD_FILES+=usr/include/c++/3.4/bits/codecvt_specializations.h OLD_FILES+=usr/include/c++/3.4/bits/concept_check.h OLD_FILES+=usr/include/c++/3.4/bits/concurrence.h OLD_FILES+=usr/include/c++/3.4/bits/cpp_type_traits.h OLD_FILES+=usr/include/c++/3.4/bits/ctype_base.h OLD_FILES+=usr/include/c++/3.4/bits/ctype_inline.h OLD_FILES+=usr/include/c++/3.4/bits/ctype_noninline.h OLD_FILES+=usr/include/c++/3.4/bits/deque.tcc OLD_FILES+=usr/include/c++/3.4/bits/fstream.tcc OLD_FILES+=usr/include/c++/3.4/bits/functexcept.h OLD_FILES+=usr/include/c++/3.4/bits/gslice.h OLD_FILES+=usr/include/c++/3.4/bits/gslice_array.h OLD_FILES+=usr/include/c++/3.4/bits/gthr-default.h OLD_FILES+=usr/include/c++/3.4/bits/gthr-posix.h OLD_FILES+=usr/include/c++/3.4/bits/gthr-single.h OLD_FILES+=usr/include/c++/3.4/bits/gthr.h OLD_FILES+=usr/include/c++/3.4/bits/indirect_array.h OLD_FILES+=usr/include/c++/3.4/bits/ios_base.h OLD_FILES+=usr/include/c++/3.4/bits/istream.tcc OLD_FILES+=usr/include/c++/3.4/bits/list.tcc OLD_FILES+=usr/include/c++/3.4/bits/locale_classes.h OLD_FILES+=usr/include/c++/3.4/bits/locale_facets.h OLD_FILES+=usr/include/c++/3.4/bits/locale_facets.tcc OLD_FILES+=usr/include/c++/3.4/bits/localefwd.h OLD_FILES+=usr/include/c++/3.4/bits/mask_array.h OLD_FILES+=usr/include/c++/3.4/bits/messages_members.h OLD_FILES+=usr/include/c++/3.4/bits/os_defines.h OLD_FILES+=usr/include/c++/3.4/bits/ostream.tcc OLD_FILES+=usr/include/c++/3.4/bits/postypes.h OLD_FILES+=usr/include/c++/3.4/bits/slice_array.h OLD_FILES+=usr/include/c++/3.4/bits/sstream.tcc OLD_FILES+=usr/include/c++/3.4/bits/stl_algo.h OLD_FILES+=usr/include/c++/3.4/bits/stl_algobase.h OLD_FILES+=usr/include/c++/3.4/bits/stl_bvector.h OLD_FILES+=usr/include/c++/3.4/bits/stl_construct.h OLD_FILES+=usr/include/c++/3.4/bits/stl_deque.h OLD_FILES+=usr/include/c++/3.4/bits/stl_function.h OLD_FILES+=usr/include/c++/3.4/bits/stl_heap.h OLD_FILES+=usr/include/c++/3.4/bits/stl_iterator.h OLD_FILES+=usr/include/c++/3.4/bits/stl_iterator_base_funcs.h OLD_FILES+=usr/include/c++/3.4/bits/stl_iterator_base_types.h OLD_FILES+=usr/include/c++/3.4/bits/stl_list.h OLD_FILES+=usr/include/c++/3.4/bits/stl_map.h OLD_FILES+=usr/include/c++/3.4/bits/stl_multimap.h OLD_FILES+=usr/include/c++/3.4/bits/stl_multiset.h OLD_FILES+=usr/include/c++/3.4/bits/stl_numeric.h OLD_FILES+=usr/include/c++/3.4/bits/stl_pair.h OLD_FILES+=usr/include/c++/3.4/bits/stl_queue.h OLD_FILES+=usr/include/c++/3.4/bits/stl_raw_storage_iter.h OLD_FILES+=usr/include/c++/3.4/bits/stl_relops.h OLD_FILES+=usr/include/c++/3.4/bits/stl_set.h OLD_FILES+=usr/include/c++/3.4/bits/stl_stack.h OLD_FILES+=usr/include/c++/3.4/bits/stl_tempbuf.h OLD_FILES+=usr/include/c++/3.4/bits/stl_threads.h OLD_FILES+=usr/include/c++/3.4/bits/stl_tree.h OLD_FILES+=usr/include/c++/3.4/bits/stl_uninitialized.h OLD_FILES+=usr/include/c++/3.4/bits/stl_vector.h OLD_FILES+=usr/include/c++/3.4/bits/stream_iterator.h OLD_FILES+=usr/include/c++/3.4/bits/streambuf.tcc OLD_FILES+=usr/include/c++/3.4/bits/streambuf_iterator.h OLD_FILES+=usr/include/c++/3.4/bits/stringfwd.h OLD_FILES+=usr/include/c++/3.4/bits/time_members.h OLD_FILES+=usr/include/c++/3.4/bits/type_traits.h OLD_FILES+=usr/include/c++/3.4/bits/valarray_after.h OLD_FILES+=usr/include/c++/3.4/bits/valarray_array.h OLD_FILES+=usr/include/c++/3.4/bits/valarray_array.tcc OLD_FILES+=usr/include/c++/3.4/bits/valarray_before.h OLD_FILES+=usr/include/c++/3.4/bits/vector.tcc OLD_FILES+=usr/include/c++/3.4/bitset OLD_FILES+=usr/include/c++/3.4/cassert OLD_FILES+=usr/include/c++/3.4/cctype OLD_FILES+=usr/include/c++/3.4/cerrno OLD_FILES+=usr/include/c++/3.4/cfloat OLD_FILES+=usr/include/c++/3.4/ciso646 OLD_FILES+=usr/include/c++/3.4/climits OLD_FILES+=usr/include/c++/3.4/clocale OLD_FILES+=usr/include/c++/3.4/cmath OLD_FILES+=usr/include/c++/3.4/complex OLD_FILES+=usr/include/c++/3.4/csetjmp OLD_FILES+=usr/include/c++/3.4/csignal OLD_FILES+=usr/include/c++/3.4/cstdarg OLD_FILES+=usr/include/c++/3.4/cstddef OLD_FILES+=usr/include/c++/3.4/cstdio OLD_FILES+=usr/include/c++/3.4/cstdlib OLD_FILES+=usr/include/c++/3.4/cstring OLD_FILES+=usr/include/c++/3.4/ctime OLD_FILES+=usr/include/c++/3.4/cwchar OLD_FILES+=usr/include/c++/3.4/cwctype OLD_FILES+=usr/include/c++/3.4/cxxabi.h OLD_FILES+=usr/include/c++/3.4/debug/bitset OLD_FILES+=usr/include/c++/3.4/debug/debug.h OLD_FILES+=usr/include/c++/3.4/debug/deque OLD_FILES+=usr/include/c++/3.4/debug/formatter.h OLD_FILES+=usr/include/c++/3.4/debug/hash_map OLD_FILES+=usr/include/c++/3.4/debug/hash_map.h OLD_FILES+=usr/include/c++/3.4/debug/hash_multimap.h OLD_FILES+=usr/include/c++/3.4/debug/hash_multiset.h OLD_FILES+=usr/include/c++/3.4/debug/hash_set OLD_FILES+=usr/include/c++/3.4/debug/hash_set.h OLD_FILES+=usr/include/c++/3.4/debug/list OLD_FILES+=usr/include/c++/3.4/debug/map OLD_FILES+=usr/include/c++/3.4/debug/map.h OLD_FILES+=usr/include/c++/3.4/debug/multimap.h OLD_FILES+=usr/include/c++/3.4/debug/multiset.h OLD_FILES+=usr/include/c++/3.4/debug/safe_base.h OLD_FILES+=usr/include/c++/3.4/debug/safe_iterator.h OLD_FILES+=usr/include/c++/3.4/debug/safe_iterator.tcc OLD_FILES+=usr/include/c++/3.4/debug/safe_sequence.h OLD_FILES+=usr/include/c++/3.4/debug/set OLD_FILES+=usr/include/c++/3.4/debug/set.h OLD_FILES+=usr/include/c++/3.4/debug/string OLD_FILES+=usr/include/c++/3.4/debug/vector OLD_FILES+=usr/include/c++/3.4/deque OLD_FILES+=usr/include/c++/3.4/exception OLD_FILES+=usr/include/c++/3.4/exception_defines.h OLD_FILES+=usr/include/c++/3.4/ext/algorithm OLD_FILES+=usr/include/c++/3.4/ext/bitmap_allocator.h OLD_FILES+=usr/include/c++/3.4/ext/debug_allocator.h OLD_FILES+=usr/include/c++/3.4/ext/enc_filebuf.h OLD_FILES+=usr/include/c++/3.4/ext/functional OLD_FILES+=usr/include/c++/3.4/ext/hash_fun.h OLD_FILES+=usr/include/c++/3.4/ext/hash_map OLD_FILES+=usr/include/c++/3.4/ext/hash_set OLD_FILES+=usr/include/c++/3.4/ext/hashtable.h OLD_FILES+=usr/include/c++/3.4/ext/iterator OLD_FILES+=usr/include/c++/3.4/ext/malloc_allocator.h OLD_FILES+=usr/include/c++/3.4/ext/memory OLD_FILES+=usr/include/c++/3.4/ext/mt_allocator.h OLD_FILES+=usr/include/c++/3.4/ext/new_allocator.h OLD_FILES+=usr/include/c++/3.4/ext/numeric OLD_FILES+=usr/include/c++/3.4/ext/pod_char_traits.h OLD_FILES+=usr/include/c++/3.4/ext/pool_allocator.h OLD_FILES+=usr/include/c++/3.4/ext/rb_tree OLD_FILES+=usr/include/c++/3.4/ext/rope OLD_FILES+=usr/include/c++/3.4/ext/ropeimpl.h OLD_FILES+=usr/include/c++/3.4/ext/slist OLD_FILES+=usr/include/c++/3.4/ext/stdio_filebuf.h OLD_FILES+=usr/include/c++/3.4/ext/stdio_sync_filebuf.h OLD_FILES+=usr/include/c++/3.4/fstream OLD_FILES+=usr/include/c++/3.4/functional OLD_FILES+=usr/include/c++/3.4/iomanip OLD_FILES+=usr/include/c++/3.4/ios OLD_FILES+=usr/include/c++/3.4/iosfwd OLD_FILES+=usr/include/c++/3.4/iostream OLD_FILES+=usr/include/c++/3.4/istream OLD_FILES+=usr/include/c++/3.4/iterator OLD_FILES+=usr/include/c++/3.4/limits OLD_FILES+=usr/include/c++/3.4/list OLD_FILES+=usr/include/c++/3.4/locale OLD_FILES+=usr/include/c++/3.4/map OLD_FILES+=usr/include/c++/3.4/memory OLD_FILES+=usr/include/c++/3.4/new OLD_FILES+=usr/include/c++/3.4/numeric OLD_FILES+=usr/include/c++/3.4/ostream OLD_FILES+=usr/include/c++/3.4/queue OLD_FILES+=usr/include/c++/3.4/set OLD_FILES+=usr/include/c++/3.4/sstream OLD_FILES+=usr/include/c++/3.4/stack OLD_FILES+=usr/include/c++/3.4/stdexcept OLD_FILES+=usr/include/c++/3.4/streambuf OLD_FILES+=usr/include/c++/3.4/string OLD_FILES+=usr/include/c++/3.4/typeinfo OLD_FILES+=usr/include/c++/3.4/utility OLD_FILES+=usr/include/c++/3.4/valarray OLD_FILES+=usr/include/c++/3.4/vector OLD_DIRS+=usr/include/c++/3.4/backward OLD_DIRS+=usr/include/c++/3.4/bits OLD_DIRS+=usr/include/c++/3.4/debug OLD_DIRS+=usr/include/c++/3.4/ext OLD_DIRS+=usr/include/c++/3.4 # 20070510: zpool/zfs moved to /sbin OLD_FILES+=usr/sbin/zfs OLD_FILES+=usr/sbin/zpool # 20070423: rc.bluetooth (examples) removed OLD_FILES+=usr/share/examples/netgraph/bluetooth/rc.bluetooth OLD_DIRS+=usr/share/examples/netgraph/bluetooth # 20070421: worm.4 removed OLD_FILES+=usr/share/man/man4/worm.4.gz # 20070417: trunk(4) renamed to lagg(4) OLD_FILES+=usr/include/net/if_trunk.h # 20070409: uuidgen moved to /bin/ OLD_FILES+=usr/bin/uuidgen # 20070328: bzip2 1.0.4 OLD_FILES+=usr/share/info/bzip2.info.gz # 20070303: libarchive 2.0 OLD_LIBS+=usr/lib/libarchive.so.3 OLD_LIBS+=usr/lib32/libarchive.so.3 # 20070301: remove addr2ascii and ascii2addr OLD_FILES+=usr/share/man/man3/addr2ascii.3.gz OLD_FILES+=usr/share/man/man3/ascii2addr.3.gz # 20070225: vm_page_unmanage() removed OLD_FILES+=usr/share/man/man9/vm_page_unmanage.9.gz # 20070216: VFS_VPTOFH(9) -> VOP_VPTOFH(9) OLD_FILES+=usr/share/man/man9/VFS_VPTOFH.9.gz # 20070212: kame.4 removed OLD_FILES+=usr/share/man/man4/kame.4.gz # 20070201: remove libmytinfo link OLD_FILES+=usr/lib/libmytinfo.a OLD_FILES+=usr/lib/libmytinfo.so OLD_FILES+=usr/lib/libmytinfo_p.a OLD_FILES+=usr/lib/libmytinfow.a OLD_FILES+=usr/lib/libmytinfow.so OLD_FILES+=usr/lib/libmytinfow_p.a OLD_FILES+=usr/lib32/libmytinfo.a OLD_FILES+=usr/lib32/libmytinfo.so OLD_FILES+=usr/lib32/libmytinfo_p.a OLD_FILES+=usr/lib32/libmytinfow.a OLD_FILES+=usr/lib32/libmytinfow.so OLD_FILES+=usr/lib32/libmytinfow_p.a # 20070128: remove vnconfig OLD_FILES+=usr/sbin/vnconfig # 20070127: remove bpf_compat.h OLD_FILES+=usr/include/net/bpf_compat.h # 20070125: objformat bites the dust OLD_FILES+=usr/bin/objformat OLD_FILES+=usr/share/man/man1/objformat.1.gz OLD_FILES+=usr/include/objformat.h OLD_FILES+=usr/share/man/man3/getobjformat.3.gz # 20061201: remove symlink to *.so.4 libalias modules OLD_FILES+=usr/lib/libalias_cuseeme.so OLD_FILES+=usr/lib/libalias_dummy.so OLD_FILES+=usr/lib/libalias_ftp.so OLD_FILES+=usr/lib/libalias_irc.so OLD_FILES+=usr/lib/libalias_nbt.so OLD_FILES+=usr/lib/libalias_pptp.so OLD_FILES+=usr/lib/libalias_skinny.so OLD_FILES+=usr/lib/libalias_smedia.so # 20061201: remove old *.so.4 libalias modules OLD_FILES+=lib/libalias_cuseeme.so.4 OLD_FILES+=lib/libalias_dummy.so.4 OLD_FILES+=lib/libalias_ftp.so.4 OLD_FILES+=lib/libalias_irc.so.4 OLD_FILES+=lib/libalias_nbt.so.4 OLD_FILES+=lib/libalias_pptp.so.4 OLD_FILES+=lib/libalias_skinny.so.4 OLD_FILES+=lib/libalias_smedia.so.4 # 20061126: remove old man page OLD_FILES+=usr/share/man/man3/archive_read_set_bytes_per_block.3.gz # 20061125: remove old man page OLD_FILES+=usr/share/man/man9/devsw.9.gz # 20061122: remove obsolete mount programs OLD_FILES+=sbin/mount_devfs OLD_FILES+=sbin/mount_ext2fs OLD_FILES+=sbin/mount_fdescfs OLD_FILES+=sbin/mount_linprocfs OLD_FILES+=sbin/mount_procfs OLD_FILES+=sbin/mount_std OLD_FILES+=rescue/mount_devfs OLD_FILES+=rescue/mount_ext2fs OLD_FILES+=rescue/mount_fdescfs OLD_FILES+=rescue/mount_linprocfs OLD_FILES+=rescue/mount_procfs OLD_FILES+=rescue/mount_std OLD_FILES+=usr/share/man/man8/mount_devfs.8.gz OLD_FILES+=usr/share/man/man8/mount_ext2fs.8.gz OLD_FILES+=usr/share/man/man8/mount_fdescfs.8.gz OLD_FILES+=usr/share/man/man8/mount_linprocfs.8.gz OLD_FILES+=usr/share/man/man8/mount_procfs.8.gz OLD_FILES+=usr/share/man/man8/mount_std.8.gz # 20061116: uhidev.4 removed OLD_FILES+=usr/share/man/man4/uhidev.4.gz # 20061106: archive_write_prepare.3 removed OLD_FILES+=usr/share/man/man3/archive_write_prepare.3.gz # 20061018: pccardc removed OLD_FILES+=usr/sbin/pccardc usr/share/man/man8/pccardc.8.gz # 20060930: demangle.h from contrib/libstdc++/include/ext/ OLD_FILES+=usr/include/c++/3.4/ext/demangle.h # 20060929: mrouted removed OLD_FILES+=usr/sbin/map-mbone OLD_FILES+=usr/sbin/mrinfo OLD_FILES+=usr/sbin/mrouted OLD_FILES+=usr/sbin/mtrace OLD_FILES+=usr/share/man/man8/map-mbone.8.gz OLD_FILES+=usr/share/man/man8/mrinfo.8.gz OLD_FILES+=usr/share/man/man8/mrouted.8.gz OLD_FILES+=usr/share/man/man8/mtrace.8.gz # 20060924: tcpslice removed OLD_FILES+=usr/sbin/tcpslice OLD_FILES+=usr/share/man/man1/tcpslice.1.gz # 20060829: kvmdb cleanup script removed OLD_FILES+=etc/periodic/weekly/120.clean-kvmdb # 20060822: ramdisk{,-own} have been replaced by mdconfig{,2} OLD_FILES+=etc/rc.d/ramdisk OLD_FILES+=etc/rc.d/ramdisk-own # 20060729: OpenSSL 0.9.7e -> 0.9.8b upgrade OLD_FILES+=usr/include/openssl/eng_int.h OLD_FILES+=usr/include/openssl/hw_4758_cca_err.h OLD_FILES+=usr/include/openssl/hw_aep_err.h OLD_FILES+=usr/include/openssl/hw_atalla_err.h OLD_FILES+=usr/include/openssl/hw_cswift_err.h OLD_FILES+=usr/include/openssl/hw_ncipher_err.h OLD_FILES+=usr/include/openssl/hw_nuron_err.h OLD_FILES+=usr/include/openssl/hw_sureware_err.h OLD_FILES+=usr/include/openssl/hw_ubsec_err.h # 20060713: mount_linsysfs(8) never existed in 7.x OLD_FILES+=sbin/mount_linsysfs OLD_FILES+=usr/share/man/man8/mount_linsysfs.8.gz # 20060704: KAME compat file net_osdep.h removed OLD_FILES+=usr/include/net/net_osdep.h # 20060605: man page links removed by OpenBSM 1.0 alpha 6 import OLD_FILES+=usr/share/man/man3/au_to_socket.3.gz OLD_FILES+=usr/share/man/man3/au_to_socket_ex_128.3.gz OLD_FILES+=usr/share/man/man3/au_to_socket_ex_32.3.gz # 20060517: pcvt removed OLD_FILES+=usr/share/pcvt/README.FIRST OLD_FILES+=usr/share/pcvt/Etc/xmodmap-german OLD_FILES+=usr/share/pcvt/Etc/pcvt.sh OLD_FILES+=usr/share/pcvt/Etc/pcvt.el OLD_FILES+=usr/share/pcvt/Etc/Terminfo OLD_FILES+=usr/share/pcvt/Etc/Termcap OLD_DIRS+=usr/share/pcvt/Etc OLD_FILES+=usr/share/pcvt/Doc/NotesAndHints OLD_FILES+=usr/share/pcvt/Doc/Keyboard.VT OLD_FILES+=usr/share/pcvt/Doc/Keyboard.HP OLD_FILES+=usr/share/pcvt/Doc/EscapeSequences OLD_FILES+=usr/share/pcvt/Doc/Charsets OLD_FILES+=usr/share/pcvt/Doc/CharGen OLD_FILES+=usr/share/pcvt/Doc/Bibliography OLD_FILES+=usr/share/pcvt/Doc/Acknowledgements OLD_DIRS+=usr/share/pcvt/Doc OLD_DIRS+=usr/share/pcvt OLD_FILES+=usr/share/misc/pcvtfonts/vt220l.816 OLD_FILES+=usr/share/misc/pcvtfonts/vt220l.814 OLD_FILES+=usr/share/misc/pcvtfonts/vt220l.810 OLD_FILES+=usr/share/misc/pcvtfonts/vt220l.808 OLD_FILES+=usr/share/misc/pcvtfonts/vt220h.816 OLD_FILES+=usr/share/misc/pcvtfonts/vt220h.814 OLD_FILES+=usr/share/misc/pcvtfonts/vt220h.810 OLD_FILES+=usr/share/misc/pcvtfonts/vt220h.808 OLD_DIRS+=usr/share/misc/pcvtfonts OLD_FILES+=usr/share/misc/keycap.pcvt OLD_FILES+=usr/share/man/man8/ispcvt.8.gz OLD_FILES+=usr/share/man/man5/keycap.5.gz OLD_FILES+=usr/share/man/man4/pcvt.4.gz OLD_FILES+=usr/share/man/man3/kgetstr.3.gz OLD_FILES+=usr/share/man/man3/kgetnum.3.gz OLD_FILES+=usr/share/man/man3/kgetflag.3.gz OLD_FILES+=usr/share/man/man3/kgetent.3.gz OLD_FILES+=usr/share/man/man3/keycap.3.gz OLD_FILES+=usr/share/man/man1/vt220keys.1.gz OLD_FILES+=usr/share/man/man1/scon.1.gz OLD_FILES+=usr/share/man/man1/loadfont.1.gz OLD_FILES+=usr/share/man/man1/kcon.1.gz OLD_FILES+=usr/share/man/man1/fontedit.1.gz OLD_FILES+=usr/share/man/man1/cursor.1.gz OLD_FILES+=usr/sbin/vt220keys OLD_FILES+=usr/sbin/scon OLD_FILES+=usr/sbin/loadfont OLD_FILES+=usr/sbin/kcon OLD_FILES+=usr/sbin/ispcvt OLD_FILES+=usr/sbin/fontedit OLD_FILES+=usr/sbin/cursor OLD_FILES+=usr/lib/libkeycap_p.a OLD_FILES+=usr/lib/libkeycap.a OLD_FILES+=usr/include/machine/pcvt_ioctl.h # 20060514: lnc(4) replaced by le(4) OLD_FILES+=usr/share/man/man4/i386/lnc.4.gz # 20060512: remove ip6fw OLD_FILES+=etc/periodic/security/600.ip6fwdenied OLD_FILES+=etc/periodic/security/650.ip6fwlimit OLD_FILES+=sbin/ip6fw OLD_FILES+=usr/include/netinet6/ip6_fw.h OLD_FILES+=usr/share/man/man8/ip6fw.8.gz # 20060424: sab(4) removed OLD_FILES+=usr/share/man/man4/sab.4.gz # 20060328: remove redundant rc.d script OLD_FILES+=etc/rc.d/ike # 20060127: revert libdisk to static-only OLD_FILES+=usr/lib/libdisk.so # 20060115: sys/pccard includes cleanup OLD_FILES+=usr/include/pccard/driver.h OLD_FILES+=usr/include/pccard/i82365.h OLD_FILES+=usr/include/pccard/meciareg.h OLD_FILES+=usr/include/pccard/pccard_nbk.h OLD_FILES+=usr/include/pccard/pcic_pci.h OLD_FILES+=usr/include/pccard/pcicvar.h OLD_FILES+=usr/include/pccard/slot.h # 20051215: rescue/nextboot.sh renamed to rescue/nextboot OLD_FILES+=rescue/nextboot.sh # 20051214: usbd(8) removed OLD_FILES+=etc/rc.d/usbd OLD_FILES+=etc/usbd.conf OLD_FILES+=usr/sbin/usbd OLD_FILES+=usr/share/man/man8/usbd.8.gz # 20051029: rc.d/ppp-user renamed to rc.d/ppp for convenience OLD_FILES+=etc/rc.d/ppp-user # 20051012: setkey(8) moved to /sbin/ OLD_FILES+=usr/sbin/setkey # 20050930: pccardd(8) removed OLD_FILES+=usr/sbin/pccardd OLD_FILES+=usr/share/man/man5/pccard.conf.5.gz OLD_FILES+=usr/share/man/man8/pccardd.8.gz # 20050927: bridge(4) replaced by if_bridge(4) OLD_FILES+=usr/include/net/bridge.h # 20050831: not implemented OLD_FILES+=usr/share/man/man3/getino.3.gz OLD_FILES+=usr/share/man/man3/putino.3.gz # 20050825: T/TCP retired several months ago OLD_FILES+=usr/share/man/man4/ttcp.4.gz # 20050805 tn3270 retired long ago OLD_FILES+=usr/share/misc/map3270 # 20050801: too old to be interesting here OLD_FILES+=usr/share/doc/papers/px.ps.gz # 20050721: moved to ports OLD_FILES+=usr/sbin/vttest OLD_FILES+=usr/share/man/man1/vttest.1.gz # 20050617: wpa man pages moved to section 8 OLD_FILES+=usr/share/man/man1/hostapd.1.gz OLD_FILES+=usr/share/man/man1/hostapd_cli.1.gz OLD_FILES+=usr/share/man/man1/wpa_cli.1.gz OLD_FILES+=usr/share/man/man1/wpa_supplicant.1.gz # 20050610: rexecd (insecure by design) OLD_FILES+=etc/pam.d/rexecd OLD_FILES+=usr/share/man/man8/rexecd.8.gz OLD_FILES+=usr/libexec/rexecd # 20050606: OpenBSD dhclient replaces ISC one OLD_FILES+=bin/omshell OLD_FILES+=sbin/omshell OLD_FILES+=usr/share/man/man1/omshell.1.gz OLD_FILES+=usr/share/man/man5/dhcp-eval.5.gz # 200504XX: ipf tools moved from /usr to / OLD_FILES+=rescue/ipfs OLD_FILES+=rescue/ipfstat OLD_FILES+=rescue/ipmon OLD_FILES+=rescue/ipnat OLD_FILES+=usr/sbin/ipftest OLD_FILES+=usr/sbin/ipresend OLD_FILES+=usr/sbin/ipsend OLD_FILES+=usr/sbin/iptest OLD_FILES+=usr/share/man/man1/ipnat.1.gz OLD_FILES+=usr/share/man/man1/ipsend.1.gz OLD_FILES+=usr/share/man/man1/iptest.1.gz OLD_FILES+=usr/share/man/man5/ipsend.5.gz # 200503XX: bsdtar takes over gtar OLD_FILES+=usr/bin/gtar OLD_FILES+=usr/share/man/man1/gtar.1.gz # 200503XX OLD_FILES+=usr/share/man/man3/exp10.3.gz OLD_FILES+=usr/share/man/man3/exp10f.3.gz OLD_FILES+=usr/share/man/man3/fpsetsticky.3.gz # 20050324: updated release infrastructure OLD_FILES+=usr/share/man/man5/drivers.conf.5.gz # 20050317: removed from BIND 9 distribution OLD_FILES+=usr/share/doc/bind9/KNOWN_DEFECTS # 2005XXXX: OLD_FILES+=sbin/mount_autofs OLD_FILES+=usr/lib/libautofs.a OLD_FILES+=usr/lib/libautofs.so OLD_FILES+=usr/share/man/man8/mount_autofs.8.gz # 20050203: Merged with fortunes OLD_FILES+=usr/share/games/fortune/fortunes2 OLD_FILES+=usr/share/games/fortune/fortunes2.dat # 200501XX: OLD_FILES+=usr/libexec/getNAME # 200411XX: gvinum replaces vinum OLD_FILES+=bin/vinum OLD_FILES+=rescue/vinum OLD_FILES+=sbin/vinum OLD_FILES+=usr/share/man/man8/vinum.8.gz # 200411XX: libxpg4 removal OLD_FILES+=usr/lib/libxpg4.a OLD_FILES+=usr/lib/libxpg4.so OLD_FILES+=usr/lib/libxpg4_p.a # 20041109: replaced by em(4) OLD_FILES+=usr/share/man/man4/gx.4.gz OLD_FILES+=usr/share/man/man4/if_gx.4.gz # 20041017: rune interface removed OLD_FILES+=usr/include/rune.h OLD_FILES+=usr/share/man/man3/fgetrune.3.gz OLD_FILES+=usr/share/man/man3/fputrune.3.gz OLD_FILES+=usr/share/man/man3/fungetrune.3.gz OLD_FILES+=usr/share/man/man3/mbrrune.3.gz OLD_FILES+=usr/share/man/man3/mbrune.3.gz OLD_FILES+=usr/share/man/man3/rune.3.gz OLD_FILES+=usr/share/man/man3/setinvalidrune.3.gz OLD_FILES+=usr/share/man/man3/sgetrune.3.gz OLD_FILES+=usr/share/man/man3/sputrune.3.gz # 20040925: bind9 import OLD_FILES+=usr/bin/dnskeygen OLD_FILES+=usr/bin/dnsquery OLD_FILES+=usr/lib/libisc.a OLD_FILES+=usr/lib/libisc.so OLD_FILES+=usr/lib/libisc_p.a OLD_FILES+=usr/libexec/named-xfer OLD_FILES+=usr/sbin/named.restart OLD_FILES+=usr/sbin/ndc OLD_FILES+=usr/sbin/nslookup OLD_FILES+=usr/sbin/nsupdate OLD_FILES+=usr/share/doc/bind/html/acl.html OLD_FILES+=usr/share/doc/bind/html/address_list.html OLD_FILES+=usr/share/doc/bind/html/comments.html OLD_FILES+=usr/share/doc/bind/html/config.html OLD_FILES+=usr/share/doc/bind/html/controls.html OLD_FILES+=usr/share/doc/bind/html/docdef.html OLD_FILES+=usr/share/doc/bind/html/example.html OLD_FILES+=usr/share/doc/bind/html/include.html OLD_FILES+=usr/share/doc/bind/html/index.html OLD_FILES+=usr/share/doc/bind/html/key.html OLD_FILES+=usr/share/doc/bind/html/logging.html OLD_FILES+=usr/share/doc/bind/html/master.html OLD_FILES+=usr/share/doc/bind/html/options.html OLD_FILES+=usr/share/doc/bind/html/server.html OLD_FILES+=usr/share/doc/bind/html/trusted-keys.html OLD_FILES+=usr/share/doc/bind/html/zone.html OLD_FILES+=usr/share/doc/bind/misc/DynamicUpdate OLD_FILES+=usr/share/doc/bind/misc/FAQ.1of2 OLD_FILES+=usr/share/doc/bind/misc/FAQ.2of2 OLD_FILES+=usr/share/doc/bind/misc/rfc2317-notes.txt OLD_FILES+=usr/share/doc/bind/misc/style.txt OLD_FILES+=usr/share/man/man1/dnskeygen.1.gz OLD_FILES+=usr/share/man/man1/dnsquery.1.gz OLD_FILES+=usr/share/man/man8/named-bootconf.8.gz OLD_FILES+=usr/share/man/man8/named-xfer.8.gz OLD_FILES+=usr/share/man/man8/named.restart.8.gz OLD_FILES+=usr/share/man/man8/ndc.8.gz OLD_FILES+=usr/share/man/man8/nslookup.8.gz # 200409XX OLD_FILES+=usr/share/man/man3/ENSURE.3.gz OLD_FILES+=usr/share/man/man3/ENSURE_ERR.3.gz OLD_FILES+=usr/share/man/man3/INSIST.3.gz OLD_FILES+=usr/share/man/man3/INSIST_ERR.3.gz OLD_FILES+=usr/share/man/man3/INVARIANT.3.gz OLD_FILES+=usr/share/man/man3/INVARIANT_ERR.3.gz OLD_FILES+=usr/share/man/man3/REQUIRE.3.gz OLD_FILES+=usr/share/man/man3/REQUIRE_ERR.3.gz OLD_FILES+=usr/share/man/man3/assertion_type_to_text.3.gz OLD_FILES+=usr/share/man/man3/assertions.3.gz OLD_FILES+=usr/share/man/man3/bitncmp.3.gz OLD_FILES+=usr/share/man/man3/evAddTime.3.gz OLD_FILES+=usr/share/man/man3/evCancelConn.3.gz OLD_FILES+=usr/share/man/man3/evCancelRW.3.gz OLD_FILES+=usr/share/man/man3/evClearIdleTimer.3.gz OLD_FILES+=usr/share/man/man3/evClearTimer.3.gz OLD_FILES+=usr/share/man/man3/evCmpTime.3.gz OLD_FILES+=usr/share/man/man3/evConnFunc.3.gz OLD_FILES+=usr/share/man/man3/evConnect.3.gz OLD_FILES+=usr/share/man/man3/evConsIovec.3.gz OLD_FILES+=usr/share/man/man3/evConsTime.3.gz OLD_FILES+=usr/share/man/man3/evCreate.3.gz OLD_FILES+=usr/share/man/man3/evDefer.3.gz OLD_FILES+=usr/share/man/man3/evDeselectFD.3.gz OLD_FILES+=usr/share/man/man3/evDestroy.3.gz OLD_FILES+=usr/share/man/man3/evDispatch.3.gz OLD_FILES+=usr/share/man/man3/evDo.3.gz OLD_FILES+=usr/share/man/man3/evDrop.3.gz OLD_FILES+=usr/share/man/man3/evFileFunc.3.gz OLD_FILES+=usr/share/man/man3/evGetNext.3.gz OLD_FILES+=usr/share/man/man3/evHold.3.gz OLD_FILES+=usr/share/man/man3/evInitID.3.gz OLD_FILES+=usr/share/man/man3/evLastEventTime.3.gz OLD_FILES+=usr/share/man/man3/evListen.3.gz OLD_FILES+=usr/share/man/man3/evMainLoop.3.gz OLD_FILES+=usr/share/man/man3/evNowTime.3.gz OLD_FILES+=usr/share/man/man3/evPrintf.3.gz OLD_FILES+=usr/share/man/man3/evRead.3.gz OLD_FILES+=usr/share/man/man3/evResetTimer.3.gz OLD_FILES+=usr/share/man/man3/evSelectFD.3.gz OLD_FILES+=usr/share/man/man3/evSetDebug.3.gz OLD_FILES+=usr/share/man/man3/evSetIdleTimer.3.gz OLD_FILES+=usr/share/man/man3/evSetTimer.3.gz OLD_FILES+=usr/share/man/man3/evStreamFunc.3.gz OLD_FILES+=usr/share/man/man3/evSubTime.3.gz OLD_FILES+=usr/share/man/man3/evTestID.3.gz OLD_FILES+=usr/share/man/man3/evTimeRW.3.gz OLD_FILES+=usr/share/man/man3/evTimeSpec.3.gz OLD_FILES+=usr/share/man/man3/evTimeVal.3.gz OLD_FILES+=usr/share/man/man3/evTimerFunc.3.gz OLD_FILES+=usr/share/man/man3/evTouchIdleTimer.3.gz OLD_FILES+=usr/share/man/man3/evTryAccept.3.gz OLD_FILES+=usr/share/man/man3/evUnhold.3.gz OLD_FILES+=usr/share/man/man3/evUntimeRW.3.gz OLD_FILES+=usr/share/man/man3/evUnwait.3.gz OLD_FILES+=usr/share/man/man3/evWaitFor.3.gz OLD_FILES+=usr/share/man/man3/evWaitFunc.3.gz OLD_FILES+=usr/share/man/man3/evWrite.3.gz OLD_FILES+=usr/share/man/man3/eventlib.3.gz OLD_FILES+=usr/share/man/man3/heap.3.gz OLD_FILES+=usr/share/man/man3/heap_decreased.3.gz OLD_FILES+=usr/share/man/man3/heap_delete.3.gz OLD_FILES+=usr/share/man/man3/heap_element.3.gz OLD_FILES+=usr/share/man/man3/heap_for_each.3.gz OLD_FILES+=usr/share/man/man3/heap_free.3.gz OLD_FILES+=usr/share/man/man3/heap_increased.3.gz OLD_FILES+=usr/share/man/man3/heap_insert.3.gz OLD_FILES+=usr/share/man/man3/heap_new.3.gz OLD_FILES+=usr/share/man/man3/log_add_channel.3.gz OLD_FILES+=usr/share/man/man3/log_category_is_active.3.gz OLD_FILES+=usr/share/man/man3/log_close_stream.3.gz OLD_FILES+=usr/share/man/man3/log_dec_references.3.gz OLD_FILES+=usr/share/man/man3/log_free_channel.3.gz OLD_FILES+=usr/share/man/man3/log_free_context.3.gz OLD_FILES+=usr/share/man/man3/log_get_filename.3.gz OLD_FILES+=usr/share/man/man3/log_get_stream.3.gz OLD_FILES+=usr/share/man/man3/log_inc_references.3.gz OLD_FILES+=usr/share/man/man3/log_new_context.3.gz OLD_FILES+=usr/share/man/man3/log_new_file_channel.3.gz OLD_FILES+=usr/share/man/man3/log_new_null_channel.3.gz OLD_FILES+=usr/share/man/man3/log_new_syslog_channel.3.gz OLD_FILES+=usr/share/man/man3/log_open_stream.3.gz OLD_FILES+=usr/share/man/man3/log_option.3.gz OLD_FILES+=usr/share/man/man3/log_remove_channel.3.gz OLD_FILES+=usr/share/man/man3/log_set_file_owner.3.gz OLD_FILES+=usr/share/man/man3/log_vwrite.3.gz OLD_FILES+=usr/share/man/man3/log_write.3.gz OLD_FILES+=usr/share/man/man3/logging.3.gz OLD_FILES+=usr/share/man/man3/memcluster.3.gz OLD_FILES+=usr/share/man/man3/memget.3.gz OLD_FILES+=usr/share/man/man3/memput.3.gz OLD_FILES+=usr/share/man/man3/memstats.3.gz OLD_FILES+=usr/share/man/man3/set_assertion_failure_callback.3. OLD_FILES+=usr/share/man/man3/sigwait.3.gz OLD_FILES+=usr/share/man/man3/tree_add.3.gz OLD_FILES+=usr/share/man/man3/tree_delete.3.gz OLD_FILES+=usr/share/man/man3/tree_init.3.gz OLD_FILES+=usr/share/man/man3/tree_mung.3.gz OLD_FILES+=usr/share/man/man3/tree_srch.3.gz OLD_FILES+=usr/share/man/man3/tree_trav.3.gz # 2004XXYY: OS internal libs, no ports use them, no need to use OLD_LIBS OLD_FILES+=lib/geom/geom_concat.so.1 OLD_FILES+=lib/geom/geom_label.so.1 OLD_FILES+=lib/geom/geom_nop.so.1 OLD_FILES+=lib/geom/geom_stripe.so.1 # 20040728: GCC 3.4.2 OLD_DIRS+=usr/include/c++/3.3 OLD_FILES+=usr/include/c++/3.3/FlexLexer.h OLD_FILES+=usr/include/c++/3.3/algorithm OLD_FILES+=usr/include/c++/3.3/backward/algo.h OLD_FILES+=usr/include/c++/3.3/backward/algobase.h OLD_FILES+=usr/include/c++/3.3/backward/alloc.h OLD_FILES+=usr/include/c++/3.3/backward/backward_warning.h OLD_FILES+=usr/include/c++/3.3/backward/bvector.h OLD_FILES+=usr/include/c++/3.3/backward/complex.h OLD_FILES+=usr/include/c++/3.3/backward/defalloc.h OLD_FILES+=usr/include/c++/3.3/backward/deque.h OLD_FILES+=usr/include/c++/3.3/backward/fstream.h OLD_FILES+=usr/include/c++/3.3/backward/function.h OLD_FILES+=usr/include/c++/3.3/backward/hash_map.h OLD_FILES+=usr/include/c++/3.3/backward/hash_set.h OLD_FILES+=usr/include/c++/3.3/backward/hashtable.h OLD_FILES+=usr/include/c++/3.3/backward/heap.h OLD_FILES+=usr/include/c++/3.3/backward/iomanip.h OLD_FILES+=usr/include/c++/3.3/backward/iostream.h OLD_FILES+=usr/include/c++/3.3/backward/istream.h OLD_FILES+=usr/include/c++/3.3/backward/iterator.h OLD_FILES+=usr/include/c++/3.3/backward/list.h OLD_FILES+=usr/include/c++/3.3/backward/map.h OLD_FILES+=usr/include/c++/3.3/backward/multimap.h OLD_FILES+=usr/include/c++/3.3/backward/multiset.h OLD_FILES+=usr/include/c++/3.3/backward/new.h OLD_FILES+=usr/include/c++/3.3/backward/ostream.h OLD_FILES+=usr/include/c++/3.3/backward/pair.h OLD_FILES+=usr/include/c++/3.3/backward/queue.h OLD_FILES+=usr/include/c++/3.3/backward/rope.h OLD_FILES+=usr/include/c++/3.3/backward/set.h OLD_FILES+=usr/include/c++/3.3/backward/slist.h OLD_FILES+=usr/include/c++/3.3/backward/stack.h OLD_FILES+=usr/include/c++/3.3/backward/stream.h OLD_FILES+=usr/include/c++/3.3/backward/streambuf.h OLD_FILES+=usr/include/c++/3.3/backward/strstream OLD_FILES+=usr/include/c++/3.3/backward/strstream.h OLD_FILES+=usr/include/c++/3.3/backward/tempbuf.h OLD_FILES+=usr/include/c++/3.3/backward/tree.h OLD_FILES+=usr/include/c++/3.3/backward/vector.h OLD_DIRS+=usr/include/c++/3.3/backward OLD_FILES+=usr/include/c++/3.3/bits/atomicity.h OLD_FILES+=usr/include/c++/3.3/bits/basic_file.h OLD_FILES+=usr/include/c++/3.3/bits/basic_ios.h OLD_FILES+=usr/include/c++/3.3/bits/basic_ios.tcc OLD_FILES+=usr/include/c++/3.3/bits/basic_string.h OLD_FILES+=usr/include/c++/3.3/bits/basic_string.tcc OLD_FILES+=usr/include/c++/3.3/bits/boost_concept_check.h OLD_FILES+=usr/include/c++/3.3/bits/c++config.h OLD_FILES+=usr/include/c++/3.3/bits/c++io.h OLD_FILES+=usr/include/c++/3.3/bits/c++locale.h OLD_FILES+=usr/include/c++/3.3/bits/c++locale_internal.h OLD_FILES+=usr/include/c++/3.3/bits/char_traits.h OLD_FILES+=usr/include/c++/3.3/bits/cmath.tcc OLD_FILES+=usr/include/c++/3.3/bits/codecvt.h OLD_FILES+=usr/include/c++/3.3/bits/codecvt_specializations.h OLD_FILES+=usr/include/c++/3.3/bits/concept_check.h OLD_FILES+=usr/include/c++/3.3/bits/cpp_type_traits.h OLD_FILES+=usr/include/c++/3.3/bits/ctype_base.h OLD_FILES+=usr/include/c++/3.3/bits/ctype_inline.h OLD_FILES+=usr/include/c++/3.3/bits/ctype_noninline.h OLD_FILES+=usr/include/c++/3.3/bits/deque.tcc OLD_FILES+=usr/include/c++/3.3/bits/fpos.h OLD_FILES+=usr/include/c++/3.3/bits/fstream.tcc OLD_FILES+=usr/include/c++/3.3/bits/functexcept.h OLD_FILES+=usr/include/c++/3.3/bits/generic_shadow.h OLD_FILES+=usr/include/c++/3.3/bits/gslice.h OLD_FILES+=usr/include/c++/3.3/bits/gslice_array.h OLD_FILES+=usr/include/c++/3.3/bits/gthr-default.h OLD_FILES+=usr/include/c++/3.3/bits/gthr-posix.h OLD_FILES+=usr/include/c++/3.3/bits/gthr-single.h OLD_FILES+=usr/include/c++/3.3/bits/gthr.h OLD_FILES+=usr/include/c++/3.3/bits/indirect_array.h OLD_FILES+=usr/include/c++/3.3/bits/ios_base.h OLD_FILES+=usr/include/c++/3.3/bits/istream.tcc OLD_FILES+=usr/include/c++/3.3/bits/list.tcc OLD_FILES+=usr/include/c++/3.3/bits/locale_classes.h OLD_FILES+=usr/include/c++/3.3/bits/locale_facets.h OLD_FILES+=usr/include/c++/3.3/bits/locale_facets.tcc OLD_FILES+=usr/include/c++/3.3/bits/localefwd.h OLD_FILES+=usr/include/c++/3.3/bits/mask_array.h OLD_FILES+=usr/include/c++/3.3/bits/messages_members.h OLD_FILES+=usr/include/c++/3.3/bits/os_defines.h OLD_FILES+=usr/include/c++/3.3/bits/ostream.tcc OLD_FILES+=usr/include/c++/3.3/bits/pthread_allocimpl.h OLD_FILES+=usr/include/c++/3.3/bits/slice.h OLD_FILES+=usr/include/c++/3.3/bits/slice_array.h OLD_FILES+=usr/include/c++/3.3/bits/sstream.tcc OLD_FILES+=usr/include/c++/3.3/bits/stl_algo.h OLD_FILES+=usr/include/c++/3.3/bits/stl_algobase.h OLD_FILES+=usr/include/c++/3.3/bits/stl_alloc.h OLD_FILES+=usr/include/c++/3.3/bits/stl_bvector.h OLD_FILES+=usr/include/c++/3.3/bits/stl_construct.h OLD_FILES+=usr/include/c++/3.3/bits/stl_deque.h OLD_FILES+=usr/include/c++/3.3/bits/stl_function.h OLD_FILES+=usr/include/c++/3.3/bits/stl_heap.h OLD_FILES+=usr/include/c++/3.3/bits/stl_iterator.h OLD_FILES+=usr/include/c++/3.3/bits/stl_iterator_base_funcs.h OLD_FILES+=usr/include/c++/3.3/bits/stl_iterator_base_types.h OLD_FILES+=usr/include/c++/3.3/bits/stl_list.h OLD_FILES+=usr/include/c++/3.3/bits/stl_map.h OLD_FILES+=usr/include/c++/3.3/bits/stl_multimap.h OLD_FILES+=usr/include/c++/3.3/bits/stl_multiset.h OLD_FILES+=usr/include/c++/3.3/bits/stl_numeric.h OLD_FILES+=usr/include/c++/3.3/bits/stl_pair.h OLD_FILES+=usr/include/c++/3.3/bits/stl_pthread_alloc.h OLD_FILES+=usr/include/c++/3.3/bits/stl_queue.h OLD_FILES+=usr/include/c++/3.3/bits/stl_raw_storage_iter.h OLD_FILES+=usr/include/c++/3.3/bits/stl_relops.h OLD_FILES+=usr/include/c++/3.3/bits/stl_set.h OLD_FILES+=usr/include/c++/3.3/bits/stl_stack.h OLD_FILES+=usr/include/c++/3.3/bits/stl_tempbuf.h OLD_FILES+=usr/include/c++/3.3/bits/stl_threads.h OLD_FILES+=usr/include/c++/3.3/bits/stl_tree.h OLD_FILES+=usr/include/c++/3.3/bits/stl_uninitialized.h OLD_FILES+=usr/include/c++/3.3/bits/stl_vector.h OLD_FILES+=usr/include/c++/3.3/bits/stream_iterator.h OLD_FILES+=usr/include/c++/3.3/bits/streambuf.tcc OLD_FILES+=usr/include/c++/3.3/bits/streambuf_iterator.h OLD_FILES+=usr/include/c++/3.3/bits/stringfwd.h OLD_FILES+=usr/include/c++/3.3/bits/time_members.h OLD_FILES+=usr/include/c++/3.3/bits/type_traits.h OLD_FILES+=usr/include/c++/3.3/bits/valarray_array.h OLD_FILES+=usr/include/c++/3.3/bits/valarray_array.tcc OLD_FILES+=usr/include/c++/3.3/bits/valarray_meta.h OLD_FILES+=usr/include/c++/3.3/bits/vector.tcc OLD_DIRS+=usr/include/c++/3.3/bits OLD_FILES+=usr/include/c++/3.3/bitset OLD_FILES+=usr/include/c++/3.3/cassert OLD_FILES+=usr/include/c++/3.3/cctype OLD_FILES+=usr/include/c++/3.3/cerrno OLD_FILES+=usr/include/c++/3.3/cfloat OLD_FILES+=usr/include/c++/3.3/ciso646 OLD_FILES+=usr/include/c++/3.3/climits OLD_FILES+=usr/include/c++/3.3/clocale OLD_FILES+=usr/include/c++/3.3/cmath OLD_FILES+=usr/include/c++/3.3/complex OLD_FILES+=usr/include/c++/3.3/csetjmp OLD_FILES+=usr/include/c++/3.3/csignal OLD_FILES+=usr/include/c++/3.3/cstdarg OLD_FILES+=usr/include/c++/3.3/cstddef OLD_FILES+=usr/include/c++/3.3/cstdio OLD_FILES+=usr/include/c++/3.3/cstdlib OLD_FILES+=usr/include/c++/3.3/cstring OLD_FILES+=usr/include/c++/3.3/ctime OLD_FILES+=usr/include/c++/3.3/cwchar OLD_FILES+=usr/include/c++/3.3/cwctype OLD_FILES+=usr/include/c++/3.3/cxxabi.h OLD_FILES+=usr/include/c++/3.3/deque OLD_FILES+=usr/include/c++/3.3/exception OLD_FILES+=usr/include/c++/3.3/exception_defines.h OLD_FILES+=usr/include/c++/3.3/ext/algorithm OLD_FILES+=usr/include/c++/3.3/ext/enc_filebuf.h OLD_FILES+=usr/include/c++/3.3/ext/functional OLD_FILES+=usr/include/c++/3.3/ext/hash_map OLD_FILES+=usr/include/c++/3.3/ext/hash_set OLD_FILES+=usr/include/c++/3.3/ext/iterator OLD_FILES+=usr/include/c++/3.3/ext/memory OLD_FILES+=usr/include/c++/3.3/ext/numeric OLD_FILES+=usr/include/c++/3.3/ext/rb_tree OLD_FILES+=usr/include/c++/3.3/ext/rope OLD_FILES+=usr/include/c++/3.3/ext/ropeimpl.h OLD_FILES+=usr/include/c++/3.3/ext/slist OLD_FILES+=usr/include/c++/3.3/ext/stdio_filebuf.h OLD_FILES+=usr/include/c++/3.3/ext/stl_hash_fun.h OLD_FILES+=usr/include/c++/3.3/ext/stl_hashtable.h OLD_FILES+=usr/include/c++/3.3/ext/stl_rope.h OLD_DIRS+=usr/include/c++/3.3/ext OLD_FILES+=usr/include/c++/3.3/fstream OLD_FILES+=usr/include/c++/3.3/functional OLD_FILES+=usr/include/c++/3.3/iomanip OLD_FILES+=usr/include/c++/3.3/ios OLD_FILES+=usr/include/c++/3.3/iosfwd OLD_FILES+=usr/include/c++/3.3/iostream OLD_FILES+=usr/include/c++/3.3/istream OLD_FILES+=usr/include/c++/3.3/iterator OLD_FILES+=usr/include/c++/3.3/limits OLD_FILES+=usr/include/c++/3.3/list OLD_FILES+=usr/include/c++/3.3/locale OLD_FILES+=usr/include/c++/3.3/map OLD_FILES+=usr/include/c++/3.3/memory OLD_FILES+=usr/include/c++/3.3/new OLD_FILES+=usr/include/c++/3.3/numeric OLD_FILES+=usr/include/c++/3.3/ostream OLD_FILES+=usr/include/c++/3.3/queue OLD_FILES+=usr/include/c++/3.3/set OLD_FILES+=usr/include/c++/3.3/sstream OLD_FILES+=usr/include/c++/3.3/stack OLD_FILES+=usr/include/c++/3.3/stdexcept OLD_FILES+=usr/include/c++/3.3/streambuf OLD_FILES+=usr/include/c++/3.3/string OLD_FILES+=usr/include/c++/3.3/typeinfo OLD_FILES+=usr/include/c++/3.3/utility OLD_FILES+=usr/include/c++/3.3/valarray OLD_FILES+=usr/include/c++/3.3/vector # 20040713: fla(4) removed. OLD_FILES+=usr/share/man/man4/fla.4.gz # 200407XX OLD_FILES+=usr/sbin/kernbb OLD_FILES+=usr/sbin/ntp-genkeys OLD_FILES+=usr/sbin/ntptimeset OLD_FILES+=usr/share/man/man8/kernbb.8.gz OLD_FILES+=usr/share/man/man8/ntp-genkeys.8.gz # 20040627: usbdevs.h and usbdevs_data.h removal OLD_FILES+=usr/include/dev/usb/usbdevs.h OLD_FILES+=usr/include/dev/usb/usbdevs_data.h # 200406XX OLD_FILES+=usr/bin/gasp OLD_FILES+=usr/bin/gdbreplay OLD_FILES+=usr/share/man/man1/gasp.1.gz OLD_FILES+=sbin/mountd OLD_FILES+=sbin/mount_fdesc OLD_FILES+=sbin/mount_umap OLD_FILES+=sbin/mount_union OLD_FILES+=sbin/mount_msdos OLD_FILES+=sbin/mount_null OLD_FILES+=sbin/mount_kernfs # 200405XX: arl OLD_FILES+=usr/sbin/arlconfig OLD_FILES+=usr/share/man/man8/arlconfig.8.gz # 200403XX OLD_FILES+=bin/raidctl OLD_FILES+=sbin/raidctl OLD_FILES+=usr/bin/sasc OLD_FILES+=usr/sbin/sgsc OLD_FILES+=usr/sbin/stlload OLD_FILES+=usr/sbin/stlstats OLD_FILES+=usr/share/man/man1/sasc.1.gz OLD_FILES+=usr/share/man/man1/sgsc.1.gz OLD_FILES+=usr/share/man/man4/i386/stl.4.gz OLD_FILES+=usr/share/man/man8/raidctl.8.gz # 20040229: clean_environment() was removed after 3 days OLD_FILES+=usr/share/man/man3/clean_environment.3.gz # 20040119: installed as `isdntel' in newer systems OLD_FILES+=etc/isdn/isdntel.sh # 200XYYZZ: /lib transition clitches OLD_FILES+=lib/libalias.so OLD_FILES+=lib/libatm.so OLD_FILES+=lib/libbsdxml.so OLD_FILES+=lib/libc.so OLD_FILES+=lib/libcam.so OLD_FILES+=lib/libcrypt.so OLD_FILES+=lib/libcrypto.so OLD_FILES+=lib/libdevstat.so OLD_FILES+=lib/libedit.so OLD_FILES+=lib/libgeom.so OLD_FILES+=lib/libipsec.so OLD_FILES+=lib/libipx.so OLD_FILES+=lib/libkvm.so OLD_FILES+=lib/libm.so OLD_FILES+=lib/libmd.so OLD_FILES+=lib/libncurses.so OLD_FILES+=lib/libreadline.so OLD_FILES+=lib/libsbuf.so OLD_FILES+=lib/libufs.so OLD_FILES+=lib/libz.so # 200312XX OLD_FILES+=bin/cxconfig OLD_FILES+=sbin/cxconfig OLD_FILES+=usr/share/man/man8/cxconfig.8.gz # 20031016: MULTI_DRIVER_MODULE macro removed OLD_FILES+=usr/share/man/man9/MULTI_DRIVER_MODULE.9.gz # 200309XX OLD_FILES+=usr/bin/symorder OLD_FILES+=usr/share/man/man1/symorder.1.gz # 200308XX OLD_FILES+=usr/sbin/amldb OLD_FILES+=usr/share/man/man8/amldb.8.gz # 200307XX OLD_FILES+=sbin/mount_nwfs OLD_FILES+=sbin/mount_portalfs OLD_FILES+=sbin/mount_smbfs # 200306XX OLD_FILES+=usr/sbin/dev_mkdb OLD_FILES+=usr/share/man/man8/dev_mkdb.8.gz # 200304XX OLD_FILES+=usr/lib/libcipher.a OLD_FILES+=usr/lib/libcipher.so OLD_FILES+=usr/lib/libcipher_p.a OLD_FILES+=usr/lib/libgmp.a OLD_FILES+=usr/lib/libgmp.so OLD_FILES+=usr/lib/libgmp_p.a OLD_FILES+=usr/lib/libperl.a OLD_FILES+=usr/lib/libperl.so OLD_FILES+=usr/lib/libperl_p.a OLD_FILES+=usr/lib/libposix1e.a OLD_FILES+=usr/lib/libposix1e.so OLD_FILES+=usr/lib/libposix1e_p.a OLD_FILES+=usr/lib/libskey.a OLD_FILES+=usr/lib/libskey.so OLD_FILES+=usr/lib/libskey_p.a OLD_FILES+=usr/libexec/tradcpp0 OLD_FILES+=usr/libexec/cpp0 # 200304XX: removal of xten OLD_FILES+=usr/libexec/xtend OLD_FILES+=usr/sbin/xten OLD_FILES+=usr/share/man/man1/xten.1.gz OLD_FILES+=usr/share/man/man8/xtend.8.gz # 200303XX OLD_FILES+=usr/lib/libacl.so OLD_FILES+=usr/lib/libdescrypt.so OLD_FILES+=usr/lib/libf2c.so OLD_FILES+=usr/lib/libg++.so OLD_FILES+=usr/lib/libkdb.so OLD_FILES+=usr/lib/librsaINTL.so OLD_FILES+=usr/lib/libscrypt.so OLD_FILES+=usr/lib/libss.so # 200302XX OLD_FILES+=usr/lib/libacl.a OLD_FILES+=usr/lib/libacl_p.a OLD_FILES+=usr/lib/libkadm.a OLD_FILES+=usr/lib/libkadm.so OLD_FILES+=usr/lib/libkadm_p.a OLD_FILES+=usr/lib/libkafs.a OLD_FILES+=usr/lib/libkafs.so OLD_FILES+=usr/lib/libkafs_p.a OLD_FILES+=usr/lib/libkdb.a OLD_FILES+=usr/lib/libkdb_p.a OLD_FILES+=usr/lib/libkrb.a OLD_FILES+=usr/lib/libkrb.so OLD_FILES+=usr/lib/libkrb_p.a OLD_FILES+=usr/share/man/man3/SSL_CIPHER_get_name.3.gz OLD_FILES+=usr/share/man/man3/SSL_COMP_add_compression_method.3 OLD_FILES+=usr/share/man/man3/SSL_CTX_add_extra_chain_cert.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_add_session.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_ctrl.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_flush_sessions.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_free.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_get_verify_mode.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_load_verify_locations.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_new.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_sess_number.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_sess_set_cache_size.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_sess_set_get_cb.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_sessions.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_cert_store.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_cert_verify_callback.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_cipher_list.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_client_CA_list.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_client_cert_cb.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_default_passwd_cb.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_generate_session_id.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_info_callback.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_max_cert_list.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_mode.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_msg_callback.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_options.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_quiet_shutdown.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_session_cache_mode.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_session_id_context.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_ssl_version.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_timeout.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_tmp_dh_callback.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_tmp_rsa_callback.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_set_verify.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_use_certificate.3.gz OLD_FILES+=usr/share/man/man3/SSL_SESSION_free.3.gz OLD_FILES+=usr/share/man/man3/SSL_SESSION_get_ex_new_index.3.gz OLD_FILES+=usr/share/man/man3/SSL_SESSION_get_time.3.gz OLD_FILES+=usr/share/man/man3/SSL_accept.3.gz OLD_FILES+=usr/share/man/man3/SSL_alert_type_string.3.gz OLD_FILES+=usr/share/man/man3/SSL_clear.3.gz OLD_FILES+=usr/share/man/man3/SSL_connect.3.gz OLD_FILES+=usr/share/man/man3/SSL_do_handshake.3.gz OLD_FILES+=usr/share/man/man3/SSL_free.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_SSL_CTX.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_ciphers.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_client_CA_list.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_current_cipher.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_default_timeout.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_error.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_ex_data_X509_STORE_CTX_idx.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_ex_new_index.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_fd.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_peer_cert_chain.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_peer_certificate.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_rbio.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_session.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_verify_result.3.gz OLD_FILES+=usr/share/man/man3/SSL_get_version.3.gz OLD_FILES+=usr/share/man/man3/SSL_library_init.3.gz OLD_FILES+=usr/share/man/man3/SSL_load_client_CA_file.3.gz OLD_FILES+=usr/share/man/man3/SSL_new.3.gz OLD_FILES+=usr/share/man/man3/SSL_pending.3.gz OLD_FILES+=usr/share/man/man3/SSL_read.3.gz OLD_FILES+=usr/share/man/man3/SSL_rstate_string.3.gz OLD_FILES+=usr/share/man/man3/SSL_session_reused.3.gz OLD_FILES+=usr/share/man/man3/SSL_set_bio.3.gz OLD_FILES+=usr/share/man/man3/SSL_set_connect_state.3.gz OLD_FILES+=usr/share/man/man3/SSL_set_fd.3.gz OLD_FILES+=usr/share/man/man3/SSL_set_session.3.gz OLD_FILES+=usr/share/man/man3/SSL_set_shutdown.3.gz OLD_FILES+=usr/share/man/man3/SSL_set_verify_result.3.gz OLD_FILES+=usr/share/man/man3/SSL_shutdown.3.gz OLD_FILES+=usr/share/man/man3/SSL_state_string.3.gz OLD_FILES+=usr/share/man/man3/SSL_want.3.gz OLD_FILES+=usr/share/man/man3/SSL_write.3.gz OLD_FILES+=usr/share/man/man3/d2i_SSL_SESSION.3.gz # 200301XX OLD_FILES+=usr/share/man/man3/des_3cbc_encrypt.3.gz OLD_FILES+=usr/share/man/man3/des_3ecb_encrypt.3.gz OLD_FILES+=usr/share/man/man3/des_cbc_cksum.3.gz OLD_FILES+=usr/share/man/man3/des_cbc_encrypt.3.gz OLD_FILES+=usr/share/man/man3/des_cfb_encrypt.3.gz OLD_FILES+=usr/share/man/man3/des_ecb_encrypt.3.gz OLD_FILES+=usr/share/man/man3/des_enc_read.3.gz OLD_FILES+=usr/share/man/man3/des_enc_write.3.gz OLD_FILES+=usr/share/man/man3/des_is_weak_key.3.gz OLD_FILES+=usr/share/man/man3/des_key_sched.3.gz OLD_FILES+=usr/share/man/man3/des_ofb_encrypt.3.gz OLD_FILES+=usr/share/man/man3/des_pcbc_encrypt.3.gz OLD_FILES+=usr/share/man/man3/des_quad_cksum.3.gz OLD_FILES+=usr/share/man/man3/des_random_key.3.gz OLD_FILES+=usr/share/man/man3/des_read_2password.3.gz OLD_FILES+=usr/share/man/man3/des_read_password.3.gz OLD_FILES+=usr/share/man/man3/des_read_pw_string.3.gz OLD_FILES+=usr/share/man/man3/des_set_key.3.gz OLD_FILES+=usr/share/man/man3/des_set_odd_parity.3.gz OLD_FILES+=usr/share/man/man3/des_string_to_2key.3.gz OLD_FILES+=usr/share/man/man3/des_string_to_key.3.gz # 200212XX OLD_FILES+=usr/sbin/kenv OLD_FILES+=usr/bin/kenv OLD_FILES+=usr/sbin/elf2aout # 200210XX OLD_FILES+=usr/include/libusbhid.h OLD_FILES+=usr/share/man/man3/All_FreeBSD.3.gz OLD_FILES+=usr/share/man/man3/CheckRules.3.gz OLD_FILES+=usr/share/man/man3/ChunkCanBeRoot.3.gz OLD_FILES+=usr/share/man/man3/Clone_Disk.3.gz OLD_FILES+=usr/share/man/man3/Collapse_Chunk.3.gz OLD_FILES+=usr/share/man/man3/Collapse_Disk.3.gz OLD_FILES+=usr/share/man/man3/Create_Chunk.3.gz OLD_FILES+=usr/share/man/man3/Create_Chunk_DWIM.3.gz OLD_FILES+=usr/share/man/man3/Cyl_Aligned.3.gz OLD_FILES+=usr/share/man/man3/Debug_Disk.3.gz OLD_FILES+=usr/share/man/man3/Delete_Chunk.3.gz OLD_FILES+=usr/share/man/man3/Disk_Names.3.gz OLD_FILES+=usr/share/man/man3/Free_Disk.3.gz OLD_FILES+=usr/share/man/man3/MakeDev.3.gz OLD_FILES+=usr/share/man/man3/MakeDevDisk.3.gz OLD_FILES+=usr/share/man/man3/Next_Cyl_Aligned.3.gz OLD_FILES+=usr/share/man/man3/Next_Track_Aligned.3.gz OLD_FILES+=usr/share/man/man3/Open_Disk.3.gz OLD_FILES+=usr/share/man/man3/Prev_Cyl_Aligned.3.gz OLD_FILES+=usr/share/man/man3/Prev_Track_Aligned.3.gz OLD_FILES+=usr/share/man/man3/Set_Bios_Geom.3.gz OLD_FILES+=usr/share/man/man3/Set_Boot_Blocks.3.gz OLD_FILES+=usr/share/man/man3/Set_Boot_Mgr.3.gz OLD_FILES+=usr/share/man/man3/ShowChunkFlags.3.gz OLD_FILES+=usr/share/man/man3/Track_Aligned.3.gz OLD_FILES+=usr/share/man/man3/Write_Disk.3.gz OLD_FILES+=usr/share/man/man3/slice_type_name.3.gz # 200210XX: most games moved to ports OLD_FILES+=usr/share/man/man6/adventure.6.gz OLD_FILES+=usr/share/man/man6/arithmetic.6.gz OLD_FILES+=usr/share/man/man6/atc.6.gz OLD_FILES+=usr/share/man/man6/backgammon.6.gz OLD_FILES+=usr/share/man/man6/battlestar.6.gz OLD_FILES+=usr/share/man/man6/bs.6.gz OLD_FILES+=usr/share/man/man6/canfield.6.gz OLD_FILES+=usr/share/man/man6/cfscores.6.gz OLD_FILES+=usr/share/man/man6/cribbage.6.gz OLD_FILES+=usr/share/man/man6/fish.6.gz OLD_FILES+=usr/share/man/man6/hack.6.gz OLD_FILES+=usr/share/man/man6/hangman.6.gz OLD_FILES+=usr/share/man/man6/larn.6.gz OLD_FILES+=usr/share/man/man6/mille.6.gz OLD_FILES+=usr/share/man/man6/phantasia.6.gz OLD_FILES+=usr/share/man/man6/piano.6.gz OLD_FILES+=usr/share/man/man6/pig.6.gz OLD_FILES+=usr/share/man/man6/quiz.6.gz OLD_FILES+=usr/share/man/man6/rain.6.gz OLD_FILES+=usr/share/man/man6/robots.6.gz OLD_FILES+=usr/share/man/man6/rogue.6.gz OLD_FILES+=usr/share/man/man6/sail.6.gz OLD_FILES+=usr/share/man/man6/snake.6.gz OLD_FILES+=usr/share/man/man6/snscore.6.gz OLD_FILES+=usr/share/man/man6/trek.6.gz OLD_FILES+=usr/share/man/man6/wargames.6.gz OLD_FILES+=usr/share/man/man6/worm.6.gz OLD_FILES+=usr/share/man/man6/worms.6.gz OLD_FILES+=usr/share/man/man6/wump.6.gz # 200207XX OLD_FILES+=usr/share/man/man1aout/ar.1aout.gz OLD_FILES+=usr/share/man/man1aout/as.1aout.gz OLD_FILES+=usr/share/man/man1aout/ld.1aout.gz OLD_FILES+=usr/share/man/man1aout/nm.1aout.gz OLD_FILES+=usr/share/man/man1aout/ranlib.1aout.gz OLD_FILES+=usr/share/man/man1aout/size.1aout.gz OLD_FILES+=usr/share/man/man1aout/strings.1aout.gz OLD_FILES+=usr/share/man/man1aout/strip.1aout.gz OLD_FILES+=bin/mountd OLD_FILES+=bin/nfsd # 20020707 sbin/nfsd -> usr.sbin/nfsd OLD_FILES+=sbin/nfsd # 200206XX OLD_FILES+=usr/lib/libpam_ssh.a OLD_FILES+=usr/lib/libpam_ssh_p.a OLD_FILES+=usr/bin/help OLD_FILES+=usr/bin/sccs .if ${TARGET_ARCH} != "amd64" && ${TARGET} != "arm" && ${TARGET_ARCH} != "i386" && ${TARGET} != "powerpc" OLD_FILES+=usr/bin/gdbserver .endif OLD_FILES+=usr/bin/ssh-keysign OLD_FILES+=usr/sbin/gifconfig OLD_FILES+=usr/sbin/prefix # 200205XX OLD_FILES+=usr/bin/doscmd # 200204XX OLD_FILES+=usr/bin/a2p OLD_FILES+=usr/bin/ptx OLD_FILES+=usr/bin/pod2text OLD_FILES+=usr/bin/pod2man OLD_FILES+=usr/bin/pod2latex OLD_FILES+=usr/bin/pod2html OLD_FILES+=usr/bin/h2ph OLD_FILES+=usr/bin/dprofpp OLD_FILES+=usr/bin/c2ph OLD_FILES+=usr/bin/h2xs OLD_FILES+=usr/bin/pl2pm OLD_FILES+=usr/bin/splain OLD_FILES+=usr/bin/s2p OLD_FILES+=usr/bin/find2perl OLD_FILES+=usr/sbin/pkg_update OLD_FILES+=usr/sbin/scriptdump # 20020409 GC kget(1), userconfig is long dead. OLD_FILES+=sbin/kget OLD_FILES+=usr/share/man/man8/kget.8.gz # 200203XX OLD_FILES+=usr/lib/libss.a OLD_FILES+=usr/lib/libss_p.a OLD_FILES+=usr/lib/libtelnet.a OLD_FILES+=usr/lib/libtelnet_p.a OLD_FILES+=usr/sbin/diskpart # 200202XX OLD_FILES+=usr/bin/gprof4 # 200201XX OLD_FILES+=usr/sbin/linux # 2001XXXX OLD_FILES+=usr/bin/joy OLD_FILES+=usr/sbin/ibcs2 OLD_FILES+=usr/sbin/svr4 OLD_FILES+=usr/bin/chflags OLD_FILES+=usr/sbin/uuconv OLD_FILES+=usr/sbin/uuchk OLD_FILES+=usr/sbin/portmap OLD_FILES+=usr/sbin/pmap_set OLD_FILES+=usr/sbin/pmap_dump OLD_FILES+=usr/sbin/mcon OLD_FILES+=usr/sbin/stlstty OLD_FILES+=usr/sbin/ispppcontrol OLD_FILES+=usr/sbin/rndcontrol # 20011001: UUCP migration to ports OLD_FILES+=usr/bin/uucp OLD_FILES+=usr/bin/uulog OLD_FILES+=usr/bin/uuname OLD_FILES+=usr/bin/uupick OLD_FILES+=usr/bin/uusched OLD_FILES+=usr/bin/uustat OLD_FILES+=usr/bin/uuto OLD_FILES+=usr/bin/uux OLD_FILES+=usr/libexec/uucp/uucico OLD_FILES+=usr/libexec/uucp/uuxqt OLD_FILES+=usr/libexec/uucpd OLD_FILES+=usr/share/man/man1/uuconv.1.gz OLD_FILES+=usr/share/man/man1/uucp.1.gz OLD_FILES+=usr/share/man/man1/uulog.1.gz OLD_FILES+=usr/share/man/man1/uuname.1.gz OLD_FILES+=usr/share/man/man1/uupick.1.gz OLD_FILES+=usr/share/man/man1/uustat.1.gz OLD_FILES+=usr/share/man/man1/uuto.1.gz OLD_FILES+=usr/share/man/man1/uux.1.gz OLD_FILES+=usr/share/man/man8/uuchk.8.gz OLD_FILES+=usr/share/man/man8/uucico.8.gz OLD_FILES+=usr/share/man/man8/uucpd.8.gz OLD_FILES+=usr/share/man/man8/uusched.8.gz OLD_FILES+=usr/share/man/man8/uuxqt.8.gz # 20010523 mount_portal -> mount_portalfs OLD_FILES+=sbin/mount_portal OLD_FILES+=usr/share/man/man8/mount_portal.8.gz # 200104XX OLD_FILES+=usr/lib/libdescrypt.a OLD_FILES+=usr/lib/libscrypt.a OLD_FILES+=usr/lib/libscrypt_p.a OLD_FILES+=usr/sbin/pim6stat OLD_FILES+=usr/sbin/pim6sd OLD_FILES+=usr/sbin/pim6dd # 20010217 OLD_FILES+=usr/share/doc/bind/misc/dns-setup # 20001200 OLD_FILES+=usr/lib/libgcc_r_pic.a # 200009XX OLD_FILES+=usr/lib/libRSAglue.a OLD_FILES+=usr/lib/libRSAglue.so OLD_FILES+=usr/lib/librsaINTL.a OLD_FILES+=usr/lib/librsaUSA.a OLD_FILES+=usr/lib/librsaUSA.so # 200002XX ? OLD_FILES+=usr/lib/libf2c.a OLD_FILES+=usr/lib/libf2c_p.a OLD_FILES+=usr/lib/libg++.a OLD_FILES+=usr/lib/libg++_p.a # 20001006 OLD_FILES+=usr/bin/miniperl # 20000810 OLD_FILES+=usr/bin/sperl # 200001XX OLD_FILES+=usr/sbin/apmconf # 199911XX OLD_FILES+=usr/sbin/ipfstat OLD_FILES+=usr/sbin/ipmon OLD_FILES+=usr/sbin/ipnat OLD_FILES+=usr/sbin/bad144 OLD_FILES+=usr/sbin/wormcontrol OLD_FILES+=usr/sbin/named-bootconf OLD_FILES+=usr/sbin/kvm_mkdb OLD_FILES+=usr/sbin/keyadmin # 199909XX OLD_FILES+=usr/lib/libdesrypt_p.a OLD_FILES+=sbin/ft # 199903XX OLD_FILES+=sbin/modload OLD_FILES+=sbin/modunload OLD_FILES+=usr/sbin/natd # 199812XX OLD_FILES+=sbin/dset # 199809XX OLD_FILES+=sbin/scsi OLD_FILES+=sbin/scsiformat OLD_FILES+=usr/sbin/ncrcontrol OLD_FILES+=usr/sbin/tickadj # 199806XX OLD_FILES+=usr/sbin/mkdosfs # 199801XX OLD_FILES+=sbin/mount_lfs OLD_FILES+=sbin/newlfs OLD_FILES+=sbin/dumplfs OLD_FILES+=usr/sbin/qcamcontrol OLD_FILES+=usr/sbin/supscan # 1997XXXX OLD_FILES+=usr/sbin/sysctl OLD_FILES+=usr/sbin/ctm_scan OLD_FILES+=usr/sbin/addgroup OLD_FILES+=usr/sbin/rmgroup # 1996XXXX OLD_FILES+=sbin/rdisc OLD_FILES+=usr/sbin/cdplay OLD_FILES+=usr/sbin/supfilesrv OLD_FILES+=usr/sbin/routed OLD_FILES+=usr/sbin/lsdev OLD_FILES+=usr/sbin/yppasswdd ## unsorted # do we still support aout builds? #OLD_FILES+=usr/lib/aout/c++rt0.o #OLD_FILES+=usr/lib/aout/crt0.o #OLD_FILES+=usr/lib/aout/gcrt0.o #OLD_FILES+=usr/lib/aout/scrt0.o #OLD_FILES+=usr/lib/aout/sgcrt0.o OLD_FILES+=usr/bin/sperl5 OLD_FILES+=usr/bin/perl5.6.0 OLD_FILES+=usr/bin/sperl5.6.0 OLD_FILES+=usr/bin/perlbc OLD_FILES+=usr/bin/perl5.00503 OLD_FILES+=usr/bin/sperl5.00503 OLD_FILES+=usr/bin/perlbug OLD_FILES+=usr/bin/perlcc OLD_FILES+=usr/bin/perldoc OLD_FILES+=usr/bin/suidperl OLD_FILES+=usr/lib/pam_ftp.so OLD_FILES+=usr/libdata/perl/5.00503/CGI/Apache.pm OLD_FILES+=usr/libdata/perl/5.00503/CGI/Carp.pm OLD_FILES+=usr/libdata/perl/5.00503/CGI/Cookie.pm OLD_FILES+=usr/libdata/perl/5.00503/CGI/Fast.pm OLD_FILES+=usr/libdata/perl/5.00503/CGI/Push.pm OLD_FILES+=usr/libdata/perl/5.00503/CGI/Switch.pm OLD_FILES+=usr/libdata/perl/5.00503/CPAN/FirstTime.pm OLD_FILES+=usr/libdata/perl/5.00503/CPAN/Nox.pm OLD_FILES+=usr/libdata/perl/5.00503/Class/Struct.pm OLD_FILES+=usr/libdata/perl/5.00503/Devel/SelfStubber.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Command.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Embed.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Install.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Installed.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Liblist.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_OS2.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_Unix.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_VMS.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MM_Win32.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/MakeMaker.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Manifest.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Mkbootstrap.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Mksymlists.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/Packlist.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/inst OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/testlib.pm OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/typemap OLD_FILES+=usr/libdata/perl/5.00503/ExtUtils/xsubpp OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/Mac.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/OS2.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/Unix.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/VMS.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Spec/Win32.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Basename.pm OLD_FILES+=usr/libdata/perl/5.00503/File/CheckTree.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Compare.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Copy.pm OLD_FILES+=usr/libdata/perl/5.00503/File/DosGlob.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Find.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Path.pm OLD_FILES+=usr/libdata/perl/5.00503/File/Spec.pm OLD_FILES+=usr/libdata/perl/5.00503/File/stat.pm OLD_FILES+=usr/libdata/perl/5.00503/Getopt/Long.pm OLD_FILES+=usr/libdata/perl/5.00503/Getopt/Std.pm OLD_FILES+=usr/libdata/perl/5.00503/I18N/Collate.pm OLD_FILES+=usr/libdata/perl/5.00503/IPC/Open2.pm OLD_FILES+=usr/libdata/perl/5.00503/IPC/Open3.pm OLD_FILES+=usr/libdata/perl/5.00503/Math/BigFloat.pm OLD_FILES+=usr/libdata/perl/5.00503/Math/BigInt.pm OLD_FILES+=usr/libdata/perl/5.00503/Math/Complex.pm OLD_FILES+=usr/libdata/perl/5.00503/Math/Trig.pm OLD_FILES+=usr/libdata/perl/5.00503/Net/Ping.pm OLD_FILES+=usr/libdata/perl/5.00503/Net/hostent.pm OLD_FILES+=usr/libdata/perl/5.00503/Net/netent.pm OLD_FILES+=usr/libdata/perl/5.00503/Net/protoent.pm OLD_FILES+=usr/libdata/perl/5.00503/Net/servent.pm OLD_FILES+=usr/libdata/perl/5.00503/Pod/Functions.pm OLD_FILES+=usr/libdata/perl/5.00503/Pod/Html.pm OLD_FILES+=usr/libdata/perl/5.00503/Pod/Text.pm OLD_FILES+=usr/libdata/perl/5.00503/Search/Dict.pm OLD_FILES+=usr/libdata/perl/5.00503/Sys/Hostname.pm OLD_FILES+=usr/libdata/perl/5.00503/Sys/Syslog.pm OLD_FILES+=usr/libdata/perl/5.00503/Term/Cap.pm OLD_FILES+=usr/libdata/perl/5.00503/Term/Complete.pm OLD_FILES+=usr/libdata/perl/5.00503/Term/ReadLine.pm OLD_FILES+=usr/libdata/perl/5.00503/Test/Harness.pm OLD_FILES+=usr/libdata/perl/5.00503/Text/Abbrev.pm OLD_FILES+=usr/libdata/perl/5.00503/Text/ParseWords.pm OLD_FILES+=usr/libdata/perl/5.00503/Text/Soundex.pm OLD_FILES+=usr/libdata/perl/5.00503/Text/Tabs.pm OLD_FILES+=usr/libdata/perl/5.00503/Text/Wrap.pm OLD_FILES+=usr/libdata/perl/5.00503/Tie/Array.pm OLD_FILES+=usr/libdata/perl/5.00503/Tie/Handle.pm OLD_FILES+=usr/libdata/perl/5.00503/Tie/Hash.pm OLD_FILES+=usr/libdata/perl/5.00503/Tie/RefHash.pm OLD_FILES+=usr/libdata/perl/5.00503/Tie/Scalar.pm OLD_FILES+=usr/libdata/perl/5.00503/Tie/SubstrHash.pm OLD_FILES+=usr/libdata/perl/5.00503/Time/Local.pm OLD_FILES+=usr/libdata/perl/5.00503/Time/gmtime.pm OLD_FILES+=usr/libdata/perl/5.00503/Time/localtime.pm OLD_FILES+=usr/libdata/perl/5.00503/Time/tm.pm OLD_FILES+=usr/libdata/perl/5.00503/User/grent.pm OLD_FILES+=usr/libdata/perl/5.00503/User/pwent.pm OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/GetOptions.al OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/FindOption.al OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/Configure.al OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/config.al OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/Croak.al OLD_FILES+=usr/libdata/perl/5.00503/auto/Getopt/Long/autosplit.ix OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Deparse.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/CC.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Debug.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Showlex.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/makeliblinks OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Bblock.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/cc_harness OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Bytecode.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Stackobj.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Xref.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Lint.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Asmdata.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Assembler.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Disassembler.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/disassemble OLD_FILES+=usr/libdata/perl/5.00503/mach/B/assemble OLD_FILES+=usr/libdata/perl/5.00503/mach/B/Terse.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B/C.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/EXTERN.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/INTERN.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/XSUB.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/XSlock.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/av.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/bytecode.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/byterun.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/cc_runtime.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/config.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/cop.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/cv.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/dosish.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/embed.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/embedvar.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/fakethr.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/form.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/gv.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/handy.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/hv.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/intrpvar.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/iperlsys.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/keywords.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/mg.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/nostdio.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/objXSUB.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/objpp.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/op.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/opcode.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/patchlevel.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perl.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlio.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlsdio.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlsfio.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perlvars.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/perly.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/pp.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/pp_proto.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/proto.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/regcomp.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/regexp.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/regnodes.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/scope.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/sv.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/thrdvar.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/thread.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/unixish.h OLD_FILES+=usr/libdata/perl/5.00503/mach/CORE/util.h OLD_FILES+=usr/libdata/perl/5.00503/mach/Data/Dumper.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/File.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Select.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Socket.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Handle.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Seekable.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IO/Pipe.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IPC/SysV.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IPC/Msg.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IPC/Semaphore.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/B/B.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/B/B.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/B/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/autosplit.ix OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/DB_File.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/DB_File.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DB_File/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Data/Dumper/Dumper.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Data/Dumper/Dumper.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Data/Dumper/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/.exists OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/dl_findfile.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/dl_expandspec.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/dl_find_symbol_anywhere.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/autosplit.ix OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/DynaLoader.a OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/DynaLoader/extralibs.ld OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Fcntl/Fcntl.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Fcntl/Fcntl.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Fcntl/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IO/IO.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IO/IO.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IO/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IPC/SysV/SysV.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IPC/SysV/SysV.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/IPC/SysV/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/NDBM_File/NDBM_File.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/NDBM_File/NDBM_File.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/NDBM_File/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Opcode/Opcode.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Opcode/Opcode.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Opcode/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/assert.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/tolower.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/toupper.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/closedir.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/opendir.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/readdir.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rewinddir.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/errno.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/creat.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fcntl.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgrgid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgrnam.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atan2.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/cos.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/exp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fabs.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/log.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/pow.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sin.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sqrt.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpwnam.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpwuid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/longjmp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setjmp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/kill.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/feof.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/siglongjmp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sigsetjmp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/raise.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/offsetof.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/clearerr.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fclose.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fdopen.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fgetc.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fgets.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fileno.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fopen.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fprintf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fputc.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fputs.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fread.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/freopen.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fscanf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fseek.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ferror.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fflush.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fgetpos.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fsetpos.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ftell.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fwrite.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getc.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getchar.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/gets.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/perror.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/printf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/putc.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/putchar.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/puts.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/remove.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rename.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rewind.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/scanf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sprintf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sscanf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/tmpfile.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ungetc.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/vfprintf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/vprintf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/vsprintf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/abs.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atexit.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atof.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atoi.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/atol.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/bsearch.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/calloc.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/div.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/exit.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/free.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getenv.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/labs.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/ldiv.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/malloc.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/qsort.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rand.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/realloc.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/srand.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/system.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memchr.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memcmp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memcpy.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memmove.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/memset.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcat.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strchr.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcmp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcpy.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strcspn.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strerror.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strlen.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strncat.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strncmp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strncpy.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strpbrk.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strrchr.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strspn.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strstr.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/strtok.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/chmod.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fstat.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/mkdir.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/stat.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/umask.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/wait.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/waitpid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/gmtime.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/localtime.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/time.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/alarm.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/chdir.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/chown.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execl.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execle.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execlp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execv.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execve.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/execvp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/fork.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getcwd.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getegid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/geteuid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getgroups.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getlogin.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpgrp.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getpid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getppid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/getuid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/isatty.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/link.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/rmdir.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setbuf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setgid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setuid.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/setvbuf.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/sleep.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/unlink.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/utime.al OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/autosplit.ix OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/POSIX.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/POSIX.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/POSIX/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/SDBM_File/SDBM_File.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/SDBM_File/SDBM_File.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/SDBM_File/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Socket/Socket.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Socket/Socket.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Socket/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/attrs/attrs.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/attrs/attrs.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/attrs/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/re/re.so OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/re/re.bs OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/re/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/sdbm/extralibs.ld OLD_FILES+=usr/libdata/perl/5.00503/mach/auto/Errno/.packlist OLD_FILES+=usr/libdata/perl/5.00503/mach/Config.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/B.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/O.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/perllocal.pod OLD_FILES+=usr/libdata/perl/5.00503/mach/DB_File.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/Errno.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/Fcntl.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/IO.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/NDBM_File.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/Safe.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/Opcode.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/ops.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/POSIX.pod OLD_FILES+=usr/libdata/perl/5.00503/mach/POSIX.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/SDBM_File.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/Socket.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/attrs.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/re.pm OLD_FILES+=usr/libdata/perl/5.00503/mach/_h2ph_pre.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/a.out.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_ccb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_debug.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_extend.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_periph.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_queue.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_sim.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_xpt.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_xpt_periph.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/cam/cam_xpt_sim.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/aio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/alias.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/assert.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/bitstring.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/calendar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/camlib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/com_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/com_right.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ctype.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/curses.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/db.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/des.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/devstat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/dialog.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/dirent.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/disktab.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/dlfcn.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/elf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/errno.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/eti.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/fcntl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/fetch.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/float.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/floatingpoint.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/fnmatch.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/form.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/fstab.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ftpio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/fts.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/glob.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/gmp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/gnuregex.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/grp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/histedit.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ieeefp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ifaddrs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/inttypes.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/iso646.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/kvm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/libatm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/libdisk.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/libgen.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/libusb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/libutil.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/limits.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/link.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/linker_set.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/locale.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/login_cap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/malloc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/FlexLexer.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/PlotFile.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/SFile.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/_G_config.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/algo.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/algobase.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/alloc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/builtinbuf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/bvector.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/complex.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/defalloc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/deque.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/editbuf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/floatio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/fstream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/function.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/hash_map.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/hash_set.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/hashtable.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/heap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/indstream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iolibio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iomanip.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/list.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iostdio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iostream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iostreamP.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/istream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/iterator.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/libio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/libioP.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/map.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/multimap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/multiset.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/new.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/ostream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/pair.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/parsestream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/pfstream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/procbuf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/pthread_alloc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/rope.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/ropeimpl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/set.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/slist.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stack.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stdiostream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_algo.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/tree.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_algobase.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_alloc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_bvector.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_config.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_construct.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_deque.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_function.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hash_fun.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hash_map.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hash_set.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_hashtable.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_heap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_iterator.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_list.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_map.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_multimap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_multiset.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_numeric.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_pair.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_queue.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_raw_storage_iter.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_relops.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_rope.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_set.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_slist.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_stack.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_tempbuf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_tree.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_uninitialized.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stl_vector.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/stream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/streambuf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/strfile.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/strstream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/tempbuf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/type_traits.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g++/vector.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/math.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/md2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/md4.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/md5.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/memory.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/menu.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/mp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/mpool.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/mqueue.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ncurses.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ndbm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netdb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nl_types.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nlist.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objformat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/opie.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/osreldate.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/panel.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/paths.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pcap-int.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pcap-namedb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pcap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/poll.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pthread.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pthread_np.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pwd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/radlib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ranlib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/regex.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/regexp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/resolv.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ripemd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rune.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/runetype.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sched.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/search.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/semaphore.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/setjmp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sgtty.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sha.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/signal.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/skey.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/stab.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/stand.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/stdarg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/stddef.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/stdio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/stdlib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/strhash.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/string.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/stringlist.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/strings.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/struct.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sysexits.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/syslog.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/taclib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/tar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/tcpd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/term.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/termcap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/termios.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/time.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/timers.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ttyent.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ucontext.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/unctrl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/unistd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/utime.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/utmp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/values.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/varargs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vgl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vis.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/zconf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/zlib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/ftp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/inet.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/nameser.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/nameser_compat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/telnet.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/arpa/tftp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/assertions.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/ctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/dst.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/eventlib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/heap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/irpmarshall.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/logging.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/memcluster.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/misc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/tree.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/isc/list.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ansi.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/apic.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/apm_bios.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/apm_segments.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/asc_ioctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/asm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/asmacros.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/asnames.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/atomic.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bootinfo.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_at386.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_memio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_pc98.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_pio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_pio_ind.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cdk.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/clock.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/comstats.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/console.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cpu.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cpufunc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cputypes.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/cronyx.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/db_machdep.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/dvcfg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/elf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/endian.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/exec.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/float.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/floatingpoint.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/frame.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/globaldata.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/globals.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/gsc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_cause.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_debug.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_ioctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_rbch_ioctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_tel_ioctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_trace.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ieeefp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/if_wavelan_ieee.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/if_wl_wavelan.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/iic.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/in_cksum.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ioctl_bt848.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ioctl_ctx.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ioctl_fd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ioctl_meteor.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ipl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/joystick.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/limits.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/lock.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/md_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/mouse.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/mpapic.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/mtpr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/bus_dma.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/npx.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/param.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pcaudioio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pcb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pcb_ext.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pcvt_ioctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/perfmon.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/physio_proc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pmap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/proc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/profile.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/psl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ptrace.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/reg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/reloc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/resource.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/segments.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/setjmp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/sigframe.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/signal.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/smb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/smp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/smptests.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/soundcard.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/speaker.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/specialreg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/spigot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/stdarg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/sysarch.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/trap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/tss.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/types.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/uc_device.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ucontext.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/ultrasound.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/varargs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/vm86.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/vmparam.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/wtio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/i4b_isppp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/machine/pci_cfgreg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/bootsect.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/bpb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/denode.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/direntry.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/fat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/msdosfs/msdosfsmount.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/bpf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/bpf_compat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/bpfdesc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/bridge.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/ethernet.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/hostcache.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_arp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_atm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_dl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_gif.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_ieee80211.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_llc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_media.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_mib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_ppp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_pppvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_slvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_sppp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_stf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_tap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_tapvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_tun.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/slip.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_tunvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_types.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_vlan_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/intrq.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/iso88025.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/net_osdep.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/netisr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/pfkeyv2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/ppp_comp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/ppp_defs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/radix.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/raw_cb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/route.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/slcompress.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/zlib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_faith.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_arc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/net/if_gre.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/krpc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsdiskless.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsm_subs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsmount.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsnode.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsproto.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsrtt.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsrvcache.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nfsv2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/nqnfs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/rpcv2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nfs/xdr_subs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/aarp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/at.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/at_extern.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/at_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/ddp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/ddp_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/endian.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatalk/phase2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_cm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_if.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_ioctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_pcb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_sap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_sigmgr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_stack.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_sys.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/atm_vc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/kern_include.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/port.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netatm/queue.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/netgraph.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_UI.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_async.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_bpf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_bridge.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_cisco.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_echo.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_ether.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_frame_relay.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_hole.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_iface.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_ksocket.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_lmi.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_message.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_mppc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_one2many.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_parse.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_ppp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_pppoe.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_pptpgre.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_rfc1490.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_sample.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_socket.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_socketvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_tee.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_tty.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_vjc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_eiface.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_etf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_device.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_l2tp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netgraph/ng_fec.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/icmp6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/icmp_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/if_atm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/if_ether.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/if_fddi.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/igmp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/igmp_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_gif.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_hostcache.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_pcb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_systm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/in_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_auth.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_compat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_dummynet.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_ecn.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_encap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_fil.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_flow.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_frag.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_fw.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_icmp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_mroute.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_nat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_proxy.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_state.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ipl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ipprotosw.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_debug.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_fsm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_seq.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_timer.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcp_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/tcpip.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/udp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/udp_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_fw2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet/ip_gre.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ah.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ah6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/esp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/esp6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/icmp6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_gif.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_ifattach.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_pcb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_prefix.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/in6_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6_ecn.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6_fw.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6_mroute.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ip6protosw.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ipcomp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ipcomp6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ipsec.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/ipsec6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/mld6_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/nd6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/pim6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/pim6_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/scope6_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/tcp6_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/udp6_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/esp_rijndael.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netinet6/raw_ip6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx_if.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx_ip.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx_pcb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/ipx_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/spx.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/spx_debug.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/spx_timer.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipx/spx_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/key.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/key_debug.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/key_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/keydb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netkey/keysock.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netnatm/natm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_cfg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_conn.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_file.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_lib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_ncp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_nls.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_rcfile.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_rq.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_sock.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_subr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/ncp_user.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netncp/nwerror.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/idp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/idp_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/ns.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/ns_error.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/ns_if.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/ns_pcb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/sp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/spidp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/spp_debug.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/spp_timer.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netns/spp_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_compr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_ihash.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_inode.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_subr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfs_vfsops.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ntfs/ntfsmount.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nwfs/nwfs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nwfs/nwfs_mount.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nwfs/nwfs_node.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/nwfs/nwfs_subr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/NXConstStr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/Object.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/Protocol.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/encoding.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/hash.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/objc-api.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/objc-list.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/objc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/runtime.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/sarray.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/thr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/objc/typedstream.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/asn1.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/asn1_mac.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/bio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/blowfish.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/bn.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/buffer.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/cast.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/comp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/conf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/conf_api.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/crypto.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/des.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/dh.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/dsa.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/dso.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/e_os.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/e_os2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ebcdic.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/evp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/hmac.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/lhash.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/md2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/md4.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/md5.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/mdc2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/obj_mac.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/objects.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/opensslconf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/opensslv.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/pem.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/pem2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/pkcs12.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/pkcs7.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/rand.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/rc2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/rc4.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/rc5.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ripemd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/rsa.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/safestack.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/sha.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ssl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ssl2.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ssl23.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ssl3.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ssl_locl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/stack.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/symhacks.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/tls1.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/tmdiff.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/txt_db.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/x509.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/x509_vfy.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/x509v3.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/idea.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/aes.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/asn1t.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/cryptlib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/des_old.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ec.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/engine.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/krb5_asn.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/kssl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ocsp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ossl_typ.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ui.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ui_compat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/aes_locl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/eng_int.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/hw_4758_cca_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/hw_aep_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/hw_atalla_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/hw_cswift_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/hw_ncipher_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/hw_nuron_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/hw_sureware_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/hw_ubsec_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/openssl/ui_locl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pccard/cardinfo.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pccard/cis.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pccard/driver.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pccard/i82365.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pccard/pccard_nbk.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pccard/slot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pccard/meciareg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pccard/pcic_pci.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/pccard/pcicvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/posix4/aio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/posix4/mqueue.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/posix4/posix4.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/posix4/sched.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/posix4/semaphore.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/protocols/dumprestore.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/protocols/routed.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/protocols/rwhod.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/protocols/talkd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/protocols/timed.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/readline/chardefs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/readline/history.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/readline/keymaps.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/readline/readline.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/readline/rlconf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/readline/rlstdc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/readline/tilde.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/auth.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/auth_des.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/auth_unix.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/clnt.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/des.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/des_crypt.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/key_prot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/pmap_clnt.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/pmap_prot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/pmap_rmt.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/rpc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/rpc_com.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/rpc_msg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/svc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/svc_auth.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/types.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpc/xdr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/bootparam_prot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/crypt.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/key_prot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/klm_prot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/mount.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/nfs_prot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/nis.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/nis_cache.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/nis_callback.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/nis_db.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/nis_tags.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/nislib.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/nlm_prot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/rex.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/rnusers.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/rquota.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/rstat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/rwall.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/sm_inter.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/spray.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/yp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/yp_prot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/ypclnt.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/yppasswd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/ypupdate_prot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/rpcsvc/ypxfrd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/security/_pam_compat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/security/_pam_macros.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/security/_pam_types.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/security/pam_appl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/security/pam_malloc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/security/pam_misc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/security/pam_mod_misc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/security/pam_modules.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ss/mit-sipb-copyright.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ss/ss.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/ss/ss_err.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/_posix.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ata.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/acct.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/acl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/agpio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/aio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/assym.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/blist.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/buf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/bus.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/bus_private.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/callout.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ccdvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/cdefs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/cdio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/cdrio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/chio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/clist.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/endian.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/conf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/cons.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/consio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/copyright.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ctype.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/dir.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/dataacq.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/link_elf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/device_port.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/devicestat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/dirent.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/disk.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/disklabel.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/diskslice.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/dkstat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/dmap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/domain.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/dvdio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/elf32.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/elf64.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/elf_common.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/elf_generic.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/errno.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/event.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/eventhandler.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/eventvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/exec.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/extattr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/fbio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/fcntl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/file.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/filedesc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/filio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/gmon.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/imgact.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/imgact_aout.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/imgact_elf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/inflate.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/interrupt.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/inttypes.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ioccom.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ioctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ioctl_compat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ipc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/jail.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/joystick.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/kbio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/kernel.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/kthread.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ktrace.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/libkern.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/linker.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/linker_set.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/lock.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/lockf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/malloc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/mbuf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/md5.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/memrange.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/mman.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/module.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/mount.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/msg.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/msgbuf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/mtio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/namei.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/param.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/pciio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/pioctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/pipe.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/poll.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/proc.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/procfs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/protosw.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ptio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ptrace.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/queue.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/random.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/reboot.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/resource.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/resourcevar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/rman.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/rtprio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/sbuf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/select.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/sem.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/shm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/signal.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/signalvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/snoop.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/socket.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/socketvar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/sockio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/soundcard.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/stat.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/syscall-hide.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/syscall.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/sysctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/sysent.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/syslimits.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/syslog.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/sysproto.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/systm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/taskqueue.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/termios.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/time.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/timeb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/timepps.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/timers.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/times.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/timex.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/tprintf.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/tty.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ttychars.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ttycom.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ttydefaults.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ttydev.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/types.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ucontext.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/ucred.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/uio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/un.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/unistd.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/unpcb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/user.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/utsname.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/vmmeter.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/vnioctl.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/vnode.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/wait.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/wormio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/xrpuio.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/kobj.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/link_aout.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/nlist_aout.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/mchain.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/fnv_hash.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/iconv.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/sys/md4.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/pmap.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/swap_pager.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm_extern.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm_kern.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm_map.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm_object.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm_page.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm_pageout.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm_pager.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm_param.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vm_zone.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/vm/vnode_pager.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/complex.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/stdbool.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/langinfo.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netsmb/netbios.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netsmb/smb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netsmb/smb_conn.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netsmb/smb_dev.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netsmb/smb_rq.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netsmb/smb_subr.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netsmb/smb_tran.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netsmb/smb_trantcp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/g2c.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/telnet.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/elf-hints.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/libusbhid.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/radlib_vs.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/readpassphrase.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/wchar.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/wctype.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/crypto/cast.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/crypto/castsb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/crypto/cryptodev.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/crypto/cryptosoft.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/crypto/deflate.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/crypto/rijndael.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/crypto/rmd160.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/crypto/skipjack.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/crypto/xform.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/ah.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/ah_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/esp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/esp_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/ipcomp.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/ipcomp_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/ipip_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/ipsec.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/ipsec6.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/key.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/key_debug.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/key_var.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/keydb.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/keysock.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/netipsec/xform.ph OLD_FILES+=usr/libdata/perl/5.00503/mach/bzlib.ph OLD_FILES+=usr/libdata/perl/5.00503/pod/perl.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perl5004delta.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlapio.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlbook.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlbot.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlcall.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perldata.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perldebug.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perldelta.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perldiag.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perldsc.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlembed.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq1.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq2.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq3.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq4.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq5.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq6.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq7.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlipc.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq8.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfaq9.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlform.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlfunc.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlguts.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlhist.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perllocale.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perllol.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlmod.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlmodinstall.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlmodlib.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlobj.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlop.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlopentut.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlpod.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlport.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlre.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlref.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlreftut.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlrun.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlsec.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlstyle.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlsub.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlsyn.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlthrtut.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perltie.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perltoc.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perltoot.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perltrap.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlvar.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlxs.pod OLD_FILES+=usr/libdata/perl/5.00503/pod/perlxstut.pod OLD_FILES+=usr/libdata/perl/5.00503/AnyDBM_File.pm OLD_FILES+=usr/libdata/perl/5.00503/AutoLoader.pm OLD_FILES+=usr/libdata/perl/5.00503/AutoSplit.pm OLD_FILES+=usr/libdata/perl/5.00503/Benchmark.pm OLD_FILES+=usr/libdata/perl/5.00503/CGI.pm OLD_FILES+=usr/libdata/perl/5.00503/CPAN.pm OLD_FILES+=usr/libdata/perl/5.00503/Carp.pm OLD_FILES+=usr/libdata/perl/5.00503/Cwd.pm OLD_FILES+=usr/libdata/perl/5.00503/DirHandle.pm OLD_FILES+=usr/libdata/perl/5.00503/Dumpvalue.pm OLD_FILES+=usr/libdata/perl/5.00503/English.pm OLD_FILES+=usr/libdata/perl/5.00503/Env.pm OLD_FILES+=usr/libdata/perl/5.00503/Exporter.pm OLD_FILES+=usr/libdata/perl/5.00503/Fatal.pm OLD_FILES+=usr/libdata/perl/5.00503/FileCache.pm OLD_FILES+=usr/libdata/perl/5.00503/FileHandle.pm OLD_FILES+=usr/libdata/perl/5.00503/FindBin.pm OLD_FILES+=usr/libdata/perl/5.00503/SelectSaver.pm OLD_FILES+=usr/libdata/perl/5.00503/SelfLoader.pm OLD_FILES+=usr/libdata/perl/5.00503/Shell.pm OLD_FILES+=usr/libdata/perl/5.00503/Symbol.pm OLD_FILES+=usr/libdata/perl/5.00503/Test.pm OLD_FILES+=usr/libdata/perl/5.00503/abbrev.pl OLD_FILES+=usr/libdata/perl/5.00503/UNIVERSAL.pm OLD_FILES+=usr/libdata/perl/5.00503/assert.pl OLD_FILES+=usr/libdata/perl/5.00503/autouse.pm OLD_FILES+=usr/libdata/perl/5.00503/base.pm OLD_FILES+=usr/libdata/perl/5.00503/bigfloat.pl OLD_FILES+=usr/libdata/perl/5.00503/bigint.pl OLD_FILES+=usr/libdata/perl/5.00503/bigrat.pl OLD_FILES+=usr/libdata/perl/5.00503/blib.pm OLD_FILES+=usr/libdata/perl/5.00503/cacheout.pl OLD_FILES+=usr/libdata/perl/5.00503/chat2.pl OLD_FILES+=usr/libdata/perl/5.00503/complete.pl OLD_FILES+=usr/libdata/perl/5.00503/constant.pm OLD_FILES+=usr/libdata/perl/5.00503/ctime.pl OLD_FILES+=usr/libdata/perl/5.00503/diagnostics.pm OLD_FILES+=usr/libdata/perl/5.00503/dotsh.pl OLD_FILES+=usr/libdata/perl/5.00503/dumpvar.pl OLD_FILES+=usr/libdata/perl/5.00503/exceptions.pl OLD_FILES+=usr/libdata/perl/5.00503/fastcwd.pl OLD_FILES+=usr/libdata/perl/5.00503/fields.pm OLD_FILES+=usr/libdata/perl/5.00503/find.pl OLD_FILES+=usr/libdata/perl/5.00503/finddepth.pl OLD_FILES+=usr/libdata/perl/5.00503/flush.pl OLD_FILES+=usr/libdata/perl/5.00503/ftp.pl OLD_FILES+=usr/libdata/perl/5.00503/getcwd.pl OLD_FILES+=usr/libdata/perl/5.00503/getopt.pl OLD_FILES+=usr/libdata/perl/5.00503/getopts.pl OLD_FILES+=usr/libdata/perl/5.00503/hostname.pl OLD_FILES+=usr/libdata/perl/5.00503/importenv.pl OLD_FILES+=usr/libdata/perl/5.00503/integer.pm OLD_FILES+=usr/libdata/perl/5.00503/less.pm OLD_FILES+=usr/libdata/perl/5.00503/lib.pm OLD_FILES+=usr/libdata/perl/5.00503/locale.pm OLD_FILES+=usr/libdata/perl/5.00503/look.pl OLD_FILES+=usr/libdata/perl/5.00503/newgetopt.pl OLD_FILES+=usr/libdata/perl/5.00503/open2.pl OLD_FILES+=usr/libdata/perl/5.00503/open3.pl OLD_FILES+=usr/libdata/perl/5.00503/overload.pm OLD_FILES+=usr/libdata/perl/5.00503/perl5db.pl OLD_FILES+=usr/libdata/perl/5.00503/pwd.pl OLD_FILES+=usr/libdata/perl/5.00503/shellwords.pl OLD_FILES+=usr/libdata/perl/5.00503/sigtrap.pm OLD_FILES+=usr/libdata/perl/5.00503/stat.pl OLD_FILES+=usr/libdata/perl/5.00503/strict.pm OLD_FILES+=usr/libdata/perl/5.00503/subs.pm OLD_FILES+=usr/libdata/perl/5.00503/syslog.pl OLD_FILES+=usr/libdata/perl/5.00503/tainted.pl OLD_FILES+=usr/libdata/perl/5.00503/termcap.pl OLD_FILES+=usr/libdata/perl/5.00503/timelocal.pl OLD_FILES+=usr/libdata/perl/5.00503/validate.pl OLD_FILES+=usr/libdata/perl/5.00503/vars.pm OLD_FILES+=usr/libdata/perl/5.00503/re.pm OLD_FILES+=usr/libdata/perl/5.00503/Config.pm OLD_FILES+=usr/libdata/perl/5.00503/.exists OLD_FILES+=usr/libdata/perl/5.00503/DynaLoader.pm OLD_FILES+=usr/share/perl/man/man3/AnyDBM_File.3.gz OLD_FILES+=usr/share/perl/man/man3/AutoLoader.3.gz OLD_FILES+=usr/share/perl/man/man3/AutoSplit.3.gz OLD_FILES+=usr/share/perl/man/man3/B.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Asmdata.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Assembler.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Bblock.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Bytecode.3.gz OLD_FILES+=usr/share/perl/man/man3/B::C.3.gz OLD_FILES+=usr/share/perl/man/man3/B::CC.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Debug.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Deparse.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Disassembler.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Lint.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Showlex.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Stackobj.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Terse.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Xref.3.gz OLD_FILES+=usr/share/perl/man/man3/Benchmark.3.gz OLD_FILES+=usr/share/perl/man/man3/CGI.3.gz OLD_FILES+=usr/share/perl/man/man3/CGI::Apache.3.gz OLD_FILES+=usr/share/perl/man/man3/CGI::Carp.3.gz OLD_FILES+=usr/share/perl/man/man3/CGI::Cookie.3.gz OLD_FILES+=usr/share/perl/man/man3/CGI::Fast.3.gz OLD_FILES+=usr/share/perl/man/man3/CGI::Push.3.gz OLD_FILES+=usr/share/perl/man/man3/CGI::Switch.3.gz OLD_FILES+=usr/share/perl/man/man3/CPAN.3.gz OLD_FILES+=usr/share/perl/man/man3/CPAN::FirstTime.3.gz OLD_FILES+=usr/share/perl/man/man3/CPAN::Nox.3.gz OLD_FILES+=usr/share/perl/man/man3/Carp.3.gz OLD_FILES+=usr/share/perl/man/man3/Class::Struct.3.gz OLD_FILES+=usr/share/perl/man/man3/Config.3.gz OLD_FILES+=usr/share/perl/man/man3/Cwd.3.gz OLD_FILES+=usr/share/perl/man/man3/DB_File.3.gz OLD_FILES+=usr/share/perl/man/man3/Data::Dumper.3.gz OLD_FILES+=usr/share/perl/man/man3/Devel::SelfStubber.3.gz OLD_FILES+=usr/share/perl/man/man3/DirHandle.3.gz OLD_FILES+=usr/share/perl/man/man3/Dumpvalue.3.gz OLD_FILES+=usr/share/perl/man/man3/DynaLoader.3.gz OLD_FILES+=usr/share/perl/man/man3/English.3.gz OLD_FILES+=usr/share/perl/man/man3/Env.3.gz OLD_FILES+=usr/share/perl/man/man3/Exporter.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::Command.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::Embed.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::Install.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::Installed.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::Liblist.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::MM_OS2.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::MM_Unix.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::MM_VMS.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::MM_Win32.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::MakeMaker.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::Manifest.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::Mkbootstrap.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::Mksymlists.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::Packlist.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::testlib.3.gz OLD_FILES+=usr/share/perl/man/man3/Fatal.3.gz OLD_FILES+=usr/share/perl/man/man3/Fcntl.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Basename.3.gz OLD_FILES+=usr/share/perl/man/man3/File::CheckTree.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Compare.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Copy.3.gz OLD_FILES+=usr/share/perl/man/man3/File::DosGlob.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Find.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Path.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Spec.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Spec::Mac.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Spec::OS2.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Spec::Unix.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Spec::VMS.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Spec::Win32.3.gz OLD_FILES+=usr/share/perl/man/man3/File::stat.3.gz OLD_FILES+=usr/share/perl/man/man3/FileCache.3.gz OLD_FILES+=usr/share/perl/man/man3/IO.3.gz OLD_FILES+=usr/share/perl/man/man3/FileHandle.3.gz OLD_FILES+=usr/share/perl/man/man3/FindBin.3.gz OLD_FILES+=usr/share/perl/man/man3/GDBM_File.3.gz OLD_FILES+=usr/share/perl/man/man3/Getopt::Long.3.gz OLD_FILES+=usr/share/perl/man/man3/Getopt::Std.3.gz OLD_FILES+=usr/share/perl/man/man3/I18N::Collate.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::File.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::Handle.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::Pipe.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::Seekable.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::Select.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::Socket.3.gz OLD_FILES+=usr/share/perl/man/man3/IPC::Msg.3.gz OLD_FILES+=usr/share/perl/man/man3/IPC::Open2.3.gz OLD_FILES+=usr/share/perl/man/man3/IPC::Open3.3.gz OLD_FILES+=usr/share/perl/man/man3/IPC::Semaphore.3.gz OLD_FILES+=usr/share/perl/man/man3/IPC::SysV.3.gz OLD_FILES+=usr/share/perl/man/man3/Math::BigFloat.3.gz OLD_FILES+=usr/share/perl/man/man3/Math::BigInt.3.gz OLD_FILES+=usr/share/perl/man/man3/Math::Complex.3.gz OLD_FILES+=usr/share/perl/man/man3/Math::Trig.3.gz OLD_FILES+=usr/share/perl/man/man3/NDBM_File.3.gz OLD_FILES+=usr/share/perl/man/man3/Net::Ping.3.gz OLD_FILES+=usr/share/perl/man/man3/Net::hostent.3.gz OLD_FILES+=usr/share/perl/man/man3/Net::netent.3.gz OLD_FILES+=usr/share/perl/man/man3/Net::protoent.3.gz OLD_FILES+=usr/share/perl/man/man3/Net::servent.3.gz OLD_FILES+=usr/share/perl/man/man3/O.3.gz OLD_FILES+=usr/share/perl/man/man3/ODBM_File.3.gz OLD_FILES+=usr/share/perl/man/man3/Opcode.3.gz OLD_FILES+=usr/share/perl/man/man3/POSIX.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Html.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Text.3.gz OLD_FILES+=usr/share/perl/man/man3/SDBM_File.3.gz OLD_FILES+=usr/share/perl/man/man3/Safe.3.gz OLD_FILES+=usr/share/perl/man/man3/Search::Dict.3.gz OLD_FILES+=usr/share/perl/man/man3/SelectSaver.3.gz OLD_FILES+=usr/share/perl/man/man3/SelfLoader.3.gz OLD_FILES+=usr/share/perl/man/man3/Shell.3.gz OLD_FILES+=usr/share/perl/man/man3/Socket.3.gz OLD_FILES+=usr/share/perl/man/man3/Symbol.3.gz OLD_FILES+=usr/share/perl/man/man3/re.3.gz OLD_FILES+=usr/share/perl/man/man3/Sys::Hostname.3.gz OLD_FILES+=usr/share/perl/man/man3/Sys::Syslog.3.gz OLD_FILES+=usr/share/perl/man/man3/Term::Cap.3.gz OLD_FILES+=usr/share/perl/man/man3/Term::Complete.3.gz OLD_FILES+=usr/share/perl/man/man3/Term::ReadLine.3.gz OLD_FILES+=usr/share/perl/man/man3/Test.3.gz OLD_FILES+=usr/share/perl/man/man3/Test::Harness.3.gz OLD_FILES+=usr/share/perl/man/man3/Text::Abbrev.3.gz OLD_FILES+=usr/share/perl/man/man3/Text::ParseWords.3.gz OLD_FILES+=usr/share/perl/man/man3/Text::Soundex.3.gz OLD_FILES+=usr/share/perl/man/man3/Text::Tabs.3.gz OLD_FILES+=usr/share/perl/man/man3/Text::Wrap.3.gz OLD_FILES+=usr/share/perl/man/man3/Thread.3.gz OLD_FILES+=usr/share/perl/man/man3/Thread::Queue.3.gz OLD_FILES+=usr/share/perl/man/man3/Thread::Semaphore.3.gz OLD_FILES+=usr/share/perl/man/man3/Thread::Signal.3.gz OLD_FILES+=usr/share/perl/man/man3/Thread::Specific.3.gz OLD_FILES+=usr/share/perl/man/man3/Tie::Array.3.gz OLD_FILES+=usr/share/perl/man/man3/Tie::Handle.3.gz OLD_FILES+=usr/share/perl/man/man3/Tie::Hash.3.gz OLD_FILES+=usr/share/perl/man/man3/Tie::RefHash.3.gz OLD_FILES+=usr/share/perl/man/man3/Tie::Scalar.3.gz OLD_FILES+=usr/share/perl/man/man3/Tie::SubstrHash.3.gz OLD_FILES+=usr/share/perl/man/man3/Time::Local.3.gz OLD_FILES+=usr/share/perl/man/man3/Time::gmtime.3.gz OLD_FILES+=usr/share/perl/man/man3/Time::localtime.3.gz OLD_FILES+=usr/share/perl/man/man3/Time::tm.3.gz OLD_FILES+=usr/share/perl/man/man3/UNIVERSAL.3.gz OLD_FILES+=usr/share/perl/man/man3/User::grent.3.gz OLD_FILES+=usr/share/perl/man/man3/User::pwent.3.gz OLD_FILES+=usr/share/perl/man/man3/attrs.3.gz OLD_FILES+=usr/share/perl/man/man3/autouse.3.gz OLD_FILES+=usr/share/perl/man/man3/base.3.gz OLD_FILES+=usr/share/perl/man/man3/blib.3.gz OLD_FILES+=usr/share/perl/man/man3/constant.3.gz OLD_FILES+=usr/share/perl/man/man3/diagnostics.3.gz OLD_FILES+=usr/share/perl/man/man3/fields.3.gz OLD_FILES+=usr/share/perl/man/man3/integer.3.gz OLD_FILES+=usr/share/perl/man/man3/less.3.gz OLD_FILES+=usr/share/perl/man/man3/lib.3.gz OLD_FILES+=usr/share/perl/man/man3/locale.3.gz OLD_FILES+=usr/share/perl/man/man3/ops.3.gz OLD_FILES+=usr/share/perl/man/man3/overload.3.gz OLD_FILES+=usr/share/perl/man/man3/sigtrap.3.gz OLD_FILES+=usr/share/perl/man/man3/strict.3.gz OLD_FILES+=usr/share/perl/man/man3/subs.3.gz OLD_FILES+=usr/share/perl/man/man3/vars.3.gz OLD_FILES+=usr/share/perl/man/man3/B::Stash.3.gz OLD_FILES+=usr/share/perl/man/man3/ByteLoader.3.gz OLD_FILES+=usr/share/perl/man/man3/CGI::Pretty.3.gz OLD_FILES+=usr/share/perl/man/man3/Carp::Heavy.3.gz OLD_FILES+=usr/share/perl/man/man3/DB.3.gz OLD_FILES+=usr/share/perl/man/man3/DProf::DProf.3.gz OLD_FILES+=usr/share/perl/man/man3/Exporter::Heavy.3.gz OLD_FILES+=usr/share/perl/man/man3/ExtUtils::MM_Cygwin.3.gz OLD_FILES+=usr/share/perl/man/man3/File::Glob.3.gz OLD_FILES+=usr/share/perl/man/man3/Glob::Glob.3.gz OLD_FILES+=usr/share/perl/man/man3/Hostname::Hostname.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::Dir.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::Poll.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::Socket::INET.3.gz OLD_FILES+=usr/share/perl/man/man3/IO::Socket::UNIX.3.gz OLD_FILES+=usr/share/perl/man/man3/Peek::Peek.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Checker.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Find.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::InputObjects.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Man.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::ParseUtils.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Parser.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Plainer.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Select.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Text::Color.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Text::Termcap.3.gz OLD_FILES+=usr/share/perl/man/man3/Pod::Usage.3.gz OLD_FILES+=usr/share/perl/man/man3/Syslog::Syslog.3.gz OLD_FILES+=usr/share/perl/man/man3/Term::ANSIColor.3.gz OLD_FILES+=usr/share/perl/man/man3/XSLoader.3.gz OLD_FILES+=usr/share/perl/man/man3/attributes.3.gz OLD_FILES+=usr/share/perl/man/man3/bytes.3.gz OLD_FILES+=usr/share/perl/man/man3/charnames.3.gz OLD_FILES+=usr/share/perl/man/man3/filetest.3.gz OLD_FILES+=usr/share/perl/man/man3/open.3.gz OLD_FILES+=usr/share/perl/man/man3/utf8.3.gz OLD_FILES+=usr/share/perl/man/man3/warnings.3.gz OLD_FILES+=usr/share/perl/man/man3/warnings::register.3.gz OLD_FILES+=usr/share/perl/man/whatis OLD_FILES+=usr/share/man/man1/CA.pl.1.gz OLD_FILES+=usr/share/man/man1/asn1parse.1.gz OLD_FILES+=usr/share/man/man1/ca.1.gz OLD_FILES+=usr/share/man/man1/ciphers.1.gz OLD_FILES+=usr/share/man/man1/config.1.gz OLD_FILES+=usr/share/man/man1/crl.1.gz OLD_FILES+=usr/share/man/man1/crl2pkcs7.1.gz OLD_FILES+=usr/share/man/man1/dgst.1.gz OLD_FILES+=usr/share/man/man1/dhparam.1.gz OLD_FILES+=usr/share/man/man1/doscmd.1.gz OLD_FILES+=usr/share/man/man1/dsa.1.gz OLD_FILES+=usr/share/man/man1/dsaparam.1.gz OLD_FILES+=usr/share/man/man1/enc.1.gz OLD_FILES+=usr/share/man/man1/gendsa.1.gz OLD_FILES+=usr/share/man/man1/genrsa.1.gz OLD_FILES+=usr/share/man/man1/getNAME.1.gz OLD_FILES+=usr/share/man/man1/nseq.1.gz OLD_FILES+=usr/share/man/man1/ocsp.1.gz OLD_FILES+=usr/share/man/man1/openssl.1.gz OLD_FILES+=usr/share/man/man1/perl.1.gz OLD_FILES+=usr/share/man/man1/perl5004delta.1.gz OLD_FILES+=usr/share/man/man1/perlapio.1.gz OLD_FILES+=usr/share/man/man1/perlbook.1.gz OLD_FILES+=usr/share/man/man1/perlbot.1.gz OLD_FILES+=usr/share/man/man1/perlcall.1.gz OLD_FILES+=usr/share/man/man1/perldata.1.gz OLD_FILES+=usr/share/man/man1/perldebug.1.gz OLD_FILES+=usr/share/man/man1/perldelta.1.gz OLD_FILES+=usr/share/man/man1/perldiag.1.gz OLD_FILES+=usr/share/man/man1/perldsc.1.gz OLD_FILES+=usr/share/man/man1/perlembed.1.gz OLD_FILES+=usr/share/man/man1/perlfaq.1.gz OLD_FILES+=usr/share/man/man1/perlfaq1.1.gz OLD_FILES+=usr/share/man/man1/perlfaq2.1.gz OLD_FILES+=usr/share/man/man1/perlfaq3.1.gz OLD_FILES+=usr/share/man/man1/perlfaq4.1.gz OLD_FILES+=usr/share/man/man1/perlfaq5.1.gz OLD_FILES+=usr/share/man/man1/perlfaq6.1.gz OLD_FILES+=usr/share/man/man1/perlfaq7.1.gz OLD_FILES+=usr/share/man/man1/perlfaq8.1.gz OLD_FILES+=usr/share/man/man1/perlfaq9.1.gz OLD_FILES+=usr/share/man/man1/perlform.1.gz OLD_FILES+=usr/share/man/man1/perlfunc.1.gz OLD_FILES+=usr/share/man/man1/perlguts.1.gz OLD_FILES+=usr/share/man/man1/perlhist.1.gz OLD_FILES+=usr/share/man/man1/perlipc.1.gz OLD_FILES+=usr/share/man/man1/perllocale.1.gz OLD_FILES+=usr/share/man/man1/perllol.1.gz OLD_FILES+=usr/share/man/man1/perlmod.1.gz OLD_FILES+=usr/share/man/man1/perlmodinstall.1.gz OLD_FILES+=usr/share/man/man1/perlmodlib.1.gz OLD_FILES+=usr/share/man/man1/perlobj.1.gz OLD_FILES+=usr/share/man/man1/perlop.1.gz OLD_FILES+=usr/share/man/man1/perlopentut.1.gz OLD_FILES+=usr/share/man/man1/perlpod.1.gz OLD_FILES+=usr/share/man/man1/perlport.1.gz OLD_FILES+=usr/share/man/man1/perlre.1.gz OLD_FILES+=usr/share/man/man1/perlref.1.gz OLD_FILES+=usr/share/man/man1/perlreftut.1.gz OLD_FILES+=usr/share/man/man1/perlrun.1.gz OLD_FILES+=usr/share/man/man1/perlsec.1.gz OLD_FILES+=usr/share/man/man1/perlstyle.1.gz OLD_FILES+=usr/share/man/man1/perlsub.1.gz OLD_FILES+=usr/share/man/man1/perlsyn.1.gz OLD_FILES+=usr/share/man/man1/perlthrtut.1.gz OLD_FILES+=usr/share/man/man1/perltie.1.gz OLD_FILES+=usr/share/man/man1/perltoc.1.gz OLD_FILES+=usr/share/man/man1/perltoot.1.gz OLD_FILES+=usr/share/man/man1/perltrap.1.gz OLD_FILES+=usr/share/man/man1/perlvar.1.gz OLD_FILES+=usr/share/man/man1/perlxs.1.gz OLD_FILES+=usr/share/man/man1/perlxstut.1.gz OLD_FILES+=usr/share/man/man1/perlbug.1.gz OLD_FILES+=usr/share/man/man1/perlcc.1.gz OLD_FILES+=usr/share/man/man1/perldoc.1.gz OLD_FILES+=usr/share/man/man1/perl5005delta.1.gz OLD_FILES+=usr/share/man/man1/perlfork.1.gz OLD_FILES+=usr/share/man/man1/perlboot.1.gz OLD_FILES+=usr/share/man/man1/perltootc.1.gz OLD_FILES+=usr/share/man/man1/perldbmfilter.1.gz OLD_FILES+=usr/share/man/man1/perldebguts.1.gz OLD_FILES+=usr/share/man/man1/perlnumber.1.gz OLD_FILES+=usr/share/man/man1/perlcompile.1.gz OLD_FILES+=usr/share/man/man1/perltodo.1.gz OLD_FILES+=usr/share/man/man1/perlapi.1.gz OLD_FILES+=usr/share/man/man1/perlintern.1.gz OLD_FILES+=usr/share/man/man1/perlhack.1.gz OLD_FILES+=usr/share/man/man1/perlbc.1.gz OLD_FILES+=usr/share/man/man1/pkcs12.1.gz OLD_FILES+=usr/share/man/man1/pkcs7.1.gz OLD_FILES+=usr/share/man/man1/pkcs8.1.gz OLD_FILES+=usr/share/man/man1/rand.1.gz OLD_FILES+=usr/share/man/man1/req.1.gz OLD_FILES+=usr/share/man/man1/rsa.1.gz OLD_FILES+=usr/share/man/man1/rsautl.1.gz OLD_FILES+=usr/share/man/man1/s_client.1.gz OLD_FILES+=usr/share/man/man1/s_server.1.gz OLD_FILES+=usr/share/man/man1/sess_id.1.gz OLD_FILES+=usr/share/man/man1/smime.1.gz OLD_FILES+=usr/share/man/man1/speed.1.gz OLD_FILES+=usr/share/man/man1/spkac.1.gz OLD_FILES+=usr/share/man/man1/verify.1.gz OLD_FILES+=usr/share/man/man1/version.1.gz OLD_FILES+=usr/share/man/man1/x509.1.gz OLD_FILES+=usr/share/man/man3/SSL_COMP_add_compression_method.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_get_ex_new_index.3.gz OLD_FILES+=usr/share/man/man3/archive_entry_dup.3.gz OLD_FILES+=usr/share/man/man3/archive_entry_set_tartype.3.gz OLD_FILES+=usr/share/man/man3/archive_entry_tartype.3.gz OLD_FILES+=usr/share/man/man3/archive_read_data_into_file.3.gz OLD_FILES+=usr/share/man/man3/archive_read_open_tar.3.gz OLD_FILES+=usr/share/man/man3/archive_read_support_format_gnutar.3.gz OLD_FILES+=usr/share/man/man3/cipher.3.gz OLD_FILES+=usr/share/man/man3/des_cipher.3.gz OLD_FILES+=usr/share/man/man3/des_setkey.3.gz OLD_FILES+=usr/share/man/man3/encrypt.3.gz OLD_FILES+=usr/share/man/man3/endvfsent.3.gz OLD_FILES+=usr/share/man/man3/getvfsbytype.3.gz OLD_FILES+=usr/share/man/man3/getvfsent.3.gz OLD_FILES+=usr/share/man/man3/isnanf.3.gz OLD_FILES+=usr/share/man/man3/libautofs.3.gz OLD_FILES+=usr/share/man/man3/pthread_attr_setsstack.3.gz OLD_FILES+=usr/share/man/man3/pthread_getcancelstate.3.gz OLD_FILES+=usr/share/man/man3/pthread_mutexattr_getpshared.3.gz OLD_FILES+=usr/share/man/man3/pthread_mutexattr_setpshared.3.gz OLD_FILES+=usr/share/man/man3/set_assertion_failure_callback.3.gz OLD_FILES+=usr/share/man/man3/setkey.3.gz OLD_FILES+=usr/share/man/man3/setvfsent.3.gz OLD_FILES+=usr/share/man/man3/ssl.3.gz OLD_FILES+=usr/share/man/man3/vfsisloadable.3.gz OLD_FILES+=usr/share/man/man3/vfsload.3.gz OLD_FILES+=usr/share/man/man4/als4000.4.gz OLD_FILES+=usr/share/man/man4/csa.4.gz OLD_FILES+=usr/share/man/man4/emu10k1.4.gz OLD_FILES+=usr/share/man/man4/euc.4.gz OLD_FILES+=usr/share/man/man4/gusc.4.gz OLD_FILES+=usr/share/man/man4/if_fwp.4.gz OLD_FILES+=usr/share/man/man4/lomac.4.gz OLD_FILES+=usr/share/man/man4/maestro3.4.gz OLD_FILES+=usr/share/man/man4/raid.4.gz OLD_FILES+=usr/share/man/man4/sbc.4.gz OLD_FILES+=usr/share/man/man4/sd.4.gz OLD_FILES+=usr/share/man/man4/snc.4.gz OLD_FILES+=usr/share/man/man4/st.4.gz OLD_FILES+=usr/share/man/man4/uaudio.4.gz OLD_FILES+=usr/share/man/man4/utf2.4.gz OLD_FILES+=usr/share/man/man4/vinumdebug.4.gz OLD_FILES+=usr/share/man/man5/disklabel.5.gz OLD_FILES+=usr/share/man/man5/dm.conf.5.gz OLD_FILES+=usr/share/man/man5/ranlib.5.gz OLD_FILES+=usr/share/man/man5/utf2.5.gz OLD_FILES+=usr/share/man/man7/groff_mwww.7.gz OLD_FILES+=usr/share/man/man7/mmroff.7.gz OLD_FILES+=usr/share/man/man7/mwww.7.gz OLD_FILES+=usr/share/man/man7/style.perl.7.gz OLD_FILES+=usr/share/man/man8/apm.8.gz OLD_FILES+=usr/share/man/man8/apmconf.8.gz OLD_FILES+=usr/share/man/man8/apmd.8.gz OLD_FILES+=usr/share/man/man8/dm.8.gz OLD_FILES+=usr/share/man/man8/pam_ftp.8.gz OLD_FILES+=usr/share/man/man8/pam_wheel.8.gz OLD_FILES+=usr/share/man/man8/sconfig.8.gz OLD_FILES+=usr/share/man/man8/ssl.8.gz OLD_FILES+=usr/share/man/man8/wlconfig.8.gz OLD_FILES+=usr/share/man/man9/CURSIG.9.gz OLD_FILES+=usr/share/man/man9/VFS_INIT.9.gz OLD_FILES+=usr/share/man/man9/at_exit.9.gz OLD_FILES+=usr/share/man/man9/at_fork.9.gz OLD_FILES+=usr/share/man/man9/cdevsw_add.9.gz OLD_FILES+=usr/share/man/man9/cdevsw_remove.9.gz OLD_FILES+=usr/share/man/man9/cv_waitq_empty.9.gz OLD_FILES+=usr/share/man/man9/cv_waitq_remove.9.gz OLD_FILES+=usr/share/man/man9/endtsleep.9.gz OLD_FILES+=usr/share/man/man9/jumbo.9.gz OLD_FILES+=usr/share/man/man9/jumbo_freem.9.gz OLD_FILES+=usr/share/man/man9/jumbo_pg_alloc.9.gz OLD_FILES+=usr/share/man/man9/jumbo_pg_free.9.gz OLD_FILES+=usr/share/man/man9/jumbo_pg_steal.9.gz OLD_FILES+=usr/share/man/man9/jumbo_phys_to_kva.9.gz OLD_FILES+=usr/share/man/man9/jumbo_vm_init.9.gz OLD_FILES+=usr/share/man/man9/mac_biba.9.gz OLD_FILES+=usr/share/man/man9/mac_bsdextended.9.gz OLD_FILES+=usr/share/man/man9/mono_time.9.gz OLD_FILES+=usr/share/man/man9/p1003_1b.9.gz OLD_FILES+=usr/share/man/man9/pmap_prefault.9.gz OLD_FILES+=usr/share/man/man9/posix4.9.gz OLD_FILES+=usr/share/man/man9/resource_query_name.9.gz OLD_FILES+=usr/share/man/man9/resource_query_string.9.gz OLD_FILES+=usr/share/man/man9/resource_query_unit.9.gz OLD_FILES+=usr/share/man/man9/rm_at_exit.9.gz OLD_FILES+=usr/share/man/man9/rm_at_fork.9.gz OLD_FILES+=usr/share/man/man9/runtime.9.gz OLD_FILES+=usr/share/man/man9/sleepinit.9.gz OLD_FILES+=usr/share/man/man9/unsleep.9.gz OLD_FILES+=usr/share/man/ja/man1/perl.1.gz OLD_FILES+=usr/share/games/atc/Game_List OLD_FILES+=usr/share/games/atc/Killer OLD_FILES+=usr/share/games/atc/crossover OLD_FILES+=usr/share/games/atc/default OLD_FILES+=usr/share/games/atc/easy OLD_FILES+=usr/share/games/atc/game_2 OLD_FILES+=usr/share/games/larn/larnmaze OLD_FILES+=usr/share/games/larn/larnopts OLD_FILES+=usr/share/games/larn/larn.help OLD_FILES+=usr/share/games/quiz.db/africa OLD_FILES+=usr/share/games/quiz.db/america OLD_FILES+=usr/share/games/quiz.db/areas OLD_FILES+=usr/share/games/quiz.db/arith OLD_FILES+=usr/share/games/quiz.db/asia OLD_FILES+=usr/share/games/quiz.db/babies OLD_FILES+=usr/share/games/quiz.db/bard OLD_FILES+=usr/share/games/quiz.db/chinese OLD_FILES+=usr/share/games/quiz.db/collectives OLD_FILES+=usr/share/games/quiz.db/ed OLD_FILES+=usr/share/games/quiz.db/elements OLD_FILES+=usr/share/games/quiz.db/europe OLD_FILES+=usr/share/games/quiz.db/flowers OLD_FILES+=usr/share/games/quiz.db/greek OLD_FILES+=usr/share/games/quiz.db/inca OLD_FILES+=usr/share/games/quiz.db/index OLD_FILES+=usr/share/games/quiz.db/latin OLD_FILES+=usr/share/games/quiz.db/locomotive OLD_FILES+=usr/share/games/quiz.db/midearth OLD_FILES+=usr/share/games/quiz.db/morse OLD_FILES+=usr/share/games/quiz.db/murders OLD_FILES+=usr/share/games/quiz.db/poetry OLD_FILES+=usr/share/games/quiz.db/posneg OLD_FILES+=usr/share/games/quiz.db/pres OLD_FILES+=usr/share/games/quiz.db/province OLD_FILES+=usr/share/games/quiz.db/seq-easy OLD_FILES+=usr/share/games/quiz.db/seq-hard OLD_FILES+=usr/share/games/quiz.db/sexes OLD_FILES+=usr/share/games/quiz.db/sov OLD_FILES+=usr/share/games/quiz.db/spell OLD_FILES+=usr/share/games/quiz.db/state OLD_FILES+=usr/share/games/quiz.db/trek OLD_FILES+=usr/share/games/quiz.db/ucc OLD_FILES+=usr/share/games/cribbage.instr OLD_FILES+=usr/share/games/fish.instr OLD_FILES+=usr/share/games/wump.info OLD_FILES+=usr/games/hide/adventure OLD_FILES+=usr/games/hide/arithmetic OLD_FILES+=usr/games/hide/atc OLD_FILES+=usr/games/hide/backgammon OLD_FILES+=usr/games/hide/teachgammon OLD_FILES+=usr/games/hide/battlestar OLD_FILES+=usr/games/hide/bs OLD_FILES+=usr/games/hide/canfield OLD_FILES+=usr/games/hide/cribbage OLD_FILES+=usr/games/hide/fish OLD_FILES+=usr/games/hide/hack OLD_FILES+=usr/games/hide/hangman OLD_FILES+=usr/games/hide/larn OLD_FILES+=usr/games/hide/mille OLD_FILES+=usr/games/hide/phantasia OLD_FILES+=usr/games/hide/quiz OLD_FILES+=usr/games/hide/robots OLD_FILES+=usr/games/hide/rogue OLD_FILES+=usr/games/hide/sail OLD_FILES+=usr/games/hide/snake OLD_FILES+=usr/games/hide/trek OLD_FILES+=usr/games/hide/worm OLD_FILES+=usr/games/hide/wump OLD_FILES+=usr/games/adventure OLD_FILES+=usr/games/arithmetic OLD_FILES+=usr/games/atc OLD_FILES+=usr/games/backgammon OLD_FILES+=usr/games/teachgammon OLD_FILES+=usr/games/battlestar OLD_FILES+=usr/games/bs OLD_FILES+=usr/games/canfield OLD_FILES+=usr/games/cfscores OLD_FILES+=usr/games/cribbage OLD_FILES+=usr/games/dm OLD_FILES+=usr/games/fish OLD_FILES+=usr/games/hack OLD_FILES+=usr/games/hangman OLD_FILES+=usr/games/larn OLD_FILES+=usr/games/mille OLD_FILES+=usr/games/phantasia OLD_FILES+=usr/games/piano OLD_FILES+=usr/games/pig OLD_FILES+=usr/games/quiz OLD_FILES+=usr/games/rain OLD_FILES+=usr/games/robots OLD_FILES+=usr/games/rogue OLD_FILES+=usr/games/sail OLD_FILES+=usr/games/snake OLD_FILES+=usr/games/snscore OLD_FILES+=usr/games/trek OLD_FILES+=usr/games/wargames OLD_FILES+=usr/games/worm OLD_FILES+=usr/games/worms OLD_FILES+=usr/games/wump OLD_FILES+=sbin/mount_reiserfs OLD_FILES+=usr/include/cam/cam_extend.h OLD_FILES+=usr/include/dev/wi/wi_hostap.h OLD_FILES+=usr/include/disktab.h OLD_FILES+=usr/include/g++/FlexLexer.h OLD_FILES+=usr/include/g++/PlotFile.h OLD_FILES+=usr/include/g++/SFile.h OLD_FILES+=usr/include/g++/_G_config.h OLD_FILES+=usr/include/g++/algo.h OLD_FILES+=usr/include/g++/algobase.h OLD_FILES+=usr/include/g++/algorithm OLD_FILES+=usr/include/g++/alloc.h OLD_FILES+=usr/include/g++/bitset OLD_FILES+=usr/include/g++/builtinbuf.h OLD_FILES+=usr/include/g++/bvector.h OLD_FILES+=usr/include/g++/cassert OLD_FILES+=usr/include/g++/cctype OLD_FILES+=usr/include/g++/cerrno OLD_FILES+=usr/include/g++/cfloat OLD_FILES+=usr/include/g++/ciso646 OLD_FILES+=usr/include/g++/climits OLD_FILES+=usr/include/g++/clocale OLD_FILES+=usr/include/g++/cmath OLD_FILES+=usr/include/g++/complex OLD_FILES+=usr/include/g++/complex.h OLD_FILES+=usr/include/g++/csetjmp OLD_FILES+=usr/include/g++/csignal OLD_FILES+=usr/include/g++/cstdarg OLD_FILES+=usr/include/g++/cstddef OLD_FILES+=usr/include/g++/cstdio OLD_FILES+=usr/include/g++/cstdlib OLD_FILES+=usr/include/g++/cstring OLD_FILES+=usr/include/g++/ctime OLD_FILES+=usr/include/g++/cwchar OLD_FILES+=usr/include/g++/cwctype OLD_FILES+=usr/include/g++/defalloc.h OLD_FILES+=usr/include/g++/deque OLD_FILES+=usr/include/g++/deque.h OLD_FILES+=usr/include/g++/editbuf.h OLD_FILES+=usr/include/g++/exception OLD_FILES+=usr/include/g++/floatio.h OLD_FILES+=usr/include/g++/fstream OLD_FILES+=usr/include/g++/fstream.h OLD_FILES+=usr/include/g++/function.h OLD_FILES+=usr/include/g++/functional OLD_FILES+=usr/include/g++/hash_map OLD_FILES+=usr/include/g++/hash_map.h OLD_FILES+=usr/include/g++/hash_set OLD_FILES+=usr/include/g++/hash_set.h OLD_FILES+=usr/include/g++/hashtable.h OLD_FILES+=usr/include/g++/heap.h OLD_FILES+=usr/include/g++/indstream.h OLD_FILES+=usr/include/g++/iolibio.h OLD_FILES+=usr/include/g++/iomanip OLD_FILES+=usr/include/g++/iomanip.h OLD_FILES+=usr/include/g++/iosfwd OLD_FILES+=usr/include/g++/iostdio.h OLD_FILES+=usr/include/g++/iostream OLD_FILES+=usr/include/g++/iostream.h OLD_FILES+=usr/include/g++/iostreamP.h OLD_FILES+=usr/include/g++/istream.h OLD_FILES+=usr/include/g++/iterator OLD_FILES+=usr/include/g++/iterator.h OLD_FILES+=usr/include/g++/libio.h OLD_FILES+=usr/include/g++/libioP.h OLD_FILES+=usr/include/g++/list OLD_FILES+=usr/include/g++/list.h OLD_FILES+=usr/include/g++/map OLD_FILES+=usr/include/g++/map.h OLD_FILES+=usr/include/g++/memory OLD_FILES+=usr/include/g++/multimap.h OLD_FILES+=usr/include/g++/multiset.h OLD_FILES+=usr/include/g++/new OLD_FILES+=usr/include/g++/new.h OLD_FILES+=usr/include/g++/numeric OLD_FILES+=usr/include/g++/ostream.h OLD_FILES+=usr/include/g++/pair.h OLD_FILES+=usr/include/g++/parsestream.h OLD_FILES+=usr/include/g++/pfstream.h OLD_FILES+=usr/include/g++/procbuf.h OLD_FILES+=usr/include/g++/pthread_alloc OLD_FILES+=usr/include/g++/pthread_alloc.h OLD_FILES+=usr/include/g++/queue OLD_FILES+=usr/include/g++/rope OLD_FILES+=usr/include/g++/rope.h OLD_FILES+=usr/include/g++/ropeimpl.h OLD_FILES+=usr/include/g++/set OLD_FILES+=usr/include/g++/set.h OLD_FILES+=usr/include/g++/slist OLD_FILES+=usr/include/g++/slist.h OLD_FILES+=usr/include/g++/sstream OLD_FILES+=usr/include/g++/stack OLD_FILES+=usr/include/g++/stack.h OLD_FILES+=usr/include/g++/std/bastring.cc OLD_FILES+=usr/include/g++/std/bastring.h OLD_FILES+=usr/include/g++/std/complext.cc OLD_FILES+=usr/include/g++/std/complext.h OLD_FILES+=usr/include/g++/std/dcomplex.h OLD_FILES+=usr/include/g++/std/fcomplex.h OLD_FILES+=usr/include/g++/std/gslice.h OLD_FILES+=usr/include/g++/std/gslice_array.h OLD_FILES+=usr/include/g++/std/indirect_array.h OLD_FILES+=usr/include/g++/std/ldcomplex.h OLD_FILES+=usr/include/g++/std/mask_array.h OLD_FILES+=usr/include/g++/std/slice.h OLD_FILES+=usr/include/g++/std/slice_array.h OLD_FILES+=usr/include/g++/std/std_valarray.h OLD_FILES+=usr/include/g++/std/straits.h OLD_FILES+=usr/include/g++/std/valarray_array.h OLD_FILES+=usr/include/g++/std/valarray_array.tcc OLD_FILES+=usr/include/g++/std/valarray_meta.h OLD_FILES+=usr/include/g++/stdexcept OLD_FILES+=usr/include/g++/stdiostream.h OLD_FILES+=usr/include/g++/stl.h OLD_FILES+=usr/include/g++/stl_algo.h OLD_FILES+=usr/include/g++/stl_algobase.h OLD_FILES+=usr/include/g++/stl_alloc.h OLD_FILES+=usr/include/g++/stl_bvector.h OLD_FILES+=usr/include/g++/stl_config.h OLD_FILES+=usr/include/g++/stl_construct.h OLD_FILES+=usr/include/g++/stl_deque.h OLD_FILES+=usr/include/g++/stl_function.h OLD_FILES+=usr/include/g++/stl_hash_fun.h OLD_FILES+=usr/include/g++/stl_hash_map.h OLD_FILES+=usr/include/g++/stl_hash_set.h OLD_FILES+=usr/include/g++/stl_hashtable.h OLD_FILES+=usr/include/g++/stl_heap.h OLD_FILES+=usr/include/g++/stl_iterator.h OLD_FILES+=usr/include/g++/stl_list.h OLD_FILES+=usr/include/g++/stl_map.h OLD_FILES+=usr/include/g++/stl_multimap.h OLD_FILES+=usr/include/g++/stl_multiset.h OLD_FILES+=usr/include/g++/stl_numeric.h OLD_FILES+=usr/include/g++/stl_pair.h OLD_FILES+=usr/include/g++/stl_queue.h OLD_FILES+=usr/include/g++/stl_raw_storage_iter.h OLD_FILES+=usr/include/g++/stl_relops.h OLD_FILES+=usr/include/g++/stl_rope.h OLD_FILES+=usr/include/g++/stl_set.h OLD_FILES+=usr/include/g++/stl_slist.h OLD_FILES+=usr/include/g++/stl_stack.h OLD_FILES+=usr/include/g++/stl_tempbuf.h OLD_FILES+=usr/include/g++/stl_tree.h OLD_FILES+=usr/include/g++/stl_uninitialized.h OLD_FILES+=usr/include/g++/stl_vector.h OLD_FILES+=usr/include/g++/stream.h OLD_FILES+=usr/include/g++/streambuf.h OLD_FILES+=usr/include/g++/strfile.h OLD_FILES+=usr/include/g++/string OLD_FILES+=usr/include/g++/strstream OLD_FILES+=usr/include/g++/strstream.h OLD_FILES+=usr/include/g++/tempbuf.h OLD_FILES+=usr/include/g++/tree.h OLD_FILES+=usr/include/g++/type_traits.h OLD_FILES+=usr/include/g++/typeinfo OLD_FILES+=usr/include/g++/utility OLD_FILES+=usr/include/g++/valarray OLD_FILES+=usr/include/g++/vector OLD_FILES+=usr/include/g++/vector.h OLD_FILES+=usr/include/gmp.h OLD_FILES+=usr/include/isc/assertions.h OLD_FILES+=usr/include/isc/ctl.h OLD_FILES+=usr/include/isc/dst.h OLD_FILES+=usr/include/isc/eventlib.h OLD_FILES+=usr/include/isc/heap.h OLD_FILES+=usr/include/isc/irpmarshall.h OLD_FILES+=usr/include/isc/list.h OLD_FILES+=usr/include/isc/logging.h OLD_FILES+=usr/include/isc/memcluster.h OLD_FILES+=usr/include/isc/misc.h OLD_FILES+=usr/include/isc/tree.h OLD_FILES+=usr/include/machine/ansi.h OLD_FILES+=usr/include/machine/apic.h OLD_FILES+=usr/include/machine/asc_ioctl.h OLD_FILES+=usr/include/machine/asnames.h OLD_FILES+=usr/include/machine/bus_at386.h OLD_FILES+=usr/include/machine/bus_memio.h OLD_FILES+=usr/include/machine/bus_pc98.h OLD_FILES+=usr/include/machine/bus_pio.h OLD_FILES+=usr/include/machine/cdk.h OLD_FILES+=usr/include/machine/comstats.h OLD_FILES+=usr/include/machine/console.h OLD_FILES+=usr/include/machine/critical.h OLD_FILES+=usr/include/machine/cronyx.h OLD_FILES+=usr/include/machine/dvcfg.h OLD_FILES+=usr/include/machine/globaldata.h OLD_FILES+=usr/include/machine/globals.h OLD_FILES+=usr/include/machine/gsc.h OLD_FILES+=usr/include/machine/i4b_isppp.h OLD_FILES+=usr/include/machine/if_wavelan_ieee.h OLD_FILES+=usr/include/machine/iic.h OLD_FILES+=usr/include/machine/ioctl_ctx.h OLD_FILES+=usr/include/machine/ioctl_fd.h OLD_FILES+=usr/include/machine/ipl.h OLD_FILES+=usr/include/machine/lock.h OLD_FILES+=usr/include/machine/mouse.h OLD_FILES+=usr/include/machine/mpapic.h OLD_FILES+=usr/include/machine/mtpr.h OLD_FILES+=usr/include/machine/pc/msdos.h OLD_FILES+=usr/include/machine/physio_proc.h OLD_FILES+=usr/include/machine/smb.h OLD_FILES+=usr/include/machine/spigot.h OLD_FILES+=usr/include/machine/types.h OLD_FILES+=usr/include/machine/uc_device.h OLD_FILES+=usr/include/machine/ultrasound.h OLD_FILES+=usr/include/machine/wtio.h OLD_FILES+=usr/include/msdosfs/bootsect.h OLD_FILES+=usr/include/msdosfs/bpb.h OLD_FILES+=usr/include/msdosfs/denode.h OLD_FILES+=usr/include/msdosfs/direntry.h OLD_FILES+=usr/include/msdosfs/fat.h OLD_FILES+=usr/include/msdosfs/msdosfsmount.h OLD_FILES+=usr/include/net/hostcache.h OLD_FILES+=usr/include/net/if_faith.h OLD_FILES+=usr/include/net/if_ieee80211.h OLD_FILES+=usr/include/net/if_tunvar.h OLD_FILES+=usr/include/net/intrq.h OLD_FILES+=usr/include/netatm/kern_include.h OLD_FILES+=usr/include/netinet/if_fddi.h OLD_FILES+=usr/include/netinet/in_hostcache.h OLD_FILES+=usr/include/netinet/ip_flow.h OLD_FILES+=usr/include/netinet/ip_fw2.h OLD_FILES+=usr/include/netinet6/in6_prefix.h OLD_FILES+=usr/include/netns/idp.h OLD_FILES+=usr/include/netns/idp_var.h OLD_FILES+=usr/include/netns/ns.h OLD_FILES+=usr/include/netns/ns_error.h OLD_FILES+=usr/include/netns/ns_if.h OLD_FILES+=usr/include/netns/ns_pcb.h OLD_FILES+=usr/include/netns/sp.h OLD_FILES+=usr/include/netns/spidp.h OLD_FILES+=usr/include/netns/spp_debug.h OLD_FILES+=usr/include/netns/spp_timer.h OLD_FILES+=usr/include/netns/spp_var.h OLD_FILES+=usr/include/nfs/nfs.h OLD_FILES+=usr/include/nfs/nfsm_subs.h OLD_FILES+=usr/include/nfs/nfsmount.h OLD_FILES+=usr/include/nfs/nfsnode.h OLD_FILES+=usr/include/nfs/nfsrtt.h OLD_FILES+=usr/include/nfs/nfsrvcache.h OLD_FILES+=usr/include/nfs/nfsv2.h OLD_FILES+=usr/include/nfs/nqnfs.h OLD_FILES+=usr/include/ntfs/ntfs.h OLD_FILES+=usr/include/ntfs/ntfs_compr.h OLD_FILES+=usr/include/ntfs/ntfs_ihash.h OLD_FILES+=usr/include/ntfs/ntfs_inode.h OLD_FILES+=usr/include/ntfs/ntfs_subr.h OLD_FILES+=usr/include/ntfs/ntfs_vfsops.h OLD_FILES+=usr/include/ntfs/ntfsmount.h OLD_FILES+=usr/include/nwfs/nwfs.h OLD_FILES+=usr/include/nwfs/nwfs_mount.h OLD_FILES+=usr/include/nwfs/nwfs_node.h OLD_FILES+=usr/include/nwfs/nwfs_subr.h OLD_FILES+=usr/include/posix4/_semaphore.h OLD_FILES+=usr/include/posix4/aio.h OLD_FILES+=usr/include/posix4/ksem.h OLD_FILES+=usr/include/posix4/mqueue.h OLD_FILES+=usr/include/posix4/posix4.h OLD_FILES+=usr/include/posix4/sched.h OLD_FILES+=usr/include/posix4/semaphore.h OLD_DIRS+=usr/include/posix4 OLD_FILES+=usr/include/security/_pam_compat.h OLD_FILES+=usr/include/security/_pam_macros.h OLD_FILES+=usr/include/security/_pam_types.h OLD_FILES+=usr/include/security/pam_malloc.h OLD_FILES+=usr/include/security/pam_misc.h OLD_FILES+=usr/include/skey.h OLD_FILES+=usr/include/strhash.h OLD_FILES+=usr/include/struct.h OLD_FILES+=usr/include/sys/_label.h OLD_FILES+=usr/include/sys/_posix.h OLD_FILES+=usr/include/sys/bus_private.h OLD_FILES+=usr/include/sys/ccdvar.h OLD_FILES+=usr/include/sys/diskslice.h OLD_FILES+=usr/include/sys/dmap.h OLD_FILES+=usr/include/sys/inttypes.h OLD_FILES+=usr/include/sys/jumbo.h OLD_FILES+=usr/include/sys/mac_policy.h OLD_FILES+=usr/include/sys/pbioio.h OLD_FILES+=usr/include/sys/syscall-hide.h OLD_FILES+=usr/include/sys/tprintf.h OLD_FILES+=usr/include/sys/vnioctl.h OLD_FILES+=usr/include/sys/wormio.h OLD_FILES+=usr/include/telnet.h OLD_FILES+=usr/include/ufs/mfs/mfs_extern.h OLD_FILES+=usr/include/ufs/mfs/mfsnode.h OLD_FILES+=usr/include/values.h OLD_FILES+=usr/include/vm/vm_zone.h OLD_FILES+=usr/share/examples/etc/usbd.conf OLD_FILES+=usr/share/examples/meteor/README OLD_FILES+=usr/share/examples/meteor/rgb16.c OLD_FILES+=usr/share/examples/meteor/rgb24.c OLD_FILES+=usr/share/examples/meteor/test-n.c OLD_FILES+=usr/share/examples/meteor/yuvpk.c OLD_FILES+=usr/share/examples/meteor/yuvpl.c OLD_FILES+=usr/share/examples/worm/README OLD_FILES+=usr/share/examples/worm/makecdfs.sh OLD_FILES+=usr/share/groff_font/devlj4/Makefile OLD_FILES+=usr/share/groff_font/devlj4/text.map OLD_FILES+=usr/share/groff_font/devlj4/special.map OLD_FILES+=usr/share/misc/nslookup.help OLD_FILES+=usr/share/sendmail/cf/feature/nodns.m4 OLD_FILES+=usr/share/syscons/keymaps/lat-amer.kbd OLD_FILES+=usr/share/vi/catalog/ru_SU.KOI8-R OLD_FILES+=usr/share/zoneinfo/Africa/Timbuktu OLD_FILES+=usr/share/zoneinfo/Africa/Asmera OLD_FILES+=usr/share/zoneinfo/America/Buenos_Aires OLD_FILES+=usr/share/zoneinfo/America/Cordoba OLD_FILES+=usr/share/zoneinfo/America/Jujuy OLD_FILES+=usr/share/zoneinfo/America/Catamarca OLD_FILES+=usr/share/zoneinfo/America/Mendoza OLD_FILES+=usr/share/zoneinfo/America/Indianapolis OLD_FILES+=usr/share/zoneinfo/America/Louisville OLD_FILES+=usr/share/zoneinfo/America/Argentina/ComodRivadavia OLD_FILES+=usr/share/zoneinfo/Atlantic/Faeroe OLD_FILES+=usr/share/zoneinfo/Europe/Belfast OLD_FILES+=usr/share/zoneinfo/Pacific/Yap OLD_FILES+=usr/share/zoneinfo/SystemV/YST9 OLD_FILES+=usr/share/zoneinfo/SystemV/PST8 OLD_FILES+=usr/share/zoneinfo/SystemV/EST5EDT OLD_FILES+=usr/share/zoneinfo/SystemV/CST6CDT OLD_FILES+=usr/share/zoneinfo/SystemV/MST7MDT OLD_FILES+=usr/share/zoneinfo/SystemV/PST8PDT OLD_FILES+=usr/share/zoneinfo/SystemV/YST9YDT OLD_FILES+=usr/share/zoneinfo/SystemV/HST10 OLD_FILES+=usr/share/zoneinfo/SystemV/MST7 OLD_FILES+=usr/share/zoneinfo/SystemV/EST5 OLD_FILES+=usr/share/zoneinfo/SystemV/AST4ADT OLD_FILES+=usr/share/zoneinfo/SystemV/CST6 OLD_FILES+=usr/share/zoneinfo/SystemV/AST4 OLD_FILES+=usr/share/doc/ntp/accopt.htm OLD_FILES+=usr/share/doc/ntp/assoc.htm OLD_FILES+=usr/share/doc/ntp/audio.htm OLD_FILES+=usr/share/doc/ntp/authopt.htm OLD_FILES+=usr/share/doc/ntp/biblio.htm OLD_FILES+=usr/share/doc/ntp/build.htm OLD_FILES+=usr/share/doc/ntp/clockopt.htm OLD_FILES+=usr/share/doc/ntp/config.htm OLD_FILES+=usr/share/doc/ntp/confopt.htm OLD_FILES+=usr/share/doc/ntp/copyright.htm OLD_FILES+=usr/share/doc/ntp/debug.htm OLD_FILES+=usr/share/doc/ntp/driver1.htm OLD_FILES+=usr/share/doc/ntp/driver10.htm OLD_FILES+=usr/share/doc/ntp/driver11.htm OLD_FILES+=usr/share/doc/ntp/driver12.htm OLD_FILES+=usr/share/doc/ntp/driver16.htm OLD_FILES+=usr/share/doc/ntp/driver18.htm OLD_FILES+=usr/share/doc/ntp/driver19.htm OLD_FILES+=usr/share/doc/ntp/driver2.htm OLD_FILES+=usr/share/doc/ntp/driver20.htm OLD_FILES+=usr/share/doc/ntp/driver22.htm OLD_FILES+=usr/share/doc/ntp/driver23.htm OLD_FILES+=usr/share/doc/ntp/driver24.htm OLD_FILES+=usr/share/doc/ntp/driver26.htm OLD_FILES+=usr/share/doc/ntp/driver27.htm OLD_FILES+=usr/share/doc/ntp/driver28.htm OLD_FILES+=usr/share/doc/ntp/driver29.htm OLD_FILES+=usr/share/doc/ntp/driver3.htm OLD_FILES+=usr/share/doc/ntp/driver30.htm OLD_FILES+=usr/share/doc/ntp/driver32.htm OLD_FILES+=usr/share/doc/ntp/driver33.htm OLD_FILES+=usr/share/doc/ntp/driver34.htm OLD_FILES+=usr/share/doc/ntp/driver35.htm OLD_FILES+=usr/share/doc/ntp/driver36.htm OLD_FILES+=usr/share/doc/ntp/driver37.htm OLD_FILES+=usr/share/doc/ntp/driver4.htm OLD_FILES+=usr/share/doc/ntp/driver5.htm OLD_FILES+=usr/share/doc/ntp/driver6.htm OLD_FILES+=usr/share/doc/ntp/driver7.htm OLD_FILES+=usr/share/doc/ntp/driver8.htm OLD_FILES+=usr/share/doc/ntp/driver9.htm OLD_FILES+=usr/share/doc/ntp/exec.htm OLD_FILES+=usr/share/doc/ntp/extern.htm OLD_FILES+=usr/share/doc/ntp/gadget.htm OLD_FILES+=usr/share/doc/ntp/hints.htm OLD_FILES+=usr/share/doc/ntp/howto.htm OLD_FILES+=usr/share/doc/ntp/htmlprimer.htm OLD_FILES+=usr/share/doc/ntp/index.htm OLD_FILES+=usr/share/doc/ntp/kern.htm OLD_FILES+=usr/share/doc/ntp/kernpps.htm OLD_FILES+=usr/share/doc/ntp/ldisc.htm OLD_FILES+=usr/share/doc/ntp/measure.htm OLD_FILES+=usr/share/doc/ntp/miscopt.htm OLD_FILES+=usr/share/doc/ntp/monopt.htm OLD_FILES+=usr/share/doc/ntp/mx4200data.htm OLD_FILES+=usr/share/doc/ntp/notes.htm OLD_FILES+=usr/share/doc/ntp/ntpd.htm OLD_FILES+=usr/share/doc/ntp/ntpdate.htm OLD_FILES+=usr/share/doc/ntp/ntpdc.htm OLD_FILES+=usr/share/doc/ntp/ntpq.htm OLD_FILES+=usr/share/doc/ntp/ntptime.htm OLD_FILES+=usr/share/doc/ntp/ntptrace.htm OLD_FILES+=usr/share/doc/ntp/parsedata.htm OLD_FILES+=usr/share/doc/ntp/parsenew.htm OLD_FILES+=usr/share/doc/ntp/patches.htm OLD_FILES+=usr/share/doc/ntp/porting.htm OLD_FILES+=usr/share/doc/ntp/pps.htm OLD_FILES+=usr/share/doc/ntp/prefer.htm OLD_FILES+=usr/share/doc/ntp/qth.htm OLD_FILES+=usr/share/doc/ntp/quick.htm OLD_FILES+=usr/share/doc/ntp/rdebug.htm OLD_FILES+=usr/share/doc/ntp/refclock.htm OLD_FILES+=usr/share/doc/ntp/release.htm OLD_FILES+=usr/share/doc/ntp/tickadj.htm OLD_FILES+=usr/share/doc/papers/nqnfs.ascii.gz OLD_FILES+=usr/share/doc/papers/px.ascii.gz OLD_FILES+=usr/share/man/man3/exp10.3.gz OLD_FILES+=usr/share/man/man3/exp10f.3.gz OLD_FILES+=usr/share/man/man3/fpsetsticky.3.gz OLD_FILES+=usr/share/man/man3/gss_krb5_compat_des3_mic.3.gz OLD_FILES+=usr/share/man/man3/gss_krb5_copy_ccache.3.gz OLD_FILES+=usr/share/man/man3/mac_is_present_np.3.gz OLD_FILES+=usr/share/man/man3/mbmb.3.gz OLD_FILES+=usr/share/man/man3/setrunelocale.3.gz OLD_FILES+=usr/share/man/man5/usbd.conf.5.gz .if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64" OLD_FILES+=usr/share/man/man8/boot_i386.8.gz .endif .if ${TARGET_ARCH} != "aarch64" && ${TARGET} != "arm" && \ ${TARGET_ARCH} != "powerpc" && ${TARGET_ARCH} != "powerpc64" && \ ${TARGET_ARCH} != "sparc64" && ${TARGET} != "mips" OLD_FILES+=usr/share/man/man8/ofwdump.8.gz .endif OLD_FILES+=usr/share/man/man8/mount_reiserfs.8.gz OLD_FILES+=usr/share/man/man9/VFS_START.9.gz OLD_FILES+=usr/share/man/man9/cpu_critical_exit.9.gz OLD_FILES+=usr/share/man/man9/cpu_critical_enter.9.gz OLD_FILES+=usr/share/info/annotate.info.gz OLD_FILES+=usr/share/info/tar.info.gz OLD_FILES+=usr/share/bsnmp/defs/tree.def OLD_FILES+=usr/share/bsnmp/defs/mibII_tree.def OLD_FILES+=usr/share/bsnmp/defs/netgraph_tree.def OLD_FILES+=usr/share/bsnmp/mibs/FOKUS-MIB.txt OLD_FILES+=usr/share/bsnmp/mibs/BEGEMOT-MIB.txt OLD_FILES+=usr/share/bsnmp/mibs/BEGEMOT-SNMPD.txt OLD_FILES+=usr/share/bsnmp/mibs/BEGEMOT-NETGRAPH.txt OLD_FILES+=usr/libdata/msdosfs/iso22dos OLD_FILES+=usr/libdata/msdosfs/iso72dos OLD_FILES+=usr/libdata/msdosfs/koi2dos OLD_FILES+=usr/libdata/msdosfs/koi8u2dos # The following files are *not* obsolete, they just don't get touched at # install, so don't add them: # - boot/loader.rc # - usr/share/tmac/man.local # - usr/share/tmac/mm/locale # - usr/share/tmac/mm/se_locale # - var/yp/Makefile # 20071120: shared library version bump OLD_LIBS+=usr/lib/libasn1.so.8 OLD_LIBS+=usr/lib/libgssapi.so.8 OLD_LIBS+=usr/lib/libgssapi_krb5.so.8 OLD_LIBS+=usr/lib/libhdb.so.8 OLD_LIBS+=usr/lib/libkadm5clnt.so.8 OLD_LIBS+=usr/lib/libkadm5srv.so.8 OLD_LIBS+=usr/lib/libkafs5.so.8 OLD_LIBS+=usr/lib/libkrb5.so.8 OLD_LIBS+=usr/lib/libobjc.so.2 OLD_LIBS+=usr/lib32/libgssapi.so.8 OLD_LIBS+=usr/lib32/libobjc.so.2 # 20070519: GCC 4.2 OLD_LIBS+=usr/lib/libg2c.a OLD_LIBS+=usr/lib/libg2c.so OLD_LIBS+=usr/lib/libg2c.so.2 OLD_LIBS+=usr/lib/libg2c_p.a OLD_LIBS+=usr/lib/libgcc_pic.a OLD_LIBS+=usr/lib32/libg2c.a OLD_LIBS+=usr/lib32/libg2c.so OLD_LIBS+=usr/lib32/libg2c.so.2 OLD_LIBS+=usr/lib32/libg2c_p.a OLD_LIBS+=usr/lib32/libgcc_pic.a # 20060729: OpenSSL 0.9.7e -> 0.9.8b upgrade OLD_LIBS+=lib/libcrypto.so.4 OLD_LIBS+=usr/lib/libssl.so.4 OLD_LIBS+=usr/lib32/libcrypto.so.4 OLD_LIBS+=usr/lib32/libssl.so.4 # 20060521: gethostbyaddr(3) ABI change OLD_LIBS+=usr/lib/libroken.so.8 OLD_LIBS+=lib/libatm.so.3 OLD_LIBS+=lib/libc.so.6 OLD_LIBS+=lib/libutil.so.5 OLD_LIBS+=usr/lib32/libatm.so.3 OLD_LIBS+=usr/lib32/libc.so.6 OLD_LIBS+=usr/lib32/libutil.so.5 # 20060413: shared library moved to /usr/lib OLD_LIBS+=lib/libgpib.so.1 # 20060413: libpcap.so.4 moved to /lib/ OLD_LIBS+=usr/lib/libpcap.so.4 # 20060412: libpthread.so.2 moved to /lib/ OLD_LIBS+=usr/lib/libpthread.so.2 # 20060127: revert libdisk to static-only OLD_LIBS+=usr/lib/libdisk.so.3 # 20051027: libc_r discontinued (removed 20101113) OLD_LIBS+=usr/lib/libc_r.a OLD_LIBS+=usr/lib/libc_r.so OLD_LIBS+=usr/lib/libc_r.so.7 OLD_LIBS+=usr/lib/libc_r_p.a OLD_LIBS+=usr/lib32/libc_r.a OLD_LIBS+=usr/lib32/libc_r.so OLD_LIBS+=usr/lib32/libc_r.so.7 OLD_LIBS+=usr/lib32/libc_r_p.a # 20050722: bump for 6.0-RELEASE OLD_LIBS+=lib/libalias.so.4 OLD_LIBS+=lib/libatm.so.2 OLD_LIBS+=lib/libbegemot.so.1 OLD_LIBS+=lib/libbsdxml.so.1 OLD_LIBS+=lib/libbsnmp.so.2 OLD_LIBS+=lib/libc.so.5 OLD_LIBS+=lib/libcam.so.2 OLD_LIBS+=lib/libcrypt.so.2 OLD_LIBS+=lib/libcrypto.so.3 OLD_LIBS+=lib/libdevstat.so.4 OLD_LIBS+=lib/libedit.so.4 OLD_LIBS+=lib/libgeom.so.2 OLD_LIBS+=lib/libgpib.so.0 OLD_LIBS+=lib/libipsec.so.1 OLD_LIBS+=lib/libipx.so.2 OLD_LIBS+=lib/libkiconv.so.1 OLD_LIBS+=lib/libkvm.so.2 OLD_LIBS+=lib/libm.so.3 OLD_LIBS+=lib/libmd.so.2 OLD_LIBS+=lib/libncurses.so.5 OLD_LIBS+=lib/libreadline.so.5 OLD_LIBS+=lib/libsbuf.so.2 OLD_LIBS+=lib/libufs.so.2 OLD_LIBS+=lib/libutil.so.4 OLD_LIBS+=lib/libz.so.2 OLD_LIBS+=usr/lib/libarchive.so.1 OLD_LIBS+=usr/lib/libasn1.so.7 OLD_LIBS+=usr/lib/libbluetooth.so.1 OLD_LIBS+=usr/lib/libbz2.so.1 OLD_LIBS+=usr/lib/libc_r.so.5 OLD_LIBS+=usr/lib/libcalendar.so.2 OLD_LIBS+=usr/lib/libcom_err.so.2 OLD_LIBS+=usr/lib/libdevinfo.so.2 OLD_LIBS+=usr/lib/libdialog.so.4 OLD_LIBS+=usr/lib/libfetch.so.3 OLD_LIBS+=usr/lib/libform.so.2 OLD_LIBS+=usr/lib/libftpio.so.5 OLD_LIBS+=usr/lib/libg2c.so.1 OLD_LIBS+=usr/lib/libgnuregex.so.2 OLD_LIBS+=usr/lib/libgssapi.so.7 OLD_LIBS+=usr/lib/libhdb.so.7 OLD_LIBS+=usr/lib/libhistory.so.5 OLD_LIBS+=usr/lib/libkadm5clnt.so.7 OLD_LIBS+=usr/lib/libkadm5srv.so.7 OLD_LIBS+=usr/lib/libkafs5.so.7 OLD_LIBS+=usr/lib/libkrb5.so.7 OLD_LIBS+=usr/lib/libmagic.so.1 OLD_LIBS+=usr/lib/libmenu.so.2 OLD_LIBS+=usr/lib/libmilter.so.2 OLD_LIBS+=usr/lib/libmp.so.4 OLD_LIBS+=usr/lib/libncp.so.1 OLD_LIBS+=usr/lib/libnetgraph.so.1 OLD_LIBS+=usr/lib/libngatm.so.1 OLD_LIBS+=usr/lib/libobjc.so.1 OLD_LIBS+=usr/lib/libopie.so.3 OLD_LIBS+=usr/lib/libpam.so.2 OLD_LIBS+=usr/lib/libpanel.so.2 OLD_LIBS+=usr/lib/libpcap.so.3 OLD_LIBS+=usr/lib/libpmc.so.2 OLD_LIBS+=usr/lib/libpthread.so.1 OLD_LIBS+=usr/lib/libradius.so.1 OLD_LIBS+=usr/lib/libroken.so.7 OLD_LIBS+=usr/lib/librpcsvc.so.2 OLD_LIBS+=usr/lib/libsdp.so.1 OLD_LIBS+=usr/lib/libsmb.so.1 OLD_LIBS+=usr/lib/libssh.so.2 OLD_LIBS+=usr/lib/libssl.so.3 OLD_LIBS+=usr/lib/libstdc++.so.4 OLD_LIBS+=usr/lib/libtacplus.so.1 OLD_LIBS+=usr/lib/libthr.so.1 OLD_LIBS+=usr/lib/libthread_db.so.1 OLD_LIBS+=usr/lib/libugidfw.so.1 OLD_LIBS+=usr/lib/libusbhid.so.1 OLD_LIBS+=usr/lib/libvgl.so.3 OLD_LIBS+=usr/lib/libwrap.so.3 OLD_LIBS+=usr/lib/libypclnt.so.1 OLD_LIBS+=usr/lib/pam_chroot.so.2 OLD_LIBS+=usr/lib/pam_deny.so.2 OLD_LIBS+=usr/lib/pam_echo.so.2 OLD_LIBS+=usr/lib/pam_exec.so.2 OLD_LIBS+=usr/lib/pam_ftpusers.so.2 OLD_LIBS+=usr/lib/pam_group.so.2 OLD_LIBS+=usr/lib/pam_guest.so.2 OLD_LIBS+=usr/lib/pam_krb5.so.2 OLD_LIBS+=usr/lib/pam_ksu.so.2 OLD_LIBS+=usr/lib/pam_lastlog.so.2 OLD_LIBS+=usr/lib/pam_login_access.so.2 OLD_LIBS+=usr/lib/pam_nologin.so.2 OLD_LIBS+=usr/lib/pam_opie.so.2 OLD_LIBS+=usr/lib/pam_opieaccess.so.2 OLD_LIBS+=usr/lib/pam_passwdqc.so.2 OLD_LIBS+=usr/lib/pam_permit.so.2 OLD_LIBS+=usr/lib/pam_radius.so.2 OLD_LIBS+=usr/lib/pam_rhosts.so.2 OLD_LIBS+=usr/lib/pam_rootok.so.2 OLD_LIBS+=usr/lib/pam_securetty.so.2 OLD_LIBS+=usr/lib/pam_self.so.2 OLD_LIBS+=usr/lib/pam_ssh.so.2 OLD_LIBS+=usr/lib/pam_tacplus.so.2 OLD_LIBS+=usr/lib/pam_unix.so.2 OLD_LIBS+=usr/lib/snmp_atm.so.3 OLD_LIBS+=usr/lib/snmp_mibII.so.3 OLD_LIBS+=usr/lib/snmp_netgraph.so.3 OLD_LIBS+=usr/lib/snmp_pf.so.3 # 200505XX: ? OLD_LIBS+=usr/lib/snmp_atm.so.2 OLD_LIBS+=usr/lib/snmp_mibII.so.2 OLD_LIBS+=usr/lib/snmp_netgraph.so.2 OLD_LIBS+=usr/lib/snmp_pf.so.2 # 2005XXXX: not ready for primetime yet OLD_LIBS+=usr/lib/libautofs.so.1 # 200411XX: libxpg4 removal OLD_LIBS+=usr/lib/libxpg4.so.3 # 200410XX: libm compatibility fix OLD_LIBS+=lib/libm.so.2 # 20041001: version bump OLD_LIBS+=lib/libreadline.so.4 OLD_LIBS+=usr/lib/libhistory.so.4 OLD_LIBS+=usr/lib/libopie.so.2 OLD_LIBS+=usr/lib/libpcap.so.2 # 20040925: bind9 import OLD_LIBS+=usr/lib/libisc.so.1 # 200408XX OLD_LIBS+=usr/lib/snmp_netgraph.so.1 # 200404XX OLD_LIBS+=usr/lib/libsnmp.so.1 OLD_LIBS+=usr/lib/snmp_mibII.so.1 # 200309XX OLD_LIBS+=usr/lib/libasn1.so.6 OLD_LIBS+=usr/lib/libhdb.so.6 OLD_LIBS+=usr/lib/libkadm5clnt.so.6 OLD_LIBS+=usr/lib/libkadm5srv.so.6 OLD_LIBS+=usr/lib/libkrb5.so.6 OLD_LIBS+=usr/lib/libroken.so.6 # 200304XX OLD_LIBS+=usr/lib/libc.so.4 OLD_LIBS+=usr/lib/libc_r.so.4 OLD_LIBS+=usr/lib/libdevstat.so.2 OLD_LIBS+=usr/lib/libedit.so.3 OLD_LIBS+=usr/lib/libgmp.so.3 OLD_LIBS+=usr/lib/libmp.so.3 OLD_LIBS+=usr/lib/libpam.so.1 OLD_LIBS+=usr/lib/libposix1e.so.2 OLD_LIBS+=usr/lib/libskey.so.2 OLD_LIBS+=usr/lib/libusbhid.so.0 OLD_LIBS+=usr/lib/libvgl.so.2 # 20030218: OpenSSL 0.9.7 import OLD_FILES+=usr/include/des.h OLD_FILES+=usr/lib/libdes.a OLD_FILES+=usr/lib/libdes.so OLD_LIBS+=usr/lib/libdes.so.3 OLD_FILES+=usr/lib/libdes_p.a # 200302XX OLD_LIBS+=usr/lib/libacl.so.3 OLD_LIBS+=usr/lib/libasn1.so.5 OLD_LIBS+=usr/lib/libcrypto.so.2 OLD_LIBS+=usr/lib/libgssapi.so.5 OLD_LIBS+=usr/lib/libhdb.so.5 OLD_LIBS+=usr/lib/libkadm.so.3 OLD_LIBS+=usr/lib/libkadm5clnt.so.5 OLD_LIBS+=usr/lib/libkadm5srv.so.5 OLD_LIBS+=usr/lib/libkafs.so.3 OLD_LIBS+=usr/lib/libkafs5.so.5 OLD_LIBS+=usr/lib/libkdb.so.3 OLD_LIBS+=usr/lib/libkrb.so.3 OLD_LIBS+=usr/lib/libroken.so. OLD_LIBS+=usr/lib/libssl.so.2 OLD_LIBS+=usr/lib/pam_kerberosIV.so # 200208XX OLD_LIBS+=usr/lib/libgssapi.so.4 # 200203XX OLD_LIBS+=usr/lib/libss.so.3 OLD_LIBS+=usr/lib/libusb.so.0 # 200112XX OLD_LIBS+=usr/lib/libfetch.so.2 # 200110XX OLD_LIBS+=usr/lib/libgssapi.so.3 # 200104XX OLD_LIBS+=usr/lib/libdescrypt.so.2 OLD_LIBS+=usr/lib/libscrypt.so.2 # 200102XX OLD_LIBS+=usr/lib/libcrypto.so.1 OLD_LIBS+=usr/lib/libssl.so.1 # 200009XX OLD_LIBS+=usr/lib/libRSAglue.so.1 OLD_LIBS+=usr/lib/librsaINTL.so.1 OLD_LIBS+=usr/lib/librsaUSA.so.1 # 200006XX OLD_LIBS+=usr/lib/libalias.so.3 OLD_LIBS+=usr/lib/libfetch.so.1 OLD_LIBS+=usr/lib/libipsec.so.0 # 200005XX OLD_LIBS+=usr/lib/libxpg4.so.2 # 200002XX OLD_LIBS+=usr/lib/libc.so.3 OLD_LIBS+=usr/lib/libcurses.so.2 OLD_LIBS+=usr/lib/libdialog.so.3 OLD_LIBS+=usr/lib/libedit.so.2 OLD_LIBS+=usr/lib/libf2c.so.2 OLD_LIBS+=usr/lib/libftpio.so.4 OLD_LIBS+=usr/lib/libg++.so.4 OLD_LIBS+=usr/lib/libhistory.so.3 OLD_LIBS+=usr/lib/libmytinfo.so.2 OLD_LIBS+=usr/lib/libncurses.so.3 OLD_LIBS+=usr/lib/libreadline.so.3 OLD_LIBS+=usr/lib/libss.so.2 OLD_LIBS+=usr/lib/libtermcap.so.2 OLD_LIBS+=usr/lib/libutil.so.2 OLD_LIBS+=usr/lib/libvgl.so.1 OLD_LIBS+=usr/lib/libwrap.so.2 # 19991216 OLD_FILES+=usr/sbin/xntpdc # 199909XX OLD_LIBS+=usr/lib/libc_r.so.3 # ??? OLD_LIBS+=usr/lib/libarchive.so.2 OLD_LIBS+=usr/lib/libbsnmp.so.1 OLD_LIBS+=usr/lib/libc_r.so.6 OLD_LIBS+=usr/lib32/libarchive.so.2 OLD_LIBS+=usr/lib32/libc_r.so.6 OLD_LIBS+=usr/lib/libcipher.so.2 OLD_LIBS+=usr/lib/libgssapi.so.6 OLD_LIBS+=usr/lib/libkse.so.1 OLD_LIBS+=usr/lib/liblwres.so.3 OLD_LIBS+=usr/lib/pam_ftp.so.2 # 20131013: Removal of the ATF tools OLD_DIRS+=etc/atf OLD_DIRS+=usr/share/examples/atf OLD_DIRS+=usr/share/xml/atf OLD_DIRS+=usr/share/xml OLD_DIRS+=usr/share/xsl/atf OLD_DIRS+=usr/share/xsl # 20040925: bind9 import OLD_DIRS+=usr/share/doc/bind/html OLD_DIRS+=usr/share/doc/bind/misc OLD_DIRS+=usr/share/doc/bind/ # ??? OLD_DIRS+=usr/include/g++/std OLD_DIRS+=usr/include/msdosfs OLD_DIRS+=usr/include/ntfs OLD_DIRS+=usr/include/nwfs OLD_DIRS+=usr/include/ufs/mfs # 20011001: UUCP migration to ports OLD_DIRS+=usr/libexec/uucp .include "tools/build/mk/OptionalObsoleteFiles.inc" Index: head/UPDATING =================================================================== --- head/UPDATING (revision 333387) +++ head/UPDATING (revision 333388) @@ -1,1668 +1,1674 @@ Updating Information for FreeBSD current users. This file is maintained and copyrighted by M. Warner Losh . See end of file for further details. For commonly done items, please see the COMMON ITEMS: section later in the file. These instructions assume that you basically know what you are doing. If not, then please consult the FreeBSD handbook: https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before running portupgrade. NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to the tip of head, and then rebuild without this option. The bootstrap process from older version of current across the gcc/clang cutover is a bit fragile. NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: FreeBSD 12.x has many debugging features turned on, in both the kernel and userland. These features attempt to detect incorrect use of system primitives, and encourage loud failure through extra sanity checking and fail stop semantics. They also substantially impact system performance. If you want to do performance measurement, benchmarking, and optimization, you'll want to turn them off. This includes various WITNESS- related kernel options, INVARIANTS, malloc debugging flags in userland, and various verbose features in the kernel. Many developers choose to disable these features on build machines to maximize performance. (To completely disable malloc debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) ****************************** SPECIAL WARNING: ****************************** Due to a bug in some versions of clang that's very hard to workaround in the upgrade process, to upgrade to -current you must first upgrade either stable/9 after r286035 or stable/10 after r286033 (including 10.3-RELEASE) or current after r286007 (including stable/11 and 11.0-RELEASE). These revisions post-date the 10.2 and 9.3 releases, so you'll need to take the unusual step of upgrading to the tip of the stable branch before moving to 11 or -current via a source upgrade. stable/11 and 11.0-RELEASE have working newer compiler. This differs from the historical situation where one could upgrade from anywhere on the last couple of stable branches, so be careful. If you're running a hybrid system on 9.x or 10.x with an updated clang compiler or are using an supported external toolchain, the build system will allow the upgrade. Otherwise it will print a reminder. ****************************** SPECIAL WARNING: ****************************** +20180508: + The nxge(4) driver has been removed. This driver was for PCI-X 10g + cards made by s2io/Neterion. The company was aquired by Exar and + no longer sells or supports Ethernet products. If you have device + nxge in your kernel config file it must be removed. + 20180504: The tz database (tzdb) has been updated to 2018e. This version more correctly models time stamps in time zones with negative DST such as Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and Africa/Windhoek (1994/2017). This does not affect the UT offsets, only time zone abbreviations and the tm_isdst flag. 20180502: The ixgb(4) driver has been removed. This driver was for an early and uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel quickly shifted to the long lived ixgbe family. If you have device ixgb in your kernel config file it must be removed. 20180501: The lmc(4) driver has been removed. This was a WAN interface card that was already reportedly rare in 2003, and had an ambiguous license. If you have device lmc in your kernel config file it must be removed. 20180413: Support for Arcnet networks has been removed. If you have device arcnet or device cm in your kernel config file they must be removed. 20180411: Support for FDDI networks has been removed. If you have device fddi or device fpa in your kernel config file they must be removed. 20180406: In addition to supporting RFC 3164 formatted messages, the syslogd(8) service is now capable of parsing RFC 5424 formatted log messages. The main benefit of using RFC 5424 is that clients may now send log messages with timestamps containing year numbers, microseconds and time zone offsets. Similarly, the syslog(3) C library function has been altered to send RFC 5424 formatted messages to the local system logging daemon. On systems using syslogd(8), this change should have no negative impact, as long as syslogd(8) and the C library are updated at the same time. On systems using a different system logging daemon, it may be necessary to make configuration adjustments, depending on the software used. When using syslog-ng, add the 'syslog-protocol' flag to local input sources to enable parsing of RFC 5424 formatted messages: source src { unix-dgram("/var/run/log" flags(syslog-protocol)); } When using rsyslog, disable the 'SysSock.UseSpecialParser' option of the 'imuxsock' module to let messages be processed by the regular RFC 3164/5424 parsing pipeline: module(load="imuxsock" SysSock.UseSpecialParser="off") Do note that these changes only affect communication between local applications and syslogd(8). The format that syslogd(8) uses to store messages on disk or forward messages to other systems remains unchanged. syslogd(8) still uses RFC 3164 for these purposes. Options to customize this behaviour will be added in the future. Utilities that process log files stored in /var/log are thus expected to continue to function as before. __FreeBSD_version has been incremented to 1200061 to denote this change. 20180328: Support for token ring networks has been removed. If you have "device token" in your kernel config you should remove it. No device drivers supported token ring. 20180323: makefs was modified to be able to tag ISO9660 El Torito boot catalog entries as EFI instead of overloading the i386 tag as done previously. The amd64 mkisoimages.sh script used to build amd64 ISO images for release was updated to use this. This may mean that makefs must be updated before "make cdrom" can be run in the release directory. This should be as simple as: $ cd $SRCDIR/usr.sbin/makefs $ make depend all install 20180212: FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. Co-existance for the transition period will come shortly. Booting is a complex environment and test coverage for Lua-enabled loaders has been thin, so it would be prudent to assume it might not work and make provisions for backup boot methods. 20180211: devmatch functionality has been turned on in devd. It will automatically load drivers for unattached devices. This may cause unexpected drivers to be loaded. Please report any problems to current@ and imp@freebsd.org. 20180114: Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 6.0.0. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. 20180110: LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. This means it is used to link the kernel and userland libraries and executables, but is not yet installed as /usr/bin/ld by default. To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set WITHOUT_LLD_BOOTSTRAP=yes 20180110: On i386, pmtimer has been removed. Its functionality has been folded into apm. It was a no-op on ACPI in current for a while now (but was still needed on i386 in FreeBSD 11 and earlier). Users may need to remove it from kernel config files. 20180104: The use of RSS hash from the network card aka flowid has been disabled by default for lagg(4) as it's currently incompatible with the lacp and loadbalance protocols. This can be re-enabled by setting the following in loader.conf: net.link.lagg.default_use_flowid="1" 20180102: The SW_WATCHDOG option is no longer necessary to enable the hardclock-based software watchdog if no hardware watchdog is configured. As before, SW_WATCHDOG will cause the software watchdog to be enabled even if a hardware watchdog is configured. 20171215: r326887 fixes the issue described in the 20171214 UPDATING entry. r326888 flips the switch back to building GELI support always. 20171214: r362593 broke ZFS + GELI support for reasons unknown. However, it also broke ZFS support generally, so GELI has been turned off by default as the lesser evil in r326857. If you boot off ZFS and/or GELI, it might not be a good time to update. 20171125: PowerPC users must update loader(8) by rebuilding world before installing a new kernel, as the protocol connecting them has changed. Without the update, loader metadata will not be passed successfully to the kernel and users will have to enter their root partition at the kernel mountroot prompt to continue booting. Newer versions of loader can boot old kernels without issue. 20171110: The LOADER_FIREWIRE_SUPPORT build variable as been renamed to WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed to WITH/OUT_LOADER_GELI. 20171106: The naive and non-compliant support of posix_fallocate(2) in ZFS has been removed as of r325320. The system call now returns EINVAL when used on a ZFS file. Although the new behavior complies with the standard, some consumers are not prepared to cope with it. One known victim is lld prior to r325420. 20171102: Building in a FreeBSD src checkout will automatically create object directories now rather than store files in the current directory if 'make obj' was not ran. Calling 'make obj' is no longer necessary. This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in /etc/src-env.conf (not /etc/src.conf), or passing the option in the environment. 20171101: The default MAKEOBJDIR has changed from /usr/obj/ for native builds, and /usr/obj// for cross-builds, to a unified /usr/obj//. This behavior can be changed to the old format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. The UNIFIED_OBJDIR option is a transitional feature that will be removed for 12.0 release; please migrate to the new format for any tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather than hardcoding paths. 20171028: The native-xtools target no longer installs the files by default to the OBJDIR. Use the native-xtools-install target with a DESTDIR to install to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. 20171021: As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT options are changing from controlling the build if defined / undefined to controlling the build with explicit 'yes' or 'no' values. They will shift to WITH/WITHOUT options to match other options in the system. 20171010: libstand has turned into a private library for sys/boot use only. It is no longer supported as a public interface outside of sys/boot. 20171005: The arm port has split armv6 into armv6 and armv7. armv7 is now a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system and are running a kernel from before r324363, you will need to add MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. 20171003: When building multiple kernels using KERNCONF, non-existent KERNCONF files will produce an error and buildkernel will fail. Previously missing KERNCONF files silently failed giving no indication as to why, only to subsequently discover during installkernel that the desired kernel was never built in the first place. 20170912: The default serial number format for CTL LUNs has changed. This will affect users who use /dev/diskid/* device nodes, or whose FibreChannel or iSCSI clients care about their LUNs' serial numbers. Users who require serial number stability should hardcode serial numbers in /etc/ctl.conf . 20170912: For 32-bit arm compiled for hard-float support, soft-floating point binaries now always get their shared libraries from LD_SOFT_LIBRARY_PATH (in the past, this was only used if /usr/libsoft also existed). Only users with a hard-float ld.so, but soft-float everything else should be affected. 20170826: The geli password typed at boot is now hidden. To restore the previous behavior, see geli(8) for configuration options. 20170825: Move PMTUD blackhole counters to TCPSTATS and remove them from bare sysctl values. Minor nit, but requires a rebuild of both world/kernel to complete. 20170814: "make check" behavior (made in ^/head@r295380) has been changed to execute from a limited sandbox, as opposed to executing from ${TESTSDIR}. Behavioral changes: - The "beforecheck" and "aftercheck" targets are now specified. - ${CHECKDIR} (added in commit noted above) has been removed. - Legacy behavior can be enabled by setting WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. If the limited sandbox mode is enabled, "make check" will execute "make distribution", then install, execute the tests, and clean up the sandbox if successful. The "make distribution" and "make install" targets are typically run as root to set appropriate permissions and ownership at installation time. The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the environment if executing "make check" with limited sandbox mode using an unprivileged user. 20170808: Since the switch to GPT disk labels, fsck for UFS/FFS has been unable to automatically find alternate superblocks. As of r322297, the information needed to find alternate superblocks has been moved to the end of the area reserved for the boot block. Filesystems created with a newfs of this vintage or later will create the recovery information. If you have a filesystem created prior to this change and wish to have a recovery block created for your filesystem, you can do so by running fsck in foreground mode (i.e., do not use the -p or -y options). As it starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' to which you should answer yes. 20170728: As of r321665, an NFSv4 server configuration that services Kerberos mounts or clients that do not support the uid/gid in owner/owner_group string capability, must explicitly enable the nfsuserd daemon by adding nfsuserd_enable="YES" to the machine's /etc/rc.conf file. 20170722: Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. 20170701: WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the r-commands (rlogin, rsh, etc.) to be built with the base system. 20170625: The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is a very major ABI incompatible change, so users of FreeBSD/powerpc must be careful when performing source upgrades. It is best to run 'make installworld' from an alternate root system, either a live CD/memory stick, or a temporary root partition. Additionally, all ports must be recompiled. powerpc64 is largely unaffected, except in the case of 32-bit compatibility. All 32-bit binaries will be affected. 20170623: Forward compatibility for the "ino64" project have been committed. This will allow most new binaries to run on older kernels in a limited fashion. This prevents many of the common foot-shooting actions in the upgrade as well as the limited ability to roll back the kernel across the ino64 upgrade. Complicated use cases may not work properly, though enough simpler ones work to allow recovery in most situations. 20170620: Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC if you require the GPL compiler. 20170618: The internal ABI used for communication between the NFS kernel modules was changed by r320085, so __FreeBSD_version was bumped to ensure all the NFS related modules are updated together. 20170617: The ABI of struct event was changed by extending the data member to 64bit and adding ext fields. For upgrade, same precautions as for the entry 20170523 "ino64" must be followed. 20170531: The GNU roff toolchain has been removed from base. To render manpages which are not supported by mandoc(1), man(1) can fallback on GNU roff from ports (and recommends to install it). To render roff(7) documents, consider using GNU roff from ports or the heirloom doctools roff toolchain from ports via pkg install groff or via pkg install heirloom-doctools. 20170524: The ath(4) and ath_hal(4) modules now build piecemeal to allow for smaller runtime footprint builds. This is useful for embedded systems which only require one chipset support. If you load it as a module, make sure this is in /boot/loader.conf: if_ath_load="YES" This will load the HAL, all chip/RF backends and if_ath_pci. If you have if_ath_pci in /boot/loader.conf, ensure it is after if_ath or it will not load any HAL chipset support. If you want to selectively load things (eg on ye cheape ARM/MIPS platforms where RAM is at a premium) you should: * load ath_hal * load the chip modules in question * load ath_rate, ath_dfs * load ath_main * load if_ath_pci and/or if_ath_ahb depending upon your particular bus bind type - this is where probe/attach is done. For further comments/feedback, poke adrian@ . 20170523: The "ino64" 64-bit inode project has been committed, which extends a number of types to 64 bits. Upgrading in place requires care and adherence to the documented upgrade procedure. If using a custom kernel configuration ensure that the COMPAT_FREEBSD11 option is included (as during the upgrade the system will be running the ino64 kernel with the existing world). For the safest in-place upgrade begin by removing previous build artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full procedure documented below under the heading "To rebuild everything and install it on the current system." Specifically, a reboot is required after installing the new kernel before installing world. 20170424: The NATM framework including the en(4), fatm(4), hatm(4), and patm(4) devices has been removed. Consumers should plan a migration before the end-of-life date for FreeBSD 11. 20170420: GNU diff has been replaced by a BSD licensed diff. Some features of GNU diff has not been implemented, if those are needed a newer version of GNU diff is available via the diffutils package under the gdiff name. 20170413: As of r316810 for ipfilter, keep frags is no longer assumed when keep state is specified in a rule. r316810 aligns ipfilter with documentation in man pages separating keep frags from keep state. This allows keep state to be specified without forcing keep frags and allows keep frags to be specified independently of keep state. To maintain previous behaviour, also specify keep frags with keep state (as documented in ipf.conf.5). 20170407: arm64 builds now use the base system LLD 4.0.0 linker by default, instead of requiring that the aarch64-binutils port or package be installed. To continue using aarch64-binutils, set CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 20170405: The UDP optimization in entry 20160818 that added the sysctl net.inet.udp.require_l2_bcast has been reverted. L2 broadcast packets will no longer be treated as L3 broadcast packets. 20170331: Binds and sends to the loopback addresses, IPv6 and IPv4, will now use any explicitly assigned loopback address available in the jail instead of using the first assigned address of the jail. 20170329: The ctl.ko module no longer implements the iSCSI target frontend: cfiscsi.ko does instead. If building cfiscsi.ko as a kernel module, the module can be loaded via one of the following methods: - `cfiscsi_load="YES"` in loader.conf(5). - Add `cfiscsi` to `$kld_list` in rc.conf(5). - ctladm(8)/ctld(8), when compiled with iSCSI support (`WITH_ISCSI=yes` in src.conf(5)) Please see cfiscsi(4) for more details. 20170316: The mmcsd.ko module now additionally depends on geom_flashmap.ko. Also, mmc.ko and mmcsd.ko need to be a matching pair built from the same source (previously, the dependency of mmcsd.ko on mmc.ko was missing, but mmcsd.ko now will refuse to load if it is incompatible with mmc.ko). 20170315: The syntax of ipfw(8) named states was changed to avoid ambiguity. If you have used named states in the firewall rules, you need to modify them after installworld and before rebooting. Now named states must be prefixed with colon. 20170311: The old drm (sys/dev/drm/) drivers for i915 and radeon have been removed as the userland we provide cannot use them. The KMS version (sys/dev/drm2) supports the same hardware. 20170302: Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. 20170221: The code that provides support for ZFS .zfs/ directory functionality has been reimplemented. It's not possible now to create a snapshot by mkdir under .zfs/snapshot/. That should be the only user visible change. 20170216: EISA bus support has been removed. The WITH_EISA option is no longer valid. 20170215: MCA bus support has been removed. 20170127: The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 20170112: The EM_MULTIQUEUE kernel configuration option is deprecated now that the em(4) driver conforms to iflib specifications. 20170109: The igb(4), em(4) and lem(4) ethernet drivers are now implemented via IFLIB. If you have a custom kernel configuration that excludes em(4) but you use igb(4), you need to re-add em(4) to your custom configuration. 20161217: Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. 20161124: Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. 20161119: The layout of the pmap structure has changed for powerpc to put the pmap statistics at the front for all CPU variations. libkvm(3) and all tools that link against it need to be recompiled. 20161030: isl(4) and cyapa(4) drivers now require a new driver, chromebook_platform(4), to work properly on Chromebook-class hardware. On other types of hardware the drivers may need to be configured using device hints. Please see the corresponding manual pages for details. 20161017: The urtwn(4) driver was merged into rtwn(4) and now consists of rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific parts. Also, firmware for RTL8188CE was renamed due to possible name conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 20161015: GNU rcs has been removed from base. It is available as packages: - rcs: Latest GPLv3 GNU rcs version. - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was removed from base. 20161008: Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control modules now requires that the kernel configuration contain the TCP_HHOOK option. (This option is included in the GENERIC kernel.) 20161003: The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 20160924: Relocatable object files with the extension of .So have been renamed to use an extension of .pico instead. The purpose of this change is to avoid a name clash with shared libraries on case-insensitive file systems. On those file systems, foo.So is the same file as foo.so. 20160918: GNU rcs has been turned off by default. It can (temporarily) be built again by adding WITH_RCS knob in src.conf. Otherwise, GNU rcs is available from packages: - rcs: Latest GPLv3 GNU rcs version. - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 20160918: The backup_uses_rcs functionality has been removed from rc.subr. 20160908: The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into two separate components, QUEUE_MACRO_DEBUG_TRACE and QUEUE_MACRO_DEBUG_TRASH. Define both for the original QUEUE_MACRO_DEBUG behavior. 20160824: r304787 changed some ioctl interfaces between the iSCSI userspace programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be rebuilt to work with new kernels. __FreeBSD_version has been bumped to 1200005. 20160818: The UDP receive code has been updated to only treat incoming UDP packets that were addressed to an L2 broadcast address as L3 broadcast packets. It is not expected that this will affect any standards-conforming UDP application. The new behaviour can be disabled by setting the sysctl net.inet.udp.require_l2_bcast to 0. 20160818: Remove the openbsd_poll system call. __FreeBSD_version has been bumped because of this. 20160622: The libc stub for the pipe(2) system call has been replaced with a wrapper that calls the pipe2(2) system call and the pipe(2) system call is now only implemented by the kernels that include "options COMPAT_FREEBSD10" in their config file (this is the default). Users should ensure that this option is enabled in their kernel or upgrade userspace to r302092 before upgrading their kernel. 20160527: CAM will now strip leading spaces from SCSI disks' serial numbers. This will affect users who create UFS filesystems on SCSI disks using those disk's diskid device nodes. For example, if /etc/fstab previously contained a line like "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should change it to "/dev/diskid/DISK-ABCDEFG0123456". Users of geom transforms like gmirror may also be affected. ZFS users should generally be fine. 20160523: The bitstring(3) API has been updated with new functionality and improved performance. But it is binary-incompatible with the old API. Objects built with the new headers may not be linked against objects built with the old headers. 20160520: The brk and sbrk functions have been removed from libc on arm64. Binutils from ports has been updated to not link to these functions and should be updated to the latest version before installing a new libc. 20160517: The armv6 port now defaults to hard float ABI. Limited support for running both hardfloat and soft float on the same system is available using the libraries installed with -DWITH_LIBSOFT. This has only been tested as an upgrade path for installworld and packages may fail or need manual intervention to run. New packages will be needed. To update an existing self-hosted armv6hf system, you must add TARGET_ARCH=armv6 on the make command line for both the build and the install steps. 20160510: Kernel modules compiled outside of a kernel build now default to installing to /boot/modules instead of /boot/kernel. Many kernel modules built this way (such as those in ports) already overrode KMODDIR explicitly to install into /boot/modules. However, manually building and installing a module from /sys/modules will now install to /boot/modules instead of /boot/kernel. 20160414: The CAM I/O scheduler has been committed to the kernel. There should be no user visible impact. This does enable NCQ Trim on ada SSDs. While the list of known rogues that claim support for this but actually corrupt data is believed to be complete, be on the lookout for data corruption. The known rogue list is believed to be complete: o Crucial MX100, M550 drives with MU01 firmware. o Micron M510 and M550 drives with MU01 firmware. o Micron M500 prior to MU07 firmware o Samsung 830, 840, and 850 all firmwares o FCCT M500 all firmwares Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware with working NCQ TRIM. For Micron branded drives, see your sales rep for updated firmware. Black listed drives will work correctly because these drives work correctly so long as no NCQ TRIMs are sent to them. Given this list is the same as found in Linux, it's believed there are no other rogues in the market place. All other models from the above vendors work. To be safe, if you are at all concerned, you can quirk each of your drives to prevent NCQ from being sent by setting: kern.cam.ada.X.quirks="0x2" in loader.conf. If the drive requires the 4k sector quirk, set the quirks entry to 0x3. 20160330: The FAST_DEPEND build option has been removed and its functionality is now the one true way. The old mkdep(1) style of 'make depend' has been removed. See 20160311 for further details. 20160317: Resource range types have grown from unsigned long to uintmax_t. All drivers, and anything using libdevinfo, need to be recompiled. 20160311: WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree builds. It no longer runs mkdep(1) during 'make depend', and the 'make depend' stage can safely be skipped now as it is auto ran when building 'make all' and will generate all SRCS and DPSRCS before building anything else. Dependencies are gathered at compile time with -MF flags kept in separate .depend files per object file. Users should run 'make cleandepend' once if using -DNO_CLEAN to clean out older stale .depend files. 20160306: On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into kernel modules. Therefore, if you load any kernel modules at boot time, please install the boot loaders after you install the kernel, but before rebooting, e.g.: make buildworld make buildkernel KERNCONF=YOUR_KERNEL_HERE make installkernel KERNCONF=YOUR_KERNEL_HERE make -C sys/boot install Then follow the usual steps, described in the General Notes section, below. 20160305: Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. 20160301: The AIO subsystem is now a standard part of the kernel. The VFS_AIO kernel option and aio.ko kernel module have been removed. Due to stability concerns, asynchronous I/O requests are only permitted on sockets and raw disks by default. To enable asynchronous I/O requests on all file types, set the vfs.aio.enable_unsafe sysctl to a non-zero value. 20160226: The ELF object manipulation tool objcopy is now provided by the ELF Tool Chain project rather than by GNU binutils. It should be a drop-in replacement, with the addition of arm64 support. The (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set to obtain the GNU version if necessary. 20160129: Building ZFS pools on top of zvols is prohibited by default. That feature has never worked safely; it's always been prone to deadlocks. Using a zvol as the backing store for a VM guest's virtual disk will still work, even if the guest is using ZFS. Legacy behavior can be restored by setting vfs.zfs.vol.recursive=1. 20160119: The NONE and HPN patches has been removed from OpenSSH. They are still available in the security/openssh-portable port. 20160113: With the addition of ypldap(8), a new _ypldap user is now required during installworld. "mergemaster -p" can be used to add the user prior to installworld, as documented in the handbook. 20151216: The tftp loader (pxeboot) now uses the option root-path directive. As a consequence it no longer looks for a pxeboot.4th file on the tftp server. Instead it uses the regular /boot infrastructure as with the other loaders. 20151211: The code to start recording plug and play data into the modules has been committed. While the old tools will properly build a new kernel, a number of warnings about "unknown metadata record 4" will be produced for an older kldxref. To avoid such warnings, make sure to rebuild the kernel toolchain (or world). Make sure that you have r292078 or later when trying to build 292077 or later before rebuilding. 20151207: Debug data files are now built by default with 'make buildworld' and installed with 'make installworld'. This facilitates debugging but requires more disk space both during the build and for the installed world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes in src.conf(5). 20151130: r291527 changed the internal interface between the nfsd.ko and nfscommon.ko modules. As such, they must both be upgraded to-gether. __FreeBSD_version has been bumped because of this. 20151108: Add support for unicode collation strings leads to a change of order of files listed by ls(1) for example. To get back to the old behaviour, set LC_COLLATE environment variable to "C". Databases administrators will need to reindex their databases given collation results will be different. Due to a bug in install(1) it is recommended to remove the ancient locales before running make installworld. rm -rf /usr/share/locale/* 20151030: The OpenSSL has been upgraded to 1.0.2d. Any binaries requiring libcrypto.so.7 or libssl.so.7 must be recompiled. 20151020: Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0. Kernel modules isp_2400_multi and isp_2500_multi were removed and should be replaced with isp_2400 and isp_2500 modules respectively. 20151017: The build previously allowed using 'make -n' to not recurse into sub-directories while showing what commands would be executed, and 'make -n -n' to recursively show commands. Now 'make -n' will recurse and 'make -N' will not. 20151012: If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster and etcupdate will now use this file. A custom sendmail.cf is now updated via this mechanism rather than via installworld. If you had excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may want to remove the exclusion or change it to "always install". /etc/mail/sendmail.cf is now managed the same way regardless of whether SENDMAIL_MC/SENDMAIL_CF is used. If you are not using SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior. 20151011: Compatibility shims for legacy ATA device names have been removed. It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.* environment variables, /dev/ad* and /dev/ar* symbolic links. 20151006: Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using clang 3.5.0 or higher. 20150924: Kernel debug files have been moved to /usr/lib/debug/boot/kernel/, and renamed from .symbols to .debug. This reduces the size requirements on the boot partition or file system and provides consistency with userland debug files. When using the supported kernel installation method the /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old) as is done with /boot/kernel. Developers wishing to maintain the historical behavior of installing debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5). 20150827: The wireless drivers had undergone changes that remove the 'parent interface' from the ifconfig -l output. The rc.d network scripts used to check presence of a parent interface in the list, so old scripts would fail to start wireless networking. Thus, etcupdate(3) or mergemaster(8) run is required after kernel update, to update your rc.d scripts in /etc. 20150827: pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl' These configurations are now automatically interpreted as 'scrub fragment reassemble'. 20150817: Kernel-loadable modules for the random(4) device are back. To use them, the kernel must have device random options RANDOM_LOADABLE kldload(8) can then be used to load random_fortuna.ko or random_yarrow.ko. Please note that due to the indirect function calls that the loadable modules need to provide, the build-in variants will be slightly more efficient. The random(4) kernel option RANDOM_DUMMY has been retired due to unpopularity. It was not all that useful anyway. 20150813: The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired. Control over building the ELF Tool Chain tools is now provided by the WITHOUT_TOOLCHAIN knob. 20150810: The polarity of Pulse Per Second (PPS) capture events with the uart(4) driver has been corrected. Prior to this change the PPS "assert" event corresponded to the trailing edge of a positive PPS pulse and the "clear" event was the leading edge of the next pulse. As the width of a PPS pulse in a typical GPS receiver is on the order of 1 millisecond, most users will not notice any significant difference with this change. Anyone who has compensated for the historical polarity reversal by configuring a negative offset equal to the pulse width will need to remove that workaround. 20150809: The default group assigned to /dev/dri entries has been changed from 'wheel' to 'video' with the id of '44'. If you want to have access to the dri devices please add yourself to the video group with: # pw groupmod video -m $USER 20150806: The menu.rc and loader.rc files will now be replaced during upgrades. Please migrate local changes to menu.rc.local and loader.rc.local instead. 20150805: GNU Binutils versions of addr2line, c++filt, nm, readelf, size, strings and strip have been removed. The src.conf(5) knob WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools. 20150728: As ZFS requires more kernel stack pages than is the default on some architectures e.g. i386, it now warns if KSTACK_PAGES is less than ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing). Please consider using 'options KSTACK_PAGES=X' where X is greater than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations. 20150706: sendmail has been updated to 8.15.2. Starting with FreeBSD 11.0 and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by default, i.e., they will not contain "::". For example, instead of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet to have a more specific match, such as different map entries for IPv6:0:0 vs IPv6:0. This change requires that configuration data (including maps, files, classes, custom ruleset, etc.) must use the same format, so make certain such configuration data is upgrading. As a very simple check search for patterns like 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the old behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or the cf option UseCompressedIPv6Addresses. 20150630: The default kernel entropy-processing algorithm is now Fortuna, replacing Yarrow. Assuming you have 'device random' in your kernel config file, the configurations allow a kernel option to override this default. You may choose *ONE* of: options RANDOM_YARROW # Legacy /dev/random algorithm. options RANDOM_DUMMY # Blocking-only driver. If you have neither, you get Fortuna. For most people, read no further, Fortuna will give a /dev/random that works like it always used to, and the difference will be irrelevant. If you remove 'device random', you get *NO* kernel-processed entropy at all. This may be acceptable to folks building embedded systems, but has complications. Carry on reading, and it is assumed you know what you need. *PLEASE* read random(4) and random(9) if you are in the habit of tweaking kernel configs, and/or if you are a member of the embedded community, wanting specific and not-usual behaviour from your security subsystems. NOTE!! If you use RANDOM_DUMMY and/or have no 'device random', you will NOT have a functioning /dev/random, and many cryptographic features will not work, including SSH. You may also find strange behaviour from the random(3) set of library functions, in particular sranddev(3), srandomdev(3) and arc4random(3). The reason for this is that the KERN_ARND sysctl only returns entropy if it thinks it has some to share, and with RANDOM_DUMMY or no 'device random' this will never happen. 20150623: An additional fix for the issue described in the 20150614 sendmail entry below has been committed in revision 284717. 20150616: FreeBSD's old make (fmake) has been removed from the system. It is available as the devel/fmake port or via pkg install fmake. 20150615: The fix for the issue described in the 20150614 sendmail entry below has been committed in revision 284436. The work around described in that entry is no longer needed unless the default setting is overridden by a confDH_PARAMETERS configuration setting of '5' or pointing to a 512 bit DH parameter file. 20150614: ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf and devel/kyua to version 0.20+ and adjust any calling code to work with Kyuafile and kyua. 20150614: The import of openssl to address the FreeBSD-SA-15:10.openssl security advisory includes a change which rejects handshakes with DH parameters below 768 bits. sendmail releases prior to 8.15.2 (not yet released), defaulted to a 512 bit DH parameter setting for client connections. To work around this interoperability, sendmail can be configured to use a 2048 bit DH parameter by: 1. Edit /etc/mail/`hostname`.mc 2. If a setting for confDH_PARAMETERS does not exist or exists and is set to a string beginning with '5', replace it with '2'. 3. If a setting for confDH_PARAMETERS exists and is set to a file path, create a new file with: openssl dhparam -out /path/to/file 2048 4. Rebuild the .cf file: cd /etc/mail/; make; make install 5. Restart sendmail: cd /etc/mail/; make restart A sendmail patch is coming, at which time this file will be updated. 20150604: Generation of legacy formatted entries have been disabled by default in pwd_mkdb(8), as all base system consumers of the legacy formatted entries were converted to use the new format by default when the new, machine independent format have been added and supported since FreeBSD 5.x. Please see the pwd_mkdb(8) manual page for further details. 20150525: Clang and llvm have been upgraded to 3.6.1 release. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using 3.5.0 or higher. 20150521: TI platform code switched to using vendor DTS files and this update may break existing systems running on Beaglebone, Beaglebone Black, and Pandaboard: - dtb files should be regenerated/reinstalled. Filenames are the same but content is different now - GPIO addressing was changed, now each GPIO bank (32 pins per bank) has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old addressing scheme is now pin 25 on /dev/gpioc3. - Pandaboard: /etc/ttys should be updated, serial console device is now /dev/ttyu2, not /dev/ttyu0 20150501: soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. If you need the GNU extension from groff soelim(1), install groff from package: pkg install groff, or via ports: textproc/groff. 20150423: chmod, chflags, chown and chgrp now affect symlinks in -R mode as defined in symlink(7); previously symlinks were silently ignored. 20150415: The const qualifier has been removed from iconv(3) to comply with POSIX. The ports tree is aware of this from r384038 onwards. 20150416: Libraries specified by LIBADD in Makefiles must have a corresponding DPADD_ variable to ensure correct dependencies. This is now enforced in src.libnames.mk. 20150324: From legacy ata(4) driver was removed support for SATA controllers supported by more functional drivers ahci(4), siis(4) and mvs(4). Kernel modules ataahci and ataadaptec were removed completely, replaced by ahci and mvs modules respectively. 20150315: Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using 3.5.0 or higher. 20150307: The 32-bit PowerPC kernel has been changed to a position-independent executable. This can only be booted with a version of loader(8) newer than January 31, 2015, so make sure to update both world and kernel before rebooting. 20150217: If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014), but before r278950, the RNG was not seeded properly. Immediately upgrade the kernel to r278950 or later and regenerate any keys (e.g. ssh keys or openssl keys) that were generated w/ a kernel from that range. This does not affect programs that directly used /dev/random or /dev/urandom. All userland uses of arc4random(3) are affected. 20150210: The autofs(4) ABI was changed in order to restore binary compatibility with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work with the new kernel. 20150131: The powerpc64 kernel has been changed to a position-independent executable. This can only be booted with a new version of loader(8), so make sure to update both world and kernel before rebooting. 20150118: Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix only release, no new features have been added. Please see the 20141231 entry below for information about prerequisites and upgrading, if you are not already using 3.5.0. 20150107: ELF tools addr2line, elfcopy (strip), nm, size, and strings are now taken from the ELF Tool Chain project rather than GNU binutils. They should be drop-in replacements, with the addition of arm64 support. The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the binutils tools, if necessary. See 20150805 for updated information. 20150105: The default Unbound configuration now enables remote control using a local socket. Users who have already enabled the local_unbound service should regenerate their configuration by running "service local_unbound setup" as root. 20150102: The GNU texinfo and GNU info pages have been removed. To be able to view GNU info pages please install texinfo from ports. 20141231: Clang, llvm and lldb have been upgraded to 3.5.0 release. As of this release, a prerequisite for building clang, llvm and lldb is a C++11 capable compiler and C++11 standard library. This means that to be able to successfully build the cross-tools stage of buildworld, with clang as the bootstrap compiler, your system compiler or cross compiler should either be clang 3.3 or later, or gcc 4.8 or later, and your system C++ library should be libc++, or libdstdc++ from gcc 4.8 or later. On any standard FreeBSD 10.x or 11.x installation, where clang and libc++ are on by default (that is, on x86 or arm), this should work out of the box. On 9.x installations where clang is enabled by default, e.g. on x86 and powerpc, libc++ will not be enabled by default, so libc++ should be built (with clang) and installed first. If both clang and libc++ are missing, build clang first, then use it to build libc++. On 8.x and earlier installations, upgrade to 9.x first, and then follow the instructions for 9.x above. Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by default, and do not build clang. Many embedded systems are resource constrained, and will not be able to build clang in a reasonable time, or in some cases at all. In those cases, cross building bootable systems on amd64 is a workaround. This new version of clang introduces a number of new warnings, of which the following are most likely to appear: -Wabsolute-value This warns in two cases, for both C and C++: * When the code is trying to take the absolute value of an unsigned quantity, which is effectively a no-op, and almost never what was intended. The code should be fixed, if at all possible. If you are sure that the unsigned quantity can be safely cast to signed, without loss of information or undefined behavior, you can add an explicit cast, or disable the warning. * When the code is trying to take an absolute value, but the called abs() variant is for the wrong type, which can lead to truncation. If you want to disable the warning instead of fixing the code, please make sure that truncation will not occur, or it might lead to unwanted side-effects. -Wtautological-undefined-compare and -Wundefined-bool-conversion These warn when C++ code is trying to compare 'this' against NULL, while 'this' should never be NULL in well-defined C++ code. However, there is some legacy (pre C++11) code out there, which actively abuses this feature, which was less strictly defined in previous C++ versions. Squid and openjdk do this, for example. The warning can be turned off for C++98 and earlier, but compiling the code in C++11 mode might result in unexpected behavior; for example, the parts of the program that are unreachable could be optimized away. 20141222: The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) kernel sources have been removed. The .h files remain, since some utilities include them. This will need to be fixed later. If "mount -t oldnfs ..." is attempted, it will fail. If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used, the utilities will report errors. 20141121: The handling of LOCAL_LIB_DIRS has been altered to skip addition of directories to top level SUBDIR variable when their parent directory is included in LOCAL_DIRS. Users with build systems with such hierarchies and without SUBDIR entries in the parent directory Makefiles should add them or add the directories to LOCAL_DIRS. 20141109: faith(4) and faithd(8) have been removed from the base system. Faith has been obsolete for a very long time. 20141104: vt(4), the new console driver, is enabled by default. It brings support for Unicode and double-width characters, as well as support for UEFI and integration with the KMS kernel video drivers. You may need to update your console settings in /etc/rc.conf, most probably the keymap. During boot, /etc/rc.d/syscons will indicate what you need to do. vt(4) still has issues and lacks some features compared to syscons(4). See the wiki for up-to-date information: https://wiki.freebsd.org/Newcons If you want to keep using syscons(4), you can do so by adding the following line to /boot/loader.conf: kern.vty=sc 20141102: pjdfstest has been integrated into kyua as an opt-in test suite. Please see share/doc/pjdfstest/README for more details on how to execute it. 20141009: gperf has been removed from the base system for architectures that use clang. Ports that require gperf will obtain it from the devel/gperf port. 20140923: pjdfstest has been moved from tools/regression/pjdfstest to contrib/pjdfstest . 20140922: At svn r271982, The default linux compat kernel ABI has been adjusted to 2.6.18 in support of the linux-c6 compat ports infrastructure update. If you wish to continue using the linux-f10 compat ports, add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are encouraged to update their linux-compat packages to linux-c6 during their next update cycle. 20140729: The ofwfb driver, used to provide a graphics console on PowerPC when using vt(4), no longer allows mmap() of all physical memory. This will prevent Xorg on PowerPC with some ATI graphics cards from initializing properly unless x11-servers/xorg-server is updated to 1.12.4_8 or newer. 20140723: The xdev targets have been converted to using TARGET and TARGET_ARCH instead of XDEV and XDEV_ARCH. 20140719: The default unbound configuration has been modified to address issues with reverse lookups on networks that use private address ranges. If you use the local_unbound service, run "service local_unbound setup" as root to regenerate your configuration, then "service local_unbound reload" to load the new configuration. 20140709: The GNU texinfo and GNU info pages are not built and installed anymore, WITH_INFO knob has been added to allow to built and install them again. UPDATE: see 20150102 entry on texinfo's removal 20140708: The GNU readline library is now an INTERNALLIB - that is, it is statically linked into consumers (GDB and variants) in the base system, and the shared library is no longer installed. The devel/readline port is available for third party software that requires readline. 20140702: The Itanium architecture (ia64) has been removed from the list of known architectures. This is the first step in the removal of the architecture. 20140701: Commit r268115 has added NFSv4.1 server support, merged from projects/nfsv4.1-server. Since this includes changes to the internal interfaces between the NFS related modules, a full build of the kernel and modules will be necessary. __FreeBSD_version has been bumped. 20140629: The WITHOUT_VT_SUPPORT kernel config knob has been renamed WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning which differs from the behaviour controlled by this knob.) 20140619: Maximal length of the serial number in CTL was increased from 16 to 64 chars, that breaks ABI. All CTL-related tools, such as ctladm and ctld, need to be rebuilt to work with a new kernel. 20140606: The libatf-c and libatf-c++ major versions were downgraded to 0 and 1 respectively to match the upstream numbers. They were out of sync because, when they were originally added to FreeBSD, the upstream versions were not respected. These libraries are private and not yet built by default, so renumbering them should be a non-issue. However, unclean source trees will yield broken test programs once the operator executes "make delete-old-libs" after a "make installworld". Additionally, the atf-sh binary was made private by moving it into /usr/libexec/. Already-built shell test programs will keep the path to the old binary so they will break after "make delete-old" is run. If you are using WITH_TESTS=yes (not the default), wipe the object tree and rebuild from scratch to prevent spurious test failures. This is only needed once: the misnumbered libraries and misplaced binaries have been added to OptionalObsoleteFiles.inc so they will be removed during a clean upgrade. 20140512: Clang and llvm have been upgraded to 3.4.1 release. 20140508: We bogusly installed src.opts.mk in /usr/share/mk. This file should be removed to avoid issues in the future (and has been added to ObsoleteFiles.inc). 20140505: /etc/src.conf now affects only builds of the FreeBSD src tree. In the past, it affected all builds that used the bsd.*.mk files. The old behavior was a bug, but people may have relied upon it. To get this behavior back, you can .include /etc/src.conf from /etc/make.conf (which is still global and isn't changed). This also changes the behavior of incremental builds inside the tree of individual directories. Set MAKESYSPATH to ".../share/mk" to do that. Although this has survived make universe and some upgrade scenarios, other upgrade scenarios may have broken. At least one form of temporary breakage was fixed with MAKESYSPATH settings for buildworld as well... In cases where MAKESYSPATH isn't working with this setting, you'll need to set it to the full path to your tree. One side effect of all this cleaning up is that bsd.compiler.mk is no longer implicitly included by bsd.own.mk. If you wish to use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk as well. 20140430: The lindev device has been removed since /dev/full has been made a standard device. __FreeBSD_version has been bumped. 20140424: The knob WITHOUT_VI was added to the base system, which controls building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1) in order to reorder files share/termcap and didn't build ex(1) as a build tool, so building/installing with WITH_VI is highly advised for build hosts for older releases. This issue has been fixed in stable/9 and stable/10 in r277022 and r276991, respectively. 20140418: The YES_HESIOD knob has been removed. It has been obsolete for a decade. Please move to using WITH_HESIOD instead or your builds will silently lack HESIOD. 20140405: The uart(4) driver has been changed with respect to its handling of the low-level console. Previously the uart(4) driver prevented any process from changing the baudrate or the CLOCAL and HUPCL control flags. By removing the restrictions, operators can make changes to the serial console port without having to reboot. However, when getty(8) is started on the serial device that is associated with the low-level console, a misconfigured terminal line in /etc/ttys will now have a real impact. Before upgrading the kernel, make sure that /etc/ttys has the serial console device configured as 3wire without baudrate to preserve the previous behaviour. E.g: ttyu0 "/usr/libexec/getty 3wire" vt100 on secure 20140306: Support for libwrap (TCP wrappers) in rpcbind was disabled by default to improve performance. To re-enable it, if needed, run rpcbind with command line option -W. 20140226: Switched back to the GPL dtc compiler due to updates in the upstream dts files not being supported by the BSDL dtc compiler. You will need to rebuild your kernel toolchain to pick up the new compiler. Core dumps may result while building dtb files during a kernel build if you fail to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. 20140216: Clang and llvm have been upgraded to 3.4 release. 20140216: The nve(4) driver has been removed. Please use the nfe(4) driver for NVIDIA nForce MCP Ethernet adapters instead. 20140212: An ABI incompatibility crept into the libc++ 3.4 import in r261283. This could cause certain C++ applications using shared libraries built against the previous version of libc++ to crash. The incompatibility has now been fixed, but any C++ applications or shared libraries built between r261283 and r261801 should be recompiled. 20140204: OpenSSH will now ignore errors caused by kernel lacking of Capsicum capability mode support. Please note that enabling the feature in kernel is still highly recommended. 20140131: OpenSSH is now built with sandbox support, and will use sandbox as the default privilege separation method. This requires Capsicum capability mode support in kernel. 20140128: The libelf and libdwarf libraries have been updated to newer versions from upstream. Shared library version numbers for these two libraries were bumped. Any ports or binaries requiring these two libraries should be recompiled. __FreeBSD_version is bumped to 1100006. 20140110: If a Makefile in a tests/ directory was auto-generating a Kyuafile instead of providing an explicit one, this would prevent such Makefile from providing its own Kyuafile in the future during NO_CLEAN builds. This has been fixed in the Makefiles but manual intervention is needed to clean an objdir if you use NO_CLEAN: # find /usr/obj -name Kyuafile | xargs rm -f 20131213: The behavior of gss_pseudo_random() for the krb5 mechanism has changed, for applications requesting a longer random string than produced by the underlying enctype's pseudo-random() function. In particular, the random string produced from a session key of enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will be different at the 17th octet and later, after this change. The counter used in the PRF+ construction is now encoded as a big-endian integer in accordance with RFC 4402. __FreeBSD_version is bumped to 1100004. 20131108: The WITHOUT_ATF build knob has been removed and its functionality has been subsumed into the more generic WITHOUT_TESTS. If you were using the former to disable the build of the ATF libraries, you should change your settings to use the latter. 20131025: The default version of mtree is nmtree which is obtained from NetBSD. The output is generally the same, but may vary slightly. If you found you need identical output adding "-F freebsd9" to the command line should do the trick. For the time being, the old mtree is available as fmtree. 20131014: libbsdyml has been renamed to libyaml and moved to /usr/lib/private. This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 1.1.4_8 and verify bsdyml not linked in, before running "make delete-old-libs": # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean or # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 20131010: The stable/10 branch has been created in subversion from head revision r256279. COMMON ITEMS: General Notes ------------- Avoid using make -j when upgrading. While generally safe, there are sometimes problems using -j to upgrade. If your upgrade fails with -j, please try again without -j. From time to time in the past there have been problems using -j with buildworld and/or installworld. This is especially true when upgrading between "distant" versions (eg one that cross a major release boundary or several minor releases, or when several months have passed on the -current branch). Sometimes, obscure build problems are the result of environment poisoning. This can happen because the make utility reads its environment when searching for values for global variables. To run your build attempts in an "environmental clean room", prefix all make commands with 'env -i '. See the env(1) manual page for more details. When upgrading from one major version to another it is generally best to upgrade to the latest code in the currently installed branch first, then do an upgrade to the new branch. This is the best-tested upgrade path, and has the highest probability of being successful. Please try this approach if you encounter problems with a major version upgrade. Since the stable 4.x branch point, one has generally been able to upgrade from anywhere in the most recent stable branch to head / current (or even the last couple of stable branches). See the top of this file when there's an exception. When upgrading a live system, having a root shell around before installing anything can help undo problems. Not having a root shell around can lead to problems if pam has changed too much from your starting point to allow continued authentication after the upgrade. This file should be read as a log of events. When a later event changes information of a prior event, the prior event should not be deleted. Instead, a pointer to the entry with the new information should be placed in the old entry. Readers of this file should also sanity check older entries before relying on them blindly. Authors of new entries should write them with this in mind. ZFS notes --------- When upgrading the boot ZFS pool to a new version, always follow these two steps: 1.) recompile and reinstall the ZFS boot loader and boot block (this is part of "make buildworld" and "make installworld") 2.) update the ZFS boot block on your boot drive The following example updates the ZFS boot block on the first partition (freebsd-boot) of a GPT partitioned drive ada0: "gpart bootcode -p /boot/gptzfsboot -i 1 ada0" Non-boot pools do not need these updates. To build a kernel ----------------- If you are updating from a prior version of FreeBSD (even one just a few days old), you should follow this procedure. It is the most failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, make kernel-toolchain make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE To test a kernel once --------------------- If you just want to boot a kernel once (because you are not sure if it works, or if you want to boot a known bad kernel to provide debugging information) run make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel nextboot -k testkernel To rebuild everything and install it on the current system. ----------------------------------------------------------- # Note: sometimes if you are running current you gotta do more than # is listed here if you are upgrading from a really old current. make buildworld make buildkernel KERNCONF=YOUR_KERNEL_HERE make installkernel KERNCONF=YOUR_KERNEL_HERE [1] [3] mergemaster -Fp [5] make installworld mergemaster -Fi [4] make delete-old [6] To cross-install current onto a separate partition -------------------------------------------------- # In this approach we use a separate partition to hold # current's root, 'usr', and 'var' directories. A partition # holding "/", "/usr" and "/var" should be about 2GB in # size. make buildworld make buildkernel KERNCONF=YOUR_KERNEL_HERE make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd To upgrade in-place from stable to current ---------------------------------------------- make buildworld [9] make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] make installkernel KERNCONF=YOUR_KERNEL_HERE [1] [3] mergemaster -Fp [5] make installworld mergemaster -Fi [4] make delete-old [6] Make sure that you've read the UPDATING file to understand the tweaks to various things you need. At this point in the life cycle of current, things change often and you are on your own to cope. The defaults can also change, so please read ALL of the UPDATING entries. Also, if you are tracking -current, you must be subscribed to freebsd-current@freebsd.org. Make sure that before you update your sources that you have read and understood all the recent messages there. If in doubt, please track -stable which has much fewer pitfalls. [1] If you have third party modules, such as vmware, you should disable them at this point so they don't crash your system on reboot. [3] From the bootblocks, boot -s, and then do fsck -p mount -u / mount -a cd src adjkerntz -i # if CMOS is wall time Also, when doing a major release upgrade, it is required that you boot into single user mode to do the installworld. [4] Note: This step is non-optional. Failure to do this step can result in a significant reduction in the functionality of the system. Attempting to do it by hand is not recommended and those that pursue this avenue should read this file carefully, as well as the archives of freebsd-current and freebsd-hackers mailing lists for potential gotchas. The -U option is also useful to consider. See mergemaster(8) for more information. [5] Usually this step is a no-op. However, from time to time you may need to do this if you get unknown user in the following step. It never hurts to do it all the time. You may need to install a new mergemaster (cd src/usr.sbin/mergemaster && make install) after the buildworld before this step if you last updated from current before 20130425 or from -stable before 20130430. [6] This only deletes old files and directories. Old libraries can be deleted by "make delete-old-libs", but you have to make sure that no program is using those libraries anymore. [8] In order to have a kernel that can run the 4.x binaries needed to do an installworld, you must include the COMPAT_FREEBSD4 option in your kernel. Failure to do so may leave you with a system that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is required to run the 5.x binaries on more recent kernels. And so on for COMPAT_FREEBSD6 and COMPAT_FREEBSD7. Make sure that you merge any new devices from GENERIC since the last time you updated your kernel config file. [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the "?=" instead of the "=" assignment operator, so that buildworld can override the CPUTYPE if it needs to. MAKEOBJDIRPREFIX must be defined in an environment variable, and not on the command line, or in /etc/make.conf. buildworld will warn if it is improperly defined. FORMAT: This file contains a list, in reverse chronological order, of major breakages in tracking -current. It is not guaranteed to be a complete list of such breakages, and only contains entries since September 23, 2011. If you need to see UPDATING entries from before that date, you will need to fetch an UPDATING file from an older FreeBSD release. Copyright information: Copyright 1998-2009 M. Warner Losh. All Rights Reserved. Redistribution, publication, translation and use, with or without modification, in full or in part, in any form or format of this document are permitted without further permission from the author. THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``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 WARNER LOSH 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. Contact Warner Losh if you have any questions about your use of this document. $FreeBSD$ Index: head/share/man/man4/nxge.4 =================================================================== --- head/share/man/man4/nxge.4 (revision 333387) +++ head/share/man/man4/nxge.4 (nonexistent) @@ -1,102 +0,0 @@ -.\" Copyright (c) 2007, Neterion Inc -.\" 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 as -.\" the first lines of this file unmodified. -.\" 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 ``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 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 May 3, 2018 -.Dt NXGE 4 -.Os -.Sh NAME -.Nm nxge -.Nd "Neterion Xframe 10GbE Server/Storage adapter driver" -.Sh SYNOPSIS -To compile this driver into the kernel, -place the following line in your -kernel configuration file: -.Bd -ragged -offset indent -.Cd "device nxge" -.Ed -.Pp -Alternatively, to load the driver as a -module at boot time, place the following line in -.Xr loader.conf 5 : -.Bd -literal -offset indent -if_nxge_load="YES" -.Ed -.Sh DEPRECATION NOTICE -The -.Nm -driver is not present in -.Fx 12.0 -and later. -.Sh DESCRIPTION -The -.Nm -driver provides support for Neterion Xframe-I and Xframe-II adapters. -The driver supports TCP Segmentation Offload (TSO/LSO), -Large Receive Offload (LRO), Jumbo Frames (5 buffer mode), -Header Separation (Rx 2 buffer mode), VLAN, and Promiscuous mode. -.Pp -For general information and support, please visit the Neterion support page -.Pa http://www.neterion.com/support/support.html . -.Pp -Support for Jumbo Frames is provided via the interface MTU setting. -Selecting an MTU larger than 1500 bytes with the -.Xr ifconfig 8 -utility configures the adapter to transmit and receive Jumbo Frames. -Xframe adapters support Jumbo Frames up to 9600 bytes. -.Pp -For Jumbo Frames, the driver will try to allocate physically contiguous buffers. -Failures to do so may degrade the performance. -To resolve such problems, please visit -.Pa http://www.neterion.com -where additional information and a kernel patch can be found. -.Pp -For more information on configuring this device, see -.Xr ifconfig 8 . -.Sh HARDWARE -The -.Nm -driver supports Neterion Xframe 10 Gigabit Ethernet adapters listed in -.Pa http://www.neterion.com/how/pricing.html . -.Sh SUPPORT -For troubleshooting tips and FAQs, please visit -.Pa http://trac.neterion.com/cgi-bin/trac.cgi/wiki/TitleIndex?anonymous . -.Pp -For any issues please send an email to -.Aq Mt support@neterion.com . -.Sh SEE ALSO -.Xr arp 4 , -.Xr netintro 4 , -.Xr ifconfig 8 -.Sh HISTORY -The -.Nm -device driver first appeared in -.Fx 7.0 . -.Sh AUTHORS -The -.Nm -driver was written by -.An Neterion Aq Mt support@neterion.com . Property changes on: head/share/man/man4/nxge.4 ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/share/man/man4/Makefile =================================================================== --- head/share/man/man4/Makefile (revision 333387) +++ head/share/man/man4/Makefile (revision 333388) @@ -1,1025 +1,1021 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 # $FreeBSD$ .include PACKAGE=runtime-manuals MAN= aac.4 \ aacraid.4 \ acpi.4 \ ${_acpi_asus.4} \ ${_acpi_asus_wmi.4} \ ${_acpi_dock.4} \ ${_acpi_fujitsu.4} \ ${_acpi_hp.4} \ ${_acpi_ibm.4} \ ${_acpi_panasonic.4} \ ${_acpi_rapidstart.4} \ ${_acpi_sony.4} \ acpi_thermal.4 \ ${_acpi_toshiba.4} \ acpi_video.4 \ ${_acpi_wmi.4} \ ada.4 \ adm6996fc.4 \ adv.4 \ adw.4 \ ae.4 \ ${_aesni.4} \ age.4 \ agp.4 \ aha.4 \ ahc.4 \ ahci.4 \ ahd.4 \ ${_aibs.4} \ aio.4 \ alc.4 \ ale.4 \ alpm.4 \ altera_atse.4 \ altera_avgen.4 \ altera_jtag_uart.4 \ altera_sdcard.4 \ altq.4 \ amdpm.4 \ ${_amdsbwd.4} \ ${_amdsmb.4} \ ${_amdsmn.4} \ ${_amdtemp.4} \ ${_bxe.4} \ amr.4 \ an.4 \ ${_aout.4} \ ${_apic.4} \ arcmsr.4 \ ${_armv8crypto.4} \ ${_asmc.4} \ ata.4 \ ath.4 \ ath_ahb.4 \ ath_hal.4 \ ath_pci.4 \ atkbd.4 \ atkbdc.4 \ atp.4 \ ${_atf_test_case.4} \ ${_atrtc.4} \ ${_attimer.4} \ audit.4 \ auditpipe.4 \ aue.4 \ ${_aw_gpio.4} \ ${_aw_mmc.4} \ ${_aw_rtc.4} \ ${_aw_sid.4} \ ${_aw_syscon.4} \ axe.4 \ axge.4 \ bce.4 \ ${_bcm283x_pwm.4} \ bcma.4 \ bfe.4 \ bge.4 \ ${_bhyve.4} \ bhnd.4 \ bhnd_chipc.4 \ bhnd_pmu.4 \ bhndb.4 \ bhndb_pci.4 \ bktr.4 \ blackhole.4 \ bnxt.4 \ bpf.4 \ bridge.4 \ bt.4 \ bwi.4 \ bwn.4 \ ${_bytgpio.4} \ ${_chvgpio.4} \ capsicum.4 \ cardbus.4 \ carp.4 \ cas.4 \ cc_cdg.4 \ cc_chd.4 \ cc_cubic.4 \ cc_dctcp.4 \ cc_hd.4 \ cc_htcp.4 \ cc_newreno.4 \ cc_vegas.4 \ ${_ccd.4} \ ccr.4 \ cd.4 \ cdce.4 \ cfi.4 \ cfumass.4 \ ch.4 \ chromebook_platform.4 \ ciss.4 \ cloudabi.4 \ cmx.4 \ ${_coretemp.4} \ ${_cpuctl.4} \ cpufreq.4 \ crypto.4 \ ctl.4 \ cue.4 \ cxgb.4 \ cxgbe.4 \ cxgbev.4 \ cy.4 \ cyapa.4 \ da.4 \ dc.4 \ dcons.4 \ dcons_crom.4 \ ddb.4 \ de.4 \ devctl.4 \ disc.4 \ divert.4 \ ${_dpms.4} \ dpt.4 \ ds1307.4 \ ds3231.4 \ ${_dtrace_provs} \ dummynet.4 \ ed.4 \ edsc.4 \ ehci.4 \ em.4 \ ena.4 \ enc.4 \ epair.4 \ esp.4 \ est.4 \ et.4 \ etherswitch.4 \ eventtimers.4 \ exca.4 \ e6060sw.4 \ fd.4 \ fdc.4 \ fdt.4 \ fdt_pinctrl.4 \ fdtbus.4 \ ffclock.4 \ filemon.4 \ firewire.4 \ full.4 \ fwe.4 \ fwip.4 \ fwohci.4 \ fxp.4 \ gbde.4 \ gdb.4 \ gem.4 \ geom.4 \ geom_fox.4 \ geom_linux_lvm.4 \ geom_map.4 \ geom_uzip.4 \ gif.4 \ gpio.4 \ gpioiic.4 \ gpioled.4 \ gre.4 \ h_ertt.4 \ hifn.4 \ hme.4 \ hpet.4 \ ${_hpt27xx.4} \ ${_hptiop.4} \ ${_hptmv.4} \ ${_hptnr.4} \ ${_hptrr.4} \ ${_hv_kvp.4} \ ${_hv_netvsc.4} \ ${_hv_storvsc.4} \ ${_hv_utils.4} \ ${_hv_vmbus.4} \ ${_hv_vss.4} \ hwpmc.4 \ ichsmb.4 \ ${_ichwd.4} \ icmp.4 \ icmp6.4 \ ida.4 \ if_ipsec.4 \ ifmib.4 \ ig4.4 \ igmp.4 \ iic.4 \ iicbb.4 \ iicbus.4 \ iicsmb.4 \ iir.4 \ ${_imcsmb.4} \ inet.4 \ inet6.4 \ intpm.4 \ intro.4 \ ${_io.4} \ ${_ioat.4} \ ip.4 \ ip6.4 \ ipfirewall.4 \ ipheth.4 \ ${_ipmi.4} \ ips.4 \ ipsec.4 \ ipw.4 \ ipwfw.4 \ isci.4 \ isl.4 \ ismt.4 \ isp.4 \ ispfw.4 \ iwi.4 \ iwifw.4 \ iwm.4 \ iwmfw.4 \ iwn.4 \ iwnfw.4 \ ixgbe.4 \ ixl.4 \ ixlv.4 \ jedec_dimm.4 \ jedec_ts.4 \ jme.4 \ joy.4 \ kbdmux.4 \ keyboard.4 \ kld.4 \ ksyms.4 \ ksz8995ma.4 \ ktr.4 \ kue.4 \ lagg.4 \ le.4 \ led.4 \ lge.4 \ ${_linux.4} \ liquidio.4 \ lm75.4 \ lo.4 \ lp.4 \ lpbb.4 \ lpt.4 \ mac.4 \ mac_biba.4 \ mac_bsdextended.4 \ mac_ifoff.4 \ mac_lomac.4 \ mac_mls.4 \ mac_none.4 \ mac_partition.4 \ mac_portacl.4 \ mac_seeotheruids.4 \ mac_stub.4 \ mac_test.4 \ malo.4 \ md.4 \ mdio.4 \ me.4 \ mem.4 \ meteor.4 \ mfi.4 \ miibus.4 \ mk48txx.4 \ mld.4 \ mlx.4 \ mlx4en.4 \ mlx5en.4 \ mly.4 \ mmc.4 \ mmcsd.4 \ mn.4 \ mod_cc.4 \ mos.4 \ mouse.4 \ mpr.4 \ mps.4 \ mpt.4 \ mrsas.4 \ msk.4 \ mtio.4 \ multicast.4 \ mvs.4 \ mwl.4 \ mwlfw.4 \ mxge.4 \ my.4 \ nand.4 \ nandsim.4 \ ncr.4 \ ncv.4 \ ${_ndis.4} \ net80211.4 \ netdump.4 \ netfpga10g_nf10bmac.4 \ netgraph.4 \ netintro.4 \ netmap.4 \ ${_nfe.4} \ ${_nfsmb.4} \ ng_async.4 \ ngatmbase.4 \ ng_atmllc.4 \ ng_bpf.4 \ ng_bridge.4 \ ng_bt3c.4 \ ng_btsocket.4 \ ng_car.4 \ ng_ccatm.4 \ ng_cisco.4 \ ng_deflate.4 \ ng_device.4 \ nge.4 \ ng_echo.4 \ ng_eiface.4 \ ng_etf.4 \ ng_ether.4 \ ng_ether_echo.4 \ ng_frame_relay.4 \ ng_gif.4 \ ng_gif_demux.4 \ ng_h4.4 \ ng_hci.4 \ ng_hole.4 \ ng_hub.4 \ ng_iface.4 \ ng_ipfw.4 \ ng_ip_input.4 \ ng_ksocket.4 \ ng_l2cap.4 \ ng_l2tp.4 \ ng_lmi.4 \ ng_mppc.4 \ ng_nat.4 \ ng_netflow.4 \ ng_one2many.4 \ ng_patch.4 \ ng_ppp.4 \ ng_pppoe.4 \ ng_pptpgre.4 \ ng_pred1.4 \ ng_rfc1490.4 \ ng_socket.4 \ ng_source.4 \ ng_split.4 \ ng_sppp.4 \ ng_sscfu.4 \ ng_sscop.4 \ ng_tag.4 \ ng_tcpmss.4 \ ng_tee.4 \ ng_tty.4 \ ng_ubt.4 \ ng_UI.4 \ ng_uni.4 \ ng_vjc.4 \ ng_vlan.4 \ nmdm.4 \ nsp.4 \ ${_ntb.4} \ ${_ntb_hw_intel.4} \ ${_ntb_hw_plx.4} \ ${_ntb_transport.4} \ ${_nda.4} \ ${_if_ntb.4} \ null.4 \ numa.4 \ ${_nvd.4} \ ${_nvme.4} \ ${_nvram.4} \ ${_nvram2env.4} \ - ${_nxge.4} \ oce.4 \ ocs_fc.4\ ohci.4 \ orm.4 \ ow.4 \ ow_temp.4 \ owc.4 \ ${_padlock.4} \ pass.4 \ pccard.4 \ pccbb.4 \ pcf.4 \ pci.4 \ pcib.4 \ pcic.4 \ pcm.4 \ pcn.4 \ ${_pf.4} \ ${_pflog.4} \ ${_pfsync.4} \ pim.4 \ pms.4 \ polling.4 \ ppbus.4 \ ppc.4 \ ppi.4 \ procdesc.4 \ proto.4 \ psm.4 \ pst.4 \ pt.4 \ pts.4 \ pty.4 \ puc.4 \ ${_qlxge.4} \ ${_qlxgb.4} \ ${_qlxgbe.4} \ ${_qlnxe.4} \ ral.4 \ random.4 \ rc.4 \ rctl.4 \ re.4 \ rgephy.4 \ rights.4 \ ${_rk_gpio.4} \ ${_rk_grf.4} \ ${_rk_pinctrl.4} \ rl.4 \ rndtest.4 \ route.4 \ rp.4 \ rtwn.4 \ rtwnfw.4 \ rtwn_pci.4 \ rue.4 \ sa.4 \ safe.4 \ sbp.4 \ sbp_targ.4 \ scc.4 \ sched_4bsd.4 \ sched_ule.4 \ screen.4 \ scsi.4 \ sctp.4 \ sdhci.4 \ sem.4 \ send.4 \ ses.4 \ sf.4 \ ${_sfxge.4} \ sge.4 \ siba.4 \ siftr.4 \ siis.4 \ simplebus.4 \ sio.4 \ sis.4 \ sk.4 \ ${_smartpqi.4} \ smb.4 \ smbus.4 \ smp.4 \ smsc.4 \ sn.4 \ snd_ad1816.4 \ snd_als4000.4 \ snd_atiixp.4 \ snd_cmi.4 \ snd_cs4281.4 \ snd_csa.4 \ snd_ds1.4 \ snd_emu10k1.4 \ snd_emu10kx.4 \ snd_envy24.4 \ snd_envy24ht.4 \ snd_es137x.4 \ snd_ess.4 \ snd_fm801.4 \ snd_gusc.4 \ snd_hda.4 \ snd_hdspe.4 \ snd_ich.4 \ snd_maestro3.4 \ snd_maestro.4 \ snd_mss.4 \ snd_neomagic.4 \ snd_sbc.4 \ snd_solo.4 \ snd_spicds.4 \ snd_t4dwave.4 \ snd_uaudio.4 \ snd_via8233.4 \ snd_via82c686.4 \ snd_vibes.4 \ snp.4 \ ${_spkr.4} \ splash.4 \ sppp.4 \ ste.4 \ stf.4 \ stg.4 \ stge.4 \ sym.4 \ syncache.4 \ syncer.4 \ syscons.4 \ sysmouse.4 \ tap.4 \ targ.4 \ tcp.4 \ tdfx.4 \ terasic_mtl.4 \ termios.4 \ textdump.4 \ ti.4 \ timecounters.4 \ tl.4 \ ${_tpm.4} \ trm.4 \ tty.4 \ tun.4 \ twa.4 \ twe.4 \ tws.4 \ tx.4 \ txp.4 \ udp.4 \ udplite.4 \ ure.4 \ vale.4 \ vga.4 \ vge.4 \ viapm.4 \ ${_viawd.4} \ ${_virtio.4} \ ${_virtio_balloon.4} \ ${_virtio_blk.4} \ ${_virtio_console.4} \ ${_virtio_random.4} \ ${_virtio_scsi.4} \ vkbd.4 \ vlan.4 \ vxlan.4 \ ${_vmm.4} \ ${_vmx.4} \ vpo.4 \ vr.4 \ vt.4 \ vte.4 \ ${_vtnet.4} \ ${_vxge.4} \ watchdog.4 \ wb.4 \ ${_wbwd.4} \ wi.4 \ witness.4 \ wlan.4 \ wlan_acl.4 \ wlan_amrr.4 \ wlan_ccmp.4 \ wlan_tkip.4 \ wlan_wep.4 \ wlan_xauth.4 \ wmt.4 \ ${_wpi.4} \ wsp.4 \ xe.4 \ ${_xen.4} \ xhci.4 \ xl.4 \ ${_xnb.4} \ xpt.4 \ zero.4 MLINKS= ae.4 if_ae.4 MLINKS+=age.4 if_age.4 MLINKS+=agp.4 agpgart.4 MLINKS+=alc.4 if_alc.4 MLINKS+=ale.4 if_ale.4 MLINKS+=altera_atse.4 atse.4 MLINKS+=altera_sdcard.4 altera_sdcardc.4 MLINKS+=altq.4 ALTQ.4 MLINKS+=ath.4 if_ath.4 MLINKS+=ath_pci.4 if_ath_pci.4 MLINKS+=an.4 if_an.4 MLINKS+=aue.4 if_aue.4 MLINKS+=axe.4 if_axe.4 MLINKS+=bce.4 if_bce.4 MLINKS+=bfe.4 if_bfe.4 MLINKS+=bge.4 if_bge.4 MLINKS+=bktr.4 brooktree.4 MLINKS+=bnxt.4 if_bnxt.4 MLINKS+=bridge.4 if_bridge.4 MLINKS+=bwi.4 if_bwi.4 MLINKS+=bwn.4 if_bwn.4 MLINKS+=${_bxe.4} ${_if_bxe.4} MLINKS+=cas.4 if_cas.4 MLINKS+=cdce.4 if_cdce.4 MLINKS+=cfi.4 cfid.4 MLINKS+=cloudabi.4 cloudabi32.4 \ cloudabi.4 cloudabi64.4 MLINKS+=crypto.4 cryptodev.4 MLINKS+=cue.4 if_cue.4 MLINKS+=cxgb.4 if_cxgb.4 MLINKS+=cxgbe.4 if_cxgbe.4 \ cxgbe.4 vcxgbe.4 \ cxgbe.4 if_vcxgbe.4 \ cxgbe.4 cxl.4 \ cxgbe.4 if_cxl.4 \ cxgbe.4 vcxl.4 \ cxgbe.4 if_vcxl.4 \ cxgbe.4 cc.4 \ cxgbe.4 if_cc.4 \ cxgbe.4 vcc.4 \ cxgbe.4 if_vcc.4 MLINKS+=cxgbev.4 if_cxgbev.4 \ cxgbev.4 cxlv.4 \ cxgbev.4 if_cxlv.4 \ cxgbev.4 ccv.4 \ cxgbev.4 if_ccv.4 MLINKS+=dc.4 if_dc.4 MLINKS+=de.4 if_de.4 MLINKS+=disc.4 if_disc.4 MLINKS+=ed.4 if_ed.4 MLINKS+=edsc.4 if_edsc.4 MLINKS+=em.4 if_em.4 MLINKS+=enc.4 if_enc.4 MLINKS+=epair.4 if_epair.4 MLINKS+=et.4 if_et.4 MLINKS+=fd.4 stderr.4 \ fd.4 stdin.4 \ fd.4 stdout.4 MLINKS+=fdt.4 FDT.4 MLINKS+=firewire.4 ieee1394.4 MLINKS+=fwe.4 if_fwe.4 MLINKS+=fwip.4 if_fwip.4 MLINKS+=fxp.4 if_fxp.4 MLINKS+=gem.4 if_gem.4 MLINKS+=geom.4 GEOM.4 MLINKS+=gif.4 if_gif.4 MLINKS+=gpio.4 gpiobus.4 MLINKS+=gre.4 if_gre.4 MLINKS+=hme.4 if_hme.4 MLINKS+=hpet.4 acpi_hpet.4 MLINKS+=${_hptrr.4} ${_rr232x.4} MLINKS+=${_attimer.4} ${_i8254.4} MLINKS+=ip.4 rawip.4 MLINKS+=ipfirewall.4 ipaccounting.4 \ ipfirewall.4 ipacct.4 \ ipfirewall.4 ipfw.4 MLINKS+=ipheth.4 if_ipheth.4 MLINKS+=ipw.4 if_ipw.4 MLINKS+=iwi.4 if_iwi.4 MLINKS+=iwm.4 if_iwm.4 MLINKS+=iwn.4 if_iwn.4 MLINKS+=ixgbe.4 ix.4 MLINKS+=ixgbe.4 if_ix.4 MLINKS+=ixgbe.4 if_ixgbe.4 MLINKS+=ixl.4 if_ixl.4 MLINKS+=ixlv.4 if_ixlv.4 MLINKS+=jme.4 if_jme.4 MLINKS+=kue.4 if_kue.4 MLINKS+=lagg.4 trunk.4 MLINKS+=lagg.4 if_lagg.4 MLINKS+=le.4 if_le.4 MLINKS+=lge.4 if_lge.4 MLINKS+=lo.4 loop.4 MLINKS+=lp.4 plip.4 MLINKS+=malo.4 if_malo.4 MLINKS+=md.4 vn.4 MLINKS+=mem.4 kmem.4 MLINKS+=mfi.4 mfi_linux.4 \ mfi.4 mfip.4 MLINKS+=mlx5en.4 mce.4 MLINKS+=mn.4 if_mn.4 MLINKS+=mos.4 if_mos.4 MLINKS+=msk.4 if_msk.4 MLINKS+=mwl.4 if_mwl.4 MLINKS+=mxge.4 if_mxge.4 MLINKS+=my.4 if_my.4 MLINKS+=${_ndis.4} ${_if_ndis.4} MLINKS+=netfpga10g_nf10bmac.4 if_nf10bmac.4 MLINKS+=netintro.4 net.4 \ netintro.4 networking.4 MLINKS+=${_nfe.4} ${_if_nfe.4} MLINKS+=nge.4 if_nge.4 -MLINKS+=${_nxge.4} ${_if_nxge.4} MLINKS+=ow.4 onewire.4 MLINKS+=pccbb.4 cbb.4 MLINKS+=pcm.4 snd.4 \ pcm.4 sound.4 MLINKS+=pcn.4 if_pcn.4 MLINKS+=pms.4 pmspcv.4 MLINKS+=ral.4 if_ral.4 MLINKS+=re.4 if_re.4 MLINKS+=rl.4 if_rl.4 MLINKS+=rtwn_pci.4 if_rtwn_pci.4 MLINKS+=rue.4 if_rue.4 MLINKS+=scsi.4 CAM.4 \ scsi.4 cam.4 \ scsi.4 scbus.4 \ scsi.4 SCSI.4 MLINKS+=sf.4 if_sf.4 MLINKS+=sge.4 if_sge.4 MLINKS+=sis.4 if_sis.4 MLINKS+=sk.4 if_sk.4 MLINKS+=smp.4 SMP.4 MLINKS+=smsc.4 if_smsc.4 MLINKS+=sn.4 if_sn.4 MLINKS+=snd_envy24.4 snd_ak452x.4 MLINKS+=snd_sbc.4 snd_sb16.4 \ snd_sbc.4 snd_sb8.4 MLINKS+=${_spkr.4} ${_speaker.4} MLINKS+=splash.4 screensaver.4 MLINKS+=ste.4 if_ste.4 MLINKS+=stf.4 if_stf.4 MLINKS+=stge.4 if_stge.4 MLINKS+=syncache.4 syncookies.4 MLINKS+=syscons.4 sc.4 MLINKS+=tap.4 if_tap.4 MLINKS+=tdfx.4 tdfx_linux.4 MLINKS+=ti.4 if_ti.4 MLINKS+=tl.4 if_tl.4 MLINKS+=tun.4 if_tun.4 MLINKS+=tx.4 if_tx.4 MLINKS+=txp.4 if_txp.4 MLINKS+=ure.4 if_ure.4 MLINKS+=vge.4 if_vge.4 MLINKS+=vlan.4 if_vlan.4 MLINKS+=vxlan.4 if_vxlan.4 MLINKS+=${_vmx.4} ${_if_vmx.4} MLINKS+=vpo.4 imm.4 MLINKS+=vr.4 if_vr.4 MLINKS+=vte.4 if_vte.4 MLINKS+=${_vtnet.4} ${_if_vtnet.4} MLINKS+=${_vxge.4} ${_if_vxge.4} MLINKS+=watchdog.4 SW_WATCHDOG.4 MLINKS+=wb.4 if_wb.4 MLINKS+=wi.4 if_wi.4 MLINKS+=${_wpi.4} ${_if_wpi.4} MLINKS+=xe.4 if_xe.4 MLINKS+=xl.4 if_xl.4 .if ${MACHINE_CPUARCH} == "aarch64" _armv8crypto.4= armv8crypto.4 _rk_gpio.4= rk_gpio.4 _rk_grf.4= rk_grf.4 _rk_pinctrl.4= rk_pinctrl.4 .endif .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64" _aw_gpio.4= aw_gpio.4 _aw_mmc.4= aw_mmc.4 _aw_rtc.4= aw_rtc.4 _aw_sid.4= aw_sid.4 _aw_syscon.4= aw_syscon.4 .endif .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" _acpi_asus.4= acpi_asus.4 _acpi_asus_wmi.4= acpi_asus_wmi.4 _acpi_dock.4= acpi_dock.4 _acpi_fujitsu.4=acpi_fujitsu.4 _acpi_hp.4= acpi_hp.4 _acpi_ibm.4= acpi_ibm.4 _acpi_panasonic.4=acpi_panasonic.4 _acpi_rapidstart.4=acpi_rapidstart.4 _acpi_sony.4= acpi_sony.4 _acpi_toshiba.4=acpi_toshiba.4 _acpi_wmi.4= acpi_wmi.4 _aesni.4= aesni.4 _aout.4= aout.4 _apic.4= apic.4 _atrtc.4= atrtc.4 _attimer.4= attimer.4 _aibs.4= aibs.4 _amdsbwd.4= amdsbwd.4 _amdsmb.4= amdsmb.4 _amdsmn.4= amdsmn.4 _amdtemp.4= amdtemp.4 _asmc.4= asmc.4 _bxe.4= bxe.4 _bytgpio.4= bytgpio.4 _chvgpio.4= chvgpio.4 _coretemp.4= coretemp.4 _cpuctl.4= cpuctl.4 _dpms.4= dpms.4 _hpt27xx.4= hpt27xx.4 _hptiop.4= hptiop.4 _hptmv.4= hptmv.4 _hptnr.4= hptnr.4 _hptrr.4= hptrr.4 _hv_kvp.4= hv_kvp.4 _hv_netvsc.4= hv_netvsc.4 _hv_storvsc.4= hv_storvsc.4 _hv_utils.4= hv_utils.4 _hv_vmbus.4= hv_vmbus.4 _hv_vss.4= hv_vss.4 _i8254.4= i8254.4 _ichwd.4= ichwd.4 _if_bxe.4= if_bxe.4 _if_ndis.4= if_ndis.4 _if_nfe.4= if_nfe.4 -_if_nxge.4= if_nxge.4 _if_urtw.4= if_urtw.4 _if_vmx.4= if_vmx.4 _if_vtnet.4= if_vtnet.4 _if_vxge.4= if_vxge.4 _if_wpi.4= if_wpi.4 _imcsmb.4= imcsmb.4 _ipmi.4= ipmi.4 _io.4= io.4 _linux.4= linux.4 _nda.4= nda.4 _ndis.4= ndis.4 _nfe.4= nfe.4 _nfsmb.4= nfsmb.4 _nvd.4= nvd.4 _nvme.4= nvme.4 _nvram.4= nvram.4 -_nxge.4= nxge.4 _virtio.4= virtio.4 _virtio_balloon.4=virtio_balloon.4 _virtio_blk.4= virtio_blk.4 _virtio_console.4=virtio_console.4 _virtio_random.4= virtio_random.4 _virtio_scsi.4= virtio_scsi.4 _vmx.4= vmx.4 _vtnet.4= vtnet.4 _vxge.4= vxge.4 _padlock.4= padlock.4 _rr232x.4= rr232x.4 _speaker.4= speaker.4 _spkr.4= spkr.4 _tpm.4= tpm.4 _urtw.4= urtw.4 _viawd.4= viawd.4 _wbwd.4= wbwd.4 _wpi.4= wpi.4 _xen.4= xen.4 _xnb.4= xnb.4 .endif .if ${MACHINE_CPUARCH} == "amd64" _if_ntb.4= if_ntb.4 _ioat.4= ioat.4 _ntb.4= ntb.4 _ntb_hw_intel.4= ntb_hw_intel.4 _ntb_hw_plx.4= ntb_hw_plx.4 _ntb_transport.4=ntb_transport.4 _qlxge.4= qlxge.4 _qlxgb.4= qlxgb.4 _qlxgbe.4= qlxgbe.4 _qlnxe.4= qlnxe.4 _sfxge.4= sfxge.4 _smartpqi.4= smartpqi.4 MLINKS+=qlxge.4 if_qlxge.4 MLINKS+=qlxgb.4 if_qlxgb.4 MLINKS+=qlxgbe.4 if_qlxgbe.4 MLINKS+=qlnxe.4 if_qlnxe.4 MLINKS+=sfxge.4 if_sfxge.4 .if ${MK_BHYVE} != "no" _bhyve.4= bhyve.4 _vmm.4= vmm.4 .endif .endif .if ${MACHINE_CPUARCH} == "mips" _nvram2env.4= nvram2env.4 .endif .if ${MACHINE_ARCH:Marmv[67]*} != "" || ${MACHINE_CPUARCH} == "aarch64" _bcm283x_pwm.4= bcm283x_pwm.4 .endif .if exists(${.CURDIR}/man4.${MACHINE_CPUARCH}) SUBDIR= man4.${MACHINE_CPUARCH} .endif .if ${MK_BLUETOOTH} != "no" MAN+= ng_bluetooth.4 .endif .if ${MK_CCD} != "no" _ccd.4= ccd.4 .endif .if ${MK_CDDL} != "no" _dtrace_provs= dtrace_io.4 \ dtrace_ip.4 \ dtrace_lockstat.4 \ dtrace_proc.4 \ dtrace_sched.4 \ dtrace_tcp.4 \ dtrace_udp.4 .endif .if ${MK_ISCSI} != "no" MAN+= cfiscsi.4 MAN+= iscsi.4 MAN+= iscsi_initiator.4 MAN+= iser.4 .endif .if ${MK_OFED} != "no" MAN+= mlx4ib.4 MAN+= mlx5ib.4 .endif .if ${MK_MLX5TOOL} != "no" MAN+= mlx5io.4 .endif .if ${MK_TESTS} != "no" ATF= ${SRCTOP}/contrib/atf .PATH: ${ATF}/doc _atf_test_case.4= atf-test-case.4 .endif .if ${MK_PF} != "no" _pf.4= pf.4 _pflog.4= pflog.4 _pfsync.4= pfsync.4 .endif .if ${MK_USB} != "no" MAN+= \ otus.4 \ otusfw.4 \ rsu.4 \ rsufw.4 \ rtwn_usb.4 \ rum.4 \ run.4 \ runfw.4 \ u3g.4 \ uark.4 \ uart.4 \ uath.4 \ ubsa.4 \ ubsec.4 \ ubser.4 \ ubtbcmfw.4 \ uchcom.4 \ ucom.4 \ ucycom.4 \ udav.4 \ udbp.4 \ udl.4 \ uep.4 \ ufm.4 \ ufoma.4 \ uftdi.4 \ ugen.4 \ ugold.4 \ uhci.4 \ uhid.4 \ uhso.4 \ uipaq.4 \ ukbd.4 \ uled.4 \ ulpt.4 \ umass.4 \ umcs.4 \ umct.4 \ umodem.4 \ umoscom.4 \ ums.4 \ unix.4 \ upgt.4 \ uplcom.4 \ ural.4 \ urio.4 \ urndis.4 \ ${_urtw.4} \ usb.4 \ usb_quirk.4 \ usb_template.4 \ usfs.4 \ uslcom.4 \ uvisor.4 \ uvscom.4 \ zyd.4 MLINKS+=otus.4 if_otus.4 MLINKS+=rsu.4 if_rsu.4 MLINKS+=rtwn_usb.4 if_rtwn_usb.4 MLINKS+=rum.4 if_rum.4 MLINKS+=run.4 if_run.4 MLINKS+=u3g.4 u3gstub.4 MLINKS+=uath.4 if_uath.4 MLINKS+=udav.4 if_udav.4 MLINKS+=upgt.4 if_upgt.4 MLINKS+=ural.4 if_ural.4 MLINKS+=urndis.4 if_urndis.4 MLINKS+=${_urtw.4} ${_if_urtw.4} MLINKS+=zyd.4 if_zyd.4 .endif .include Index: head/share/man/man4/vlan.4 =================================================================== --- head/share/man/man4/vlan.4 (revision 333387) +++ head/share/man/man4/vlan.4 (revision 333388) @@ -1,205 +1,204 @@ .\" .\" Copyright (c) 2001 Yar Tikhiy .\" 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$ .\" -.Dd August 28, 2017 +.Dd May 8, 2018 .Dt VLAN 4 .Os .Sh NAME .Nm vlan .Nd "IEEE 802.1Q VLAN network interface" .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent .Cd "device vlan" .Ed .Pp Alternatively, to load the driver as a module at boot time, place the following line in .Xr loader.conf 5 : .Bd -literal -offset indent if_vlan_load="YES" .Ed .Sh DESCRIPTION The .Nm driver demultiplexes frames tagged according to the IEEE 802.1Q standard into logical .Nm network interfaces, which allows routing/bridging between multiple VLANs through a single switch trunk port. .Pp Each .Nm interface is created at runtime using interface cloning. This is most easily done with the .Xr ifconfig 8 .Cm create command or using the .Va cloned_interfaces variable in .Xr rc.conf 5 . .Pp To function, a .Nm interface must be assigned a parent interface and numeric VLAN tag using .Xr ifconfig 8 . A single parent can be assigned to multiple .Nm interfaces provided they have different tags. The parent interface is likely to be an Ethernet card connected to a properly configured switch port. The VLAN tag should match one of those set up in the switched network. .Pp .Nm initially assumes the same minimum length for tagged and untagged frames. This mode is selected by setting the .Xr sysctl 8 variable .Va net.link.vlan.soft_pad to 0 .Pq default . However, there are network devices that fail to adjust frame length when it falls below the allowed minimum due to untagging. Such devices should be able to interoperate with .Nm after changing the value of .Va net.link.vlan.soft_pad to 1. In the latter mode, .Nm will pad short frames before tagging them so that their length is not less than the minimum value after untagging by the non-compliant devices. .Sh HARDWARE The .Nm driver supports efficient operation over parent interfaces that can provide help in processing VLANs. Such interfaces are automatically recognized by their capabilities. Depending on the level of sophistication found in a physical interface, it may do full VLAN processing or just be able to receive and transmit long frames (up to 1522 bytes including an Ethernet header and FCS). The capabilities may be user-controlled by the respective parameters to .Xr ifconfig 8 , .Cm vlanhwtag , and .Cm vlanmtu . However, a physical interface is not obliged to react to them: It may have either capability enabled permanently without a way to turn it off. The whole issue is very specific to a particular device and its driver. .Pp At present, these devices are capable of full VLAN processing in hardware: .Xr ae 4 , .Xr age 4 , .Xr alc 4 , .Xr ale 4 , .Xr bce 4 , .Xr bge 4 , .Xr bxe 4 , .Xr cxgb 4 , .Xr cxgbe 4 , .Xr em 4 , .Xr igb 4 , .Xr ixgbe 4 , .Xr jme 4 , .Xr liquidio 4 , .Xr msk 4 , .Xr mxge 4 , -.Xr nxge 4 , .Xr nge 4 , .Xr re 4 , .Xr sge 4 , .Xr stge 4 , .Xr ti 4 , .Xr txp 4 , and .Xr vge 4 . .Pp Other Ethernet interfaces can run VLANs using software emulation in the .Nm driver. However, some lack the capability of transmitting and receiving long frames. Assigning such an interface as the parent to .Nm will result in a reduced MTU on the corresponding .Nm interfaces. In the modern Internet, this is likely to cause .Xr tcp 4 connectivity problems due to massive, inadequate .Xr icmp 4 filtering that breaks the Path MTU Discovery mechanism. .Pp These interfaces natively support long frames for .Nm : .Xr axe 4 , .Xr bfe 4 , .Xr cas 4 , .Xr dc 4 , .Xr et 4 , .Xr fwe 4 , .Xr fxp 4 , .Xr gem 4 , .Xr hme 4 , .Xr le 4 , .Xr nfe 4 , .Xr rl 4 , .Xr sf 4 , .Xr sis 4 , .Xr sk 4 , .Xr ste 4 , .Xr tl 4 , .Xr tx 4 , .Xr vr 4 , .Xr vte 4 , and .Xr xl 4 . .Pp The .Nm driver automatically recognizes devices that natively support long frames for .Nm use and calculates the appropriate frame MTU based on the capabilities of the parent interface. Some other interfaces not listed above may handle long frames, but they do not advertise this ability. The MTU setting on .Nm can be corrected manually if used in conjunction with such a parent interface. .Sh SEE ALSO .Xr ifconfig 8 , .Xr sysctl 8 Index: head/sys/conf/NOTES =================================================================== --- head/sys/conf/NOTES (revision 333387) +++ head/sys/conf/NOTES (revision 333388) @@ -1,3020 +1,3019 @@ # $FreeBSD$ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # # Lines that begin with 'device', 'options', 'machine', 'ident', 'maxusers', # 'makeoptions', 'hints', etc. go into the kernel configuration that you # run config(8) with. # # Lines that begin with 'hint.' are NOT for config(8), they go into your # hints file. See /boot/device.hints and/or the 'hints' config(8) directive. # # Please use ``make LINT'' to create an old-style LINT file if you want to # do kernel test-builds. # # This file contains machine independent kernel configuration notes. For # machine dependent notes, look in /sys//conf/NOTES. # # # NOTES conventions and style guide: # # Large block comments should begin and end with a line containing only a # comment character. # # To describe a particular object, a block comment (if it exists) should # come first. Next should come device, options, and hints lines in that # order. All device and option lines must be described by a comment that # doesn't just expand the device or option name. Use only a concise # comment on the same line if possible. Very detailed descriptions of # devices and subsystems belong in man pages. # # A space followed by a tab separates 'options' from an option name. Two # spaces followed by a tab separate 'device' from a device name. Comments # after an option or device should use one space after the comment character. # To comment out a negative option that disables code and thus should not be # enabled for LINT builds, precede 'options' with "#!". # # # This is the ``identification'' of the kernel. Usually this should # be the same as the name of your kernel. # ident LINT # # The `maxusers' parameter controls the static sizing of a number of # internal system tables by a formula defined in subr_param.c. # Omitting this parameter or setting it to 0 will cause the system to # auto-size based on physical memory. # maxusers 10 # To statically compile in device wiring instead of /boot/device.hints #hints "LINT.hints" # Default places to look for devices. # Use the following to compile in values accessible to the kernel # through getenv() (or kenv(1) in userland). The format of the file # is 'variable=value', see kenv(1) # #env "LINT.env" # # The `makeoptions' parameter allows variables to be passed to the # generated Makefile in the build area. # # CONF_CFLAGS gives some extra compiler flags that are added to ${CFLAGS} # after most other flags. Here we use it to inhibit use of non-optimal # gcc built-in functions (e.g., memcmp). # # DEBUG happens to be magic. # The following is equivalent to 'config -g KERNELNAME' and creates # 'kernel.debug' compiled with -g debugging as well as a normal # 'kernel'. Use 'make install.debug' to install the debug kernel # but that isn't normally necessary as the debug symbols are not loaded # by the kernel and are not useful there anyway. # # KERNEL can be overridden so that you can change the default name of your # kernel. # # MODULES_OVERRIDE can be used to limit modules built to a specific list. # makeoptions CONF_CFLAGS=-fno-builtin #Don't allow use of memcmp, etc. #makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols #makeoptions KERNEL=foo #Build kernel "foo" and install "/foo" # Only build ext2fs module plus those parts of the sound system I need. #makeoptions MODULES_OVERRIDE="ext2fs sound/sound sound/driver/maestro3" makeoptions DESTDIR=/tmp # # FreeBSD processes are subject to certain limits to their consumption # of system resources. See getrlimit(2) for more details. Each # resource limit has two values, a "soft" limit and a "hard" limit. # The soft limits can be modified during normal system operation, but # the hard limits are set at boot time. Their default values are # in sys//include/vmparam.h. There are two ways to change them: # # 1. Set the values at kernel build time. The options below are one # way to allow that limit to grow to 1GB. They can be increased # further by changing the parameters: # # 2. In /boot/loader.conf, set the tunables kern.maxswzone, # kern.maxbcache, kern.maxtsiz, kern.dfldsiz, kern.maxdsiz, # kern.dflssiz, kern.maxssiz and kern.sgrowsiz. # # The options in /boot/loader.conf override anything in the kernel # configuration file. See the function init_param1 in # sys/kern/subr_param.c for more details. # options MAXDSIZ=(1024UL*1024*1024) options MAXSSIZ=(128UL*1024*1024) options DFLDSIZ=(1024UL*1024*1024) # # BLKDEV_IOSIZE sets the default block size used in user block # device I/O. Note that this value will be overridden by the label # when specifying a block device from a label with a non-0 # partition blocksize. The default is PAGE_SIZE. # options BLKDEV_IOSIZE=8192 # # MAXPHYS and DFLTPHYS # # These are the maximal and safe 'raw' I/O block device access sizes. # Reads and writes will be split into MAXPHYS chunks for known good # devices and DFLTPHYS for the rest. Some applications have better # performance with larger raw I/O access sizes. Note that certain VM # parameters are derived from these values and making them too large # can make an unbootable kernel. # # The defaults are 64K and 128K respectively. options DFLTPHYS=(64*1024) options MAXPHYS=(128*1024) # This allows you to actually store this configuration file into # the kernel binary itself. See config(8) for more details. # options INCLUDE_CONFIG_FILE # Include this file in kernel # # Compile-time defaults for various boot parameters # options BOOTVERBOSE=1 options BOOTHOWTO=RB_MULTIPLE options GEOM_BDE # Disk encryption. options GEOM_BSD # BSD disklabels (obsolete, gone in 12) options GEOM_CACHE # Disk cache. options GEOM_CONCAT # Disk concatenation. options GEOM_ELI # Disk encryption. options GEOM_FOX # Redundant path mitigation (obsolete, gone in 12) options GEOM_GATE # Userland services. options GEOM_JOURNAL # Journaling. options GEOM_LABEL # Providers labelization. options GEOM_LINUX_LVM # Linux LVM2 volumes options GEOM_MAP # Map based partitioning options GEOM_MBR # DOS/MBR partitioning (obsolete, gone in 12) options GEOM_MIRROR # Disk mirroring. options GEOM_MULTIPATH # Disk multipath options GEOM_NOP # Test class. options GEOM_PART_APM # Apple partitioning options GEOM_PART_BSD # BSD disklabel options GEOM_PART_BSD64 # BSD disklabel64 options GEOM_PART_EBR # Extended Boot Records options GEOM_PART_EBR_COMPAT # Backward compatible partition names options GEOM_PART_GPT # GPT partitioning options GEOM_PART_LDM # Logical Disk Manager options GEOM_PART_MBR # MBR partitioning options GEOM_PART_VTOC8 # SMI VTOC8 disk label options GEOM_RAID # Soft RAID functionality. options GEOM_RAID3 # RAID3 functionality. options GEOM_SHSEC # Shared secret. options GEOM_STRIPE # Disk striping. options GEOM_SUNLABEL # Sun/Solaris partitioning (obsolete, gone in 12) options GEOM_UZIP # Read-only compressed disks options GEOM_VINUM # Vinum logical volume manager options GEOM_VIRSTOR # Virtual storage. options GEOM_VOL # Volume names from UFS superblock (obsolete, gone in 12) options GEOM_ZERO # Performance testing helper. # # The root device and filesystem type can be compiled in; # this provides a fallback option if the root device cannot # be correctly guessed by the bootstrap code, or an override if # the RB_DFLTROOT flag (-r) is specified when booting the kernel. # options ROOTDEVNAME=\"ufs:da0s2e\" ##################################################################### # Scheduler options: # # Specifying one of SCHED_4BSD or SCHED_ULE is mandatory. These options # select which scheduler is compiled in. # # SCHED_4BSD is the historical, proven, BSD scheduler. It has a global run # queue and no CPU affinity which makes it suboptimal for SMP. It has very # good interactivity and priority selection. # # SCHED_ULE provides significant performance advantages over 4BSD on many # workloads on SMP machines. It supports cpu-affinity, per-cpu runqueues # and scheduler locks. It also has a stronger notion of interactivity # which leads to better responsiveness even on uniprocessor machines. This # is the default scheduler. # # SCHED_STATS is a debugging option which keeps some stats in the sysctl # tree at 'kern.sched.stats' and is useful for debugging scheduling decisions. # options SCHED_4BSD options SCHED_STATS #options SCHED_ULE ##################################################################### # SMP OPTIONS: # # SMP enables building of a Symmetric MultiProcessor Kernel. # Mandatory: options SMP # Symmetric MultiProcessor Kernel # EARLY_AP_STARTUP releases the Application Processors earlier in the # kernel startup process (before devices are probed) rather than at the # end. This is a temporary option for use during the transition from # late to early AP startup. options EARLY_AP_STARTUP # MAXCPU defines the maximum number of CPUs that can boot in the system. # A default value should be already present, for every architecture. options MAXCPU=32 # NUMA enables use of Non-Uniform Memory Access policies in various kernel # subsystems. options NUMA # MAXMEMDOM defines the maximum number of memory domains that can boot in the # system. A default value should already be defined by every architecture. options MAXMEMDOM=2 # ADAPTIVE_MUTEXES changes the behavior of blocking mutexes to spin # if the thread that currently owns the mutex is executing on another # CPU. This behavior is enabled by default, so this option can be used # to disable it. options NO_ADAPTIVE_MUTEXES # ADAPTIVE_RWLOCKS changes the behavior of reader/writer locks to spin # if the thread that currently owns the rwlock is executing on another # CPU. This behavior is enabled by default, so this option can be used # to disable it. options NO_ADAPTIVE_RWLOCKS # ADAPTIVE_SX changes the behavior of sx locks to spin if the thread that # currently owns the sx lock is executing on another CPU. # This behavior is enabled by default, so this option can be used to # disable it. options NO_ADAPTIVE_SX # MUTEX_NOINLINE forces mutex operations to call functions to perform each # operation rather than inlining the simple cases. This can be used to # shrink the size of the kernel text segment. Note that this behavior is # already implied by the INVARIANT_SUPPORT, INVARIANTS, KTR, LOCK_PROFILING, # and WITNESS options. options MUTEX_NOINLINE # RWLOCK_NOINLINE forces rwlock operations to call functions to perform each # operation rather than inlining the simple cases. This can be used to # shrink the size of the kernel text segment. Note that this behavior is # already implied by the INVARIANT_SUPPORT, INVARIANTS, KTR, LOCK_PROFILING, # and WITNESS options. options RWLOCK_NOINLINE # SX_NOINLINE forces sx lock operations to call functions to perform each # operation rather than inlining the simple cases. This can be used to # shrink the size of the kernel text segment. Note that this behavior is # already implied by the INVARIANT_SUPPORT, INVARIANTS, KTR, LOCK_PROFILING, # and WITNESS options. options SX_NOINLINE # SMP Debugging Options: # # CALLOUT_PROFILING enables rudimentary profiling of the callwheel data # structure used as backend in callout(9). # PREEMPTION allows the threads that are in the kernel to be preempted by # higher priority [interrupt] threads. It helps with interactivity # and allows interrupt threads to run sooner rather than waiting. # WARNING! Only tested on amd64 and i386. # FULL_PREEMPTION instructs the kernel to preempt non-realtime kernel # threads. Its sole use is to expose race conditions and other # bugs during development. Enabling this option will reduce # performance and increase the frequency of kernel panics by # design. If you aren't sure that you need it then you don't. # Relies on the PREEMPTION option. DON'T TURN THIS ON. # SLEEPQUEUE_PROFILING enables rudimentary profiling of the hash table # used to hold active sleep queues as well as sleep wait message # frequency. # TURNSTILE_PROFILING enables rudimentary profiling of the hash table # used to hold active lock queues. # UMTX_PROFILING enables rudimentary profiling of the hash table used # to hold active lock queues. # WITNESS enables the witness code which detects deadlocks and cycles # during locking operations. # WITNESS_KDB causes the witness code to drop into the kernel debugger if # a lock hierarchy violation occurs or if locks are held when going to # sleep. # WITNESS_SKIPSPIN disables the witness checks on spin mutexes. options PREEMPTION options FULL_PREEMPTION options WITNESS options WITNESS_KDB options WITNESS_SKIPSPIN # LOCK_PROFILING - Profiling locks. See LOCK_PROFILING(9) for details. options LOCK_PROFILING # Set the number of buffers and the hash size. The hash size MUST be larger # than the number of buffers. Hash size should be prime. options MPROF_BUFFERS="1536" options MPROF_HASH_SIZE="1543" # Profiling for the callout(9) backend. options CALLOUT_PROFILING # Profiling for internal hash tables. options SLEEPQUEUE_PROFILING options TURNSTILE_PROFILING options UMTX_PROFILING ##################################################################### # COMPATIBILITY OPTIONS # # Implement system calls compatible with 4.3BSD and older versions of # FreeBSD. You probably do NOT want to remove this as much current code # still relies on the 4.3 emulation. Note that some architectures that # are supported by FreeBSD do not include support for certain important # aspects of this compatibility option, namely those related to the # signal delivery mechanism. # options COMPAT_43 # Old tty interface. options COMPAT_43TTY # Note that as a general rule, COMPAT_FREEBSD depends on # COMPAT_FREEBSD, COMPAT_FREEBSD, etc. # Enable FreeBSD4 compatibility syscalls options COMPAT_FREEBSD4 # Enable FreeBSD5 compatibility syscalls options COMPAT_FREEBSD5 # Enable FreeBSD6 compatibility syscalls options COMPAT_FREEBSD6 # Enable FreeBSD7 compatibility syscalls options COMPAT_FREEBSD7 # Enable FreeBSD9 compatibility syscalls options COMPAT_FREEBSD9 # Enable FreeBSD10 compatibility syscalls options COMPAT_FREEBSD10 # Enable FreeBSD11 compatibility syscalls options COMPAT_FREEBSD11 # Enable Linux Kernel Programming Interface options COMPAT_LINUXKPI # # These three options provide support for System V Interface # Definition-style interprocess communication, in the form of shared # memory, semaphores, and message queues, respectively. # options SYSVSHM options SYSVSEM options SYSVMSG ##################################################################### # DEBUGGING OPTIONS # # Compile with kernel debugger related code. # options KDB # # Print a stack trace of the current thread on the console for a panic. # options KDB_TRACE # # Don't enter the debugger for a panic. Intended for unattended operation # where you may want to enter the debugger from the console, but still want # the machine to recover from a panic. # options KDB_UNATTENDED # # Enable the ddb debugger backend. # options DDB # # Print the numerical value of symbols in addition to the symbolic # representation. # options DDB_NUMSYM # # Enable the remote gdb debugger backend. # options GDB # # SYSCTL_DEBUG enables a 'sysctl' debug tree that can be used to dump the # contents of the registered sysctl nodes on the console. It is disabled by # default because it generates excessively verbose console output that can # interfere with serial console operation. # options SYSCTL_DEBUG # # Enable textdump by default, this disables kernel core dumps. # options TEXTDUMP_PREFERRED # # Enable extra debug messages while performing textdumps. # options TEXTDUMP_VERBOSE # # NO_SYSCTL_DESCR omits the sysctl node descriptions to save space in the # resulting kernel. options NO_SYSCTL_DESCR # # MALLOC_DEBUG_MAXZONES enables multiple uma zones for malloc(9) # allocations that are smaller than a page. The purpose is to isolate # different malloc types into hash classes, so that any buffer # overruns or use-after-free will usually only affect memory from # malloc types in that hash class. This is purely a debugging tool; # by varying the hash function and tracking which hash class was # corrupted, the intersection of the hash classes from each instance # will point to a single malloc type that is being misused. At this # point inspection or memguard(9) can be used to catch the offending # code. # options MALLOC_DEBUG_MAXZONES=8 # # DEBUG_MEMGUARD builds and enables memguard(9), a replacement allocator # for the kernel used to detect modify-after-free scenarios. See the # memguard(9) man page for more information on usage. # options DEBUG_MEMGUARD # # DEBUG_REDZONE enables buffer underflows and buffer overflows detection for # malloc(9). # options DEBUG_REDZONE # # EARLY_PRINTF enables support for calling a special printf (eprintf) # very early in the kernel (before cn_init() has been called). This # should only be used for debugging purposes early in boot. Normally, # it is not defined. It is commented out here because this feature # isn't generally available. And the required eputc() isn't defined. # #options EARLY_PRINTF # # KTRACE enables the system-call tracing facility ktrace(2). To be more # SMP-friendly, KTRACE uses a worker thread to process most trace events # asynchronously to the thread generating the event. This requires a # pre-allocated store of objects representing trace events. The # KTRACE_REQUEST_POOL option specifies the initial size of this store. # The size of the pool can be adjusted both at boottime and runtime via # the kern.ktrace_request_pool tunable and sysctl. # options KTRACE #kernel tracing options KTRACE_REQUEST_POOL=101 # # KTR is a kernel tracing facility imported from BSD/OS. It is # enabled with the KTR option. KTR_ENTRIES defines the number of # entries in the circular trace buffer; it may be an arbitrary number. # KTR_BOOT_ENTRIES defines the number of entries during the early boot, # before malloc(9) is functional. # KTR_COMPILE defines the mask of events to compile into the kernel as # defined by the KTR_* constants in . KTR_MASK defines the # initial value of the ktr_mask variable which determines at runtime # what events to trace. KTR_CPUMASK determines which CPU's log # events, with bit X corresponding to CPU X. The layout of the string # passed as KTR_CPUMASK must match a series of bitmasks each of them # separated by the "," character (ie: # KTR_CPUMASK=0xAF,0xFFFFFFFFFFFFFFFF). KTR_VERBOSE enables # dumping of KTR events to the console by default. This functionality # can be toggled via the debug.ktr_verbose sysctl and defaults to off # if KTR_VERBOSE is not defined. See ktr(4) and ktrdump(8) for details. # options KTR options KTR_BOOT_ENTRIES=1024 options KTR_ENTRIES=(128*1024) options KTR_COMPILE=(KTR_ALL) options KTR_MASK=KTR_INTR options KTR_CPUMASK=0x3 options KTR_VERBOSE # # ALQ(9) is a facility for the asynchronous queuing of records from the kernel # to a vnode, and is employed by services such as ktr(4) to produce trace # files based on a kernel event stream. Records are written asynchronously # in a worker thread. # options ALQ options KTR_ALQ # # The INVARIANTS option is used in a number of source files to enable # extra sanity checking of internal structures. This support is not # enabled by default because of the extra time it would take to check # for these conditions, which can only occur as a result of # programming errors. # options INVARIANTS # # The INVARIANT_SUPPORT option makes us compile in support for # verifying some of the internal structures. It is a prerequisite for # 'INVARIANTS', as enabling 'INVARIANTS' will make these functions be # called. The intent is that you can set 'INVARIANTS' for single # source files (by changing the source file or specifying it on the # command line) if you have 'INVARIANT_SUPPORT' enabled. Also, if you # wish to build a kernel module with 'INVARIANTS', then adding # 'INVARIANT_SUPPORT' to your kernel will provide all the necessary # infrastructure without the added overhead. # options INVARIANT_SUPPORT # # The DIAGNOSTIC option is used to enable extra debugging information # from some parts of the kernel. As this makes everything more noisy, # it is disabled by default. # options DIAGNOSTIC # # REGRESSION causes optional kernel interfaces necessary only for regression # testing to be enabled. These interfaces may constitute security risks # when enabled, as they permit processes to easily modify aspects of the # run-time environment to reproduce unlikely or unusual (possibly normally # impossible) scenarios. # options REGRESSION # # This option lets some drivers co-exist that can't co-exist in a running # system. This is used to be able to compile all kernel code in one go for # quality assurance purposes (like this file, which the option takes it name # from.) # options COMPILING_LINT # # STACK enables the stack(9) facility, allowing the capture of kernel stack # for the purpose of procinfo(1), etc. stack(9) will also be compiled in # automatically if DDB(4) is compiled into the kernel. # options STACK # # The NUM_CORE_FILES option specifies the limit for the number of core # files generated by a particular process, when the core file format # specifier includes the %I pattern. Since we only have 1 character for # the core count in the format string, meaning the range will be 0-9, the # maximum value allowed for this option is 10. # This core file limit can be adjusted at runtime via the debug.ncores # sysctl. # options NUM_CORE_FILES=5 # # The TSLOG option enables timestamped logging of events, especially # function entries/exits, in order to track the time spent by the kernel. # In particular, this is useful when investigating the early boot process, # before it is possible to use more sophisticated tools like DTrace. # The TSLOGSIZE option controls the size of the (preallocated, fixed # length) buffer used for storing these events (default: 262144 records). # # For security reasons the TSLOG option should not be enabled on systems # used in production. # options TSLOG options TSLOGSIZE=262144 ##################################################################### # PERFORMANCE MONITORING OPTIONS # # The hwpmc driver that allows the use of in-CPU performance monitoring # counters for performance monitoring. The base kernel needs to be configured # with the 'options' line, while the hwpmc device can be either compiled # in or loaded as a loadable kernel module. # # Additional configuration options may be required on specific architectures, # please see hwpmc(4). device hwpmc # Driver (also a loadable module) options HWPMC_DEBUG options HWPMC_HOOKS # Other necessary kernel hooks ##################################################################### # NETWORKING OPTIONS # # Protocol families # options INET #Internet communications protocols options INET6 #IPv6 communications protocols options RATELIMIT # TX rate limiting support options ROUTETABLES=2 # allocated fibs up to 65536. default is 1. # but that would be a bad idea as they are large. options TCP_OFFLOAD # TCP offload support. # In order to enable IPSEC you MUST also add device crypto to # your kernel configuration options IPSEC #IP security (requires device crypto) # Option IPSEC_SUPPORT does not enable IPsec, but makes it possible to # load it as a kernel module. You still MUST add device crypto to your kernel # configuration. options IPSEC_SUPPORT #options IPSEC_DEBUG #debug for IP security # # SMB/CIFS requester # NETSMB enables support for SMB protocol, it requires LIBMCHAIN and LIBICONV # options. options NETSMB #SMB/CIFS requester # mchain library. It can be either loaded as KLD or compiled into kernel options LIBMCHAIN # libalias library, performing NAT options LIBALIAS # # SCTP is a NEW transport protocol defined by # RFC2960 updated by RFC3309 and RFC3758.. and # soon to have a new base RFC and many many more # extensions. This release supports all the extensions # including many drafts (most about to become RFC's). # It is the reference implementation of SCTP # and is quite well tested. # # Note YOU MUST have both INET and INET6 defined. # You don't have to enable V6, but SCTP is # dual stacked and so far we have not torn apart # the V6 and V4.. since an association can span # both a V6 and V4 address at the SAME time :-) # options SCTP # There are bunches of options: # this one turns on all sorts of # nastily printing that you can # do. It's all controlled by a # bit mask (settable by socket opt and # by sysctl). Including will not cause # logging until you set the bits.. but it # can be quite verbose.. so without this # option we don't do any of the tests for # bits and prints.. which makes the code run # faster.. if you are not debugging don't use. options SCTP_DEBUG # # All that options after that turn on specific types of # logging. You can monitor CWND growth, flight size # and all sorts of things. Go look at the code and # see. I have used this to produce interesting # charts and graphs as well :-> # # I have not yet committed the tools to get and print # the logs, I will do that eventually .. before then # if you want them send me an email rrs@freebsd.org # You basically must have ktr(4) enabled for these # and you then set the sysctl to turn on/off various # logging bits. Use ktrdump(8) to pull the log and run # it through a display program.. and graphs and other # things too. # options SCTP_LOCK_LOGGING options SCTP_MBUF_LOGGING options SCTP_MBCNT_LOGGING options SCTP_PACKET_LOGGING options SCTP_LTRACE_CHUNKS options SCTP_LTRACE_ERRORS # altq(9). Enable the base part of the hooks with the ALTQ option. # Individual disciplines must be built into the base system and can not be # loaded as modules at this point. ALTQ requires a stable TSC so if yours is # broken or changes with CPU throttling then you must also have the ALTQ_NOPCC # option. options ALTQ options ALTQ_CBQ # Class Based Queueing options ALTQ_RED # Random Early Detection options ALTQ_RIO # RED In/Out options ALTQ_CODEL # CoDel Active Queueing options ALTQ_HFSC # Hierarchical Packet Scheduler options ALTQ_FAIRQ # Fair Packet Scheduler options ALTQ_CDNR # Traffic conditioner options ALTQ_PRIQ # Priority Queueing options ALTQ_NOPCC # Required if the TSC is unusable options ALTQ_DEBUG # netgraph(4). Enable the base netgraph code with the NETGRAPH option. # Individual node types can be enabled with the corresponding option # listed below; however, this is not strictly necessary as netgraph # will automatically load the corresponding KLD module if the node type # is not already compiled into the kernel. Each type below has a # corresponding man page, e.g., ng_async(8). options NETGRAPH # netgraph(4) system options NETGRAPH_DEBUG # enable extra debugging, this # affects netgraph(4) and nodes # Node types options NETGRAPH_ASYNC options NETGRAPH_ATMLLC options NETGRAPH_ATM_ATMPIF options NETGRAPH_BLUETOOTH # ng_bluetooth(4) options NETGRAPH_BLUETOOTH_BT3C # ng_bt3c(4) options NETGRAPH_BLUETOOTH_HCI # ng_hci(4) options NETGRAPH_BLUETOOTH_L2CAP # ng_l2cap(4) options NETGRAPH_BLUETOOTH_SOCKET # ng_btsocket(4) options NETGRAPH_BLUETOOTH_UBT # ng_ubt(4) options NETGRAPH_BLUETOOTH_UBTBCMFW # ubtbcmfw(4) options NETGRAPH_BPF options NETGRAPH_BRIDGE options NETGRAPH_CAR options NETGRAPH_CISCO options NETGRAPH_DEFLATE options NETGRAPH_DEVICE options NETGRAPH_ECHO options NETGRAPH_EIFACE options NETGRAPH_ETHER options NETGRAPH_FRAME_RELAY options NETGRAPH_GIF options NETGRAPH_GIF_DEMUX options NETGRAPH_HOLE options NETGRAPH_IFACE options NETGRAPH_IP_INPUT options NETGRAPH_IPFW options NETGRAPH_KSOCKET options NETGRAPH_L2TP options NETGRAPH_LMI options NETGRAPH_MPPC_COMPRESSION options NETGRAPH_MPPC_ENCRYPTION options NETGRAPH_NETFLOW options NETGRAPH_NAT options NETGRAPH_ONE2MANY options NETGRAPH_PATCH options NETGRAPH_PIPE options NETGRAPH_PPP options NETGRAPH_PPPOE options NETGRAPH_PPTPGRE options NETGRAPH_PRED1 options NETGRAPH_RFC1490 options NETGRAPH_SOCKET options NETGRAPH_SPLIT options NETGRAPH_SPPP options NETGRAPH_TAG options NETGRAPH_TCPMSS options NETGRAPH_TEE options NETGRAPH_UI options NETGRAPH_VJC options NETGRAPH_VLAN # NgATM - Netgraph ATM options NGATM_ATM options NGATM_ATMBASE options NGATM_SSCOP options NGATM_SSCFU options NGATM_UNI options NGATM_CCATM device mn # Munich32x/Falc54 Nx64kbit/sec cards. # Network stack virtualization. options VIMAGE options VNET_DEBUG # debug for VIMAGE # # Network interfaces: # The `loop' device is MANDATORY when networking is enabled. device loop # The `ether' device provides generic code to handle # Ethernets; it is MANDATORY when an Ethernet device driver is # configured. device ether # The `vlan' device implements the VLAN tagging of Ethernet frames # according to IEEE 802.1Q. device vlan # The `vxlan' device implements the VXLAN encapsulation of Ethernet # frames in UDP packets according to RFC7348. device vxlan # The `wlan' device provides generic code to support 802.11 # drivers, including host AP mode; it is MANDATORY for the wi, # and ath drivers and will eventually be required by all 802.11 drivers. device wlan options IEEE80211_DEBUG #enable debugging msgs options IEEE80211_AMPDU_AGE #age frames in AMPDU reorder q's options IEEE80211_SUPPORT_MESH #enable 802.11s D3.0 support options IEEE80211_SUPPORT_TDMA #enable TDMA support # The `wlan_wep', `wlan_tkip', and `wlan_ccmp' devices provide # support for WEP, TKIP, and AES-CCMP crypto protocols optionally # used with 802.11 devices that depend on the `wlan' module. device wlan_wep device wlan_ccmp device wlan_tkip # The `wlan_xauth' device provides support for external (i.e. user-mode) # authenticators for use with 802.11 drivers that use the `wlan' # module and support 802.1x and/or WPA security protocols. device wlan_xauth # The `wlan_acl' device provides a MAC-based access control mechanism # for use with 802.11 drivers operating in ap mode and using the # `wlan' module. # The 'wlan_amrr' device provides AMRR transmit rate control algorithm device wlan_acl device wlan_amrr # The `sppp' device serves a similar role for certain types # of synchronous PPP links (like `cx', `ar'). device sppp # The `bpf' device enables the Berkeley Packet Filter. Be # aware of the legal and administrative consequences of enabling this # option. DHCP requires bpf. device bpf # The `netmap' device implements memory-mapped access to network # devices from userspace, enabling wire-speed packet capture and # generation even at 10Gbit/s. Requires support in the device # driver. Supported drivers are ixgbe, e1000, re. device netmap # The `disc' device implements a minimal network interface, # which throws away all packets sent and never receives any. It is # included for testing and benchmarking purposes. device disc # The `epair' device implements a virtual back-to-back connected Ethernet # like interface pair. device epair # The `edsc' device implements a minimal Ethernet interface, # which discards all packets sent and receives none. device edsc # The `tap' device is a pty-like virtual Ethernet interface device tap # The `tun' device implements (user-)ppp and nos-tun(8) device tun # The `gif' device implements IPv6 over IP4 tunneling, # IPv4 over IPv6 tunneling, IPv4 over IPv4 tunneling and # IPv6 over IPv6 tunneling. # The `gre' device implements GRE (Generic Routing Encapsulation) tunneling, # as specified in the RFC 2784 and RFC 2890. # The `me' device implements Minimal Encapsulation within IPv4 as # specified in the RFC 2004. # The XBONEHACK option allows the same pair of addresses to be configured on # multiple gif interfaces. device gif device gre device me options XBONEHACK # The `stf' device implements 6to4 encapsulation. device stf # The pf packet filter consists of three devices: # The `pf' device provides /dev/pf and the firewall code itself. # The `pflog' device provides the pflog0 interface which logs packets. # The `pfsync' device provides the pfsync0 interface used for # synchronization of firewall state tables (over the net). device pf device pflog device pfsync # Bridge interface. device if_bridge # Common Address Redundancy Protocol. See carp(4) for more details. device carp # IPsec interface. device enc # Link aggregation interface. device lagg # # Internet family options: # # MROUTING enables the kernel multicast packet forwarder, which works # with mrouted and XORP. # # IPFIREWALL enables support for IP firewall construction, in # conjunction with the `ipfw' program. IPFIREWALL_VERBOSE sends # logged packets to the system logger. IPFIREWALL_VERBOSE_LIMIT # limits the number of times a matching entry can be logged. # # WARNING: IPFIREWALL defaults to a policy of "deny ip from any to any" # and if you do not add other rules during startup to allow access, # YOU WILL LOCK YOURSELF OUT. It is suggested that you set firewall_type=open # in /etc/rc.conf when first enabling this feature, then refining the # firewall rules in /etc/rc.firewall after you've tested that the new kernel # feature works properly. # # IPFIREWALL_DEFAULT_TO_ACCEPT causes the default rule (at boot) to # allow everything. Use with care, if a cracker can crash your # firewall machine, they can get to your protected machines. However, # if you are using it as an as-needed filter for specific problems as # they arise, then this may be for you. Changing the default to 'allow' # means that you won't get stuck if the kernel and /sbin/ipfw binary get # out of sync. # # IPDIVERT enables the divert IP sockets, used by ``ipfw divert''. It # depends on IPFIREWALL if compiled into the kernel. # # IPFIREWALL_NAT adds support for in kernel nat in ipfw, and it requires # LIBALIAS. # # IPFIREWALL_NAT64 adds support for in kernel NAT64 in ipfw. # # IPFIREWALL_NPTV6 adds support for in kernel NPTv6 in ipfw. # # IPFIREWALL_PMOD adds support for protocols modification module. Currently # it supports only TCP MSS modification. # # IPSTEALTH enables code to support stealth forwarding (i.e., forwarding # packets without touching the TTL). This can be useful to hide firewalls # from traceroute and similar tools. # # PF_DEFAULT_TO_DROP causes the default pf(4) rule to deny everything. # # TCPDEBUG enables code which keeps traces of the TCP state machine # for sockets with the SO_DEBUG option set, which can then be examined # using the trpt(8) utility. # # TCPPCAP enables code which keeps the last n packets sent and received # on a TCP socket. # # TCP_BLACKBOX enables enhanced TCP event logging. # # TCP_HHOOK enables the hhook(9) framework hooks for the TCP stack. # # RADIX_MPATH provides support for equal-cost multi-path routing. # options MROUTING # Multicast routing options IPFIREWALL #firewall options IPFIREWALL_VERBOSE #enable logging to syslogd(8) options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default options IPFIREWALL_NAT #ipfw kernel nat support options IPFIREWALL_NAT64 #ipfw kernel NAT64 support options IPFIREWALL_NPTV6 #ipfw kernel IPv6 NPT support options IPDIVERT #divert sockets options IPFILTER #ipfilter support options IPFILTER_LOG #ipfilter logging options IPFILTER_LOOKUP #ipfilter pools options IPFILTER_DEFAULT_BLOCK #block all packets by default options IPSTEALTH #support for stealth forwarding options PF_DEFAULT_TO_DROP #drop everything by default options TCPDEBUG options TCPPCAP options TCP_BLACKBOX options TCP_HHOOK options RADIX_MPATH # The MBUF_STRESS_TEST option enables options which create # various random failures / extreme cases related to mbuf # functions. See mbuf(9) for a list of available test cases. # MBUF_PROFILING enables code to profile the mbuf chains # exiting the system (via participating interfaces) and # return a logarithmic histogram of monitored parameters # (e.g. packet size, wasted space, number of mbufs in chain). options MBUF_STRESS_TEST options MBUF_PROFILING # Statically link in accept filters options ACCEPT_FILTER_DATA options ACCEPT_FILTER_DNS options ACCEPT_FILTER_HTTP # TCP_SIGNATURE adds support for RFC 2385 (TCP-MD5) digests. These are # carried in TCP option 19. This option is commonly used to protect # TCP sessions (e.g. BGP) where IPSEC is not available nor desirable. # This is enabled on a per-socket basis using the TCP_MD5SIG socket option. # This requires the use of 'device crypto' and either 'options IPSEC' or # 'options IPSEC_SUPPORT'. options TCP_SIGNATURE #include support for RFC 2385 # DUMMYNET enables the "dummynet" bandwidth limiter. You need IPFIREWALL # as well. See dummynet(4) and ipfw(8) for more info. When you run # DUMMYNET it is advisable to also have at least "options HZ=1000" to achieve # a smooth scheduling of the traffic. options DUMMYNET # The NETDUMP option enables netdump(4) client support in the kernel. # This allows a panicking kernel to transmit a kernel dump to a remote host. options NETDUMP ##################################################################### # FILESYSTEM OPTIONS # # Only the root filesystem needs to be statically compiled or preloaded # as module; everything else will be automatically loaded at mount # time. Some people still prefer to statically compile other # filesystems as well. # # NB: The UNION filesystem was known to be buggy in the past. It is now # being actively maintained, although there are still some issues being # resolved. # # One of these is mandatory: options FFS #Fast filesystem options NFSCL #Network File System client # The rest are optional: options AUTOFS #Automounter filesystem options CD9660 #ISO 9660 filesystem options FDESCFS #File descriptor filesystem options FUSE #FUSE support module options MSDOSFS #MS DOS File System (FAT, FAT32) options NFSLOCKD #Network Lock Manager options NFSD #Network Filesystem Server options KGSSAPI #Kernel GSSAPI implementation options NULLFS #NULL filesystem options PROCFS #Process filesystem (requires PSEUDOFS) options PSEUDOFS #Pseudo-filesystem framework options PSEUDOFS_TRACE #Debugging support for PSEUDOFS options SMBFS #SMB/CIFS filesystem options TMPFS #Efficient memory filesystem options UDF #Universal Disk Format options UNIONFS #Union filesystem # The xFS_ROOT options REQUIRE the associated ``options xFS'' options NFS_ROOT #NFS usable as root device # Soft updates is a technique for improving filesystem speed and # making abrupt shutdown less risky. # options SOFTUPDATES # Extended attributes allow additional data to be associated with files, # and is used for ACLs, Capabilities, and MAC labels. # See src/sys/ufs/ufs/README.extattr for more information. options UFS_EXTATTR options UFS_EXTATTR_AUTOSTART # Access Control List support for UFS filesystems. The current ACL # implementation requires extended attribute support, UFS_EXTATTR, # for the underlying filesystem. # See src/sys/ufs/ufs/README.acls for more information. options UFS_ACL # Directory hashing improves the speed of operations on very large # directories at the expense of some memory. options UFS_DIRHASH # Gjournal-based UFS journaling support. options UFS_GJOURNAL # Make space in the kernel for a root filesystem on a md device. # Define to the number of kilobytes to reserve for the filesystem. # This is now optional. # If not defined, the root filesystem passed in as the MFS_IMAGE makeoption # will be automatically embedded in the kernel during linking. Its exact size # will be consumed within the kernel. # If defined, the old way of embedding the filesystem in the kernel will be # used. That is to say MD_ROOT_SIZE KB will be allocated in the kernel and # later, the filesystem image passed in as the MFS_IMAGE makeoption will be # dd'd into the reserved space if it fits. options MD_ROOT_SIZE=10 # Make the md device a potential root device, either with preloaded # images of type mfs_root or md_root. options MD_ROOT # Write-protect the md root device so that it may not be mounted writeable. options MD_ROOT_READONLY # Disk quotas are supported when this option is enabled. options QUOTA #enable disk quotas # If you are running a machine just as a fileserver for PC and MAC # users, using SAMBA, you may consider setting this option # and keeping all those users' directories on a filesystem that is # mounted with the suiddir option. This gives new files the same # ownership as the directory (similar to group). It's a security hole # if you let these users run programs, so confine it to file-servers # (but it'll save you lots of headaches in those cases). Root owned # directories are exempt and X bits are cleared. The suid bit must be # set on the directory as well; see chmod(1). PC owners can't see/set # ownerships so they keep getting their toes trodden on. This saves # you all the support calls as the filesystem it's used on will act as # they expect: "It's my dir so it must be my file". # options SUIDDIR # NFS options: options NFS_MINATTRTIMO=3 # VREG attrib cache timeout in sec options NFS_MAXATTRTIMO=60 options NFS_MINDIRATTRTIMO=30 # VDIR attrib cache timeout in sec options NFS_MAXDIRATTRTIMO=60 options NFS_DEBUG # Enable NFS Debugging # # Add support for the EXT2FS filesystem of Linux fame. Be a bit # careful with this - the ext2fs code has a tendency to lag behind # changes and not be exercised very much, so mounting read/write could # be dangerous (and even mounting read only could result in panics.) # options EXT2FS # Cryptographically secure random number generator; /dev/random device random # The system memory devices; /dev/mem, /dev/kmem device mem # The kernel symbol table device; /dev/ksyms device ksyms # Optional character code conversion support with LIBICONV. # Each option requires their base file system and LIBICONV. options CD9660_ICONV options MSDOSFS_ICONV options UDF_ICONV ##################################################################### # POSIX P1003.1B # Real time extensions added in the 1993 POSIX # _KPOSIX_PRIORITY_SCHEDULING: Build in _POSIX_PRIORITY_SCHEDULING options _KPOSIX_PRIORITY_SCHEDULING # p1003_1b_semaphores are very experimental, # user should be ready to assist in debugging if problems arise. options P1003_1B_SEMAPHORES # POSIX message queue options P1003_1B_MQUEUE ##################################################################### # SECURITY POLICY PARAMETERS # Support for BSM audit options AUDIT # Support for Mandatory Access Control (MAC): options MAC options MAC_BIBA options MAC_BSDEXTENDED options MAC_IFOFF options MAC_LOMAC options MAC_MLS options MAC_NONE options MAC_PARTITION options MAC_PORTACL options MAC_SEEOTHERUIDS options MAC_STUB options MAC_TEST # Support for Capsicum options CAPABILITIES # fine-grained rights on file descriptors options CAPABILITY_MODE # sandboxes with no global namespace access ##################################################################### # CLOCK OPTIONS # The granularity of operation is controlled by the kernel option HZ whose # default value (1000 on most architectures) means a granularity of 1ms # (1s/HZ). Historically, the default was 100, but finer granularity is # required for DUMMYNET and other systems on modern hardware. There are # reasonable arguments that HZ should, in fact, be 100 still; consider, # that reducing the granularity too much might cause excessive overhead in # clock interrupt processing, potentially causing ticks to be missed and thus # actually reducing the accuracy of operation. options HZ=100 # Enable support for the kernel PLL to use an external PPS signal, # under supervision of [x]ntpd(8) # More info in ntpd documentation: http://www.eecis.udel.edu/~ntp options PPS_SYNC # Enable support for generic feed-forward clocks in the kernel. # The feed-forward clock support is an alternative to the feedback oriented # ntpd/system clock approach, and is to be used with a feed-forward # synchronization algorithm such as the RADclock: # More info here: http://www.synclab.org/radclock options FFCLOCK ##################################################################### # SCSI DEVICES # SCSI DEVICE CONFIGURATION # The SCSI subsystem consists of the `base' SCSI code, a number of # high-level SCSI device `type' drivers, and the low-level host-adapter # device drivers. The host adapters are listed in the ISA and PCI # device configuration sections below. # # It is possible to wire down your SCSI devices so that a given bus, # target, and LUN always come on line as the same device unit. In # earlier versions the unit numbers were assigned in the order that # the devices were probed on the SCSI bus. This means that if you # removed a disk drive, you may have had to rewrite your /etc/fstab # file, and also that you had to be careful when adding a new disk # as it may have been probed earlier and moved your device configuration # around. (See also option GEOM_VOL for a different solution to this # problem.) # This old behavior is maintained as the default behavior. The unit # assignment begins with the first non-wired down unit for a device # type. For example, if you wire a disk as "da3" then the first # non-wired disk will be assigned da4. # The syntax for wiring down devices is: hint.scbus.0.at="ahc0" hint.scbus.1.at="ahc1" hint.scbus.1.bus="0" hint.scbus.3.at="ahc2" hint.scbus.3.bus="0" hint.scbus.2.at="ahc2" hint.scbus.2.bus="1" hint.da.0.at="scbus0" hint.da.0.target="0" hint.da.0.unit="0" hint.da.1.at="scbus3" hint.da.1.target="1" hint.da.2.at="scbus2" hint.da.2.target="3" hint.sa.1.at="scbus1" hint.sa.1.target="6" # "units" (SCSI logical unit number) that are not specified are # treated as if specified as LUN 0. # All SCSI devices allocate as many units as are required. # The ch driver drives SCSI Media Changer ("jukebox") devices. # # The da driver drives SCSI Direct Access ("disk") and Optical Media # ("WORM") devices. # # The sa driver drives SCSI Sequential Access ("tape") devices. # # The cd driver drives SCSI Read Only Direct Access ("cd") devices. # # The ses driver drives SCSI Environment Services ("ses") and # SAF-TE ("SCSI Accessible Fault-Tolerant Enclosure") devices. # # The pt driver drives SCSI Processor devices. # # The sg driver provides a passthrough API that is compatible with the # Linux SG driver. It will work in conjunction with the COMPAT_LINUX # option to run linux SG apps. It can also stand on its own and provide # source level API compatibility for porting apps to FreeBSD. # # Target Mode support is provided here but also requires that a SIM # (SCSI Host Adapter Driver) provide support as well. # # The targ driver provides target mode support as a Processor type device. # It exists to give the minimal context necessary to respond to Inquiry # commands. There is a sample user application that shows how the rest # of the command support might be done in /usr/share/examples/scsi_target. # # The targbh driver provides target mode support and exists to respond # to incoming commands that do not otherwise have a logical unit assigned # to them. # # The pass driver provides a passthrough API to access the CAM subsystem. device scbus #base SCSI code device ch #SCSI media changers device da #SCSI direct access devices (aka disks) device sa #SCSI tapes device cd #SCSI CD-ROMs device ses #Enclosure Services (SES and SAF-TE) device pt #SCSI processor device targ #SCSI Target Mode Code device targbh #SCSI Target Mode Blackhole Device device pass #CAM passthrough driver device sg #Linux SCSI passthrough device ctl #CAM Target Layer # CAM OPTIONS: # debugging options: # CAMDEBUG Compile in all possible debugging. # CAM_DEBUG_COMPILE Debug levels to compile in. # CAM_DEBUG_FLAGS Debug levels to enable on boot. # CAM_DEBUG_BUS Limit debugging to the given bus. # CAM_DEBUG_TARGET Limit debugging to the given target. # CAM_DEBUG_LUN Limit debugging to the given lun. # CAM_DEBUG_DELAY Delay in us after printing each debug line. # # CAM_MAX_HIGHPOWER: Maximum number of concurrent high power (start unit) cmds # SCSI_NO_SENSE_STRINGS: When defined disables sense descriptions # SCSI_NO_OP_STRINGS: When defined disables opcode descriptions # SCSI_DELAY: The number of MILLISECONDS to freeze the SIM (scsi adapter) # queue after a bus reset, and the number of milliseconds to # freeze the device queue after a bus device reset. This # can be changed at boot and runtime with the # kern.cam.scsi_delay tunable/sysctl. options CAMDEBUG options CAM_DEBUG_COMPILE=-1 options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_PROBE|CAM_DEBUG_PERIPH) options CAM_DEBUG_BUS=-1 options CAM_DEBUG_TARGET=-1 options CAM_DEBUG_LUN=-1 options CAM_DEBUG_DELAY=1 options CAM_MAX_HIGHPOWER=4 options SCSI_NO_SENSE_STRINGS options SCSI_NO_OP_STRINGS options SCSI_DELAY=5000 # Be pessimistic about Joe SCSI device options CAM_IOSCHED_DYNAMIC options CAM_TEST_FAILURE # Options for the CAM CDROM driver: # CHANGER_MIN_BUSY_SECONDS: Guaranteed minimum time quantum for a changer LUN # CHANGER_MAX_BUSY_SECONDS: Maximum time quantum per changer LUN, only # enforced if there is I/O waiting for another LUN # The compiled in defaults for these variables are 2 and 10 seconds, # respectively. # # These can also be changed on the fly with the following sysctl variables: # kern.cam.cd.changer.min_busy_seconds # kern.cam.cd.changer.max_busy_seconds # options CHANGER_MIN_BUSY_SECONDS=2 options CHANGER_MAX_BUSY_SECONDS=10 # Options for the CAM sequential access driver: # SA_IO_TIMEOUT: Timeout for read/write/wfm operations, in minutes # SA_SPACE_TIMEOUT: Timeout for space operations, in minutes # SA_REWIND_TIMEOUT: Timeout for rewind operations, in minutes # SA_ERASE_TIMEOUT: Timeout for erase operations, in minutes # SA_1FM_AT_EOD: Default to model which only has a default one filemark at EOT. options SA_IO_TIMEOUT=4 options SA_SPACE_TIMEOUT=60 options SA_REWIND_TIMEOUT=(2*60) options SA_ERASE_TIMEOUT=(4*60) options SA_1FM_AT_EOD # Optional timeout for the CAM processor target (pt) device # This is specified in seconds. The default is 60 seconds. options SCSI_PT_DEFAULT_TIMEOUT=60 # Optional enable of doing SES passthrough on other devices (e.g., disks) # # Normally disabled because a lot of newer SCSI disks report themselves # as having SES capabilities, but this can then clot up attempts to build # a topology with the SES device that's on the box these drives are in.... options SES_ENABLE_PASSTHROUGH ##################################################################### # MISCELLANEOUS DEVICES AND OPTIONS device pty #BSD-style compatibility pseudo ttys device nmdm #back-to-back tty devices device md #Memory/malloc disk device snp #Snoop device - to look at pty/vty/etc.. device ccd #Concatenated disk driver device firmware #firmware(9) support # Kernel side iconv library options LIBICONV # Size of the kernel message buffer. Should be N * pagesize. options MSGBUF_SIZE=40960 ##################################################################### # HARDWARE BUS CONFIGURATION # # PCI bus & PCI options: # device pci options PCI_HP # PCI-Express native HotPlug options PCI_IOV # PCI SR-IOV support ##################################################################### # HARDWARE DEVICE CONFIGURATION # For ISA the required hints are listed. # PCI, CardBus, SD/MMC and pccard are self identifying buses, so # no hints are needed. # # Mandatory devices: # # These options are valid for other keyboard drivers as well. options KBD_DISABLE_KEYMAP_LOAD # refuse to load a keymap options KBD_INSTALL_CDEV # install a CDEV entry in /dev device kbdmux # keyboard multiplexer options KBDMUX_DFLT_KEYMAP # specify the built-in keymap makeoptions KBDMUX_DFLT_KEYMAP=it.iso options FB_DEBUG # Frame buffer debugging device splash # Splash screen and screen saver support # Various screen savers. device blank_saver device daemon_saver device dragon_saver device fade_saver device fire_saver device green_saver device logo_saver device rain_saver device snake_saver device star_saver device warp_saver # The syscons console driver (SCO color console compatible). device sc hint.sc.0.at="isa" options MAXCONS=16 # number of virtual consoles options SC_ALT_MOUSE_IMAGE # simplified mouse cursor in text mode options SC_DFLT_FONT # compile font in makeoptions SC_DFLT_FONT=cp850 options SC_DISABLE_KDBKEY # disable `debug' key options SC_DISABLE_REBOOT # disable reboot key sequence options SC_HISTORY_SIZE=200 # number of history buffer lines options SC_MOUSE_CHAR=0x3 # char code for text mode mouse cursor options SC_PIXEL_MODE # add support for the raster text mode # The following options will let you change the default colors of syscons. options SC_NORM_ATTR=(FG_GREEN|BG_BLACK) options SC_NORM_REV_ATTR=(FG_YELLOW|BG_GREEN) options SC_KERNEL_CONS_ATTR=(FG_RED|BG_BLACK) options SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED) # The following options will let you change the default behavior of # cut-n-paste feature options SC_CUT_SPACES2TABS # convert leading spaces into tabs options SC_CUT_SEPCHARS=\"x09\" # set of characters that delimit words # (default is single space - \"x20\") # If you have a two button mouse, you may want to add the following option # to use the right button of the mouse to paste text. options SC_TWOBUTTON_MOUSE # You can selectively disable features in syscons. options SC_NO_CUTPASTE options SC_NO_FONT_LOADING options SC_NO_HISTORY options SC_NO_MODE_CHANGE options SC_NO_SYSMOUSE options SC_NO_SUSPEND_VTYSWITCH # `flags' for sc # 0x80 Put the video card in the VESA 800x600 dots, 16 color mode # 0x100 Probe for a keyboard device periodically if one is not present # Enable experimental features of the syscons terminal emulator (teken). options TEKEN_CONS25 # cons25-style terminal emulation options TEKEN_UTF8 # UTF-8 output handling # The vt video console driver. device vt options VT_ALT_TO_ESC_HACK=1 # Prepend ESC sequence to ALT keys options VT_MAXWINDOWS=16 # Number of virtual consoles options VT_TWOBUTTON_MOUSE # Use right mouse button to paste # The following options set the default framebuffer size. options VT_FB_DEFAULT_HEIGHT=480 options VT_FB_DEFAULT_WIDTH=640 # The following options will let you change the default vt terminal colors. options TERMINAL_NORM_ATTR=(FG_GREEN|BG_BLACK) options TERMINAL_KERN_ATTR=(FG_LIGHTRED|BG_BLACK) # # Optional devices: # # # SCSI host adapters: # # adv: All Narrow SCSI bus AdvanSys controllers. # adw: Second Generation AdvanSys controllers including the ADV940UW. # aha: Adaptec 154x/1535/1640 # ahc: Adaptec 274x/284x/2910/293x/294x/394x/3950x/3960x/398X/4944/ # 19160x/29160x, aic7770/aic78xx # ahd: Adaptec 29320/39320 Controllers. # aic: Adaptec 6260/6360, APA-1460 (PC Card) # bt: Most Buslogic controllers: including BT-445, BT-54x, BT-64x, BT-74x, # BT-75x, BT-946, BT-948, BT-956, BT-958, SDC3211B, SDC3211F, SDC3222F # esp: Emulex ESP, NCR 53C9x and QLogic FAS families based controllers # including the AMD Am53C974 (found on devices such as the Tekram # DC-390(T)) and the Sun ESP and FAS families of controllers # isp: Qlogic ISP 1020, 1040 and 1040B PCI SCSI host adapters, # ISP 1240 Dual Ultra SCSI, ISP 1080 and 1280 (Dual) Ultra2, # ISP 12160 Ultra3 SCSI, # Qlogic ISP 2100 and ISP 2200 1Gb Fibre Channel host adapters. # Qlogic ISP 2300 and ISP 2312 2Gb Fibre Channel host adapters. # Qlogic ISP 2322 and ISP 6322 2Gb Fibre Channel host adapters. # ispfw: Firmware module for Qlogic host adapters # mpt: LSI-Logic MPT/Fusion 53c1020 or 53c1030 Ultra4 # or FC9x9 Fibre Channel host adapters. # ncr: NCR 53C810, 53C825 self-contained SCSI host adapters. # sym: Symbios/Logic 53C8XX family of PCI-SCSI I/O processors: # 53C810, 53C810A, 53C815, 53C825, 53C825A, 53C860, 53C875, # 53C876, 53C885, 53C895, 53C895A, 53C896, 53C897, 53C1510D, # 53C1010-33, 53C1010-66. # trm: Tekram DC395U/UW/F DC315U adapters. # # Note that the order is important in order for Buslogic ISA cards to be # probed correctly. # device bt hint.bt.0.at="isa" hint.bt.0.port="0x330" device adv hint.adv.0.at="isa" device adw device aha hint.aha.0.at="isa" device aic hint.aic.0.at="isa" device ahc device ahd device esp device iscsi_initiator device isp hint.isp.0.disable="1" hint.isp.0.role="3" hint.isp.0.prefer_iomap="1" hint.isp.0.prefer_memmap="1" hint.isp.0.fwload_disable="1" hint.isp.0.ignore_nvram="1" hint.isp.0.fullduplex="1" hint.isp.0.topology="lport" hint.isp.0.topology="nport" hint.isp.0.topology="lport-only" hint.isp.0.topology="nport-only" # we can't get u_int64_t types, nor can we get strings if it's got # a leading 0x, hence this silly dodge. hint.isp.0.portwnn="w50000000aaaa0000" hint.isp.0.nodewnn="w50000000aaaa0001" device ispfw device mpt device ncr device sym device trm # The aic7xxx driver will attempt to use memory mapped I/O for all PCI # controllers that have it configured only if this option is set. Unfortunately, # this doesn't work on some motherboards, which prevents it from being the # default. options AHC_ALLOW_MEMIO # Dump the contents of the ahc controller configuration PROM. options AHC_DUMP_EEPROM # Bitmap of units to enable targetmode operations. options AHC_TMODE_ENABLE # Compile in Aic7xxx Debugging code. options AHC_DEBUG # Aic7xxx driver debugging options. See sys/dev/aic7xxx/aic7xxx.h options AHC_DEBUG_OPTS # Print register bitfields in debug output. Adds ~128k to driver # See ahc(4). options AHC_REG_PRETTY_PRINT # Compile in aic79xx debugging code. options AHD_DEBUG # Aic79xx driver debugging options. Adds ~215k to driver. See ahd(4). options AHD_DEBUG_OPTS=0xFFFFFFFF # Print human-readable register definitions when debugging options AHD_REG_PRETTY_PRINT # Bitmap of units to enable targetmode operations. options AHD_TMODE_ENABLE # The adw driver will attempt to use memory mapped I/O for all PCI # controllers that have it configured only if this option is set. options ADW_ALLOW_MEMIO # Options used in dev/iscsi (Software iSCSI stack) # options ISCSI_INITIATOR_DEBUG=9 # Options used in dev/isp/ (Qlogic SCSI/FC driver). # # ISP_TARGET_MODE - enable target mode operation # options ISP_TARGET_MODE=1 # # ISP_DEFAULT_ROLES - default role # none=0 # target=1 # initiator=2 # both=3 (not supported currently) # # ISP_INTERNAL_TARGET (trivial internal disk target, for testing) # options ISP_DEFAULT_ROLES=0 # Options used in dev/sym/ (Symbios SCSI driver). #options SYM_SETUP_LP_PROBE_MAP #-Low Priority Probe Map (bits) # Allows the ncr to take precedence # 1 (1<<0) -> 810a, 860 # 2 (1<<1) -> 825a, 875, 885, 895 # 4 (1<<2) -> 895a, 896, 1510d #options SYM_SETUP_SCSI_DIFF #-HVD support for 825a, 875, 885 # disabled:0 (default), enabled:1 #options SYM_SETUP_PCI_PARITY #-PCI parity checking # disabled:0, enabled:1 (default) #options SYM_SETUP_MAX_LUN #-Number of LUNs supported # default:8, range:[1..64] # The 'dpt' driver provides support for old DPT controllers (http://www.dpt.com/). # These have hardware RAID-{0,1,5} support, and do multi-initiator I/O. # The DPT controllers are commonly re-licensed under other brand-names - # some controllers by Olivetti, Dec, HP, AT&T, SNI, AST, Alphatronic, NEC and # Compaq are actually DPT controllers. # # See src/sys/dev/dpt for debugging and other subtle options. # DPT_MEASURE_PERFORMANCE Enables a set of (semi)invasive metrics. Various # instruments are enabled. The tools in # /usr/sbin/dpt_* assume these to be enabled. # DPT_DEBUG_xxxx These are controllable from sys/dev/dpt/dpt.h # DPT_RESET_HBA Make "reset" actually reset the controller # instead of fudging it. Only enable this if you # are 100% certain you need it. device dpt # DPT options #!CAM# options DPT_MEASURE_PERFORMANCE options DPT_RESET_HBA # # Compaq "CISS" RAID controllers (SmartRAID 5* series) # These controllers have a SCSI-like interface, and require the # CAM infrastructure. # device ciss # # Intel Integrated RAID controllers. # This driver was developed and is maintained by Intel. Contacts # at Intel for this driver are # "Kannanthanam, Boji T" and # "Leubner, Achim" . # device iir # # Mylex AcceleRAID and eXtremeRAID controllers with v6 and later # firmware. These controllers have a SCSI-like interface, and require # the CAM infrastructure. # device mly # # Compaq Smart RAID, Mylex DAC960 and AMI MegaRAID controllers. Only # one entry is needed; the code will find and configure all supported # controllers. # device ida # Compaq Smart RAID device mlx # Mylex DAC960 device amr # AMI MegaRAID device amrp # SCSI Passthrough interface (optional, CAM req.) device mfi # LSI MegaRAID SAS device mfip # LSI MegaRAID SAS passthrough, requires CAM options MFI_DEBUG device mrsas # LSI/Avago MegaRAID SAS/SATA, 6Gb/s and 12Gb/s # # 3ware ATA RAID # device twe # 3ware ATA RAID # # Serial ATA host controllers: # # ahci: Advanced Host Controller Interface (AHCI) compatible # mvs: Marvell 88SX50XX/88SX60XX/88SX70XX/SoC controllers # siis: SiliconImage SiI3124/SiI3132/SiI3531 controllers # # These drivers are part of cam(4) subsystem. They supersede less featured # ata(4) subsystem drivers, supporting same hardware. device ahci device mvs device siis # # The 'ATA' driver supports all legacy ATA/ATAPI controllers, including # PC Card devices. You only need one "device ata" for it to find all # PCI and PC Card ATA/ATAPI devices on modern machines. # Alternatively, individual bus and chipset drivers may be chosen by using # the 'atacore' driver then selecting the drivers on a per vendor basis. # For example to build a system which only supports a VIA chipset, # omit 'ata' and include the 'atacore', 'atapci' and 'atavia' drivers. device ata # Modular ATA #device atacore # Core ATA functionality #device atacard # CARDBUS support #device ataisa # ISA bus support #device atapci # PCI bus support; only generic chipset support # PCI ATA chipsets #device ataacard # ACARD #device ataacerlabs # Acer Labs Inc. (ALI) #device ataamd # American Micro Devices (AMD) #device ataati # ATI #device atacenatek # Cenatek #device atacypress # Cypress #device atacyrix # Cyrix #device atahighpoint # HighPoint #device ataintel # Intel #device ataite # Integrated Technology Inc. (ITE) #device atajmicron # JMicron #device atamarvell # Marvell #device atamicron # Micron #device atanational # National #device atanetcell # NetCell #device atanvidia # nVidia #device atapromise # Promise #device ataserverworks # ServerWorks #device atasiliconimage # Silicon Image Inc. (SiI) (formerly CMD) #device atasis # Silicon Integrated Systems Corp.(SiS) #device atavia # VIA Technologies Inc. # # For older non-PCI, non-PnPBIOS systems, these are the hints lines to add: hint.ata.0.at="isa" hint.ata.0.port="0x1f0" hint.ata.0.irq="14" hint.ata.1.at="isa" hint.ata.1.port="0x170" hint.ata.1.irq="15" # # The following options are valid on the ATA driver: # # ATA_REQUEST_TIMEOUT: the number of seconds to wait for an ATA request # before timing out. #options ATA_REQUEST_TIMEOUT=10 # # Standard floppy disk controllers and floppy tapes, supports # the Y-E DATA External FDD (PC Card) # device fdc hint.fdc.0.at="isa" hint.fdc.0.port="0x3F0" hint.fdc.0.irq="6" hint.fdc.0.drq="2" # # FDC_DEBUG enables floppy debugging. Since the debug output is huge, you # gotta turn it actually on by setting the variable fd_debug with DDB, # however. options FDC_DEBUG # # Activate this line if you happen to have an Insight floppy tape. # Probing them proved to be dangerous for people with floppy disks only, # so it's "hidden" behind a flag: #hint.fdc.0.flags="1" # Specify floppy devices hint.fd.0.at="fdc0" hint.fd.0.drive="0" hint.fd.1.at="fdc0" hint.fd.1.drive="1" # # uart: newbusified driver for serial interfaces. It consolidates the sio(4), # sab(4) and zs(4) drivers. # device uart # Options for uart(4) options UART_PPS_ON_CTS # Do time pulse capturing using CTS # instead of DCD. options UART_POLL_FREQ # Set polling rate, used when hw has # no interrupt support (50 Hz default). # The following hint should only be used for pure ISA devices. It is not # needed otherwise. Use of hints is strongly discouraged. hint.uart.0.at="isa" # The following 3 hints are used when the UART is a system device (i.e., a # console or debug port), but only on platforms that don't have any other # means to pass the information to the kernel. The unit number of the hint # is only used to bundle the hints together. There is no relation to the # unit number of the probed UART. hint.uart.0.port="0x3f8" hint.uart.0.flags="0x10" hint.uart.0.baud="115200" # `flags' for serial drivers that support consoles like sio(4) and uart(4): # 0x10 enable console support for this unit. Other console flags # (if applicable) are ignored unless this is set. Enabling # console support does not make the unit the preferred console. # Boot with -h or set boot_serial=YES in the loader. For sio(4) # specifically, the 0x20 flag can also be set (see above). # Currently, at most one unit can have console support; the # first one (in config file order) with this flag set is # preferred. Setting this flag for sio0 gives the old behavior. # 0x80 use this port for serial line gdb support in ddb. Also known # as debug port. # # Options for serial drivers that support consoles: options BREAK_TO_DEBUGGER # A BREAK/DBG on the console goes to # ddb, if available. # Solaris implements a new BREAK which is initiated by a character # sequence CR ~ ^b which is similar to a familiar pattern used on # Sun servers by the Remote Console. There are FreeBSD extensions: # CR ~ ^p requests force panic and CR ~ ^r requests a clean reboot. options ALT_BREAK_TO_DEBUGGER # Serial Communications Controller # Supports the Siemens SAB 82532 and Zilog Z8530 multi-channel # communications controllers. device scc # PCI Universal Communications driver # Supports various multi port PCI I/O cards. device puc # # Network interfaces: # # MII bus support is required for many PCI Ethernet NICs, # namely those which use MII-compliant transceivers or implement # transceiver control interfaces that operate like an MII. Adding # "device miibus" to the kernel config pulls in support for the generic # miibus API, the common support for for bit-bang'ing the MII and all # of the PHY drivers, including a generic one for PHYs that aren't # specifically handled by an individual driver. Support for specific # PHYs may be built by adding "device mii", "device mii_bitbang" if # needed by the NIC driver and then adding the appropriate PHY driver. device mii # Minimal MII support device mii_bitbang # Common module for bit-bang'ing the MII device miibus # MII support w/ bit-bang'ing and all PHYs device acphy # Altima Communications AC101 device amphy # AMD AM79c873 / Davicom DM910{1,2} device atphy # Attansic/Atheros F1 device axphy # Asix Semiconductor AX88x9x device bmtphy # Broadcom BCM5201/BCM5202 and 3Com 3c905C device bnxt # Broadcom NetXtreme-C/NetXtreme-E device brgphy # Broadcom BCM54xx/57xx 1000baseTX device ciphy # Cicada/Vitesse CS/VSC8xxx device e1000phy # Marvell 88E1000 1000/100/10-BT device gentbi # Generic 10-bit 1000BASE-{LX,SX} fiber ifaces device icsphy # ICS ICS1889-1893 device ip1000phy # IC Plus IP1000A/IP1001 device jmphy # JMicron JMP211/JMP202 device lxtphy # Level One LXT-970 device mlphy # Micro Linear 6692 device nsgphy # NatSemi DP8361/DP83865/DP83891 device nsphy # NatSemi DP83840A device nsphyter # NatSemi DP83843/DP83815 device pnaphy # HomePNA device qsphy # Quality Semiconductor QS6612 device rdcphy # RDC Semiconductor R6040 device rgephy # RealTek 8169S/8110S/8211B/8211C device rlphy # RealTek 8139 device rlswitch # RealTek 8305 device smcphy # SMSC LAN91C111 device tdkphy # TDK 89Q2120 device tlphy # Texas Instruments ThunderLAN device truephy # LSI TruePHY device xmphy # XaQti XMAC II # an: Aironet 4500/4800 802.11 wireless adapters. Supports the PCMCIA, # PCI and ISA varieties. # ae: Support for gigabit ethernet adapters based on the Attansic/Atheros # L2 PCI-Express FastEthernet controllers. # age: Support for gigabit ethernet adapters based on the Attansic/Atheros # L1 PCI express gigabit ethernet controllers. # alc: Support for Atheros AR8131/AR8132 PCIe ethernet controllers. # ale: Support for Atheros AR8121/AR8113/AR8114 PCIe ethernet controllers. # ath: Atheros a/b/g WiFi adapters (requires ath_hal and wlan) # bce: Broadcom NetXtreme II (BCM5706/BCM5708) PCI/PCIe Gigabit Ethernet # adapters. # bfe: Broadcom BCM4401 Ethernet adapter. # bge: Support for gigabit ethernet adapters based on the Broadcom # BCM570x family of controllers, including the 3Com 3c996-T, # the Netgear GA302T, the SysKonnect SK-9D21 and SK-9D41, and # the embedded gigE NICs on Dell PowerEdge 2550 servers. # bnxt: Broadcom NetXtreme-C and NetXtreme-E PCIe 10/25/50G Ethernet adapters. # bxe: Broadcom NetXtreme II (BCM5771X/BCM578XX) PCIe 10Gb Ethernet # adapters. # bwi: Broadcom BCM430* and BCM431* family of wireless adapters. # bwn: Broadcom BCM43xx family of wireless adapters. # cas: Sun Cassini/Cassini+ and National Semiconductor DP83065 Saturn # cxgb: Chelsio T3 based 1GbE/10GbE PCIe Ethernet adapters. # cxgbe:Chelsio T4, T5, and T6-based 1/10/25/40/100GbE PCIe Ethernet # adapters. # cxgbev: Chelsio T4, T5, and T6-based PCIe Virtual Functions. # dc: Support for PCI fast ethernet adapters based on the DEC/Intel 21143 # and various workalikes including: # the ADMtek AL981 Comet and AN985 Centaur, the ASIX Electronics # AX88140A and AX88141, the Davicom DM9100 and DM9102, the Lite-On # 82c168 and 82c169 PNIC, the Lite-On/Macronix LC82C115 PNIC II # and the Macronix 98713/98713A/98715/98715A/98725 PMAC. This driver # replaces the old al, ax, dm, pn and mx drivers. List of brands: # Digital DE500-BA, Kingston KNE100TX, D-Link DFE-570TX, SOHOware SFA110, # SVEC PN102-TX, CNet Pro110B, 120A, and 120B, Compex RL100-TX, # LinkSys LNE100TX, LNE100TX V2.0, Jaton XpressNet, Alfa Inc GFC2204, # KNE110TX. # de: Digital Equipment DC21040 # em: Intel Pro/1000 Gigabit Ethernet 82542, 82543, 82544 based adapters. # ep: 3Com 3C509, 3C529, 3C556, 3C562D, 3C563D, 3C572, 3C574X, 3C579, 3C589 # and PC Card devices using these chipsets. # ex: Intel EtherExpress Pro/10 and other i82595-based adapters, # Olicom Ethernet PC Card devices. # fe: Fujitsu MB86960A/MB86965A Ethernet # fxp: Intel EtherExpress Pro/100B # (hint of prefer_iomap can be done to prefer I/O instead of Mem mapping) # gem: Apple GMAC/Sun ERI/Sun GEM # hme: Sun HME (Happy Meal Ethernet) # jme: JMicron JMC260 Fast Ethernet/JMC250 Gigabit Ethernet based adapters. # le: AMD Am7900 LANCE and Am79C9xx PCnet # lge: Support for PCI gigabit ethernet adapters based on the Level 1 # LXT1001 NetCellerator chipset. This includes the D-Link DGE-500SX, # SMC TigerCard 1000 (SMC9462SX), and some Addtron cards. # lio: Support for Cavium 23XX Ethernet adapters # malo: Marvell Libertas wireless NICs. # mwl: Marvell 88W8363 802.11n wireless NICs. # Requires the mwl firmware module # mwlfw: Marvell 88W8363 firmware # msk: Support for gigabit ethernet adapters based on the Marvell/SysKonnect # Yukon II Gigabit controllers, including 88E8021, 88E8022, 88E8061, # 88E8062, 88E8035, 88E8036, 88E8038, 88E8050, 88E8052, 88E8053, # 88E8055, 88E8056 and D-Link 560T/550SX. # mlx5: Mellanox ConnectX-4 and ConnectX-4 LX IB and Eth shared code module. # mlx5en:Mellanox ConnectX-4 and ConnectX-4 LX PCIe Ethernet adapters. # my: Myson Fast Ethernet (MTD80X, MTD89X) # nge: Support for PCI gigabit ethernet adapters based on the National # Semiconductor DP83820 and DP83821 chipset. This includes the # SMC EZ Card 1000 (SMC9462TX), D-Link DGE-500T, Asante FriendlyNet # GigaNIX 1000TA and 1000TPC, the Addtron AEG320T, the Surecom # EP-320G-TX and the Netgear GA622T. # oce: Emulex 10 Gbit adapters (OneConnect Ethernet) # pcn: Support for PCI fast ethernet adapters based on the AMD Am79c97x # PCnet-FAST, PCnet-FAST+, PCnet-FAST III, PCnet-PRO and PCnet-Home # chipsets. These can also be handled by the le(4) driver if the # pcn(4) driver is left out of the kernel. The le(4) driver does not # support the additional features like the MII bus and burst mode of # the PCnet-FAST and greater chipsets though. # ral: Ralink Technology IEEE 802.11 wireless adapter # re: RealTek 8139C+/8169/816xS/811xS/8101E PCI/PCIe Ethernet adapter # rl: Support for PCI fast ethernet adapters based on the RealTek 8129/8139 # chipset. Note that the RealTek driver defaults to using programmed # I/O to do register accesses because memory mapped mode seems to cause # severe lockups on SMP hardware. This driver also supports the # Accton EN1207D `Cheetah' adapter, which uses a chip called # the MPX 5030/5038, which is either a RealTek in disguise or a # RealTek workalike. Note that the D-Link DFE-530TX+ uses the RealTek # chipset and is supported by this driver, not the 'vr' driver. # rtwn: RealTek wireless adapters. # rtwnfw: RealTek wireless firmware. # sf: Support for Adaptec Duralink PCI fast ethernet adapters based on the # Adaptec AIC-6915 "starfire" controller. # This includes dual and quad port cards, as well as one 100baseFX card. # Most of these are 64-bit PCI devices, except for one single port # card which is 32-bit. # sge: Silicon Integrated Systems SiS190/191 Fast/Gigabit Ethernet adapter # sis: Support for NICs based on the Silicon Integrated Systems SiS 900, # SiS 7016 and NS DP83815 PCI fast ethernet controller chips. # sk: Support for the SysKonnect SK-984x series PCI gigabit ethernet NICs. # This includes the SK-9841 and SK-9842 single port cards (single mode # and multimode fiber) and the SK-9843 and SK-9844 dual port cards # (also single mode and multimode). # The driver will autodetect the number of ports on the card and # attach each one as a separate network interface. # sn: Support for ISA and PC Card Ethernet devices using the # SMC91C90/92/94/95 chips. # ste: Sundance Technologies ST201 PCI fast ethernet controller, includes # the D-Link DFE-550TX. # stge: Support for gigabit ethernet adapters based on the Sundance/Tamarack # TC9021 family of controllers, including the Sundance ST2021/ST2023, # the Sundance/Tamarack TC9021, the D-Link DL-4000 and ASUS NX1101. # ti: Support for PCI gigabit ethernet NICs based on the Alteon Networks # Tigon 1 and Tigon 2 chipsets. This includes the Alteon AceNIC, the # 3Com 3c985, the Netgear GA620 and various others. Note that you will # probably want to bump up kern.ipc.nmbclusters a lot to use this driver. # tl: Support for the Texas Instruments TNETE100 series 'ThunderLAN' # cards and integrated ethernet controllers. This includes several # Compaq Netelligent 10/100 cards and the built-in ethernet controllers # in several Compaq Prosignia, Proliant and Deskpro systems. It also # supports several Olicom 10Mbps and 10/100 boards. # tx: SMC 9432 TX, BTX and FTX cards. (SMC EtherPower II series) # txp: Support for 3Com 3cR990 cards with the "Typhoon" chipset # vr: Support for various fast ethernet adapters based on the VIA # Technologies VT3043 `Rhine I' and VT86C100A `Rhine II' chips, # including the D-Link DFE520TX and D-Link DFE530TX (see 'rl' for # DFE530TX+), the Hawking Technologies PN102TX, and the AOpen/Acer ALN-320. # vte: DM&P Vortex86 RDC R6040 Fast Ethernet # vx: 3Com 3C590 and 3C595 # wb: Support for fast ethernet adapters based on the Winbond W89C840F chip. # Note: this is not the same as the Winbond W89C940F, which is a # NE2000 clone. # wi: Lucent WaveLAN/IEEE 802.11 PCMCIA adapters. Note: this supports both # the PCMCIA and ISA cards: the ISA card is really a PCMCIA to ISA # bridge with a PCMCIA adapter plugged into it. # xe: Xircom/Intel EtherExpress Pro100/16 PC Card ethernet controller, # Accton Fast EtherCard-16, Compaq Netelligent 10/100 PC Card, # Toshiba 10/100 Ethernet PC Card, Xircom 16-bit Ethernet + Modem 56 # xl: Support for the 3Com 3c900, 3c905, 3c905B and 3c905C (Fast) # Etherlink XL cards and integrated controllers. This includes the # integrated 3c905B-TX chips in certain Dell Optiplex and Dell # Precision desktop machines and the integrated 3c905-TX chips # in Dell Latitude laptop docking stations. # Also supported: 3Com 3c980(C)-TX, 3Com 3cSOHO100-TX, 3Com 3c450-TX # Order for ISA devices is important here device ep device ex device fe hint.fe.0.at="isa" hint.fe.0.port="0x300" device sn hint.sn.0.at="isa" hint.sn.0.port="0x300" hint.sn.0.irq="10" device an device wi device xe # PCI Ethernet NICs that use the common MII bus controller code. device ae # Attansic/Atheros L2 FastEthernet device age # Attansic/Atheros L1 Gigabit Ethernet device alc # Atheros AR8131/AR8132 Ethernet device ale # Atheros AR8121/AR8113/AR8114 Ethernet device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device cas # Sun Cassini/Cassini+ and NS DP83065 Saturn device dc # DEC/Intel 21143 and various workalikes device et # Agere ET1310 10/100/Gigabit Ethernet device fxp # Intel EtherExpress PRO/100B (82557, 82558) hint.fxp.0.prefer_iomap="0" device gem # Apple GMAC/Sun ERI/Sun GEM device hme # Sun HME (Happy Meal Ethernet) device jme # JMicron JMC250 Gigabit/JMC260 Fast Ethernet device lge # Level 1 LXT1001 gigabit Ethernet device mlx5 # Shared code module between IB and Ethernet device mlx5en # Mellanox ConnectX-4 and ConnectX-4 LX device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device my # Myson Fast Ethernet (MTD80X, MTD89X) device nge # NatSemi DP83820 gigabit Ethernet device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device pcn # AMD Am79C97x PCI 10/100 NICs device sf # Adaptec AIC-6915 (``Starfire'') device sge # Silicon Integrated Systems SiS190/191 device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device stge # Sundance/Tamarack TC9021 gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 ``EPIC'') device vr # VIA Rhine, Rhine II device vte # DM&P Vortex86 RDC R6040 Fast Ethernet device wb # Winbond W89C840F device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') # PCI Ethernet NICs. device cxgb # Chelsio T3 10 Gigabit Ethernet device cxgb_t3fw # Chelsio T3 10 Gigabit Ethernet firmware device cxgbe # Chelsio T4-T6 1/10/25/40/100 Gigabit Ethernet device cxgbev # Chelsio T4-T6 Virtual Functions device de # DEC/Intel DC21x4x (``Tulip'') device em # Intel Pro/1000 Gigabit Ethernet device ix # Intel Pro/10Gbe PCIE Ethernet device ixv # Intel Pro/10Gbe PCIE Ethernet VF device le # AMD Am7900 LANCE and Am79C9xx PCnet device mxge # Myricom Myri-10G 10GbE NIC -device nxge # Neterion Xframe 10GbE Server/Storage Adapter device oce # Emulex 10 GbE (OneConnect Ethernet) device ti # Alteon Networks Tigon I/II gigabit Ethernet device txp # 3Com 3cR990 (``Typhoon'') device vx # 3Com 3c590, 3c595 (``Vortex'') device vxge # Exar/Neterion XFrame 3100 10GbE # PCI IEEE 802.11 Wireless NICs device ath # Atheros pci/cardbus NIC's device ath_hal # pci/cardbus chip support #device ath_ar5210 # AR5210 chips #device ath_ar5211 # AR5211 chips #device ath_ar5212 # AR5212 chips #device ath_rf2413 #device ath_rf2417 #device ath_rf2425 #device ath_rf5111 #device ath_rf5112 #device ath_rf5413 #device ath_ar5416 # AR5416 chips options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors # All of the AR5212 parts have a problem when paired with the AR71xx # CPUS. These parts have a bug that triggers a fatal bus error on the AR71xx # only. Details of the exact nature of the bug are sketchy, but some can be # found at https://forum.openwrt.org/viewtopic.php?pid=70060 on pages 4, 5 and # 6. This option enables this workaround. There is a performance penalty # for this work around, but without it things don't work at all. The DMA # from the card usually bursts 128 bytes, but on the affected CPUs, only # 4 are safe. options AH_RXCFG_SDMAMW_4BYTES #device ath_ar9160 # AR9160 chips #device ath_ar9280 # AR9280 chips #device ath_ar9285 # AR9285 chips device ath_rate_sample # SampleRate tx rate control for ath device bwi # Broadcom BCM430* BCM431* device bwn # Broadcom BCM43xx device malo # Marvell Libertas wireless NICs. device mwl # Marvell 88W8363 802.11n wireless NICs. device mwlfw device ral # Ralink Technology RT2500 wireless NICs. device rtwn # Realtek wireless NICs device rtwnfw # Use sf_buf(9) interface for jumbo buffers on ti(4) controllers. #options TI_SF_BUF_JUMBO # Turn on the header splitting option for the ti(4) driver firmware. This # only works for Tigon II chips, and has no effect for Tigon I chips. # This option requires the TI_SF_BUF_JUMBO option above. #options TI_JUMBO_HDRSPLIT # These two options allow manipulating the mbuf cluster size and mbuf size, # respectively. Be very careful with NIC driver modules when changing # these from their default values, because that can potentially cause a # mismatch between the mbuf size assumed by the kernel and the mbuf size # assumed by a module. The only driver that currently has the ability to # detect a mismatch is ti(4). options MCLSHIFT=12 # mbuf cluster shift in bits, 12 == 4KB options MSIZE=512 # mbuf size in bytes # # Sound drivers # # sound: The generic sound driver. # device sound # # snd_*: Device-specific drivers. # # The flags of the device tell the device a bit more info about the # device that normally is obtained through the PnP interface. # bit 2..0 secondary DMA channel; # bit 4 set if the board uses two dma channels; # bit 15..8 board type, overrides autodetection; leave it # zero if don't know what to put in (and you don't, # since this is unsupported at the moment...). # # snd_ad1816: Analog Devices AD1816 ISA PnP/non-PnP. # snd_als4000: Avance Logic ALS4000 PCI. # snd_atiixp: ATI IXP 200/300/400 PCI. # snd_audiocs: Crystal Semiconductor CS4231 SBus/EBus. Only # for sparc64. # snd_cmi: CMedia CMI8338/CMI8738 PCI. # snd_cs4281: Crystal Semiconductor CS4281 PCI. # snd_csa: Crystal Semiconductor CS461x/428x PCI. (except # 4281) # snd_ds1: Yamaha DS-1 PCI. # snd_emu10k1: Creative EMU10K1 PCI and EMU10K2 (Audigy) PCI. # snd_emu10kx: Creative SoundBlaster Live! and Audigy # snd_envy24: VIA Envy24 and compatible, needs snd_spicds. # snd_envy24ht: VIA Envy24HT and compatible, needs snd_spicds. # snd_es137x: Ensoniq AudioPCI ES137x PCI. # snd_ess: Ensoniq ESS ISA PnP/non-PnP, to be used in # conjunction with snd_sbc. # snd_fm801: Forte Media FM801 PCI. # snd_gusc: Gravis UltraSound ISA PnP/non-PnP. # snd_hda: Intel High Definition Audio (Controller) and # compatible. # snd_hdspe: RME HDSPe AIO and RayDAT. # snd_ich: Intel ICH AC'97 and some more audio controllers # embedded in a chipset, for example nVidia # nForce controllers. # snd_maestro: ESS Technology Maestro-1/2x PCI. # snd_maestro3: ESS Technology Maestro-3/Allegro PCI. # snd_mss: Microsoft Sound System ISA PnP/non-PnP. # snd_neomagic: Neomagic 256 AV/ZX PCI. # snd_sb16: Creative SoundBlaster16, to be used in # conjunction with snd_sbc. # snd_sb8: Creative SoundBlaster (pre-16), to be used in # conjunction with snd_sbc. # snd_sbc: Creative SoundBlaster ISA PnP/non-PnP. # Supports ESS and Avance ISA chips as well. # snd_solo: ESS Solo-1x PCI. # snd_spicds: SPI codec driver, needed by Envy24/Envy24HT drivers. # snd_t4dwave: Trident 4DWave DX/NX PCI, Sis 7018 PCI and Acer Labs # M5451 PCI. # snd_uaudio: USB audio. # snd_via8233: VIA VT8233x PCI. # snd_via82c686: VIA VT82C686A PCI. # snd_vibes: S3 Sonicvibes PCI. device snd_ad1816 device snd_als4000 device snd_atiixp #device snd_audiocs device snd_cmi device snd_cs4281 device snd_csa device snd_ds1 device snd_emu10k1 device snd_emu10kx device snd_envy24 device snd_envy24ht device snd_es137x device snd_ess device snd_fm801 device snd_gusc device snd_hda device snd_hdspe device snd_ich device snd_maestro device snd_maestro3 device snd_mss device snd_neomagic device snd_sb16 device snd_sb8 device snd_sbc device snd_solo device snd_spicds device snd_t4dwave device snd_uaudio device snd_via8233 device snd_via82c686 device snd_vibes # For non-PnP sound cards: hint.pcm.0.at="isa" hint.pcm.0.irq="10" hint.pcm.0.drq="1" hint.pcm.0.flags="0x0" hint.sbc.0.at="isa" hint.sbc.0.port="0x220" hint.sbc.0.irq="5" hint.sbc.0.drq="1" hint.sbc.0.flags="0x15" hint.gusc.0.at="isa" hint.gusc.0.port="0x220" hint.gusc.0.irq="5" hint.gusc.0.drq="1" hint.gusc.0.flags="0x13" # # Following options are intended for debugging/testing purposes: # # SND_DEBUG Enable extra debugging code that includes # sanity checking and possible increase of # verbosity. # # SND_DIAGNOSTIC Similar in a spirit of INVARIANTS/DIAGNOSTIC, # zero tolerance against inconsistencies. # # SND_FEEDER_MULTIFORMAT By default, only 16/32 bit feeders are compiled # in. This options enable most feeder converters # except for 8bit. WARNING: May bloat the kernel. # # SND_FEEDER_FULL_MULTIFORMAT Ditto, but includes 8bit feeders as well. # # SND_FEEDER_RATE_HP (feeder_rate) High precision 64bit arithmetic # as much as possible (the default trying to # avoid it). Possible slowdown. # # SND_PCM_64 (Only applicable for i386/32bit arch) # Process 32bit samples through 64bit # integer/arithmetic. Slight increase of dynamic # range at a cost of possible slowdown. # # SND_OLDSTEREO Only 2 channels are allowed, effectively # disabling multichannel processing. # options SND_DEBUG options SND_DIAGNOSTIC options SND_FEEDER_MULTIFORMAT options SND_FEEDER_FULL_MULTIFORMAT options SND_FEEDER_RATE_HP options SND_PCM_64 options SND_OLDSTEREO # # Miscellaneous hardware: # # bktr: Brooktree bt848/848a/849a/878/879 video capture and TV Tuner board # joy: joystick (including IO DATA PCJOY PC Card joystick) # cmx: OmniKey CardMan 4040 pccard smartcard reader device joy # PnP aware, hints for non-PnP only hint.joy.0.at="isa" hint.joy.0.port="0x201" device cmx # # The 'bktr' device is a PCI video capture device using the Brooktree # bt848/bt848a/bt849a/bt878/bt879 chipset. When used with a TV Tuner it forms a # TV card, e.g. Miro PC/TV, Hauppauge WinCast/TV WinTV, VideoLogic Captivator, # Intel Smart Video III, AverMedia, IMS Turbo, FlyVideo. # # options OVERRIDE_CARD=xxx # options OVERRIDE_TUNER=xxx # options OVERRIDE_MSP=1 # options OVERRIDE_DBX=1 # These options can be used to override the auto detection # The current values for xxx are found in src/sys/dev/bktr/bktr_card.h # Using sysctl(8) run-time overrides on a per-card basis can be made # # options BROOKTREE_SYSTEM_DEFAULT=BROOKTREE_PAL # or # options BROOKTREE_SYSTEM_DEFAULT=BROOKTREE_NTSC # Specifies the default video capture mode. # This is required for Dual Crystal (28&35MHz) boards where PAL is used # to prevent hangs during initialization, e.g. VideoLogic Captivator PCI. # # options BKTR_USE_PLL # This is required for PAL or SECAM boards with a 28MHz crystal and no 35MHz # crystal, e.g. some new Bt878 cards. # # options BKTR_GPIO_ACCESS # This enables IOCTLs which give user level access to the GPIO port. # # options BKTR_NO_MSP_RESET # Prevents the MSP34xx reset. Good if you initialize the MSP in another OS first # # options BKTR_430_FX_MODE # Switch Bt878/879 cards into Intel 430FX chipset compatibility mode. # # options BKTR_SIS_VIA_MODE # Switch Bt878/879 cards into SIS/VIA chipset compatibility mode which is # needed for some old SiS and VIA chipset motherboards. # This also allows Bt878/879 chips to work on old OPTi (<1997) chipset # motherboards and motherboards with bad or incomplete PCI 2.1 support. # As a rough guess, old = before 1998 # # options BKTR_NEW_MSP34XX_DRIVER # Use new, more complete initialization scheme for the msp34* soundchip. # Should fix stereo autodetection if the old driver does only output # mono sound. # # options BKTR_USE_FREEBSD_SMBUS # Compile with FreeBSD SMBus implementation # # Brooktree driver has been ported to the new I2C framework. Thus, # you'll need to have the following 3 lines in the kernel config. # device smbus # device iicbus # device iicbb # device iicsmb # The iic and smb devices are only needed if you want to control other # I2C slaves connected to the external connector of some cards. # device bktr # # PC Card/PCMCIA and Cardbus # # cbb: pci/cardbus bridge implementing YENTA interface # pccard: pccard slots # cardbus: cardbus slots device cbb device pccard device cardbus # # MMC/SD # # mmc MMC/SD bus # mmcsd MMC/SD memory card # sdhci Generic PCI SD Host Controller # device mmc device mmcsd device sdhci # # SMB bus # # System Management Bus support is provided by the 'smbus' device. # Access to the SMBus device is via the 'smb' device (/dev/smb*), # which is a child of the 'smbus' device. # # Supported devices: # smb standard I/O through /dev/smb* # # Supported SMB interfaces: # iicsmb I2C to SMB bridge with any iicbus interface # bktr brooktree848 I2C hardware interface # intpm Intel PIIX4 (82371AB, 82443MX) Power Management Unit # alpm Acer Aladdin-IV/V/Pro2 Power Management Unit # ichsmb Intel ICH SMBus controller chips (82801AA, 82801AB, 82801BA) # viapm VIA VT82C586B/596B/686A and VT8233 Power Management Unit # amdpm AMD 756 Power Management Unit # amdsmb AMD 8111 SMBus 2.0 Controller # nfpm NVIDIA nForce Power Management Unit # nfsmb NVIDIA nForce2/3/4 MCP SMBus 2.0 Controller # ismt Intel SMBus 2.0 controller chips (on Atom S1200, C2000) # device smbus # Bus support, required for smb below. device intpm device alpm device ichsmb device viapm device amdpm device amdsmb device nfpm device nfsmb device ismt device smb # SMBus peripheral devices # # jedec_dimm Asset and temperature reporting for DDR3 and DDR4 DIMMs # jedec_ts Temperature Sensor compliant with JEDEC Standard 21-C # device jedec_dimm device jedec_ts # I2C Bus # # Philips i2c bus support is provided by the `iicbus' device. # # Supported devices: # ic i2c network interface # iic i2c standard io # iicsmb i2c to smb bridge. Allow i2c i/o with smb commands. # iicoc simple polling driver for OpenCores I2C controller # # Supported interfaces: # bktr brooktree848 I2C software interface # # Other: # iicbb generic I2C bit-banging code (needed by lpbb, bktr) # device iicbus # Bus support, required for ic/iic/iicsmb below. device iicbb device ic device iic device iicsmb # smb over i2c bridge device iicoc # OpenCores I2C controller support # I2C peripheral devices # device ds1307 # Dallas DS1307 RTC and compatible device ds13rtc # All Dallas/Maxim ds13xx chips device ds1672 # Dallas DS1672 RTC device ds3231 # Dallas DS3231 RTC + temperature device icee # AT24Cxxx and compatible EEPROMs device lm75 # LM75 compatible temperature sensor device nxprtc # NXP RTCs: PCA/PFC212x PCA/PCF85xx device s35390a # Seiko Instruments S-35390A RTC # Parallel-Port Bus # # Parallel port bus support is provided by the `ppbus' device. # Multiple devices may be attached to the parallel port, devices # are automatically probed and attached when found. # # Supported devices: # vpo Iomega Zip Drive # Requires SCSI disk support ('scbus' and 'da'), best # performance is achieved with ports in EPP 1.9 mode. # lpt Parallel Printer # plip Parallel network interface # ppi General-purpose I/O ("Geek Port") + IEEE1284 I/O # pps Pulse per second Timing Interface # lpbb Philips official parallel port I2C bit-banging interface # pcfclock Parallel port clock driver. # # Supported interfaces: # ppc ISA-bus parallel port interfaces. # options PPC_PROBE_CHIPSET # Enable chipset specific detection # (see flags in ppc(4)) options DEBUG_1284 # IEEE1284 signaling protocol debug options PERIPH_1284 # Makes your computer act as an IEEE1284 # compliant peripheral options DONTPROBE_1284 # Avoid boot detection of PnP parallel devices options VP0_DEBUG # ZIP/ZIP+ debug options LPT_DEBUG # Printer driver debug options PPC_DEBUG # Parallel chipset level debug options PLIP_DEBUG # Parallel network IP interface debug options PCFCLOCK_VERBOSE # Verbose pcfclock driver options PCFCLOCK_MAX_RETRIES=5 # Maximum read tries (default 10) device ppc hint.ppc.0.at="isa" hint.ppc.0.irq="7" device ppbus device vpo device lpt device plip device ppi device pps device lpbb device pcfclock # # Etherswitch framework and drivers # # etherswitch The etherswitch(4) framework # miiproxy Proxy device for miibus(4) functionality # # Switch hardware support: # arswitch Atheros switches # ip17x IC+ 17x family switches # rtl8366r Realtek RTL8366 switches # ukswitch Multi-PHY switches # device etherswitch device miiproxy device arswitch device ip17x device rtl8366rb device ukswitch # Kernel BOOTP support options BOOTP # Use BOOTP to obtain IP address/hostname # Requires NFSCL and NFS_ROOT options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info options BOOTP_NFSV3 # Use NFS v3 to NFS mount root options BOOTP_COMPAT # Workaround for broken bootp daemons. options BOOTP_WIRED_TO=fxp0 # Use interface fxp0 for BOOTP options BOOTP_BLOCKSIZE=8192 # Override NFS block size # # Enable software watchdog routines, even if hardware watchdog is present. # By default, software watchdog timer is enabled only if no hardware watchdog # is present. # options SW_WATCHDOG # # Add the software deadlock resolver thread. # options DEADLKRES # # Disable swapping of stack pages. This option removes all # code which actually performs swapping, so it's not possible to turn # it back on at run-time. # # This is sometimes usable for systems which don't have any swap space # (see also sysctl "vm.disable_swapspace_pageouts") # #options NO_SWAPPING # Set the number of sf_bufs to allocate. sf_bufs are virtual buffers # for sendfile(2) that are used to map file VM pages, and normally # default to a quantity that is roughly 16*MAXUSERS+512. You would # typically want about 4 of these for each simultaneous file send. # options NSFBUFS=1024 # # Enable extra debugging code for locks. This stores the filename and # line of whatever acquired the lock in the lock itself, and changes a # number of function calls to pass around the relevant data. This is # not at all useful unless you are debugging lock code. Note that # modules should be recompiled as this option modifies KBI. # options DEBUG_LOCKS ##################################################################### # USB support # UHCI controller device uhci # OHCI controller device ohci # EHCI controller device ehci # XHCI controller device xhci # SL811 Controller #device slhci # General USB code (mandatory for USB) device usb # # USB Double Bulk Pipe devices device udbp # USB Fm Radio device ufm # USB temperature meter device ugold # USB LED device uled # Human Interface Device (anything with buttons and dials) device uhid # USB keyboard device ukbd # USB printer device ulpt # USB mass storage driver (Requires scbus and da) device umass # USB mass storage driver for device-side mode device usfs # USB support for Belkin F5U109 and Magic Control Technology serial adapters device umct # USB modem support device umodem # USB mouse device ums # USB touchpad(s) device atp device wsp # eGalax USB touch screen device uep # Diamond Rio 500 MP3 player device urio # # USB serial support device ucom # USB support for 3G modem cards by Option, Novatel, Huawei and Sierra device u3g # USB support for Technologies ARK3116 based serial adapters device uark # USB support for Belkin F5U103 and compatible serial adapters device ubsa # USB support for serial adapters based on the FT8U100AX and FT8U232AM device uftdi # USB support for some Windows CE based serial communication. device uipaq # USB support for Prolific PL-2303 serial adapters device uplcom # USB support for Silicon Laboratories CP2101/CP2102 based USB serial adapters device uslcom # USB Visor and Palm devices device uvisor # USB serial support for DDI pocket's PHS device uvscom # # USB ethernet support device uether # ADMtek USB ethernet. Supports the LinkSys USB100TX, # the Billionton USB100, the Melco LU-ATX, the D-Link DSB-650TX # and the SMC 2202USB. Also works with the ADMtek AN986 Pegasus # eval board. device aue # ASIX Electronics AX88172 USB 2.0 ethernet driver. Used in the # LinkSys USB200M and various other adapters. device axe # ASIX Electronics AX88178A/AX88179 USB 2.0/3.0 gigabit ethernet driver. device axge # # Devices which communicate using Ethernet over USB, particularly # Communication Device Class (CDC) Ethernet specification. Supports # Sharp Zaurus PDAs, some DOCSIS cable modems and so on. device cdce # # CATC USB-EL1201A USB ethernet. Supports the CATC Netmate # and Netmate II, and the Belkin F5U111. device cue # # Kawasaki LSI ethernet. Supports the LinkSys USB10T, # Entrega USB-NET-E45, Peracom Ethernet Adapter, the # 3Com 3c19250, the ADS Technologies USB-10BT, the ATen UC10T, # the Netgear EA101, the D-Link DSB-650, the SMC 2102USB # and 2104USB, and the Corega USB-T. device kue # # RealTek RTL8150 USB to fast ethernet. Supports the Melco LUA-KTX # and the GREEN HOUSE GH-USB100B. device rue # # Davicom DM9601E USB to fast ethernet. Supports the Corega FEther USB-TXC. device udav # # RealTek RTL8152/RTL8153 USB Ethernet driver device ure # # Moschip MCS7730/MCS7840 USB to fast ethernet. Supports the Sitecom LN030. device mos # # HSxPA devices from Option N.V device uhso # Realtek RTL8188SU/RTL8191SU/RTL8192SU wireless driver device rsu # # Ralink Technology RT2501USB/RT2601USB wireless driver device rum # Ralink Technology RT2700U/RT2800U/RT3000U wireless driver device run # # Atheros AR5523 wireless driver device uath # # Conexant/Intersil PrismGT wireless driver device upgt # # Ralink Technology RT2500USB wireless driver device ural # # RNDIS USB ethernet driver device urndis # Realtek RTL8187B/L wireless driver device urtw # # ZyDas ZD1211/ZD1211B wireless driver device zyd # # Sierra USB wireless driver device usie # # debugging options for the USB subsystem # options USB_DEBUG options U3G_DEBUG # options for ukbd: options UKBD_DFLT_KEYMAP # specify the built-in keymap makeoptions UKBD_DFLT_KEYMAP=jp # options for uplcom: options UPLCOM_INTR_INTERVAL=100 # interrupt pipe interval # in milliseconds # options for uvscom: options UVSCOM_DEFAULT_OPKTSIZE=8 # default output packet size options UVSCOM_INTR_INTERVAL=100 # interrupt pipe interval # in milliseconds ##################################################################### # FireWire support device firewire # FireWire bus code device sbp # SCSI over Firewire (Requires scbus and da) device sbp_targ # SBP-2 Target mode (Requires scbus and targ) device fwe # Ethernet over FireWire (non-standard!) device fwip # IP over FireWire (RFC2734 and RFC3146) ##################################################################### # dcons support (Dumb Console Device) device dcons # dumb console driver device dcons_crom # FireWire attachment options DCONS_BUF_SIZE=16384 # buffer size options DCONS_POLL_HZ=100 # polling rate options DCONS_FORCE_CONSOLE=0 # force to be the primary console options DCONS_FORCE_GDB=1 # force to be the gdb device ##################################################################### # crypto subsystem # # This is a port of the OpenBSD crypto framework. Include this when # configuring IPSEC and when you have a h/w crypto device to accelerate # user applications that link to OpenSSL. # # Drivers are ports from OpenBSD with some simple enhancements that have # been fed back to OpenBSD. device crypto # core crypto support # Only install the cryptodev device if you are running tests, or know # specifically why you need it. In most cases, it is not needed and # will make things slower. device cryptodev # /dev/crypto for access to h/w device rndtest # FIPS 140-2 entropy tester device ccr # Chelsio T6 device hifn # Hifn 7951, 7781, etc. options HIFN_DEBUG # enable debugging support: hw.hifn.debug options HIFN_RNDTEST # enable rndtest support device ubsec # Broadcom 5501, 5601, 58xx options UBSEC_DEBUG # enable debugging support: hw.ubsec.debug options UBSEC_RNDTEST # enable rndtest support ##################################################################### # # Embedded system options: # # An embedded system might want to run something other than init. options INIT_PATH=/sbin/init:/rescue/init # Debug options options BUS_DEBUG # enable newbus debugging options DEBUG_VFS_LOCKS # enable VFS lock debugging options SOCKBUF_DEBUG # enable sockbuf last record/mb tail checking options IFMEDIA_DEBUG # enable debugging in net/if_media.c # # Verbose SYSINIT # # Make the SYSINIT process performed by mi_startup() verbose. This is very # useful when porting to a new architecture. If DDB is also enabled, this # will print function names instead of addresses. options VERBOSE_SYSINIT ##################################################################### # SYSV IPC KERNEL PARAMETERS # # Maximum number of System V semaphores that can be used on the system at # one time. options SEMMNI=11 # Total number of semaphores system wide options SEMMNS=61 # Total number of undo structures in system options SEMMNU=31 # Maximum number of System V semaphores that can be used by a single process # at one time. options SEMMSL=61 # Maximum number of operations that can be outstanding on a single System V # semaphore at one time. options SEMOPM=101 # Maximum number of undo operations that can be outstanding on a single # System V semaphore at one time. options SEMUME=11 # Maximum number of shared memory pages system wide. options SHMALL=1025 # Maximum size, in bytes, of a single System V shared memory region. options SHMMAX=(SHMMAXPGS*PAGE_SIZE+1) options SHMMAXPGS=1025 # Minimum size, in bytes, of a single System V shared memory region. options SHMMIN=2 # Maximum number of shared memory regions that can be used on the system # at one time. options SHMMNI=33 # Maximum number of System V shared memory regions that can be attached to # a single process at one time. options SHMSEG=9 # Set the amount of time (in seconds) the system will wait before # rebooting automatically when a kernel panic occurs. If set to (-1), # the system will wait indefinitely until a key is pressed on the # console. options PANIC_REBOOT_WAIT_TIME=16 # Attempt to bypass the buffer cache and put data directly into the # userland buffer for read operation when O_DIRECT flag is set on the # file. Both offset and length of the read operation must be # multiples of the physical media sector size. # options DIRECTIO # Specify a lower limit for the number of swap I/O buffers. They are # (among other things) used when bypassing the buffer cache due to # DIRECTIO kernel option enabled and O_DIRECT flag set on file. # options NSWBUF_MIN=120 ##################################################################### # More undocumented options for linting. # Note that documenting these is not considered an affront. options CAM_DEBUG_DELAY # VFS cluster debugging. options CLUSTERDEBUG options DEBUG # Kernel filelock debugging. options LOCKF_DEBUG # System V compatible message queues # Please note that the values provided here are used to test kernel # building. The defaults in the sources provide almost the same numbers. # MSGSSZ must be a power of 2 between 8 and 1024. options MSGMNB=2049 # Max number of chars in queue options MSGMNI=41 # Max number of message queue identifiers options MSGSEG=2049 # Max number of message segments options MSGSSZ=16 # Size of a message segment options MSGTQL=41 # Max number of messages in system options NBUF=512 # Number of buffer headers options SCSI_NCR_DEBUG options SCSI_NCR_MAX_SYNC=10000 options SCSI_NCR_MAX_WIDE=1 options SCSI_NCR_MYADDR=7 options SC_DEBUG_LEVEL=5 # Syscons debug level options SC_RENDER_DEBUG # syscons rendering debugging options VFS_BIO_DEBUG # VFS buffer I/O debugging options KSTACK_MAX_PAGES=32 # Maximum pages to give the kernel stack options KSTACK_USAGE_PROF # Adaptec Array Controller driver options options AAC_DEBUG # Debugging levels: # 0 - quiet, only emit warnings # 1 - noisy, emit major function # points and things done # 2 - extremely noisy, emit trace # items in loops, etc. # Resource Accounting options RACCT # Resource Limits options RCTL # Yet more undocumented options for linting. # BKTR_ALLOC_PAGES has no effect except to cause warnings, and # BROOKTREE_ALLOC_PAGES hasn't actually been superseded by it, since the # driver still mostly spells this option BROOKTREE_ALLOC_PAGES. ##options BKTR_ALLOC_PAGES=(217*4+1) options BROOKTREE_ALLOC_PAGES=(217*4+1) options MAXFILES=999 # Random number generator # Only ONE of the below two may be used; they are mutually exclusive. # If neither is present, then the Fortuna algorithm is selected. #options RANDOM_YARROW # Yarrow CSPRNG (old default) #options RANDOM_LOADABLE # Allow the algorithm to be loaded as # a module. # Select this to allow high-rate but potentially expensive # harvesting of Slab-Allocator entropy. In very high-rate # situations the value of doing this is dubious at best. options RANDOM_ENABLE_UMA # slab allocator # Module to enable execution of application via emulators like QEMU options IMAGACT_BINMISC # zlib I/O stream support # This enables support for compressed core dumps. options GZIO # zstd I/O stream support # This enables support for Zstd compressed core dumps. options ZSTDIO # BHND(4) drivers options BHND_LOGLEVEL # Logging threshold level # evdev interface device evdev # input event device support options EVDEV_SUPPORT # evdev support in legacy drivers options EVDEV_DEBUG # enable event debug msgs device uinput # install /dev/uinput cdev options UINPUT_DEBUG # enable uinput debug msgs # Encrypted kernel crash dumps. options EKCD Index: head/sys/conf/files =================================================================== --- head/sys/conf/files (revision 333387) +++ head/sys/conf/files (revision 333388) @@ -1,4985 +1,4966 @@ # $FreeBSD$ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and # dependency lines other than the first are silently ignored. # acpi_quirks.h optional acpi \ dependency "$S/tools/acpi_quirks2h.awk $S/dev/acpica/acpi_quirks" \ compile-with "${AWK} -f $S/tools/acpi_quirks2h.awk $S/dev/acpica/acpi_quirks" \ no-obj no-implicit-rule before-depend \ clean "acpi_quirks.h" bhnd_nvram_map.h optional bhnd \ dependency "$S/dev/bhnd/tools/nvram_map_gen.sh $S/dev/bhnd/tools/nvram_map_gen.awk $S/dev/bhnd/nvram/nvram_map" \ compile-with "sh $S/dev/bhnd/tools/nvram_map_gen.sh $S/dev/bhnd/nvram/nvram_map -h" \ no-obj no-implicit-rule before-depend \ clean "bhnd_nvram_map.h" bhnd_nvram_map_data.h optional bhnd \ dependency "$S/dev/bhnd/tools/nvram_map_gen.sh $S/dev/bhnd/tools/nvram_map_gen.awk $S/dev/bhnd/nvram/nvram_map" \ compile-with "sh $S/dev/bhnd/tools/nvram_map_gen.sh $S/dev/bhnd/nvram/nvram_map -d" \ no-obj no-implicit-rule before-depend \ clean "bhnd_nvram_map_data.h" # # The 'fdt_dtb_file' target covers an actual DTB file name, which is derived # from the specified source (DTS) file: .dts -> .dtb # fdt_dtb_file optional fdt fdt_dtb_static \ compile-with "sh -c 'MACHINE=${MACHINE} $S/tools/fdt/make_dtb.sh $S ${FDT_DTS_FILE} ${.CURDIR}'" \ no-obj no-implicit-rule before-depend \ clean "${FDT_DTS_FILE:R}.dtb" fdt_static_dtb.h optional fdt fdt_dtb_static \ compile-with "sh -c 'MACHINE=${MACHINE} $S/tools/fdt/make_dtbh.sh ${FDT_DTS_FILE} ${.CURDIR}'" \ dependency "fdt_dtb_file" \ no-obj no-implicit-rule before-depend \ clean "fdt_static_dtb.h" feeder_eq_gen.h optional sound \ dependency "$S/tools/sound/feeder_eq_mkfilter.awk" \ compile-with "${AWK} -f $S/tools/sound/feeder_eq_mkfilter.awk -- ${FEEDER_EQ_PRESETS} > feeder_eq_gen.h" \ no-obj no-implicit-rule before-depend \ clean "feeder_eq_gen.h" feeder_rate_gen.h optional sound \ dependency "$S/tools/sound/feeder_rate_mkfilter.awk" \ compile-with "${AWK} -f $S/tools/sound/feeder_rate_mkfilter.awk -- ${FEEDER_RATE_PRESETS} > feeder_rate_gen.h" \ no-obj no-implicit-rule before-depend \ clean "feeder_rate_gen.h" snd_fxdiv_gen.h optional sound \ dependency "$S/tools/sound/snd_fxdiv_gen.awk" \ compile-with "${AWK} -f $S/tools/sound/snd_fxdiv_gen.awk -- > snd_fxdiv_gen.h" \ no-obj no-implicit-rule before-depend \ clean "snd_fxdiv_gen.h" miidevs.h optional miibus | mii \ dependency "$S/tools/miidevs2h.awk $S/dev/mii/miidevs" \ compile-with "${AWK} -f $S/tools/miidevs2h.awk $S/dev/mii/miidevs" \ no-obj no-implicit-rule before-depend \ clean "miidevs.h" pccarddevs.h standard \ dependency "$S/tools/pccarddevs2h.awk $S/dev/pccard/pccarddevs" \ compile-with "${AWK} -f $S/tools/pccarddevs2h.awk $S/dev/pccard/pccarddevs" \ no-obj no-implicit-rule before-depend \ clean "pccarddevs.h" kbdmuxmap.h optional kbdmux_dflt_keymap \ compile-with "kbdcontrol -P ${S:S/sys$/share/}/vt/keymaps -P ${S:S/sys$/share/}/syscons/keymaps -L ${KBDMUX_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > kbdmuxmap.h" \ no-obj no-implicit-rule before-depend \ clean "kbdmuxmap.h" teken_state.h optional sc | vt \ dependency "$S/teken/gensequences $S/teken/sequences" \ compile-with "${AWK} -f $S/teken/gensequences $S/teken/sequences > teken_state.h" \ no-obj no-implicit-rule before-depend \ clean "teken_state.h" usbdevs.h optional usb \ dependency "$S/tools/usbdevs2h.awk $S/dev/usb/usbdevs" \ compile-with "${AWK} -f $S/tools/usbdevs2h.awk $S/dev/usb/usbdevs -h" \ no-obj no-implicit-rule before-depend \ clean "usbdevs.h" usbdevs_data.h optional usb \ dependency "$S/tools/usbdevs2h.awk $S/dev/usb/usbdevs" \ compile-with "${AWK} -f $S/tools/usbdevs2h.awk $S/dev/usb/usbdevs -d" \ no-obj no-implicit-rule before-depend \ clean "usbdevs_data.h" cam/cam.c optional scbus cam/cam_compat.c optional scbus cam/cam_iosched.c optional scbus cam/cam_periph.c optional scbus cam/cam_queue.c optional scbus cam/cam_sim.c optional scbus cam/cam_xpt.c optional scbus cam/ata/ata_all.c optional scbus cam/ata/ata_xpt.c optional scbus cam/ata/ata_pmp.c optional scbus cam/nvme/nvme_all.c optional scbus nvme cam/nvme/nvme_da.c optional scbus nvme da cam/nvme/nvme_xpt.c optional scbus nvme cam/scsi/scsi_xpt.c optional scbus cam/scsi/scsi_all.c optional scbus cam/scsi/scsi_cd.c optional cd cam/scsi/scsi_ch.c optional ch cam/ata/ata_da.c optional ada | da cam/ctl/ctl.c optional ctl cam/ctl/ctl_backend.c optional ctl cam/ctl/ctl_backend_block.c optional ctl cam/ctl/ctl_backend_ramdisk.c optional ctl cam/ctl/ctl_cmd_table.c optional ctl cam/ctl/ctl_frontend.c optional ctl cam/ctl/ctl_frontend_cam_sim.c optional ctl cam/ctl/ctl_frontend_ioctl.c optional ctl cam/ctl/ctl_frontend_iscsi.c optional ctl cfiscsi cam/ctl/ctl_ha.c optional ctl cam/ctl/ctl_scsi_all.c optional ctl cam/ctl/ctl_tpc.c optional ctl cam/ctl/ctl_tpc_local.c optional ctl cam/ctl/ctl_error.c optional ctl cam/ctl/ctl_util.c optional ctl cam/ctl/scsi_ctl.c optional ctl cam/mmc/mmc_xpt.c optional scbus mmccam cam/mmc/mmc_da.c optional scbus mmccam da cam/scsi/scsi_da.c optional da cam/scsi/scsi_low.c optional ncv | nsp | stg cam/scsi/scsi_pass.c optional pass cam/scsi/scsi_pt.c optional pt cam/scsi/scsi_sa.c optional sa cam/scsi/scsi_enc.c optional ses cam/scsi/scsi_enc_ses.c optional ses cam/scsi/scsi_enc_safte.c optional ses cam/scsi/scsi_sg.c optional sg cam/scsi/scsi_targ_bh.c optional targbh cam/scsi/scsi_target.c optional targ cam/scsi/smp_all.c optional scbus # shared between zfs and dtrace cddl/compat/opensolaris/kern/opensolaris.c optional zfs | dtrace compile-with "${CDDL_C}" cddl/compat/opensolaris/kern/opensolaris_cmn_err.c optional zfs | dtrace compile-with "${CDDL_C}" cddl/compat/opensolaris/kern/opensolaris_kmem.c optional zfs | dtrace compile-with "${CDDL_C}" cddl/compat/opensolaris/kern/opensolaris_misc.c optional zfs | dtrace compile-with "${CDDL_C}" cddl/compat/opensolaris/kern/opensolaris_proc.c optional zfs | dtrace compile-with "${CDDL_C}" cddl/compat/opensolaris/kern/opensolaris_sunddi.c optional zfs | dtrace compile-with "${CDDL_C}" cddl/compat/opensolaris/kern/opensolaris_taskq.c optional zfs | dtrace compile-with "${CDDL_C}" # zfs specific cddl/compat/opensolaris/kern/opensolaris_acl.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_dtrace.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_kobj.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_kstat.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_lookup.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_policy.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_string.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_sysevent.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_uio.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_vfs.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_vm.c optional zfs compile-with "${ZFS_C}" cddl/compat/opensolaris/kern/opensolaris_zone.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/acl/acl_common.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/avl/avl.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/nvpair/opensolaris_fnvpair.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/nvpair/opensolaris_nvpair_alloc_fixed.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/unicode/u8_textprep.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/zfs/zfeature_common.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/zfs/zfs_comutil.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/zfs/zfs_deleg.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/zfs/zfs_fletcher.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/zfs/zfs_prop.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/zfs/zpool_prop.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/common/zfs/zprop_common.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/vnode.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/abd.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/aggsum.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/blkptr.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/bqueue.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/cityhash.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c optional zfs compile-with "${ZFS_C}" \ warning "kernel contains CDDL licensed ZFS filesystem" cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_userhold.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/gzip.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lz4.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lzjb.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/multilist.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/range_tree.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/skein_zfs.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/spa_checkpoint.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/space_reftree.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/uberblock.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/unique.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_indirect.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_indirect_births.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_indirect_mapping.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_removal.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zcp.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zcp_get.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zcp_global.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zcp_iter.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zcp_synctask.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_sa.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zle.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zrlock.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zthr.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/os/callb.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/os/fm.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/os/list.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/os/nvpair_alloc_system.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/adler32.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/deflate.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/inffast.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/inflate.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/inftrees.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/trees.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/zmod.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/zmod_subr.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/zmod/zutil.c optional zfs compile-with "${ZFS_C}" # zfs lua support cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lapi.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lauxlib.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbaselib.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lbitlib.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lcode.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lcompat.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lcorolib.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lctype.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/ldebug.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/ldo.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/ldump.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lfunc.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lgc.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/llex.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lmem.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lobject.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lopcodes.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lparser.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstate.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstring.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lstrlib.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/ltable.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/ltablib.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/ltm.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lundump.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lvm.c optional zfs compile-with "${ZFS_C}" cddl/contrib/opensolaris/uts/common/fs/zfs/lua/lzio.c optional zfs compile-with "${ZFS_C}" # dtrace specific cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c optional dtrace compile-with "${DTRACE_C}" \ warning "kernel contains CDDL licensed DTRACE" cddl/contrib/opensolaris/uts/common/dtrace/dtrace_xoroshiro128_plus.c optional dtrace compile-with "${DTRACE_C}" cddl/dev/dtmalloc/dtmalloc.c optional dtmalloc | dtraceall compile-with "${CDDL_C}" cddl/dev/profile/profile.c optional dtrace_profile | dtraceall compile-with "${CDDL_C}" cddl/dev/sdt/sdt.c optional dtrace_sdt | dtraceall compile-with "${CDDL_C}" cddl/dev/fbt/fbt.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}" cddl/dev/systrace/systrace.c optional dtrace_systrace | dtraceall compile-with "${CDDL_C}" cddl/dev/prototype.c optional dtrace_prototype | dtraceall compile-with "${CDDL_C}" fs/nfsclient/nfs_clkdtrace.c optional dtnfscl nfscl | dtraceall nfscl compile-with "${CDDL_C}" compat/cloudabi/cloudabi_clock.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_errno.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_fd.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_file.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_futex.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_mem.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_proc.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_random.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_sock.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_thread.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi/cloudabi_vdso.c optional compat_cloudabi32 | compat_cloudabi64 compat/cloudabi32/cloudabi32_fd.c optional compat_cloudabi32 compat/cloudabi32/cloudabi32_module.c optional compat_cloudabi32 compat/cloudabi32/cloudabi32_poll.c optional compat_cloudabi32 compat/cloudabi32/cloudabi32_sock.c optional compat_cloudabi32 compat/cloudabi32/cloudabi32_syscalls.c optional compat_cloudabi32 compat/cloudabi32/cloudabi32_sysent.c optional compat_cloudabi32 compat/cloudabi32/cloudabi32_thread.c optional compat_cloudabi32 compat/cloudabi64/cloudabi64_fd.c optional compat_cloudabi64 compat/cloudabi64/cloudabi64_module.c optional compat_cloudabi64 compat/cloudabi64/cloudabi64_poll.c optional compat_cloudabi64 compat/cloudabi64/cloudabi64_sock.c optional compat_cloudabi64 compat/cloudabi64/cloudabi64_syscalls.c optional compat_cloudabi64 compat/cloudabi64/cloudabi64_sysent.c optional compat_cloudabi64 compat/cloudabi64/cloudabi64_thread.c optional compat_cloudabi64 compat/freebsd32/freebsd32_capability.c optional compat_freebsd32 compat/freebsd32/freebsd32_ioctl.c optional compat_freebsd32 compat/freebsd32/freebsd32_misc.c optional compat_freebsd32 compat/freebsd32/freebsd32_syscalls.c optional compat_freebsd32 compat/freebsd32/freebsd32_sysent.c optional compat_freebsd32 contrib/ck/src/ck_array.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_barrier_centralized.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_barrier_combining.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_barrier_dissemination.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_barrier_mcs.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_barrier_tournament.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_epoch.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_hp.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_hs.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_ht.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/ck/src/ck_rhs.c standard compile-with "${NORMAL_C} -I$S/contrib/ck/include" contrib/dev/acpica/common/ahids.c optional acpi acpi_debug contrib/dev/acpica/common/ahuuids.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbcmds.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbconvert.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbdisply.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbexec.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbhistry.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbinput.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbmethod.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbnames.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbobject.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbstats.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbtest.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbutils.c optional acpi acpi_debug contrib/dev/acpica/components/debugger/dbxface.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmbuffer.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmcstyle.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmdeferred.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmnames.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmopcode.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmresrc.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmresrcl.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmresrcl2.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmresrcs.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmutils.c optional acpi acpi_debug contrib/dev/acpica/components/disassembler/dmwalk.c optional acpi acpi_debug contrib/dev/acpica/components/dispatcher/dsargs.c optional acpi contrib/dev/acpica/components/dispatcher/dscontrol.c optional acpi contrib/dev/acpica/components/dispatcher/dsdebug.c optional acpi contrib/dev/acpica/components/dispatcher/dsfield.c optional acpi contrib/dev/acpica/components/dispatcher/dsinit.c optional acpi contrib/dev/acpica/components/dispatcher/dsmethod.c optional acpi contrib/dev/acpica/components/dispatcher/dsmthdat.c optional acpi contrib/dev/acpica/components/dispatcher/dsobject.c optional acpi contrib/dev/acpica/components/dispatcher/dsopcode.c optional acpi contrib/dev/acpica/components/dispatcher/dspkginit.c optional acpi contrib/dev/acpica/components/dispatcher/dsutils.c optional acpi contrib/dev/acpica/components/dispatcher/dswexec.c optional acpi contrib/dev/acpica/components/dispatcher/dswload.c optional acpi contrib/dev/acpica/components/dispatcher/dswload2.c optional acpi contrib/dev/acpica/components/dispatcher/dswscope.c optional acpi contrib/dev/acpica/components/dispatcher/dswstate.c optional acpi contrib/dev/acpica/components/events/evevent.c optional acpi contrib/dev/acpica/components/events/evglock.c optional acpi contrib/dev/acpica/components/events/evgpe.c optional acpi contrib/dev/acpica/components/events/evgpeblk.c optional acpi contrib/dev/acpica/components/events/evgpeinit.c optional acpi contrib/dev/acpica/components/events/evgpeutil.c optional acpi contrib/dev/acpica/components/events/evhandler.c optional acpi contrib/dev/acpica/components/events/evmisc.c optional acpi contrib/dev/acpica/components/events/evregion.c optional acpi contrib/dev/acpica/components/events/evrgnini.c optional acpi contrib/dev/acpica/components/events/evsci.c optional acpi contrib/dev/acpica/components/events/evxface.c optional acpi contrib/dev/acpica/components/events/evxfevnt.c optional acpi contrib/dev/acpica/components/events/evxfgpe.c optional acpi contrib/dev/acpica/components/events/evxfregn.c optional acpi contrib/dev/acpica/components/executer/exconcat.c optional acpi contrib/dev/acpica/components/executer/exconfig.c optional acpi contrib/dev/acpica/components/executer/exconvrt.c optional acpi contrib/dev/acpica/components/executer/excreate.c optional acpi contrib/dev/acpica/components/executer/exdebug.c optional acpi contrib/dev/acpica/components/executer/exdump.c optional acpi contrib/dev/acpica/components/executer/exfield.c optional acpi contrib/dev/acpica/components/executer/exfldio.c optional acpi contrib/dev/acpica/components/executer/exmisc.c optional acpi contrib/dev/acpica/components/executer/exmutex.c optional acpi contrib/dev/acpica/components/executer/exnames.c optional acpi contrib/dev/acpica/components/executer/exoparg1.c optional acpi contrib/dev/acpica/components/executer/exoparg2.c optional acpi contrib/dev/acpica/components/executer/exoparg3.c optional acpi contrib/dev/acpica/components/executer/exoparg6.c optional acpi contrib/dev/acpica/components/executer/exprep.c optional acpi contrib/dev/acpica/components/executer/exregion.c optional acpi contrib/dev/acpica/components/executer/exresnte.c optional acpi contrib/dev/acpica/components/executer/exresolv.c optional acpi contrib/dev/acpica/components/executer/exresop.c optional acpi contrib/dev/acpica/components/executer/exstore.c optional acpi contrib/dev/acpica/components/executer/exstoren.c optional acpi contrib/dev/acpica/components/executer/exstorob.c optional acpi contrib/dev/acpica/components/executer/exsystem.c optional acpi contrib/dev/acpica/components/executer/extrace.c optional acpi contrib/dev/acpica/components/executer/exutils.c optional acpi contrib/dev/acpica/components/hardware/hwacpi.c optional acpi contrib/dev/acpica/components/hardware/hwesleep.c optional acpi contrib/dev/acpica/components/hardware/hwgpe.c optional acpi contrib/dev/acpica/components/hardware/hwpci.c optional acpi contrib/dev/acpica/components/hardware/hwregs.c optional acpi contrib/dev/acpica/components/hardware/hwsleep.c optional acpi contrib/dev/acpica/components/hardware/hwtimer.c optional acpi contrib/dev/acpica/components/hardware/hwvalid.c optional acpi contrib/dev/acpica/components/hardware/hwxface.c optional acpi contrib/dev/acpica/components/hardware/hwxfsleep.c optional acpi contrib/dev/acpica/components/namespace/nsaccess.c optional acpi contrib/dev/acpica/components/namespace/nsalloc.c optional acpi contrib/dev/acpica/components/namespace/nsarguments.c optional acpi contrib/dev/acpica/components/namespace/nsconvert.c optional acpi contrib/dev/acpica/components/namespace/nsdump.c optional acpi contrib/dev/acpica/components/namespace/nseval.c optional acpi contrib/dev/acpica/components/namespace/nsinit.c optional acpi contrib/dev/acpica/components/namespace/nsload.c optional acpi contrib/dev/acpica/components/namespace/nsnames.c optional acpi contrib/dev/acpica/components/namespace/nsobject.c optional acpi contrib/dev/acpica/components/namespace/nsparse.c optional acpi contrib/dev/acpica/components/namespace/nspredef.c optional acpi contrib/dev/acpica/components/namespace/nsprepkg.c optional acpi contrib/dev/acpica/components/namespace/nsrepair.c optional acpi contrib/dev/acpica/components/namespace/nsrepair2.c optional acpi contrib/dev/acpica/components/namespace/nssearch.c optional acpi contrib/dev/acpica/components/namespace/nsutils.c optional acpi contrib/dev/acpica/components/namespace/nswalk.c optional acpi contrib/dev/acpica/components/namespace/nsxfeval.c optional acpi contrib/dev/acpica/components/namespace/nsxfname.c optional acpi contrib/dev/acpica/components/namespace/nsxfobj.c optional acpi contrib/dev/acpica/components/parser/psargs.c optional acpi contrib/dev/acpica/components/parser/psloop.c optional acpi contrib/dev/acpica/components/parser/psobject.c optional acpi contrib/dev/acpica/components/parser/psopcode.c optional acpi contrib/dev/acpica/components/parser/psopinfo.c optional acpi contrib/dev/acpica/components/parser/psparse.c optional acpi contrib/dev/acpica/components/parser/psscope.c optional acpi contrib/dev/acpica/components/parser/pstree.c optional acpi contrib/dev/acpica/components/parser/psutils.c optional acpi contrib/dev/acpica/components/parser/pswalk.c optional acpi contrib/dev/acpica/components/parser/psxface.c optional acpi contrib/dev/acpica/components/resources/rsaddr.c optional acpi contrib/dev/acpica/components/resources/rscalc.c optional acpi contrib/dev/acpica/components/resources/rscreate.c optional acpi contrib/dev/acpica/components/resources/rsdump.c optional acpi acpi_debug contrib/dev/acpica/components/resources/rsdumpinfo.c optional acpi contrib/dev/acpica/components/resources/rsinfo.c optional acpi contrib/dev/acpica/components/resources/rsio.c optional acpi contrib/dev/acpica/components/resources/rsirq.c optional acpi contrib/dev/acpica/components/resources/rslist.c optional acpi contrib/dev/acpica/components/resources/rsmemory.c optional acpi contrib/dev/acpica/components/resources/rsmisc.c optional acpi contrib/dev/acpica/components/resources/rsserial.c optional acpi contrib/dev/acpica/components/resources/rsutils.c optional acpi contrib/dev/acpica/components/resources/rsxface.c optional acpi contrib/dev/acpica/components/tables/tbdata.c optional acpi contrib/dev/acpica/components/tables/tbfadt.c optional acpi contrib/dev/acpica/components/tables/tbfind.c optional acpi contrib/dev/acpica/components/tables/tbinstal.c optional acpi contrib/dev/acpica/components/tables/tbprint.c optional acpi contrib/dev/acpica/components/tables/tbutils.c optional acpi contrib/dev/acpica/components/tables/tbxface.c optional acpi contrib/dev/acpica/components/tables/tbxfload.c optional acpi contrib/dev/acpica/components/tables/tbxfroot.c optional acpi contrib/dev/acpica/components/utilities/utaddress.c optional acpi contrib/dev/acpica/components/utilities/utalloc.c optional acpi contrib/dev/acpica/components/utilities/utascii.c optional acpi contrib/dev/acpica/components/utilities/utbuffer.c optional acpi contrib/dev/acpica/components/utilities/utcache.c optional acpi contrib/dev/acpica/components/utilities/utcopy.c optional acpi contrib/dev/acpica/components/utilities/utdebug.c optional acpi contrib/dev/acpica/components/utilities/utdecode.c optional acpi contrib/dev/acpica/components/utilities/utdelete.c optional acpi contrib/dev/acpica/components/utilities/uterror.c optional acpi contrib/dev/acpica/components/utilities/uteval.c optional acpi contrib/dev/acpica/components/utilities/utexcep.c optional acpi contrib/dev/acpica/components/utilities/utglobal.c optional acpi contrib/dev/acpica/components/utilities/uthex.c optional acpi contrib/dev/acpica/components/utilities/utids.c optional acpi contrib/dev/acpica/components/utilities/utinit.c optional acpi contrib/dev/acpica/components/utilities/utlock.c optional acpi contrib/dev/acpica/components/utilities/utmath.c optional acpi contrib/dev/acpica/components/utilities/utmisc.c optional acpi contrib/dev/acpica/components/utilities/utmutex.c optional acpi contrib/dev/acpica/components/utilities/utnonansi.c optional acpi contrib/dev/acpica/components/utilities/utobject.c optional acpi contrib/dev/acpica/components/utilities/utosi.c optional acpi contrib/dev/acpica/components/utilities/utownerid.c optional acpi contrib/dev/acpica/components/utilities/utpredef.c optional acpi contrib/dev/acpica/components/utilities/utresdecode.c optional acpi acpi_debug contrib/dev/acpica/components/utilities/utresrc.c optional acpi contrib/dev/acpica/components/utilities/utstate.c optional acpi contrib/dev/acpica/components/utilities/utstring.c optional acpi contrib/dev/acpica/components/utilities/utstrsuppt.c optional acpi contrib/dev/acpica/components/utilities/utstrtoul64.c optional acpi contrib/dev/acpica/components/utilities/utuuid.c optional acpi acpi_debug contrib/dev/acpica/components/utilities/utxface.c optional acpi contrib/dev/acpica/components/utilities/utxferror.c optional acpi contrib/dev/acpica/components/utilities/utxfinit.c optional acpi contrib/dev/acpica/os_specific/service_layers/osgendbg.c optional acpi acpi_debug contrib/ipfilter/netinet/fil.c optional ipfilter inet \ compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_auth.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_fil_freebsd.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_frag.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_log.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_nat.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_proxy.c optional ipfilter inet \ compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_state.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_lookup.c optional ipfilter inet \ compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN} -Wno-unused -Wno-error -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_pool.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_htable.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_sync.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/mlfk_ipl.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_nat6.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_rules.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_scan.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/ip_dstlist.c optional ipfilter inet \ compile-with "${NORMAL_C} -Wno-unused -I$S/contrib/ipfilter" contrib/ipfilter/netinet/radix_ipf.c optional ipfilter inet \ compile-with "${NORMAL_C} -I$S/contrib/ipfilter" contrib/libfdt/fdt.c optional fdt contrib/libfdt/fdt_ro.c optional fdt contrib/libfdt/fdt_rw.c optional fdt contrib/libfdt/fdt_strerror.c optional fdt contrib/libfdt/fdt_sw.c optional fdt contrib/libfdt/fdt_wip.c optional fdt contrib/libnv/cnvlist.c standard contrib/libnv/dnvlist.c standard contrib/libnv/nvlist.c standard contrib/libnv/nvpair.c standard contrib/ngatm/netnatm/api/cc_conn.c optional ngatm_ccatm \ compile-with "${NORMAL_C_NOWERROR} -I$S/contrib/ngatm" contrib/ngatm/netnatm/api/cc_data.c optional ngatm_ccatm \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/api/cc_dump.c optional ngatm_ccatm \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/api/cc_port.c optional ngatm_ccatm \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/api/cc_sig.c optional ngatm_ccatm \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/api/cc_user.c optional ngatm_ccatm \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/api/unisap.c optional ngatm_ccatm \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/misc/straddr.c optional ngatm_atmbase \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/misc/unimsg_common.c optional ngatm_atmbase \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/msg/traffic.c optional ngatm_atmbase \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/msg/uni_ie.c optional ngatm_atmbase \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/msg/uni_msg.c optional ngatm_atmbase \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/saal/saal_sscfu.c optional ngatm_sscfu \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/saal/saal_sscop.c optional ngatm_sscop \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_call.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_coord.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_party.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_print.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_reset.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_uni.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_unimsgcpy.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" # Zstd contrib/zstd/lib/freebsd/zstd_kmalloc.c standard compile-with ${ZSTD_C} contrib/zstd/lib/common/zstd_common.c standard compile-with ${ZSTD_C} contrib/zstd/lib/common/fse_decompress.c standard compile-with ${ZSTD_C} contrib/zstd/lib/common/entropy_common.c standard compile-with ${ZSTD_C} contrib/zstd/lib/common/error_private.c standard compile-with ${ZSTD_C} contrib/zstd/lib/common/xxhash.c standard compile-with ${ZSTD_C} contrib/zstd/lib/compress/zstd_compress.c standard compile-with ${ZSTD_C} contrib/zstd/lib/compress/fse_compress.c standard compile-with ${ZSTD_C} contrib/zstd/lib/compress/huf_compress.c standard compile-with ${ZSTD_C} contrib/zstd/lib/compress/zstd_double_fast.c standard compile-with ${ZSTD_C} contrib/zstd/lib/compress/zstd_fast.c standard compile-with ${ZSTD_C} contrib/zstd/lib/compress/zstd_lazy.c standard compile-with ${ZSTD_C} contrib/zstd/lib/compress/zstd_ldm.c standard compile-with ${ZSTD_C} contrib/zstd/lib/compress/zstd_opt.c standard compile-with ${ZSTD_C} contrib/zstd/lib/decompress/zstd_decompress.c standard compile-with ${ZSTD_C} contrib/zstd/lib/decompress/huf_decompress.c standard compile-with ${ZSTD_C} # Blake 2 contrib/libb2/blake2b-ref.c optional crypto | ipsec | ipsec_support \ compile-with "${NORMAL_C} -I$S/crypto/blake2 -Wno-cast-qual -DSUFFIX=_ref -Wno-unused-function" contrib/libb2/blake2s-ref.c optional crypto | ipsec | ipsec_support \ compile-with "${NORMAL_C} -I$S/crypto/blake2 -Wno-cast-qual -DSUFFIX=_ref -Wno-unused-function" crypto/blake2/blake2-sw.c optional crypto | ipsec | ipsec_support \ compile-with "${NORMAL_C} -I$S/crypto/blake2 -Wno-cast-qual" crypto/blowfish/bf_ecb.c optional ipsec | ipsec_support crypto/blowfish/bf_skey.c optional crypto | ipsec | ipsec_support crypto/camellia/camellia.c optional crypto | ipsec | ipsec_support crypto/camellia/camellia-api.c optional crypto | ipsec | ipsec_support crypto/chacha20/chacha.c optional crypto | ipsec | ipsec_support crypto/chacha20/chacha-sw.c optional crypto | ipsec | ipsec_support crypto/des/des_ecb.c optional crypto | ipsec | ipsec_support | netsmb crypto/des/des_setkey.c optional crypto | ipsec | ipsec_support | netsmb crypto/rc4/rc4.c optional netgraph_mppc_encryption | kgssapi crypto/rijndael/rijndael-alg-fst.c optional crypto | ekcd | geom_bde | \ ipsec | ipsec_support | random !random_loadable | wlan_ccmp crypto/rijndael/rijndael-api-fst.c optional ekcd | geom_bde | random !random_loadable crypto/rijndael/rijndael-api.c optional crypto | ipsec | ipsec_support | \ wlan_ccmp crypto/sha1.c optional carp | crypto | ipsec | \ ipsec_support | netgraph_mppc_encryption | sctp crypto/sha2/sha256c.c optional crypto | ekcd | geom_bde | ipsec | \ ipsec_support | random !random_loadable | sctp | zfs crypto/sha2/sha512c.c optional crypto | geom_bde | ipsec | \ ipsec_support | zfs crypto/skein/skein.c optional crypto | zfs crypto/skein/skein_block.c optional crypto | zfs crypto/siphash/siphash.c optional inet | inet6 crypto/siphash/siphash_test.c optional inet | inet6 ddb/db_access.c optional ddb ddb/db_break.c optional ddb ddb/db_capture.c optional ddb ddb/db_command.c optional ddb ddb/db_examine.c optional ddb ddb/db_expr.c optional ddb ddb/db_input.c optional ddb ddb/db_lex.c optional ddb ddb/db_main.c optional ddb ddb/db_output.c optional ddb ddb/db_print.c optional ddb ddb/db_ps.c optional ddb ddb/db_run.c optional ddb ddb/db_script.c optional ddb ddb/db_sym.c optional ddb ddb/db_thread.c optional ddb ddb/db_textdump.c optional ddb ddb/db_variables.c optional ddb ddb/db_watch.c optional ddb ddb/db_write_cmd.c optional ddb dev/aac/aac.c optional aac dev/aac/aac_cam.c optional aacp aac dev/aac/aac_debug.c optional aac dev/aac/aac_disk.c optional aac dev/aac/aac_linux.c optional aac compat_linux dev/aac/aac_pci.c optional aac pci dev/aacraid/aacraid.c optional aacraid dev/aacraid/aacraid_cam.c optional aacraid scbus dev/aacraid/aacraid_debug.c optional aacraid dev/aacraid/aacraid_linux.c optional aacraid compat_linux dev/aacraid/aacraid_pci.c optional aacraid pci dev/acpi_support/acpi_wmi.c optional acpi_wmi acpi dev/acpi_support/acpi_asus.c optional acpi_asus acpi dev/acpi_support/acpi_asus_wmi.c optional acpi_asus_wmi acpi dev/acpi_support/acpi_fujitsu.c optional acpi_fujitsu acpi dev/acpi_support/acpi_hp.c optional acpi_hp acpi dev/acpi_support/acpi_ibm.c optional acpi_ibm acpi dev/acpi_support/acpi_panasonic.c optional acpi_panasonic acpi dev/acpi_support/acpi_sony.c optional acpi_sony acpi dev/acpi_support/acpi_toshiba.c optional acpi_toshiba acpi dev/acpi_support/atk0110.c optional aibs acpi dev/acpica/Osd/OsdDebug.c optional acpi dev/acpica/Osd/OsdHardware.c optional acpi dev/acpica/Osd/OsdInterrupt.c optional acpi dev/acpica/Osd/OsdMemory.c optional acpi dev/acpica/Osd/OsdSchedule.c optional acpi dev/acpica/Osd/OsdStream.c optional acpi dev/acpica/Osd/OsdSynch.c optional acpi dev/acpica/Osd/OsdTable.c optional acpi dev/acpica/acpi.c optional acpi dev/acpica/acpi_acad.c optional acpi dev/acpica/acpi_battery.c optional acpi dev/acpica/acpi_button.c optional acpi dev/acpica/acpi_cmbat.c optional acpi dev/acpica/acpi_cpu.c optional acpi dev/acpica/acpi_ec.c optional acpi dev/acpica/acpi_isab.c optional acpi isa dev/acpica/acpi_lid.c optional acpi dev/acpica/acpi_package.c optional acpi dev/acpica/acpi_perf.c optional acpi dev/acpica/acpi_powerres.c optional acpi dev/acpica/acpi_quirk.c optional acpi dev/acpica/acpi_resource.c optional acpi dev/acpica/acpi_container.c optional acpi dev/acpica/acpi_smbat.c optional acpi dev/acpica/acpi_thermal.c optional acpi dev/acpica/acpi_throttle.c optional acpi dev/acpica/acpi_video.c optional acpi_video acpi dev/acpica/acpi_dock.c optional acpi_dock acpi dev/adlink/adlink.c optional adlink dev/advansys/adv_pci.c optional adv pci dev/advansys/advansys.c optional adv dev/advansys/advlib.c optional adv dev/advansys/advmcode.c optional adv dev/advansys/adw_pci.c optional adw pci dev/advansys/adwcam.c optional adw dev/advansys/adwlib.c optional adw dev/advansys/adwmcode.c optional adw dev/ae/if_ae.c optional ae pci dev/age/if_age.c optional age pci dev/agp/agp.c optional agp pci dev/agp/agp_if.m optional agp pci dev/aha/aha.c optional aha dev/aha/aha_isa.c optional aha isa dev/ahci/ahci.c optional ahci dev/ahci/ahciem.c optional ahci dev/ahci/ahci_pci.c optional ahci pci dev/aic/aic.c optional aic dev/aic/aic_pccard.c optional aic pccard dev/aic7xxx/ahc_isa.c optional ahc isa dev/aic7xxx/ahc_pci.c optional ahc pci \ compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION}" dev/aic7xxx/ahd_pci.c optional ahd pci \ compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION}" dev/aic7xxx/aic7770.c optional ahc dev/aic7xxx/aic79xx.c optional ahd pci dev/aic7xxx/aic79xx_osm.c optional ahd pci dev/aic7xxx/aic79xx_pci.c optional ahd pci dev/aic7xxx/aic79xx_reg_print.c optional ahd pci ahd_reg_pretty_print dev/aic7xxx/aic7xxx.c optional ahc dev/aic7xxx/aic7xxx_93cx6.c optional ahc dev/aic7xxx/aic7xxx_osm.c optional ahc dev/aic7xxx/aic7xxx_pci.c optional ahc pci dev/aic7xxx/aic7xxx_reg_print.c optional ahc ahc_reg_pretty_print dev/al_eth/al_eth.c optional al_eth fdt \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" dev/al_eth/al_init_eth_lm.c optional al_eth fdt \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" dev/al_eth/al_init_eth_kr.c optional al_eth fdt \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/al_hal_iofic.c optional al_iofic \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/al_hal_serdes_25g.c optional al_serdes \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/al_hal_serdes_hssp.c optional al_serdes \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/al_hal_udma_config.c optional al_udma \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/al_hal_udma_debug.c optional al_udma \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/al_hal_udma_iofic.c optional al_udma \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/al_hal_udma_main.c optional al_udma \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/al_serdes.c optional al_serdes \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/eth/al_hal_eth_kr.c optional al_eth \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" contrib/alpine-hal/eth/al_hal_eth_main.c optional al_eth \ no-depend \ compile-with "${CC} -c -o ${.TARGET} ${CFLAGS} -I$S/contrib/alpine-hal -I$S/contrib/alpine-hal/eth ${PROF} ${.IMPSRC}" dev/alc/if_alc.c optional alc pci dev/ale/if_ale.c optional ale pci dev/alpm/alpm.c optional alpm pci dev/altera/avgen/altera_avgen.c optional altera_avgen dev/altera/avgen/altera_avgen_fdt.c optional altera_avgen fdt dev/altera/avgen/altera_avgen_nexus.c optional altera_avgen dev/altera/msgdma/msgdma.c optional altera_msgdma xdma dev/altera/sdcard/altera_sdcard.c optional altera_sdcard dev/altera/sdcard/altera_sdcard_disk.c optional altera_sdcard dev/altera/sdcard/altera_sdcard_io.c optional altera_sdcard dev/altera/sdcard/altera_sdcard_fdt.c optional altera_sdcard fdt dev/altera/sdcard/altera_sdcard_nexus.c optional altera_sdcard dev/altera/softdma/softdma.c optional altera_softdma xdma fdt dev/altera/pio/pio.c optional altera_pio dev/altera/pio/pio_if.m optional altera_pio dev/amdpm/amdpm.c optional amdpm pci | nfpm pci dev/amdsmb/amdsmb.c optional amdsmb pci dev/amr/amr.c optional amr dev/amr/amr_cam.c optional amrp amr dev/amr/amr_disk.c optional amr dev/amr/amr_linux.c optional amr compat_linux dev/amr/amr_pci.c optional amr pci dev/an/if_an.c optional an dev/an/if_an_isa.c optional an isa dev/an/if_an_pccard.c optional an pccard dev/an/if_an_pci.c optional an pci # dev/ata/ata_if.m optional ata | atacore dev/ata/ata-all.c optional ata | atacore dev/ata/ata-dma.c optional ata | atacore dev/ata/ata-lowlevel.c optional ata | atacore dev/ata/ata-sata.c optional ata | atacore dev/ata/ata-card.c optional ata pccard | atapccard dev/ata/ata-isa.c optional ata isa | ataisa dev/ata/ata-pci.c optional ata pci | atapci dev/ata/chipsets/ata-acard.c optional ata pci | ataacard dev/ata/chipsets/ata-acerlabs.c optional ata pci | ataacerlabs dev/ata/chipsets/ata-amd.c optional ata pci | ataamd dev/ata/chipsets/ata-ati.c optional ata pci | ataati dev/ata/chipsets/ata-cenatek.c optional ata pci | atacenatek dev/ata/chipsets/ata-cypress.c optional ata pci | atacypress dev/ata/chipsets/ata-cyrix.c optional ata pci | atacyrix dev/ata/chipsets/ata-highpoint.c optional ata pci | atahighpoint dev/ata/chipsets/ata-intel.c optional ata pci | ataintel dev/ata/chipsets/ata-ite.c optional ata pci | ataite dev/ata/chipsets/ata-jmicron.c optional ata pci | atajmicron dev/ata/chipsets/ata-marvell.c optional ata pci | atamarvell dev/ata/chipsets/ata-micron.c optional ata pci | atamicron dev/ata/chipsets/ata-national.c optional ata pci | atanational dev/ata/chipsets/ata-netcell.c optional ata pci | atanetcell dev/ata/chipsets/ata-nvidia.c optional ata pci | atanvidia dev/ata/chipsets/ata-promise.c optional ata pci | atapromise dev/ata/chipsets/ata-serverworks.c optional ata pci | ataserverworks dev/ata/chipsets/ata-siliconimage.c optional ata pci | atasiliconimage | ataati dev/ata/chipsets/ata-sis.c optional ata pci | atasis dev/ata/chipsets/ata-via.c optional ata pci | atavia # dev/ath/if_ath_pci.c optional ath_pci pci \ compile-with "${NORMAL_C} -I$S/dev/ath" # dev/ath/if_ath_ahb.c optional ath_ahb \ compile-with "${NORMAL_C} -I$S/dev/ath" # dev/ath/if_ath.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_alq.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_beacon.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_btcoex.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_btcoex_mci.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_debug.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_descdma.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_keycache.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_ioctl.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_led.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_lna_div.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_tx.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_tx_edma.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_tx_ht.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_tdma.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_sysctl.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_rx.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_rx_edma.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/if_ath_spectral.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/ah_osdep.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" # dev/ath/ath_hal/ah.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/ath_hal/ah_eeprom_v1.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/ath_hal/ah_eeprom_v3.c optional ath_hal | ath_ar5211 | ath_ar5212 \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/ath_hal/ah_eeprom_v14.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/ath_hal/ah_eeprom_v4k.c \ optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/ath_hal/ah_eeprom_9287.c \ optional ath_hal | ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/ath_hal/ah_regdomain.c optional ath \ compile-with "${NORMAL_C} ${NO_WSHIFT_COUNT_NEGATIVE} ${NO_WSHIFT_COUNT_OVERFLOW} -I$S/dev/ath" # ar5210 dev/ath/ath_hal/ar5210/ar5210_attach.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5210/ar5210_beacon.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5210/ar5210_interrupts.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5210/ar5210_keycache.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5210/ar5210_misc.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5210/ar5210_phy.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5210/ar5210_power.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5210/ar5210_recv.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5210/ar5210_reset.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5210/ar5210_xmit.c optional ath_hal | ath_ar5210 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ar5211 dev/ath/ath_hal/ar5211/ar5211_attach.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5211/ar5211_beacon.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5211/ar5211_interrupts.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5211/ar5211_keycache.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5211/ar5211_misc.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5211/ar5211_phy.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5211/ar5211_power.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5211/ar5211_recv.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5211/ar5211_reset.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5211/ar5211_xmit.c optional ath_hal | ath_ar5211 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ar5212 dev/ath/ath_hal/ar5212/ar5212_ani.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_attach.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_beacon.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_eeprom.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_gpio.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_interrupts.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_keycache.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_misc.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_phy.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_power.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_recv.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_reset.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_rfgain.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5212_xmit.c \ optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 | ath_ar9280 | \ ath_ar9285 ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ar5416 (depends on ar5212) dev/ath/ath_hal/ar5416/ar5416_ani.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_attach.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_beacon.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_btcoex.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_cal.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_cal_iq.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_eeprom.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_gpio.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_interrupts.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_keycache.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_misc.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_phy.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_power.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_radar.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_recv.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_reset.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_spectral.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar5416_xmit.c \ optional ath_hal | ath_ar5416 | ath_ar9160 | ath_ar9280 | ath_ar9285 | \ ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ar9130 (depends upon ar5416) - also requires AH_SUPPORT_AR9130 # # Since this is an embedded MAC SoC, there's no need to compile it into the # default HAL. dev/ath/ath_hal/ar9001/ar9130_attach.c optional ath_ar9130 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9001/ar9130_phy.c optional ath_ar9130 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9001/ar9130_eeprom.c optional ath_ar9130 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ar9160 (depends on ar5416) dev/ath/ath_hal/ar9001/ar9160_attach.c optional ath_hal | ath_ar9160 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ar9280 (depends on ar5416) dev/ath/ath_hal/ar9002/ar9280_attach.c optional ath_hal | ath_ar9280 | \ ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9280_olc.c optional ath_hal | ath_ar9280 | \ ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ar9285 (depends on ar5416 and ar9280) dev/ath/ath_hal/ar9002/ar9285_attach.c optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9285_btcoex.c optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9285_reset.c optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9285_cal.c optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9285_phy.c optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9285_diversity.c optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ar9287 (depends on ar5416) dev/ath/ath_hal/ar9002/ar9287_attach.c optional ath_hal | ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9287_reset.c optional ath_hal | ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9287_cal.c optional ath_hal | ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9287_olc.c optional ath_hal | ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ar9300 contrib/dev/ath/ath_hal/ar9300/ar9300_ani.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_beacon.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_eeprom.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal ${NO_WCONSTANT_CONVERSION}" contrib/dev/ath/ath_hal/ar9300/ar9300_freebsd.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_gpio.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_interrupts.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_keycache.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_mci.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_misc.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_paprd.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_phy.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_power.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_radar.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_radio.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_recv.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_recv_ds.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_reset.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal ${NO_WSOMETIMES_UNINITIALIZED} -Wno-unused-function" contrib/dev/ath/ath_hal/ar9300/ar9300_stub.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_stub_funcs.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_spectral.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_timer.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_xmit.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c optional ath_hal | ath_ar9300 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal -I$S/contrib/dev/ath/ath_hal" # rf backends dev/ath/ath_hal/ar5212/ar2316.c optional ath_rf2316 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar2317.c optional ath_rf2317 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar2413.c optional ath_hal | ath_rf2413 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar2425.c optional ath_hal | ath_rf2425 | ath_rf2417 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5111.c optional ath_hal | ath_rf5111 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5112.c optional ath_hal | ath_rf5112 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5212/ar5413.c optional ath_hal | ath_rf5413 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar5416/ar2133.c optional ath_hal | ath_ar5416 | \ ath_ar9130 | ath_ar9160 | ath_ar9280 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9280.c optional ath_hal | ath_ar9280 | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9285.c optional ath_hal | ath_ar9285 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" dev/ath/ath_hal/ar9002/ar9287.c optional ath_hal | ath_ar9287 \ compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal" # ath rate control algorithms dev/ath/ath_rate/amrr/amrr.c optional ath_rate_amrr \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/ath_rate/onoe/onoe.c optional ath_rate_onoe \ compile-with "${NORMAL_C} -I$S/dev/ath" dev/ath/ath_rate/sample/sample.c optional ath_rate_sample \ compile-with "${NORMAL_C} -I$S/dev/ath" # ath DFS modules dev/ath/ath_dfs/null/dfs_null.c optional ath \ compile-with "${NORMAL_C} -I$S/dev/ath" # dev/bce/if_bce.c optional bce dev/bfe/if_bfe.c optional bfe dev/bge/if_bge.c optional bge dev/bhnd/bhnd.c optional bhnd dev/bhnd/bhnd_erom.c optional bhnd dev/bhnd/bhnd_erom_if.m optional bhnd dev/bhnd/bhnd_subr.c optional bhnd dev/bhnd/bhnd_bus_if.m optional bhnd dev/bhnd/bhndb/bhnd_bhndb.c optional bhndb bhnd dev/bhnd/bhndb/bhndb.c optional bhndb bhnd dev/bhnd/bhndb/bhndb_bus_if.m optional bhndb bhnd dev/bhnd/bhndb/bhndb_hwdata.c optional bhndb bhnd dev/bhnd/bhndb/bhndb_if.m optional bhndb bhnd dev/bhnd/bhndb/bhndb_pci.c optional bhndb_pci bhndb bhnd pci dev/bhnd/bhndb/bhndb_pci_hwdata.c optional bhndb_pci bhndb bhnd pci dev/bhnd/bhndb/bhndb_pci_sprom.c optional bhndb_pci bhndb bhnd pci dev/bhnd/bhndb/bhndb_subr.c optional bhndb bhnd dev/bhnd/bcma/bcma.c optional bcma bhnd dev/bhnd/bcma/bcma_bhndb.c optional bcma bhnd bhndb dev/bhnd/bcma/bcma_erom.c optional bcma bhnd dev/bhnd/bcma/bcma_subr.c optional bcma bhnd dev/bhnd/cores/chipc/bhnd_chipc_if.m optional bhnd dev/bhnd/cores/chipc/bhnd_sprom_chipc.c optional bhnd dev/bhnd/cores/chipc/bhnd_pmu_chipc.c optional bhnd dev/bhnd/cores/chipc/chipc.c optional bhnd dev/bhnd/cores/chipc/chipc_cfi.c optional bhnd cfi dev/bhnd/cores/chipc/chipc_gpio.c optional bhnd gpio dev/bhnd/cores/chipc/chipc_slicer.c optional bhnd cfi | bhnd spibus dev/bhnd/cores/chipc/chipc_spi.c optional bhnd spibus dev/bhnd/cores/chipc/chipc_subr.c optional bhnd dev/bhnd/cores/chipc/pwrctl/bhnd_pwrctl.c optional bhnd dev/bhnd/cores/chipc/pwrctl/bhnd_pwrctl_if.m optional bhnd dev/bhnd/cores/chipc/pwrctl/bhnd_pwrctl_hostb_if.m optional bhnd dev/bhnd/cores/chipc/pwrctl/bhnd_pwrctl_subr.c optional bhnd dev/bhnd/cores/pci/bhnd_pci.c optional bhnd pci dev/bhnd/cores/pci/bhnd_pci_hostb.c optional bhndb bhnd pci dev/bhnd/cores/pci/bhnd_pcib.c optional bhnd_pcib bhnd pci dev/bhnd/cores/pcie2/bhnd_pcie2.c optional bhnd pci dev/bhnd/cores/pcie2/bhnd_pcie2_hostb.c optional bhndb bhnd pci dev/bhnd/cores/pcie2/bhnd_pcie2b.c optional bhnd_pcie2b bhnd pci dev/bhnd/cores/pmu/bhnd_pmu.c optional bhnd dev/bhnd/cores/pmu/bhnd_pmu_core.c optional bhnd dev/bhnd/cores/pmu/bhnd_pmu_if.m optional bhnd dev/bhnd/cores/pmu/bhnd_pmu_subr.c optional bhnd dev/bhnd/nvram/bhnd_nvram_data.c optional bhnd dev/bhnd/nvram/bhnd_nvram_data_bcm.c optional bhnd dev/bhnd/nvram/bhnd_nvram_data_bcmraw.c optional bhnd dev/bhnd/nvram/bhnd_nvram_data_btxt.c optional bhnd dev/bhnd/nvram/bhnd_nvram_data_sprom.c optional bhnd dev/bhnd/nvram/bhnd_nvram_data_sprom_subr.c optional bhnd dev/bhnd/nvram/bhnd_nvram_data_tlv.c optional bhnd dev/bhnd/nvram/bhnd_nvram_if.m optional bhnd dev/bhnd/nvram/bhnd_nvram_io.c optional bhnd dev/bhnd/nvram/bhnd_nvram_iobuf.c optional bhnd dev/bhnd/nvram/bhnd_nvram_ioptr.c optional bhnd dev/bhnd/nvram/bhnd_nvram_iores.c optional bhnd dev/bhnd/nvram/bhnd_nvram_plist.c optional bhnd dev/bhnd/nvram/bhnd_nvram_store.c optional bhnd dev/bhnd/nvram/bhnd_nvram_store_subr.c optional bhnd dev/bhnd/nvram/bhnd_nvram_subr.c optional bhnd dev/bhnd/nvram/bhnd_nvram_value.c optional bhnd dev/bhnd/nvram/bhnd_nvram_value_fmts.c optional bhnd dev/bhnd/nvram/bhnd_nvram_value_prf.c optional bhnd dev/bhnd/nvram/bhnd_nvram_value_subr.c optional bhnd dev/bhnd/nvram/bhnd_sprom.c optional bhnd dev/bhnd/siba/siba.c optional siba bhnd dev/bhnd/siba/siba_bhndb.c optional siba bhnd bhndb dev/bhnd/siba/siba_erom.c optional siba bhnd dev/bhnd/siba/siba_subr.c optional siba bhnd # dev/bktr/bktr_audio.c optional bktr pci dev/bktr/bktr_card.c optional bktr pci dev/bktr/bktr_core.c optional bktr pci dev/bktr/bktr_i2c.c optional bktr pci smbus dev/bktr/bktr_os.c optional bktr pci dev/bktr/bktr_tuner.c optional bktr pci dev/bktr/msp34xx.c optional bktr pci dev/bnxt/bnxt_hwrm.c optional bnxt iflib pci dev/bnxt/bnxt_sysctl.c optional bnxt iflib pci dev/bnxt/bnxt_txrx.c optional bnxt iflib pci dev/bnxt/if_bnxt.c optional bnxt iflib pci dev/buslogic/bt.c optional bt dev/buslogic/bt_isa.c optional bt isa dev/buslogic/bt_pci.c optional bt pci dev/bwi/bwimac.c optional bwi dev/bwi/bwiphy.c optional bwi dev/bwi/bwirf.c optional bwi dev/bwi/if_bwi.c optional bwi dev/bwi/if_bwi_pci.c optional bwi pci dev/bwn/if_bwn.c optional bwn bhnd dev/bwn/if_bwn_pci.c optional bwn pci bhnd bhndb bhndb_pci dev/bwn/if_bwn_phy_common.c optional bwn bhnd dev/bwn/if_bwn_phy_g.c optional bwn bhnd dev/bwn/if_bwn_phy_lp.c optional bwn bhnd dev/bwn/if_bwn_phy_n.c optional bwn bhnd dev/bwn/if_bwn_util.c optional bwn bhnd dev/cardbus/cardbus.c optional cardbus dev/cardbus/cardbus_cis.c optional cardbus dev/cardbus/cardbus_device.c optional cardbus dev/cas/if_cas.c optional cas dev/cfi/cfi_bus_fdt.c optional cfi fdt dev/cfi/cfi_bus_nexus.c optional cfi dev/cfi/cfi_core.c optional cfi dev/cfi/cfi_dev.c optional cfi dev/cfi/cfi_disk.c optional cfid dev/chromebook_platform/chromebook_platform.c optional chromebook_platform dev/ciss/ciss.c optional ciss dev/cmx/cmx.c optional cmx dev/cmx/cmx_pccard.c optional cmx pccard dev/cpufreq/ichss.c optional cpufreq pci dev/cs/if_cs.c optional cs dev/cs/if_cs_isa.c optional cs isa dev/cs/if_cs_pccard.c optional cs pccard dev/cxgb/cxgb_main.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/cxgb_sge.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_mc5.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_vsc7323.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_vsc8211.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_ael1002.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_aq100x.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_mv88e1xxx.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_xgmac.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_t3_hw.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/common/cxgb_tn1010.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/sys/uipc_mvec.c optional cxgb pci \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgb/cxgb_t3fw.c optional cxgb cxgb_t3fw \ compile-with "${NORMAL_C} -I$S/dev/cxgb" dev/cxgbe/t4_filter.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_if.m optional cxgbe pci dev/cxgbe/t4_iov.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_mp_ring.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_main.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_netmap.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_sched.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_sge.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_l2t.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_tracer.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/t4_vf.c optional cxgbev pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/common/t4_hw.c optional cxgbe pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/common/t4vf_hw.c optional cxgbev pci \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/cudbg/cudbg_common.c optional cxgbe \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/cudbg/cudbg_flash_utils.c optional cxgbe \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/cudbg/cudbg_lib.c optional cxgbe \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/cudbg/cudbg_wtp.c optional cxgbe \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/cudbg/fastlz.c optional cxgbe \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cxgbe/cudbg/fastlz_api.c optional cxgbe \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" t4fw_cfg.c optional cxgbe \ compile-with "${AWK} -f $S/tools/fw_stub.awk t4fw_cfg.fw:t4fw_cfg t4fw_cfg_uwire.fw:t4fw_cfg_uwire t4fw.fw:t4fw -mt4fw_cfg -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "t4fw_cfg.c" t4fw_cfg.fwo optional cxgbe \ dependency "t4fw_cfg.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "t4fw_cfg.fwo" t4fw_cfg.fw optional cxgbe \ dependency "$S/dev/cxgbe/firmware/t4fw_cfg.txt" \ compile-with "${CP} ${.ALLSRC} ${.TARGET}" \ no-obj no-implicit-rule \ clean "t4fw_cfg.fw" t4fw_cfg_uwire.fwo optional cxgbe \ dependency "t4fw_cfg_uwire.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "t4fw_cfg_uwire.fwo" t4fw_cfg_uwire.fw optional cxgbe \ dependency "$S/dev/cxgbe/firmware/t4fw_cfg_uwire.txt" \ compile-with "${CP} ${.ALLSRC} ${.TARGET}" \ no-obj no-implicit-rule \ clean "t4fw_cfg_uwire.fw" t4fw.fwo optional cxgbe \ dependency "t4fw.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "t4fw.fwo" t4fw.fw optional cxgbe \ dependency "$S/dev/cxgbe/firmware/t4fw-1.19.1.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t4fw.fw" t5fw_cfg.c optional cxgbe \ compile-with "${AWK} -f $S/tools/fw_stub.awk t5fw_cfg.fw:t5fw_cfg t5fw_cfg_uwire.fw:t5fw_cfg_uwire t5fw.fw:t5fw -mt5fw_cfg -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "t5fw_cfg.c" t5fw_cfg.fwo optional cxgbe \ dependency "t5fw_cfg.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "t5fw_cfg.fwo" t5fw_cfg.fw optional cxgbe \ dependency "$S/dev/cxgbe/firmware/t5fw_cfg.txt" \ compile-with "${CP} ${.ALLSRC} ${.TARGET}" \ no-obj no-implicit-rule \ clean "t5fw_cfg.fw" t5fw_cfg_uwire.fwo optional cxgbe \ dependency "t5fw_cfg_uwire.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "t5fw_cfg_uwire.fwo" t5fw_cfg_uwire.fw optional cxgbe \ dependency "$S/dev/cxgbe/firmware/t5fw_cfg_uwire.txt" \ compile-with "${CP} ${.ALLSRC} ${.TARGET}" \ no-obj no-implicit-rule \ clean "t5fw_cfg_uwire.fw" t5fw.fwo optional cxgbe \ dependency "t5fw.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "t5fw.fwo" t5fw.fw optional cxgbe \ dependency "$S/dev/cxgbe/firmware/t5fw-1.19.1.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t5fw.fw" t6fw_cfg.c optional cxgbe \ compile-with "${AWK} -f $S/tools/fw_stub.awk t6fw_cfg.fw:t6fw_cfg t6fw_cfg_uwire.fw:t6fw_cfg_uwire t6fw.fw:t6fw -mt6fw_cfg -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "t6fw_cfg.c" t6fw_cfg.fwo optional cxgbe \ dependency "t6fw_cfg.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "t6fw_cfg.fwo" t6fw_cfg.fw optional cxgbe \ dependency "$S/dev/cxgbe/firmware/t6fw_cfg.txt" \ compile-with "${CP} ${.ALLSRC} ${.TARGET}" \ no-obj no-implicit-rule \ clean "t6fw_cfg.fw" t6fw_cfg_uwire.fwo optional cxgbe \ dependency "t6fw_cfg_uwire.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "t6fw_cfg_uwire.fwo" t6fw_cfg_uwire.fw optional cxgbe \ dependency "$S/dev/cxgbe/firmware/t6fw_cfg_uwire.txt" \ compile-with "${CP} ${.ALLSRC} ${.TARGET}" \ no-obj no-implicit-rule \ clean "t6fw_cfg_uwire.fw" t6fw.fwo optional cxgbe \ dependency "t6fw.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "t6fw.fwo" t6fw.fw optional cxgbe \ dependency "$S/dev/cxgbe/firmware/t6fw-1.19.1.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t6fw.fw" dev/cxgbe/crypto/t4_crypto.c optional ccr \ compile-with "${NORMAL_C} -I$S/dev/cxgbe" dev/cy/cy.c optional cy dev/cy/cy_isa.c optional cy isa dev/cy/cy_pci.c optional cy pci dev/cyapa/cyapa.c optional cyapa iicbus dev/dc/if_dc.c optional dc pci dev/dc/dcphy.c optional dc pci dev/dc/pnphy.c optional dc pci dev/dcons/dcons.c optional dcons dev/dcons/dcons_crom.c optional dcons_crom dev/dcons/dcons_os.c optional dcons dev/de/if_de.c optional de pci dev/dme/if_dme.c optional dme dev/dpt/dpt_pci.c optional dpt pci dev/dpt/dpt_scsi.c optional dpt dev/drm/ati_pcigart.c optional drm dev/drm/drm_agpsupport.c optional drm dev/drm/drm_auth.c optional drm dev/drm/drm_bufs.c optional drm dev/drm/drm_context.c optional drm dev/drm/drm_dma.c optional drm dev/drm/drm_drawable.c optional drm dev/drm/drm_drv.c optional drm dev/drm/drm_fops.c optional drm dev/drm/drm_hashtab.c optional drm dev/drm/drm_ioctl.c optional drm dev/drm/drm_irq.c optional drm dev/drm/drm_lock.c optional drm dev/drm/drm_memory.c optional drm dev/drm/drm_mm.c optional drm dev/drm/drm_pci.c optional drm dev/drm/drm_scatter.c optional drm dev/drm/drm_sman.c optional drm dev/drm/drm_sysctl.c optional drm dev/drm/drm_vm.c optional drm dev/drm/mach64_dma.c optional mach64drm dev/drm/mach64_drv.c optional mach64drm dev/drm/mach64_irq.c optional mach64drm dev/drm/mach64_state.c optional mach64drm dev/drm/mga_dma.c optional mgadrm dev/drm/mga_drv.c optional mgadrm dev/drm/mga_irq.c optional mgadrm dev/drm/mga_state.c optional mgadrm dev/drm/mga_warp.c optional mgadrm dev/drm/r128_cce.c optional r128drm \ compile-with "${NORMAL_C} ${NO_WCONSTANT_CONVERSION}" dev/drm/r128_drv.c optional r128drm dev/drm/r128_irq.c optional r128drm dev/drm/r128_state.c optional r128drm dev/drm/savage_bci.c optional savagedrm dev/drm/savage_drv.c optional savagedrm dev/drm/savage_state.c optional savagedrm dev/drm/sis_drv.c optional sisdrm dev/drm/sis_ds.c optional sisdrm dev/drm/sis_mm.c optional sisdrm dev/drm/tdfx_drv.c optional tdfxdrm dev/drm/via_dma.c optional viadrm dev/drm/via_dmablit.c optional viadrm dev/drm/via_drv.c optional viadrm dev/drm/via_irq.c optional viadrm dev/drm/via_map.c optional viadrm dev/drm/via_mm.c optional viadrm dev/drm/via_verifier.c optional viadrm dev/drm/via_video.c optional viadrm dev/drm2/drm_agpsupport.c optional drm2 dev/drm2/drm_auth.c optional drm2 dev/drm2/drm_bufs.c optional drm2 dev/drm2/drm_buffer.c optional drm2 dev/drm2/drm_context.c optional drm2 dev/drm2/drm_crtc.c optional drm2 dev/drm2/drm_crtc_helper.c optional drm2 dev/drm2/drm_dma.c optional drm2 dev/drm2/drm_dp_helper.c optional drm2 dev/drm2/drm_dp_iic_helper.c optional drm2 dev/drm2/drm_drv.c optional drm2 dev/drm2/drm_edid.c optional drm2 dev/drm2/drm_fb_helper.c optional drm2 dev/drm2/drm_fops.c optional drm2 dev/drm2/drm_gem.c optional drm2 dev/drm2/drm_gem_names.c optional drm2 dev/drm2/drm_global.c optional drm2 dev/drm2/drm_hashtab.c optional drm2 dev/drm2/drm_ioctl.c optional drm2 dev/drm2/drm_irq.c optional drm2 dev/drm2/drm_linux_list_sort.c optional drm2 dev/drm2/drm_lock.c optional drm2 dev/drm2/drm_memory.c optional drm2 dev/drm2/drm_mm.c optional drm2 dev/drm2/drm_modes.c optional drm2 dev/drm2/drm_pci.c optional drm2 dev/drm2/drm_platform.c optional drm2 dev/drm2/drm_scatter.c optional drm2 dev/drm2/drm_stub.c optional drm2 dev/drm2/drm_sysctl.c optional drm2 dev/drm2/drm_vm.c optional drm2 dev/drm2/drm_os_freebsd.c optional drm2 dev/drm2/ttm/ttm_agp_backend.c optional drm2 dev/drm2/ttm/ttm_lock.c optional drm2 dev/drm2/ttm/ttm_object.c optional drm2 dev/drm2/ttm/ttm_tt.c optional drm2 dev/drm2/ttm/ttm_bo_util.c optional drm2 dev/drm2/ttm/ttm_bo.c optional drm2 dev/drm2/ttm/ttm_bo_manager.c optional drm2 dev/drm2/ttm/ttm_execbuf_util.c optional drm2 dev/drm2/ttm/ttm_memory.c optional drm2 dev/drm2/ttm/ttm_page_alloc.c optional drm2 dev/drm2/ttm/ttm_bo_vm.c optional drm2 dev/drm2/ati_pcigart.c optional drm2 agp pci dev/ed/if_ed.c optional ed dev/ed/if_ed_novell.c optional ed dev/ed/if_ed_rtl80x9.c optional ed dev/ed/if_ed_pccard.c optional ed pccard dev/ed/if_ed_pci.c optional ed pci dev/efidev/efidev.c optional efirt dev/efidev/efirt.c optional efirt dev/efidev/efirtc.c optional efirt dev/e1000/if_em.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/em_txrx.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/igb_txrx.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_80003es2lan.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_82540.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_82541.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_82542.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_82543.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_82571.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_82575.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_ich8lan.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_i210.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_api.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_mac.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_manage.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_nvm.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_phy.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_vf.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_mbx.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/e1000/e1000_osdep.c optional em \ compile-with "${NORMAL_C} -I$S/dev/e1000" dev/et/if_et.c optional et dev/ena/ena.c optional ena \ compile-with "${NORMAL_C} -I$S/contrib" dev/ena/ena_sysctl.c optional ena \ compile-with "${NORMAL_C} -I$S/contrib" contrib/ena-com/ena_com.c optional ena contrib/ena-com/ena_eth_com.c optional ena dev/ep/if_ep.c optional ep dev/ep/if_ep_isa.c optional ep isa dev/ep/if_ep_pccard.c optional ep pccard dev/esp/esp_pci.c optional esp pci dev/esp/ncr53c9x.c optional esp dev/etherswitch/arswitch/arswitch.c optional arswitch dev/etherswitch/arswitch/arswitch_reg.c optional arswitch dev/etherswitch/arswitch/arswitch_phy.c optional arswitch dev/etherswitch/arswitch/arswitch_8216.c optional arswitch dev/etherswitch/arswitch/arswitch_8226.c optional arswitch dev/etherswitch/arswitch/arswitch_8316.c optional arswitch dev/etherswitch/arswitch/arswitch_8327.c optional arswitch dev/etherswitch/arswitch/arswitch_7240.c optional arswitch dev/etherswitch/arswitch/arswitch_9340.c optional arswitch dev/etherswitch/arswitch/arswitch_vlans.c optional arswitch dev/etherswitch/etherswitch.c optional etherswitch dev/etherswitch/etherswitch_if.m optional etherswitch dev/etherswitch/ip17x/ip17x.c optional ip17x dev/etherswitch/ip17x/ip175c.c optional ip17x dev/etherswitch/ip17x/ip175d.c optional ip17x dev/etherswitch/ip17x/ip17x_phy.c optional ip17x dev/etherswitch/ip17x/ip17x_vlans.c optional ip17x dev/etherswitch/miiproxy.c optional miiproxy dev/etherswitch/rtl8366/rtl8366rb.c optional rtl8366rb dev/etherswitch/e6000sw/e6000sw.c optional e6000sw dev/etherswitch/e6000sw/e6060sw.c optional e6060sw dev/etherswitch/infineon/adm6996fc.c optional adm6996fc dev/etherswitch/micrel/ksz8995ma.c optional ksz8995ma dev/etherswitch/ukswitch/ukswitch.c optional ukswitch dev/evdev/cdev.c optional evdev dev/evdev/evdev.c optional evdev dev/evdev/evdev_mt.c optional evdev dev/evdev/evdev_utils.c optional evdev dev/evdev/uinput.c optional evdev uinput dev/ex/if_ex.c optional ex dev/ex/if_ex_isa.c optional ex isa dev/ex/if_ex_pccard.c optional ex pccard dev/exca/exca.c optional cbb dev/extres/clk/clk.c optional ext_resources clk fdt dev/extres/clk/clkdev_if.m optional ext_resources clk fdt dev/extres/clk/clknode_if.m optional ext_resources clk fdt dev/extres/clk/clk_bus.c optional ext_resources clk fdt dev/extres/clk/clk_div.c optional ext_resources clk fdt dev/extres/clk/clk_fixed.c optional ext_resources clk fdt dev/extres/clk/clk_gate.c optional ext_resources clk fdt dev/extres/clk/clk_mux.c optional ext_resources clk fdt dev/extres/phy/phy.c optional ext_resources phy fdt dev/extres/phy/phydev_if.m optional ext_resources phy fdt dev/extres/phy/phynode_if.m optional ext_resources phy fdt dev/extres/hwreset/hwreset.c optional ext_resources hwreset fdt dev/extres/hwreset/hwreset_if.m optional ext_resources hwreset fdt dev/extres/regulator/regdev_if.m optional ext_resources regulator fdt dev/extres/regulator/regnode_if.m optional ext_resources regulator fdt dev/extres/regulator/regulator.c optional ext_resources regulator fdt dev/extres/regulator/regulator_bus.c optional ext_resources regulator fdt dev/extres/regulator/regulator_fixed.c optional ext_resources regulator fdt dev/extres/syscon/syscon.c optional ext_resources syscon dev/extres/syscon/syscon_generic.c optional ext_resources syscon fdt dev/extres/syscon/syscon_if.m optional ext_resources syscon dev/fb/fbd.c optional fbd | vt dev/fb/fb_if.m standard dev/fb/splash.c optional sc splash dev/fdt/fdt_clock.c optional fdt fdt_clock dev/fdt/fdt_clock_if.m optional fdt fdt_clock dev/fdt/fdt_common.c optional fdt dev/fdt/fdt_pinctrl.c optional fdt fdt_pinctrl dev/fdt/fdt_pinctrl_if.m optional fdt fdt_pinctrl dev/fdt/fdt_slicer.c optional fdt cfi | fdt nand | fdt mx25l | fdt n25q dev/fdt/fdt_static_dtb.S optional fdt fdt_dtb_static \ dependency "fdt_dtb_file" dev/fdt/simplebus.c optional fdt dev/fe/if_fe.c optional fe dev/fe/if_fe_pccard.c optional fe pccard dev/filemon/filemon.c optional filemon dev/firewire/firewire.c optional firewire dev/firewire/fwcrom.c optional firewire dev/firewire/fwdev.c optional firewire dev/firewire/fwdma.c optional firewire dev/firewire/fwmem.c optional firewire dev/firewire/fwohci.c optional firewire dev/firewire/fwohci_pci.c optional firewire pci dev/firewire/if_fwe.c optional fwe dev/firewire/if_fwip.c optional fwip dev/firewire/sbp.c optional sbp dev/firewire/sbp_targ.c optional sbp_targ dev/flash/at45d.c optional at45d dev/flash/cqspi.c optional cqspi dev/flash/mx25l.c optional mx25l dev/flash/n25q.c optional n25q dev/flash/qspi_if.m optional cqspi | n25q dev/fxp/if_fxp.c optional fxp dev/fxp/inphy.c optional fxp dev/gem/if_gem.c optional gem dev/gem/if_gem_pci.c optional gem pci dev/gem/if_gem_sbus.c optional gem sbus dev/gpio/gpiobacklight.c optional gpiobacklight fdt dev/gpio/gpiokeys.c optional gpiokeys fdt dev/gpio/gpiokeys_codes.c optional gpiokeys fdt dev/gpio/gpiobus.c optional gpio \ dependency "gpiobus_if.h" dev/gpio/gpioc.c optional gpio \ dependency "gpio_if.h" dev/gpio/gpioiic.c optional gpioiic dev/gpio/gpioled.c optional gpioled !fdt dev/gpio/gpioled_fdt.c optional gpioled fdt dev/gpio/gpiopower.c optional gpiopower fdt dev/gpio/gpioregulator.c optional gpioregulator fdt ext_resources dev/gpio/gpiospi.c optional gpiospi dev/gpio/gpioths.c optional gpioths dev/gpio/gpio_if.m optional gpio dev/gpio/gpiobus_if.m optional gpio dev/gpio/gpiopps.c optional gpiopps dev/gpio/ofw_gpiobus.c optional fdt gpio dev/hifn/hifn7751.c optional hifn dev/hme/if_hme.c optional hme dev/hme/if_hme_pci.c optional hme pci dev/hme/if_hme_sbus.c optional hme sbus dev/hptiop/hptiop.c optional hptiop scbus dev/hwpmc/hwpmc_logging.c optional hwpmc dev/hwpmc/hwpmc_mod.c optional hwpmc dev/hwpmc/hwpmc_soft.c optional hwpmc dev/ichiic/ig4_acpi.c optional ig4 acpi iicbus dev/ichiic/ig4_iic.c optional ig4 iicbus dev/ichiic/ig4_pci.c optional ig4 pci iicbus dev/ichsmb/ichsmb.c optional ichsmb dev/ichsmb/ichsmb_pci.c optional ichsmb pci dev/ida/ida.c optional ida dev/ida/ida_disk.c optional ida dev/ida/ida_pci.c optional ida pci dev/iicbus/ad7418.c optional ad7418 dev/iicbus/ds1307.c optional ds1307 dev/iicbus/ds13rtc.c optional ds13rtc | ds133x | ds1374 dev/iicbus/ds1672.c optional ds1672 dev/iicbus/ds3231.c optional ds3231 dev/iicbus/rtc8583.c optional rtc8583 dev/iicbus/icee.c optional icee dev/iicbus/if_ic.c optional ic dev/iicbus/iic.c optional iic dev/iicbus/iic_recover_bus.c optional iicbus dev/iicbus/iicbb.c optional iicbb dev/iicbus/iicbb_if.m optional iicbb dev/iicbus/iicbus.c optional iicbus dev/iicbus/iicbus_if.m optional iicbus dev/iicbus/iiconf.c optional iicbus dev/iicbus/iicsmb.c optional iicsmb \ dependency "iicbus_if.h" dev/iicbus/iicoc.c optional iicoc dev/iicbus/isl12xx.c optional isl12xx dev/iicbus/lm75.c optional lm75 dev/iicbus/nxprtc.c optional nxprtc | pcf8563 dev/iicbus/ofw_iicbus.c optional fdt iicbus dev/iicbus/s35390a.c optional s35390a dev/iir/iir.c optional iir dev/iir/iir_ctrl.c optional iir dev/iir/iir_pci.c optional iir pci dev/intpm/intpm.c optional intpm pci # XXX Work around clang warning, until maintainer approves fix. dev/ips/ips.c optional ips \ compile-with "${NORMAL_C} ${NO_WSOMETIMES_UNINITIALIZED}" dev/ips/ips_commands.c optional ips dev/ips/ips_disk.c optional ips dev/ips/ips_ioctl.c optional ips dev/ips/ips_pci.c optional ips pci dev/ipw/if_ipw.c optional ipw ipwbssfw.c optional ipwbssfw | ipwfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk ipw_bss.fw:ipw_bss:130 -lintel_ipw -mipw_bss -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "ipwbssfw.c" ipw_bss.fwo optional ipwbssfw | ipwfw \ dependency "ipw_bss.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "ipw_bss.fwo" ipw_bss.fw optional ipwbssfw | ipwfw \ dependency "$S/contrib/dev/ipw/ipw2100-1.3.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "ipw_bss.fw" ipwibssfw.c optional ipwibssfw | ipwfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk ipw_ibss.fw:ipw_ibss:130 -lintel_ipw -mipw_ibss -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "ipwibssfw.c" ipw_ibss.fwo optional ipwibssfw | ipwfw \ dependency "ipw_ibss.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "ipw_ibss.fwo" ipw_ibss.fw optional ipwibssfw | ipwfw \ dependency "$S/contrib/dev/ipw/ipw2100-1.3-i.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "ipw_ibss.fw" ipwmonitorfw.c optional ipwmonitorfw | ipwfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk ipw_monitor.fw:ipw_monitor:130 -lintel_ipw -mipw_monitor -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "ipwmonitorfw.c" ipw_monitor.fwo optional ipwmonitorfw | ipwfw \ dependency "ipw_monitor.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "ipw_monitor.fwo" ipw_monitor.fw optional ipwmonitorfw | ipwfw \ dependency "$S/contrib/dev/ipw/ipw2100-1.3-p.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "ipw_monitor.fw" dev/iscsi/icl.c optional iscsi dev/iscsi/icl_conn_if.m optional cfiscsi | iscsi dev/iscsi/icl_soft.c optional iscsi dev/iscsi/icl_soft_proxy.c optional iscsi dev/iscsi/iscsi.c optional iscsi scbus dev/iscsi_initiator/iscsi.c optional iscsi_initiator scbus dev/iscsi_initiator/iscsi_subr.c optional iscsi_initiator scbus dev/iscsi_initiator/isc_cam.c optional iscsi_initiator scbus dev/iscsi_initiator/isc_soc.c optional iscsi_initiator scbus dev/iscsi_initiator/isc_sm.c optional iscsi_initiator scbus dev/iscsi_initiator/isc_subr.c optional iscsi_initiator scbus dev/ismt/ismt.c optional ismt dev/isl/isl.c optional isl iicbus dev/isp/isp.c optional isp dev/isp/isp_freebsd.c optional isp dev/isp/isp_library.c optional isp dev/isp/isp_pci.c optional isp pci dev/isp/isp_sbus.c optional isp sbus dev/isp/isp_target.c optional isp dev/ispfw/ispfw.c optional ispfw dev/iwi/if_iwi.c optional iwi iwibssfw.c optional iwibssfw | iwifw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwi_bss.fw:iwi_bss:300 -lintel_iwi -miwi_bss -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwibssfw.c" iwi_bss.fwo optional iwibssfw | iwifw \ dependency "iwi_bss.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwi_bss.fwo" iwi_bss.fw optional iwibssfw | iwifw \ dependency "$S/contrib/dev/iwi/ipw2200-bss.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwi_bss.fw" iwiibssfw.c optional iwiibssfw | iwifw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwi_ibss.fw:iwi_ibss:300 -lintel_iwi -miwi_ibss -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwiibssfw.c" iwi_ibss.fwo optional iwiibssfw | iwifw \ dependency "iwi_ibss.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwi_ibss.fwo" iwi_ibss.fw optional iwiibssfw | iwifw \ dependency "$S/contrib/dev/iwi/ipw2200-ibss.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwi_ibss.fw" iwimonitorfw.c optional iwimonitorfw | iwifw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwi_monitor.fw:iwi_monitor:300 -lintel_iwi -miwi_monitor -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwimonitorfw.c" iwi_monitor.fwo optional iwimonitorfw | iwifw \ dependency "iwi_monitor.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwi_monitor.fwo" iwi_monitor.fw optional iwimonitorfw | iwifw \ dependency "$S/contrib/dev/iwi/ipw2200-sniffer.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwi_monitor.fw" dev/iwm/if_iwm.c optional iwm dev/iwm/if_iwm_7000.c optional iwm dev/iwm/if_iwm_8000.c optional iwm dev/iwm/if_iwm_binding.c optional iwm dev/iwm/if_iwm_fw.c optional iwm dev/iwm/if_iwm_led.c optional iwm dev/iwm/if_iwm_mac_ctxt.c optional iwm dev/iwm/if_iwm_notif_wait.c optional iwm dev/iwm/if_iwm_pcie_trans.c optional iwm dev/iwm/if_iwm_phy_ctxt.c optional iwm dev/iwm/if_iwm_phy_db.c optional iwm dev/iwm/if_iwm_power.c optional iwm dev/iwm/if_iwm_scan.c optional iwm dev/iwm/if_iwm_sf.c optional iwm dev/iwm/if_iwm_sta.c optional iwm dev/iwm/if_iwm_time_event.c optional iwm dev/iwm/if_iwm_util.c optional iwm iwm3160fw.c optional iwm3160fw | iwmfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwm3160.fw:iwm3160fw -miwm3160fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwm3160fw.c" iwm3160fw.fwo optional iwm3160fw | iwmfw \ dependency "iwm3160.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwm3160fw.fwo" iwm3160.fw optional iwm3160fw | iwmfw \ dependency "$S/contrib/dev/iwm/iwm-3160-17.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwm3160.fw" iwm3168fw.c optional iwm3168fw | iwmfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwm3168.fw:iwm3168fw -miwm3168fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwm3168fw.c" iwm3168fw.fwo optional iwm3168fw | iwmfw \ dependency "iwm3168.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwm3168fw.fwo" iwm3168.fw optional iwm3168fw | iwmfw \ dependency "$S/contrib/dev/iwm/iwm-3168-22.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwm3168.fw" iwm7260fw.c optional iwm7260fw | iwmfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwm7260.fw:iwm7260fw -miwm7260fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwm7260fw.c" iwm7260fw.fwo optional iwm7260fw | iwmfw \ dependency "iwm7260.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwm7260fw.fwo" iwm7260.fw optional iwm7260fw | iwmfw \ dependency "$S/contrib/dev/iwm/iwm-7260-17.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwm7260.fw" iwm7265fw.c optional iwm7265fw | iwmfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwm7265.fw:iwm7265fw -miwm7265fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwm7265fw.c" iwm7265fw.fwo optional iwm7265fw | iwmfw \ dependency "iwm7265.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwm7265fw.fwo" iwm7265.fw optional iwm7265fw | iwmfw \ dependency "$S/contrib/dev/iwm/iwm-7265-17.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwm7265.fw" iwm7265Dfw.c optional iwm7265Dfw | iwmfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwm7265D.fw:iwm7265Dfw -miwm7265Dfw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwm7265Dfw.c" iwm7265Dfw.fwo optional iwm7265Dfw | iwmfw \ dependency "iwm7265D.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwm7265Dfw.fwo" iwm7265D.fw optional iwm7265Dfw | iwmfw \ dependency "$S/contrib/dev/iwm/iwm-7265D-17.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwm7265D.fw" iwm8000Cfw.c optional iwm8000Cfw | iwmfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwm8000C.fw:iwm8000Cfw -miwm8000Cfw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwm8000Cfw.c" iwm8000Cfw.fwo optional iwm8000Cfw | iwmfw \ dependency "iwm8000C.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwm8000Cfw.fwo" iwm8000C.fw optional iwm8000Cfw | iwmfw \ dependency "$S/contrib/dev/iwm/iwm-8000C-16.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwm8000C.fw" iwm8265.fw optional iwm8265fw | iwmfw \ dependency "$S/contrib/dev/iwm/iwm-8265-22.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwm8265.fw" iwm8265fw.c optional iwm8265fw | iwmfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwm8265.fw:iwm8265fw -miwm8265fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwm8265fw.c" iwm8265fw.fwo optional iwm8265fw | iwmfw \ dependency "iwm8265.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwm8265fw.fwo" dev/iwn/if_iwn.c optional iwn iwn1000fw.c optional iwn1000fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn1000.fw:iwn1000fw -miwn1000fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn1000fw.c" iwn1000fw.fwo optional iwn1000fw | iwnfw \ dependency "iwn1000.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn1000fw.fwo" iwn1000.fw optional iwn1000fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-1000-39.31.5.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn1000.fw" iwn100fw.c optional iwn100fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn100.fw:iwn100fw -miwn100fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn100fw.c" iwn100fw.fwo optional iwn100fw | iwnfw \ dependency "iwn100.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn100fw.fwo" iwn100.fw optional iwn100fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-100-39.31.5.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn100.fw" iwn105fw.c optional iwn105fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn105.fw:iwn105fw -miwn105fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn105fw.c" iwn105fw.fwo optional iwn105fw | iwnfw \ dependency "iwn105.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn105fw.fwo" iwn105.fw optional iwn105fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-105-6-18.168.6.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn105.fw" iwn135fw.c optional iwn135fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn135.fw:iwn135fw -miwn135fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn135fw.c" iwn135fw.fwo optional iwn135fw | iwnfw \ dependency "iwn135.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn135fw.fwo" iwn135.fw optional iwn135fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-135-6-18.168.6.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn135.fw" iwn2000fw.c optional iwn2000fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn2000.fw:iwn2000fw -miwn2000fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn2000fw.c" iwn2000fw.fwo optional iwn2000fw | iwnfw \ dependency "iwn2000.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn2000fw.fwo" iwn2000.fw optional iwn2000fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-2000-18.168.6.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn2000.fw" iwn2030fw.c optional iwn2030fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn2030.fw:iwn2030fw -miwn2030fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn2030fw.c" iwn2030fw.fwo optional iwn2030fw | iwnfw \ dependency "iwn2030.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn2030fw.fwo" iwn2030.fw optional iwn2030fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwnwifi-2030-18.168.6.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn2030.fw" iwn4965fw.c optional iwn4965fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn4965.fw:iwn4965fw -miwn4965fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn4965fw.c" iwn4965fw.fwo optional iwn4965fw | iwnfw \ dependency "iwn4965.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn4965fw.fwo" iwn4965.fw optional iwn4965fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-4965-228.61.2.24.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn4965.fw" iwn5000fw.c optional iwn5000fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn5000.fw:iwn5000fw -miwn5000fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn5000fw.c" iwn5000fw.fwo optional iwn5000fw | iwnfw \ dependency "iwn5000.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn5000fw.fwo" iwn5000.fw optional iwn5000fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-5000-8.83.5.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn5000.fw" iwn5150fw.c optional iwn5150fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn5150.fw:iwn5150fw -miwn5150fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn5150fw.c" iwn5150fw.fwo optional iwn5150fw | iwnfw \ dependency "iwn5150.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn5150fw.fwo" iwn5150.fw optional iwn5150fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-5150-8.24.2.2.fw.uu"\ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn5150.fw" iwn6000fw.c optional iwn6000fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn6000.fw:iwn6000fw -miwn6000fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn6000fw.c" iwn6000fw.fwo optional iwn6000fw | iwnfw \ dependency "iwn6000.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn6000fw.fwo" iwn6000.fw optional iwn6000fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-6000-9.221.4.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn6000.fw" iwn6000g2afw.c optional iwn6000g2afw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn6000g2a.fw:iwn6000g2afw -miwn6000g2afw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn6000g2afw.c" iwn6000g2afw.fwo optional iwn6000g2afw | iwnfw \ dependency "iwn6000g2a.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn6000g2afw.fwo" iwn6000g2a.fw optional iwn6000g2afw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-6000g2a-18.168.6.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn6000g2a.fw" iwn6000g2bfw.c optional iwn6000g2bfw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn6000g2b.fw:iwn6000g2bfw -miwn6000g2bfw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn6000g2bfw.c" iwn6000g2bfw.fwo optional iwn6000g2bfw | iwnfw \ dependency "iwn6000g2b.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn6000g2bfw.fwo" iwn6000g2b.fw optional iwn6000g2bfw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-6000g2b-18.168.6.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn6000g2b.fw" iwn6050fw.c optional iwn6050fw | iwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk iwn6050.fw:iwn6050fw -miwn6050fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "iwn6050fw.c" iwn6050fw.fwo optional iwn6050fw | iwnfw \ dependency "iwn6050.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "iwn6050fw.fwo" iwn6050.fw optional iwn6050fw | iwnfw \ dependency "$S/contrib/dev/iwn/iwlwifi-6050-41.28.5.1.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "iwn6050.fw" dev/ixgbe/if_ix.c optional ix inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe -DSMP" dev/ixgbe/if_ixv.c optional ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe -DSMP" dev/ixgbe/if_bypass.c optional ix inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/if_fdir.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/if_sriov.c optional ix inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ix_txrx.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_osdep.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_phy.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_api.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_common.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_mbx.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_vf.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_82598.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_82599.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_x540.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_x550.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_dcb.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_dcb_82598.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/ixgbe/ixgbe_dcb_82599.c optional ix inet | ixv inet \ compile-with "${NORMAL_C} -I$S/dev/ixgbe" dev/jedec_dimm/jedec_dimm.c optional jedec_dimm smbus dev/jedec_ts/jedec_ts.c optional jedec_ts smbus dev/jme/if_jme.c optional jme pci dev/joy/joy.c optional joy dev/joy/joy_isa.c optional joy isa dev/kbd/kbd.c optional atkbd | pckbd | sc | ukbd | vt dev/kbdmux/kbdmux.c optional kbdmux dev/ksyms/ksyms.c optional ksyms dev/le/am7990.c optional le dev/le/am79900.c optional le dev/le/if_le_pci.c optional le pci dev/le/lance.c optional le dev/led/led.c standard dev/lge/if_lge.c optional lge dev/liquidio/base/cn23xx_pf_device.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/base/lio_console.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/base/lio_ctrl.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/base/lio_device.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/base/lio_droq.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/base/lio_mem_ops.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/base/lio_request_manager.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/base/lio_response_manager.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/lio_core.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/lio_ioctl.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/lio_main.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/lio_rss.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/lio_rxtx.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" dev/liquidio/lio_sysctl.c optional lio \ compile-with "${NORMAL_C} \ -I$S/dev/liquidio -I$S/dev/liquidio/base -DSMP" lio.c optional lio \ compile-with "${AWK} -f $S/tools/fw_stub.awk lio_23xx_nic.bin.fw:lio_23xx_nic.bin -mlio_23xx_nic.bin -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "lio.c" lio_23xx_nic.bin.fw.fwo optional lio \ dependency "lio_23xx_nic.bin.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "lio_23xx_nic.bin.fw.fwo" lio_23xx_nic.bin.fw optional lio \ dependency "$S/contrib/dev/liquidio/lio_23xx_nic.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "lio_23xx_nic.bin.fw" dev/malo/if_malo.c optional malo dev/malo/if_malohal.c optional malo dev/malo/if_malo_pci.c optional malo pci dev/mc146818/mc146818.c optional mc146818 dev/md/md.c optional md dev/mdio/mdio_if.m optional miiproxy | mdio dev/mdio/mdio.c optional miiproxy | mdio dev/mem/memdev.c optional mem dev/mem/memutil.c optional mem dev/mfi/mfi.c optional mfi dev/mfi/mfi_debug.c optional mfi dev/mfi/mfi_pci.c optional mfi pci dev/mfi/mfi_disk.c optional mfi dev/mfi/mfi_syspd.c optional mfi dev/mfi/mfi_tbolt.c optional mfi dev/mfi/mfi_linux.c optional mfi compat_linux dev/mfi/mfi_cam.c optional mfip scbus dev/mii/acphy.c optional miibus | acphy dev/mii/amphy.c optional miibus | amphy dev/mii/atphy.c optional miibus | atphy dev/mii/axphy.c optional miibus | axphy dev/mii/bmtphy.c optional miibus | bmtphy dev/mii/brgphy.c optional miibus | brgphy dev/mii/ciphy.c optional miibus | ciphy dev/mii/e1000phy.c optional miibus | e1000phy dev/mii/gentbi.c optional miibus | gentbi dev/mii/icsphy.c optional miibus | icsphy dev/mii/ip1000phy.c optional miibus | ip1000phy dev/mii/jmphy.c optional miibus | jmphy dev/mii/lxtphy.c optional miibus | lxtphy dev/mii/micphy.c optional miibus fdt | micphy fdt dev/mii/mii.c optional miibus | mii dev/mii/mii_bitbang.c optional miibus | mii_bitbang dev/mii/mii_physubr.c optional miibus | mii dev/mii/mii_fdt.c optional miibus fdt | mii fdt dev/mii/miibus_if.m optional miibus | mii dev/mii/mlphy.c optional miibus | mlphy dev/mii/nsgphy.c optional miibus | nsgphy dev/mii/nsphy.c optional miibus | nsphy dev/mii/nsphyter.c optional miibus | nsphyter dev/mii/pnaphy.c optional miibus | pnaphy dev/mii/qsphy.c optional miibus | qsphy dev/mii/rdcphy.c optional miibus | rdcphy dev/mii/rgephy.c optional miibus | rgephy dev/mii/rlphy.c optional miibus | rlphy dev/mii/rlswitch.c optional rlswitch dev/mii/smcphy.c optional miibus | smcphy dev/mii/smscphy.c optional miibus | smscphy dev/mii/tdkphy.c optional miibus | tdkphy dev/mii/tlphy.c optional miibus | tlphy dev/mii/truephy.c optional miibus | truephy dev/mii/ukphy.c optional miibus | mii dev/mii/ukphy_subr.c optional miibus | mii dev/mii/vscphy.c optional miibus | vscphy dev/mii/xmphy.c optional miibus | xmphy dev/mk48txx/mk48txx.c optional mk48txx dev/mlx/mlx.c optional mlx dev/mlx/mlx_disk.c optional mlx dev/mlx/mlx_pci.c optional mlx pci dev/mly/mly.c optional mly dev/mmc/mmc_subr.c optional mmc | mmcsd !mmccam dev/mmc/mmc.c optional mmc !mmccam dev/mmc/mmcbr_if.m standard dev/mmc/mmcbus_if.m standard dev/mmc/mmcsd.c optional mmcsd !mmccam dev/mmcnull/mmcnull.c optional mmcnull dev/mn/if_mn.c optional mn pci dev/mpr/mpr.c optional mpr dev/mpr/mpr_config.c optional mpr # XXX Work around clang warning, until maintainer approves fix. dev/mpr/mpr_mapping.c optional mpr \ compile-with "${NORMAL_C} ${NO_WSOMETIMES_UNINITIALIZED}" dev/mpr/mpr_pci.c optional mpr pci dev/mpr/mpr_sas.c optional mpr \ compile-with "${NORMAL_C} ${NO_WUNNEEDED_INTERNAL_DECL}" dev/mpr/mpr_sas_lsi.c optional mpr dev/mpr/mpr_table.c optional mpr dev/mpr/mpr_user.c optional mpr dev/mps/mps.c optional mps dev/mps/mps_config.c optional mps # XXX Work around clang warning, until maintainer approves fix. dev/mps/mps_mapping.c optional mps \ compile-with "${NORMAL_C} ${NO_WSOMETIMES_UNINITIALIZED}" dev/mps/mps_pci.c optional mps pci dev/mps/mps_sas.c optional mps \ compile-with "${NORMAL_C} ${NO_WUNNEEDED_INTERNAL_DECL}" dev/mps/mps_sas_lsi.c optional mps dev/mps/mps_table.c optional mps dev/mps/mps_user.c optional mps dev/mpt/mpt.c optional mpt dev/mpt/mpt_cam.c optional mpt dev/mpt/mpt_debug.c optional mpt dev/mpt/mpt_pci.c optional mpt pci dev/mpt/mpt_raid.c optional mpt dev/mpt/mpt_user.c optional mpt dev/mrsas/mrsas.c optional mrsas dev/mrsas/mrsas_cam.c optional mrsas dev/mrsas/mrsas_ioctl.c optional mrsas dev/mrsas/mrsas_fp.c optional mrsas dev/msk/if_msk.c optional msk dev/mvs/mvs.c optional mvs dev/mvs/mvs_if.m optional mvs dev/mvs/mvs_pci.c optional mvs pci dev/mwl/if_mwl.c optional mwl dev/mwl/if_mwl_pci.c optional mwl pci dev/mwl/mwlhal.c optional mwl mwlfw.c optional mwlfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk mw88W8363.fw:mw88W8363fw mwlboot.fw:mwlboot -mmwl -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "mwlfw.c" mw88W8363.fwo optional mwlfw \ dependency "mw88W8363.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "mw88W8363.fwo" mw88W8363.fw optional mwlfw \ dependency "$S/contrib/dev/mwl/mw88W8363.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "mw88W8363.fw" mwlboot.fwo optional mwlfw \ dependency "mwlboot.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "mwlboot.fwo" mwlboot.fw optional mwlfw \ dependency "$S/contrib/dev/mwl/mwlboot.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "mwlboot.fw" dev/mxge/if_mxge.c optional mxge pci dev/mxge/mxge_eth_z8e.c optional mxge pci dev/mxge/mxge_ethp_z8e.c optional mxge pci dev/mxge/mxge_rss_eth_z8e.c optional mxge pci dev/mxge/mxge_rss_ethp_z8e.c optional mxge pci dev/my/if_my.c optional my dev/nand/nand.c optional nand dev/nand/nand_bbt.c optional nand dev/nand/nand_cdev.c optional nand dev/nand/nand_generic.c optional nand dev/nand/nand_geom.c optional nand dev/nand/nand_id.c optional nand dev/nand/nandbus.c optional nand dev/nand/nandbus_if.m optional nand dev/nand/nand_if.m optional nand dev/nand/nandsim.c optional nandsim nand dev/nand/nandsim_chip.c optional nandsim nand dev/nand/nandsim_ctrl.c optional nandsim nand dev/nand/nandsim_log.c optional nandsim nand dev/nand/nandsim_swap.c optional nandsim nand dev/nand/nfc_if.m optional nand dev/ncr/ncr.c optional ncr pci dev/ncv/ncr53c500.c optional ncv dev/ncv/ncr53c500_pccard.c optional ncv pccard dev/netmap/if_ptnet.c optional netmap inet dev/netmap/netmap.c optional netmap dev/netmap/netmap_freebsd.c optional netmap dev/netmap/netmap_generic.c optional netmap dev/netmap/netmap_mbq.c optional netmap dev/netmap/netmap_mem2.c optional netmap dev/netmap/netmap_monitor.c optional netmap dev/netmap/netmap_offloadings.c optional netmap dev/netmap/netmap_pipe.c optional netmap dev/netmap/netmap_pt.c optional netmap dev/netmap/netmap_vale.c optional netmap dev/netmap/netmap_legacy.c optional netmap # compile-with "${NORMAL_C} -Wconversion -Wextra" dev/nfsmb/nfsmb.c optional nfsmb pci dev/nge/if_nge.c optional nge -dev/nxge/if_nxge.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-device.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-mm.c optional nxge -dev/nxge/xgehal/xge-queue.c optional nxge -dev/nxge/xgehal/xgehal-driver.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-ring.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-channel.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-fifo.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-stats.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" -dev/nxge/xgehal/xgehal-config.c optional nxge -dev/nxge/xgehal/xgehal-mgmt.c optional nxge \ - compile-with "${NORMAL_C} ${NO_WSELF_ASSIGN}" dev/nmdm/nmdm.c optional nmdm dev/nsp/nsp.c optional nsp dev/nsp/nsp_pccard.c optional nsp pccard dev/null/null.c standard dev/nvd/nvd.c optional nvd nvme dev/nvme/nvme.c optional nvme dev/nvme/nvme_ctrlr.c optional nvme dev/nvme/nvme_ctrlr_cmd.c optional nvme dev/nvme/nvme_ns.c optional nvme dev/nvme/nvme_ns_cmd.c optional nvme dev/nvme/nvme_qpair.c optional nvme dev/nvme/nvme_sim.c optional nvme scbus dev/nvme/nvme_sysctl.c optional nvme dev/nvme/nvme_test.c optional nvme dev/nvme/nvme_util.c optional nvme dev/oce/oce_hw.c optional oce pci dev/oce/oce_if.c optional oce pci dev/oce/oce_mbox.c optional oce pci dev/oce/oce_queue.c optional oce pci dev/oce/oce_sysctl.c optional oce pci dev/oce/oce_util.c optional oce pci dev/ocs_fc/ocs_pci.c optional ocs_fc pci dev/ocs_fc/ocs_ioctl.c optional ocs_fc pci dev/ocs_fc/ocs_os.c optional ocs_fc pci dev/ocs_fc/ocs_utils.c optional ocs_fc pci dev/ocs_fc/ocs_hw.c optional ocs_fc pci dev/ocs_fc/ocs_hw_queues.c optional ocs_fc pci dev/ocs_fc/sli4.c optional ocs_fc pci dev/ocs_fc/ocs_sm.c optional ocs_fc pci dev/ocs_fc/ocs_device.c optional ocs_fc pci dev/ocs_fc/ocs_xport.c optional ocs_fc pci dev/ocs_fc/ocs_domain.c optional ocs_fc pci dev/ocs_fc/ocs_sport.c optional ocs_fc pci dev/ocs_fc/ocs_els.c optional ocs_fc pci dev/ocs_fc/ocs_fabric.c optional ocs_fc pci dev/ocs_fc/ocs_io.c optional ocs_fc pci dev/ocs_fc/ocs_node.c optional ocs_fc pci dev/ocs_fc/ocs_scsi.c optional ocs_fc pci dev/ocs_fc/ocs_unsol.c optional ocs_fc pci dev/ocs_fc/ocs_ddump.c optional ocs_fc pci dev/ocs_fc/ocs_mgmt.c optional ocs_fc pci dev/ocs_fc/ocs_cam.c optional ocs_fc pci dev/ofw/ofw_bus_if.m optional fdt dev/ofw/ofw_bus_subr.c optional fdt dev/ofw/ofw_cpu.c optional fdt dev/ofw/ofw_fdt.c optional fdt dev/ofw/ofw_if.m optional fdt dev/ofw/ofw_subr.c optional fdt dev/ofw/ofwbus.c optional fdt dev/ofw/openfirm.c optional fdt dev/ofw/openfirmio.c optional fdt dev/ow/ow.c optional ow \ dependency "owll_if.h" \ dependency "own_if.h" dev/ow/owll_if.m optional ow dev/ow/own_if.m optional ow dev/ow/ow_temp.c optional ow_temp dev/ow/owc_gpiobus.c optional owc gpio dev/pbio/pbio.c optional pbio isa dev/pccard/card_if.m standard dev/pccard/pccard.c optional pccard dev/pccard/pccard_cis.c optional pccard dev/pccard/pccard_cis_quirks.c optional pccard dev/pccard/pccard_device.c optional pccard dev/pccard/power_if.m standard dev/pccbb/pccbb.c optional cbb dev/pccbb/pccbb_isa.c optional cbb isa dev/pccbb/pccbb_pci.c optional cbb pci dev/pcf/pcf.c optional pcf dev/pci/fixup_pci.c optional pci dev/pci/hostb_pci.c optional pci dev/pci/ignore_pci.c optional pci dev/pci/isa_pci.c optional pci isa dev/pci/pci.c optional pci dev/pci/pci_if.m standard dev/pci/pci_iov.c optional pci pci_iov dev/pci/pci_iov_if.m standard dev/pci/pci_iov_schema.c optional pci pci_iov dev/pci/pci_pci.c optional pci dev/pci/pci_subr.c optional pci dev/pci/pci_user.c optional pci dev/pci/pcib_if.m standard dev/pci/pcib_support.c standard dev/pci/vga_pci.c optional pci dev/pcn/if_pcn.c optional pcn pci dev/pms/freebsd/driver/ini/src/agtiapi.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/sadisc.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/mpi.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/saframe.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/sahw.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/sainit.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/saint.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/sampicmd.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/sampirsp.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/saphy.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/saport.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/sasata.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/sasmp.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/sassp.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/satimer.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/sautil.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/saioctlcmd.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sallsdk/spc/mpidebug.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/discovery/dm/dminit.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/discovery/dm/dmsmp.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/discovery/dm/dmdisc.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/discovery/dm/dmport.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/discovery/dm/dmtimer.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/discovery/dm/dmmisc.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sat/src/sminit.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sat/src/smmisc.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sat/src/smsat.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sat/src/smsatcb.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sat/src/smsathw.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/sat/src/smtimer.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tdinit.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tdmisc.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tdesgl.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tdport.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tdint.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tdioctl.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tdhw.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/ossacmnapi.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tddmcmnapi.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tdsmcmnapi.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/common/tdtimers.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/sas/ini/itdio.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/sas/ini/itdcb.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/sas/ini/itdinit.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/sas/ini/itddisc.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/sata/host/sat.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/sata/host/ossasat.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/pms/RefTisa/tisa/sassata/sata/host/sathw.c optional pmspcv \ compile-with "${NORMAL_C} -Wunused-variable -Woverflow -Wparentheses -w" dev/ppbus/if_plip.c optional plip dev/ppbus/immio.c optional vpo dev/ppbus/lpbb.c optional lpbb dev/ppbus/lpt.c optional lpt dev/ppbus/pcfclock.c optional pcfclock dev/ppbus/ppb_1284.c optional ppbus dev/ppbus/ppb_base.c optional ppbus dev/ppbus/ppb_msq.c optional ppbus dev/ppbus/ppbconf.c optional ppbus dev/ppbus/ppbus_if.m optional ppbus dev/ppbus/ppi.c optional ppi dev/ppbus/pps.c optional pps dev/ppbus/vpo.c optional vpo dev/ppbus/vpoio.c optional vpo dev/ppc/ppc.c optional ppc dev/ppc/ppc_acpi.c optional ppc acpi dev/ppc/ppc_isa.c optional ppc isa dev/ppc/ppc_pci.c optional ppc pci dev/ppc/ppc_puc.c optional ppc puc dev/proto/proto_bus_isa.c optional proto acpi | proto isa dev/proto/proto_bus_pci.c optional proto pci dev/proto/proto_busdma.c optional proto dev/proto/proto_core.c optional proto dev/pst/pst-iop.c optional pst dev/pst/pst-pci.c optional pst pci dev/pst/pst-raid.c optional pst dev/pty/pty.c optional pty dev/puc/puc.c optional puc dev/puc/puc_cfg.c optional puc dev/puc/puc_pccard.c optional puc pccard dev/puc/puc_pci.c optional puc pci dev/quicc/quicc_core.c optional quicc dev/ral/rt2560.c optional ral dev/ral/rt2661.c optional ral dev/ral/rt2860.c optional ral dev/ral/if_ral_pci.c optional ral pci rt2561fw.c optional rt2561fw | ralfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rt2561.fw:rt2561fw -mrt2561 -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rt2561fw.c" rt2561fw.fwo optional rt2561fw | ralfw \ dependency "rt2561.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rt2561fw.fwo" rt2561.fw optional rt2561fw | ralfw \ dependency "$S/contrib/dev/ral/rt2561.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rt2561.fw" rt2561sfw.c optional rt2561sfw | ralfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rt2561s.fw:rt2561sfw -mrt2561s -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rt2561sfw.c" rt2561sfw.fwo optional rt2561sfw | ralfw \ dependency "rt2561s.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rt2561sfw.fwo" rt2561s.fw optional rt2561sfw | ralfw \ dependency "$S/contrib/dev/ral/rt2561s.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rt2561s.fw" rt2661fw.c optional rt2661fw | ralfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rt2661.fw:rt2661fw -mrt2661 -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rt2661fw.c" rt2661fw.fwo optional rt2661fw | ralfw \ dependency "rt2661.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rt2661fw.fwo" rt2661.fw optional rt2661fw | ralfw \ dependency "$S/contrib/dev/ral/rt2661.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rt2661.fw" rt2860fw.c optional rt2860fw | ralfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rt2860.fw:rt2860fw -mrt2860 -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rt2860fw.c" rt2860fw.fwo optional rt2860fw | ralfw \ dependency "rt2860.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rt2860fw.fwo" rt2860.fw optional rt2860fw | ralfw \ dependency "$S/contrib/dev/ral/rt2860.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rt2860.fw" dev/random/random_infra.c optional random dev/random/random_harvestq.c optional random dev/random/randomdev.c optional random random_yarrow | \ random !random_yarrow !random_loadable dev/random/yarrow.c optional random random_yarrow dev/random/fortuna.c optional random !random_yarrow !random_loadable dev/random/hash.c optional random random_yarrow | \ random !random_yarrow !random_loadable dev/rc/rc.c optional rc dev/rccgpio/rccgpio.c optional rccgpio gpio dev/re/if_re.c optional re dev/rl/if_rl.c optional rl pci dev/rndtest/rndtest.c optional rndtest dev/rp/rp.c optional rp dev/rp/rp_isa.c optional rp isa dev/rp/rp_pci.c optional rp pci # dev/rtwn/if_rtwn.c optional rtwn dev/rtwn/if_rtwn_beacon.c optional rtwn dev/rtwn/if_rtwn_calib.c optional rtwn dev/rtwn/if_rtwn_cam.c optional rtwn dev/rtwn/if_rtwn_efuse.c optional rtwn dev/rtwn/if_rtwn_fw.c optional rtwn dev/rtwn/if_rtwn_rx.c optional rtwn dev/rtwn/if_rtwn_task.c optional rtwn dev/rtwn/if_rtwn_tx.c optional rtwn # dev/rtwn/pci/rtwn_pci_attach.c optional rtwn_pci pci dev/rtwn/pci/rtwn_pci_reg.c optional rtwn_pci pci dev/rtwn/pci/rtwn_pci_rx.c optional rtwn_pci pci dev/rtwn/pci/rtwn_pci_tx.c optional rtwn_pci pci # dev/rtwn/usb/rtwn_usb_attach.c optional rtwn_usb dev/rtwn/usb/rtwn_usb_ep.c optional rtwn_usb dev/rtwn/usb/rtwn_usb_reg.c optional rtwn_usb dev/rtwn/usb/rtwn_usb_rx.c optional rtwn_usb dev/rtwn/usb/rtwn_usb_tx.c optional rtwn_usb # RTL8188E dev/rtwn/rtl8188e/r88e_beacon.c optional rtwn dev/rtwn/rtl8188e/r88e_calib.c optional rtwn dev/rtwn/rtl8188e/r88e_chan.c optional rtwn dev/rtwn/rtl8188e/r88e_fw.c optional rtwn dev/rtwn/rtl8188e/r88e_init.c optional rtwn dev/rtwn/rtl8188e/r88e_led.c optional rtwn dev/rtwn/rtl8188e/r88e_tx.c optional rtwn dev/rtwn/rtl8188e/r88e_rf.c optional rtwn dev/rtwn/rtl8188e/r88e_rom.c optional rtwn dev/rtwn/rtl8188e/r88e_rx.c optional rtwn dev/rtwn/rtl8188e/usb/r88eu_attach.c optional rtwn_usb dev/rtwn/rtl8188e/usb/r88eu_init.c optional rtwn_usb dev/rtwn/rtl8188e/usb/r88eu_rx.c optional rtwn_usb # RTL8192C dev/rtwn/rtl8192c/r92c_attach.c optional rtwn dev/rtwn/rtl8192c/r92c_beacon.c optional rtwn dev/rtwn/rtl8192c/r92c_calib.c optional rtwn dev/rtwn/rtl8192c/r92c_chan.c optional rtwn dev/rtwn/rtl8192c/r92c_fw.c optional rtwn dev/rtwn/rtl8192c/r92c_init.c optional rtwn dev/rtwn/rtl8192c/r92c_llt.c optional rtwn dev/rtwn/rtl8192c/r92c_rf.c optional rtwn dev/rtwn/rtl8192c/r92c_rom.c optional rtwn dev/rtwn/rtl8192c/r92c_rx.c optional rtwn dev/rtwn/rtl8192c/r92c_tx.c optional rtwn dev/rtwn/rtl8192c/pci/r92ce_attach.c optional rtwn_pci pci dev/rtwn/rtl8192c/pci/r92ce_calib.c optional rtwn_pci pci dev/rtwn/rtl8192c/pci/r92ce_fw.c optional rtwn_pci pci dev/rtwn/rtl8192c/pci/r92ce_init.c optional rtwn_pci pci dev/rtwn/rtl8192c/pci/r92ce_led.c optional rtwn_pci pci dev/rtwn/rtl8192c/pci/r92ce_rx.c optional rtwn_pci pci dev/rtwn/rtl8192c/pci/r92ce_tx.c optional rtwn_pci pci dev/rtwn/rtl8192c/usb/r92cu_attach.c optional rtwn_usb dev/rtwn/rtl8192c/usb/r92cu_init.c optional rtwn_usb dev/rtwn/rtl8192c/usb/r92cu_led.c optional rtwn_usb dev/rtwn/rtl8192c/usb/r92cu_rx.c optional rtwn_usb dev/rtwn/rtl8192c/usb/r92cu_tx.c optional rtwn_usb # RTL8192E dev/rtwn/rtl8192e/r92e_chan.c optional rtwn dev/rtwn/rtl8192e/r92e_fw.c optional rtwn dev/rtwn/rtl8192e/r92e_init.c optional rtwn dev/rtwn/rtl8192e/r92e_led.c optional rtwn dev/rtwn/rtl8192e/r92e_rf.c optional rtwn dev/rtwn/rtl8192e/r92e_rom.c optional rtwn dev/rtwn/rtl8192e/r92e_rx.c optional rtwn dev/rtwn/rtl8192e/usb/r92eu_attach.c optional rtwn_usb dev/rtwn/rtl8192e/usb/r92eu_init.c optional rtwn_usb # RTL8812A dev/rtwn/rtl8812a/r12a_beacon.c optional rtwn dev/rtwn/rtl8812a/r12a_calib.c optional rtwn dev/rtwn/rtl8812a/r12a_caps.c optional rtwn dev/rtwn/rtl8812a/r12a_chan.c optional rtwn dev/rtwn/rtl8812a/r12a_fw.c optional rtwn dev/rtwn/rtl8812a/r12a_init.c optional rtwn dev/rtwn/rtl8812a/r12a_led.c optional rtwn dev/rtwn/rtl8812a/r12a_rf.c optional rtwn dev/rtwn/rtl8812a/r12a_rom.c optional rtwn dev/rtwn/rtl8812a/r12a_rx.c optional rtwn dev/rtwn/rtl8812a/r12a_tx.c optional rtwn dev/rtwn/rtl8812a/usb/r12au_attach.c optional rtwn_usb dev/rtwn/rtl8812a/usb/r12au_init.c optional rtwn_usb dev/rtwn/rtl8812a/usb/r12au_rx.c optional rtwn_usb dev/rtwn/rtl8812a/usb/r12au_tx.c optional rtwn_usb # RTL8821A dev/rtwn/rtl8821a/r21a_beacon.c optional rtwn dev/rtwn/rtl8821a/r21a_calib.c optional rtwn dev/rtwn/rtl8821a/r21a_chan.c optional rtwn dev/rtwn/rtl8821a/r21a_fw.c optional rtwn dev/rtwn/rtl8821a/r21a_init.c optional rtwn dev/rtwn/rtl8821a/r21a_led.c optional rtwn dev/rtwn/rtl8821a/r21a_rom.c optional rtwn dev/rtwn/rtl8821a/r21a_rx.c optional rtwn dev/rtwn/rtl8821a/usb/r21au_attach.c optional rtwn_usb dev/rtwn/rtl8821a/usb/r21au_dfs.c optional rtwn_usb dev/rtwn/rtl8821a/usb/r21au_init.c optional rtwn_usb rtwn-rtl8188eufw.c optional rtwn-rtl8188eufw | rtwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rtwn-rtl8188eufw.fw:rtwn-rtl8188eufw:111 -mrtwn-rtl8188eufw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rtwn-rtl8188eufw.c" rtwn-rtl8188eufw.fwo optional rtwn-rtl8188eufw | rtwnfw \ dependency "rtwn-rtl8188eufw.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rtwn-rtl8188eufw.fwo" rtwn-rtl8188eufw.fw optional rtwn-rtl8188eufw | rtwnfw \ dependency "$S/contrib/dev/rtwn/rtwn-rtl8188eufw.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rtwn-rtl8188eufw.fw" rtwn-rtl8192cfwE.c optional rtwn-rtl8192cfwE | rtwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rtwn-rtl8192cfwE.fw:rtwn-rtl8192cfwE:111 -mrtwn-rtl8192cfwE -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rtwn-rtl8192cfwE.c" rtwn-rtl8192cfwE.fwo optional rtwn-rtl8192cfwE | rtwnfw \ dependency "rtwn-rtl8192cfwE.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rtwn-rtl8192cfwE.fwo" rtwn-rtl8192cfwE.fw optional rtwn-rtl8192cfwE | rtwnfw \ dependency "$S/contrib/dev/rtwn/rtwn-rtl8192cfwE.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rtwn-rtl8192cfwE.fw" rtwn-rtl8192cfwE_B.c optional rtwn-rtl8192cfwE_B | rtwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rtwn-rtl8192cfwE_B.fw:rtwn-rtl8192cfwE_B:111 -mrtwn-rtl8192cfwE_B -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rtwn-rtl8192cfwE_B.c" rtwn-rtl8192cfwE_B.fwo optional rtwn-rtl8192cfwE_B | rtwnfw \ dependency "rtwn-rtl8192cfwE_B.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rtwn-rtl8192cfwE_B.fwo" rtwn-rtl8192cfwE_B.fw optional rtwn-rtl8192cfwE_B | rtwnfw \ dependency "$S/contrib/dev/rtwn/rtwn-rtl8192cfwE_B.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rtwn-rtl8192cfwE_B.fw" rtwn-rtl8192cfwT.c optional rtwn-rtl8192cfwT | rtwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rtwn-rtl8192cfwT.fw:rtwn-rtl8192cfwT:111 -mrtwn-rtl8192cfwT -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rtwn-rtl8192cfwT.c" rtwn-rtl8192cfwT.fwo optional rtwn-rtl8192cfwT | rtwnfw \ dependency "rtwn-rtl8192cfwT.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rtwn-rtl8192cfwT.fwo" rtwn-rtl8192cfwT.fw optional rtwn-rtl8192cfwT | rtwnfw \ dependency "$S/contrib/dev/rtwn/rtwn-rtl8192cfwT.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rtwn-rtl8192cfwT.fw" rtwn-rtl8192cfwU.c optional rtwn-rtl8192cfwU | rtwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rtwn-rtl8192cfwU.fw:rtwn-rtl8192cfwU:111 -mrtwn-rtl8192cfwU -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rtwn-rtl8192cfwU.c" rtwn-rtl8192cfwU.fwo optional rtwn-rtl8192cfwU | rtwnfw \ dependency "rtwn-rtl8192cfwU.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rtwn-rtl8192cfwU.fwo" rtwn-rtl8192cfwU.fw optional rtwn-rtl8192cfwU | rtwnfw \ dependency "$S/contrib/dev/rtwn/rtwn-rtl8192cfwU.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rtwn-rtl8192cfwU.fw" rtwn-rtl8192eufw.c optional rtwn-rtl8192eufw | rtwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rtwn-rtl8192eufw.fw:rtwn-rtl8192eufw:111 -mrtwn-rtl8192eufw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rtwn-rtl8192eufw.c" rtwn-rtl8192eufw.fwo optional rtwn-rtl8192eufw | rtwnfw \ dependency "rtwn-rtl8192eufw.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rtwn-rtl8192eufw.fwo" rtwn-rtl8192eufw.fw optional rtwn-rtl8192eufw | rtwnfw \ dependency "$S/contrib/dev/rtwn/rtwn-rtl8192eufw.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rtwn-rtl8192eufw.fw" rtwn-rtl8812aufw.c optional rtwn-rtl8812aufw | rtwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rtwn-rtl8812aufw.fw:rtwn-rtl8812aufw:111 -mrtwn-rtl8812aufw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rtwn-rtl8812aufw.c" rtwn-rtl8812aufw.fwo optional rtwn-rtl8812aufw | rtwnfw \ dependency "rtwn-rtl8812aufw.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rtwn-rtl8812aufw.fwo" rtwn-rtl8812aufw.fw optional rtwn-rtl8812aufw | rtwnfw \ dependency "$S/contrib/dev/rtwn/rtwn-rtl8812aufw.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rtwn-rtl8812aufw.fw" rtwn-rtl8821aufw.c optional rtwn-rtl8821aufw | rtwnfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rtwn-rtl8821aufw.fw:rtwn-rtl8821aufw:111 -mrtwn-rtl8821aufw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rtwn-rtl8821aufw.c" rtwn-rtl8821aufw.fwo optional rtwn-rtl8821aufw | rtwnfw \ dependency "rtwn-rtl8821aufw.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rtwn-rtl8821aufw.fwo" rtwn-rtl8821aufw.fw optional rtwn-rtl8821aufw | rtwnfw \ dependency "$S/contrib/dev/rtwn/rtwn-rtl8821aufw.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rtwn-rtl8821aufw.fw" dev/safe/safe.c optional safe dev/scc/scc_if.m optional scc dev/scc/scc_bfe_ebus.c optional scc ebus dev/scc/scc_bfe_quicc.c optional scc quicc dev/scc/scc_bfe_sbus.c optional scc fhc | scc sbus dev/scc/scc_core.c optional scc dev/scc/scc_dev_quicc.c optional scc quicc dev/scc/scc_dev_sab82532.c optional scc dev/scc/scc_dev_z8530.c optional scc dev/sdhci/sdhci.c optional sdhci dev/sdhci/sdhci_fdt.c optional sdhci fdt dev/sdhci/sdhci_fdt_gpio.c optional sdhci fdt gpio dev/sdhci/sdhci_if.m optional sdhci dev/sdhci/sdhci_acpi.c optional sdhci acpi dev/sdhci/sdhci_pci.c optional sdhci pci dev/sf/if_sf.c optional sf pci dev/sge/if_sge.c optional sge pci dev/siis/siis.c optional siis pci dev/sis/if_sis.c optional sis pci dev/sk/if_sk.c optional sk pci dev/smbus/smb.c optional smb dev/smbus/smbconf.c optional smbus dev/smbus/smbus.c optional smbus dev/smbus/smbus_if.m optional smbus dev/smc/if_smc.c optional smc dev/smc/if_smc_fdt.c optional smc fdt dev/sn/if_sn.c optional sn dev/sn/if_sn_isa.c optional sn isa dev/sn/if_sn_pccard.c optional sn pccard dev/snp/snp.c optional snp dev/sound/clone.c optional sound dev/sound/unit.c optional sound dev/sound/isa/ad1816.c optional snd_ad1816 isa dev/sound/isa/ess.c optional snd_ess isa dev/sound/isa/gusc.c optional snd_gusc isa dev/sound/isa/mss.c optional snd_mss isa dev/sound/isa/sb16.c optional snd_sb16 isa dev/sound/isa/sb8.c optional snd_sb8 isa dev/sound/isa/sbc.c optional snd_sbc isa dev/sound/isa/sndbuf_dma.c optional sound isa dev/sound/pci/als4000.c optional snd_als4000 pci dev/sound/pci/atiixp.c optional snd_atiixp pci dev/sound/pci/cmi.c optional snd_cmi pci dev/sound/pci/cs4281.c optional snd_cs4281 pci dev/sound/pci/csa.c optional snd_csa pci dev/sound/pci/csapcm.c optional snd_csa pci dev/sound/pci/ds1.c optional snd_ds1 pci dev/sound/pci/emu10k1.c optional snd_emu10k1 pci dev/sound/pci/emu10kx.c optional snd_emu10kx pci dev/sound/pci/emu10kx-pcm.c optional snd_emu10kx pci dev/sound/pci/emu10kx-midi.c optional snd_emu10kx pci dev/sound/pci/envy24.c optional snd_envy24 pci dev/sound/pci/envy24ht.c optional snd_envy24ht pci dev/sound/pci/es137x.c optional snd_es137x pci dev/sound/pci/fm801.c optional snd_fm801 pci dev/sound/pci/ich.c optional snd_ich pci dev/sound/pci/maestro.c optional snd_maestro pci dev/sound/pci/maestro3.c optional snd_maestro3 pci dev/sound/pci/neomagic.c optional snd_neomagic pci dev/sound/pci/solo.c optional snd_solo pci dev/sound/pci/spicds.c optional snd_spicds pci dev/sound/pci/t4dwave.c optional snd_t4dwave pci dev/sound/pci/via8233.c optional snd_via8233 pci dev/sound/pci/via82c686.c optional snd_via82c686 pci dev/sound/pci/vibes.c optional snd_vibes pci dev/sound/pci/hda/hdaa.c optional snd_hda pci dev/sound/pci/hda/hdaa_patches.c optional snd_hda pci dev/sound/pci/hda/hdac.c optional snd_hda pci dev/sound/pci/hda/hdac_if.m optional snd_hda pci dev/sound/pci/hda/hdacc.c optional snd_hda pci dev/sound/pci/hdspe.c optional snd_hdspe pci dev/sound/pci/hdspe-pcm.c optional snd_hdspe pci dev/sound/pcm/ac97.c optional sound dev/sound/pcm/ac97_if.m optional sound dev/sound/pcm/ac97_patch.c optional sound dev/sound/pcm/buffer.c optional sound \ dependency "snd_fxdiv_gen.h" dev/sound/pcm/channel.c optional sound dev/sound/pcm/channel_if.m optional sound dev/sound/pcm/dsp.c optional sound dev/sound/pcm/feeder.c optional sound dev/sound/pcm/feeder_chain.c optional sound dev/sound/pcm/feeder_eq.c optional sound \ dependency "feeder_eq_gen.h" \ dependency "snd_fxdiv_gen.h" dev/sound/pcm/feeder_if.m optional sound dev/sound/pcm/feeder_format.c optional sound \ dependency "snd_fxdiv_gen.h" dev/sound/pcm/feeder_matrix.c optional sound \ dependency "snd_fxdiv_gen.h" dev/sound/pcm/feeder_mixer.c optional sound \ dependency "snd_fxdiv_gen.h" dev/sound/pcm/feeder_rate.c optional sound \ dependency "feeder_rate_gen.h" \ dependency "snd_fxdiv_gen.h" dev/sound/pcm/feeder_volume.c optional sound \ dependency "snd_fxdiv_gen.h" dev/sound/pcm/mixer.c optional sound dev/sound/pcm/mixer_if.m optional sound dev/sound/pcm/sndstat.c optional sound dev/sound/pcm/sound.c optional sound dev/sound/pcm/vchan.c optional sound dev/sound/usb/uaudio.c optional snd_uaudio usb dev/sound/usb/uaudio_pcm.c optional snd_uaudio usb dev/sound/midi/midi.c optional sound dev/sound/midi/mpu401.c optional sound dev/sound/midi/mpu_if.m optional sound dev/sound/midi/mpufoi_if.m optional sound dev/sound/midi/sequencer.c optional sound dev/sound/midi/synth_if.m optional sound dev/spibus/ofw_spibus.c optional fdt spibus dev/spibus/spibus.c optional spibus \ dependency "spibus_if.h" dev/spibus/spigen.c optional spigen dev/spibus/spibus_if.m optional spibus dev/ste/if_ste.c optional ste pci dev/stg/tmc18c30.c optional stg dev/stg/tmc18c30_isa.c optional stg isa dev/stg/tmc18c30_pccard.c optional stg pccard dev/stg/tmc18c30_pci.c optional stg pci dev/stg/tmc18c30_subr.c optional stg dev/stge/if_stge.c optional stge dev/sym/sym_hipd.c optional sym \ dependency "$S/dev/sym/sym_{conf,defs}.h" dev/syscons/blank/blank_saver.c optional blank_saver dev/syscons/daemon/daemon_saver.c optional daemon_saver dev/syscons/dragon/dragon_saver.c optional dragon_saver dev/syscons/fade/fade_saver.c optional fade_saver dev/syscons/fire/fire_saver.c optional fire_saver dev/syscons/green/green_saver.c optional green_saver dev/syscons/logo/logo.c optional logo_saver dev/syscons/logo/logo_saver.c optional logo_saver dev/syscons/rain/rain_saver.c optional rain_saver dev/syscons/schistory.c optional sc dev/syscons/scmouse.c optional sc dev/syscons/scterm.c optional sc dev/syscons/scvidctl.c optional sc dev/syscons/snake/snake_saver.c optional snake_saver dev/syscons/star/star_saver.c optional star_saver dev/syscons/syscons.c optional sc dev/syscons/sysmouse.c optional sc dev/syscons/warp/warp_saver.c optional warp_saver dev/tcp_log/tcp_log_dev.c optional tcp_blackbox inet | tcp_blackbox inet6 dev/tdfx/tdfx_linux.c optional tdfx_linux tdfx compat_linux dev/tdfx/tdfx_pci.c optional tdfx pci dev/ti/if_ti.c optional ti pci dev/tl/if_tl.c optional tl pci dev/trm/trm.c optional trm dev/twa/tw_cl_init.c optional twa \ compile-with "${NORMAL_C} -I$S/dev/twa" dev/twa/tw_cl_intr.c optional twa \ compile-with "${NORMAL_C} -I$S/dev/twa" dev/twa/tw_cl_io.c optional twa \ compile-with "${NORMAL_C} -I$S/dev/twa" dev/twa/tw_cl_misc.c optional twa \ compile-with "${NORMAL_C} -I$S/dev/twa" dev/twa/tw_osl_cam.c optional twa \ compile-with "${NORMAL_C} -I$S/dev/twa" dev/twa/tw_osl_freebsd.c optional twa \ compile-with "${NORMAL_C} -I$S/dev/twa" dev/twe/twe.c optional twe dev/twe/twe_freebsd.c optional twe dev/tws/tws.c optional tws dev/tws/tws_cam.c optional tws dev/tws/tws_hdm.c optional tws dev/tws/tws_services.c optional tws dev/tws/tws_user.c optional tws dev/tx/if_tx.c optional tx dev/txp/if_txp.c optional txp dev/uart/uart_bus_acpi.c optional uart acpi dev/uart/uart_bus_ebus.c optional uart ebus dev/uart/uart_bus_fdt.c optional uart fdt dev/uart/uart_bus_isa.c optional uart isa dev/uart/uart_bus_pccard.c optional uart pccard dev/uart/uart_bus_pci.c optional uart pci dev/uart/uart_bus_puc.c optional uart puc dev/uart/uart_bus_scc.c optional uart scc dev/uart/uart_core.c optional uart dev/uart/uart_dbg.c optional uart gdb dev/uart/uart_dev_msm.c optional uart uart_msm fdt dev/uart/uart_dev_mvebu.c optional uart uart_mvebu dev/uart/uart_dev_ns8250.c optional uart uart_ns8250 | uart uart_snps dev/uart/uart_dev_pl011.c optional uart pl011 dev/uart/uart_dev_quicc.c optional uart quicc dev/uart/uart_dev_sab82532.c optional uart uart_sab82532 dev/uart/uart_dev_sab82532.c optional uart scc dev/uart/uart_dev_snps.c optional uart uart_snps fdt dev/uart/uart_dev_z8530.c optional uart uart_z8530 dev/uart/uart_dev_z8530.c optional uart scc dev/uart/uart_if.m optional uart dev/uart/uart_subr.c optional uart dev/uart/uart_tty.c optional uart dev/ubsec/ubsec.c optional ubsec # # USB controller drivers # dev/usb/controller/at91dci.c optional at91dci dev/usb/controller/at91dci_atmelarm.c optional at91dci at91rm9200 dev/usb/controller/musb_otg.c optional musb dev/usb/controller/musb_otg_atmelarm.c optional musb at91rm9200 dev/usb/controller/dwc_otg.c optional dwcotg dev/usb/controller/dwc_otg_fdt.c optional dwcotg fdt dev/usb/controller/ehci.c optional ehci dev/usb/controller/ehci_msm.c optional ehci_msm fdt dev/usb/controller/ehci_pci.c optional ehci pci dev/usb/controller/ohci.c optional ohci dev/usb/controller/ohci_pci.c optional ohci pci dev/usb/controller/uhci.c optional uhci dev/usb/controller/uhci_pci.c optional uhci pci dev/usb/controller/xhci.c optional xhci dev/usb/controller/xhci_pci.c optional xhci pci dev/usb/controller/saf1761_otg.c optional saf1761otg dev/usb/controller/saf1761_otg_fdt.c optional saf1761otg fdt dev/usb/controller/uss820dci.c optional uss820dci dev/usb/controller/uss820dci_atmelarm.c optional uss820dci at91rm9200 dev/usb/controller/usb_controller.c optional usb # # USB storage drivers # dev/usb/storage/cfumass.c optional cfumass ctl dev/usb/storage/umass.c optional umass dev/usb/storage/urio.c optional urio dev/usb/storage/ustorage_fs.c optional usfs # # USB core # dev/usb/usb_busdma.c optional usb dev/usb/usb_core.c optional usb dev/usb/usb_debug.c optional usb dev/usb/usb_dev.c optional usb dev/usb/usb_device.c optional usb dev/usb/usb_dynamic.c optional usb dev/usb/usb_error.c optional usb dev/usb/usb_generic.c optional usb dev/usb/usb_handle_request.c optional usb dev/usb/usb_hid.c optional usb dev/usb/usb_hub.c optional usb dev/usb/usb_if.m optional usb dev/usb/usb_lookup.c optional usb dev/usb/usb_mbuf.c optional usb dev/usb/usb_msctest.c optional usb dev/usb/usb_parse.c optional usb dev/usb/usb_pf.c optional usb dev/usb/usb_process.c optional usb dev/usb/usb_request.c optional usb dev/usb/usb_transfer.c optional usb dev/usb/usb_util.c optional usb # # USB network drivers # dev/usb/net/if_aue.c optional aue dev/usb/net/if_axe.c optional axe dev/usb/net/if_axge.c optional axge dev/usb/net/if_cdce.c optional cdce dev/usb/net/if_cue.c optional cue dev/usb/net/if_ipheth.c optional ipheth dev/usb/net/if_kue.c optional kue dev/usb/net/if_mos.c optional mos dev/usb/net/if_rue.c optional rue dev/usb/net/if_smsc.c optional smsc dev/usb/net/if_udav.c optional udav dev/usb/net/if_ure.c optional ure dev/usb/net/if_usie.c optional usie dev/usb/net/if_urndis.c optional urndis dev/usb/net/ruephy.c optional rue dev/usb/net/usb_ethernet.c optional uether | aue | axe | axge | cdce | \ cue | ipheth | kue | mos | rue | \ smsc | udav | ure | urndis dev/usb/net/uhso.c optional uhso # # USB WLAN drivers # dev/usb/wlan/if_rsu.c optional rsu rsu-rtl8712fw.c optional rsu-rtl8712fw | rsufw \ compile-with "${AWK} -f $S/tools/fw_stub.awk rsu-rtl8712fw.fw:rsu-rtl8712fw:120 -mrsu-rtl8712fw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "rsu-rtl8712fw.c" rsu-rtl8712fw.fwo optional rsu-rtl8712fw | rsufw \ dependency "rsu-rtl8712fw.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "rsu-rtl8712fw.fwo" rsu-rtl8712fw.fw optional rsu-rtl8712.fw | rsufw \ dependency "$S/contrib/dev/rsu/rsu-rtl8712fw.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "rsu-rtl8712fw.fw" dev/usb/wlan/if_rum.c optional rum dev/usb/wlan/if_run.c optional run runfw.c optional runfw \ compile-with "${AWK} -f $S/tools/fw_stub.awk run.fw:runfw -mrunfw -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "runfw.c" runfw.fwo optional runfw \ dependency "run.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "runfw.fwo" run.fw optional runfw \ dependency "$S/contrib/dev/run/rt2870.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "run.fw" dev/usb/wlan/if_uath.c optional uath dev/usb/wlan/if_upgt.c optional upgt dev/usb/wlan/if_ural.c optional ural dev/usb/wlan/if_urtw.c optional urtw dev/usb/wlan/if_zyd.c optional zyd # # USB serial and parallel port drivers # dev/usb/serial/u3g.c optional u3g dev/usb/serial/uark.c optional uark dev/usb/serial/ubsa.c optional ubsa dev/usb/serial/ubser.c optional ubser dev/usb/serial/uchcom.c optional uchcom dev/usb/serial/ucycom.c optional ucycom dev/usb/serial/ufoma.c optional ufoma dev/usb/serial/uftdi.c optional uftdi dev/usb/serial/ugensa.c optional ugensa dev/usb/serial/uipaq.c optional uipaq dev/usb/serial/ulpt.c optional ulpt dev/usb/serial/umcs.c optional umcs dev/usb/serial/umct.c optional umct dev/usb/serial/umodem.c optional umodem dev/usb/serial/umoscom.c optional umoscom dev/usb/serial/uplcom.c optional uplcom dev/usb/serial/uslcom.c optional uslcom dev/usb/serial/uvisor.c optional uvisor dev/usb/serial/uvscom.c optional uvscom dev/usb/serial/usb_serial.c optional ucom | u3g | uark | ubsa | ubser | \ uchcom | ucycom | ufoma | uftdi | \ ugensa | uipaq | umcs | umct | \ umodem | umoscom | uplcom | usie | \ uslcom | uvisor | uvscom # # USB misc drivers # dev/usb/misc/ufm.c optional ufm dev/usb/misc/udbp.c optional udbp dev/usb/misc/ugold.c optional ugold dev/usb/misc/uled.c optional uled # # USB input drivers # dev/usb/input/atp.c optional atp dev/usb/input/uep.c optional uep dev/usb/input/uhid.c optional uhid dev/usb/input/ukbd.c optional ukbd dev/usb/input/ums.c optional ums dev/usb/input/wmt.c optional wmt dev/usb/input/wsp.c optional wsp # # USB quirks # dev/usb/quirk/usb_quirk.c optional usb # # USB templates # dev/usb/template/usb_template.c optional usb_template dev/usb/template/usb_template_audio.c optional usb_template dev/usb/template/usb_template_cdce.c optional usb_template dev/usb/template/usb_template_kbd.c optional usb_template dev/usb/template/usb_template_modem.c optional usb_template dev/usb/template/usb_template_mouse.c optional usb_template dev/usb/template/usb_template_msc.c optional usb_template dev/usb/template/usb_template_mtp.c optional usb_template dev/usb/template/usb_template_phone.c optional usb_template dev/usb/template/usb_template_serialnet.c optional usb_template dev/usb/template/usb_template_midi.c optional usb_template # # USB video drivers # dev/usb/video/udl.c optional udl # # USB END # dev/videomode/videomode.c optional videomode dev/videomode/edid.c optional videomode dev/videomode/pickmode.c optional videomode dev/videomode/vesagtf.c optional videomode dev/vge/if_vge.c optional vge dev/viapm/viapm.c optional viapm pci dev/virtio/virtio.c optional virtio dev/virtio/virtqueue.c optional virtio dev/virtio/virtio_bus_if.m optional virtio dev/virtio/virtio_if.m optional virtio dev/virtio/pci/virtio_pci.c optional virtio_pci dev/virtio/mmio/virtio_mmio.c optional virtio_mmio fdt dev/virtio/mmio/virtio_mmio_if.m optional virtio_mmio fdt dev/virtio/network/if_vtnet.c optional vtnet dev/virtio/block/virtio_blk.c optional virtio_blk dev/virtio/balloon/virtio_balloon.c optional virtio_balloon dev/virtio/scsi/virtio_scsi.c optional virtio_scsi dev/virtio/random/virtio_random.c optional virtio_random dev/virtio/console/virtio_console.c optional virtio_console dev/vkbd/vkbd.c optional vkbd dev/vr/if_vr.c optional vr pci dev/vt/colors/vt_termcolors.c optional vt dev/vt/font/vt_font_default.c optional vt dev/vt/font/vt_mouse_cursor.c optional vt dev/vt/hw/efifb/efifb.c optional vt_efifb dev/vt/hw/fb/vt_fb.c optional vt dev/vt/hw/vga/vt_vga.c optional vt vt_vga dev/vt/logo/logo_freebsd.c optional vt splash dev/vt/logo/logo_beastie.c optional vt splash dev/vt/vt_buf.c optional vt dev/vt/vt_consolectl.c optional vt dev/vt/vt_core.c optional vt dev/vt/vt_cpulogos.c optional vt splash dev/vt/vt_font.c optional vt dev/vt/vt_sysmouse.c optional vt dev/vte/if_vte.c optional vte pci dev/vx/if_vx.c optional vx dev/vx/if_vx_pci.c optional vx pci dev/vxge/vxge.c optional vxge dev/vxge/vxgehal/vxgehal-ifmsg.c optional vxge dev/vxge/vxgehal/vxgehal-mrpcim.c optional vxge dev/vxge/vxgehal/vxge-queue.c optional vxge dev/vxge/vxgehal/vxgehal-ring.c optional vxge dev/vxge/vxgehal/vxgehal-swapper.c optional vxge dev/vxge/vxgehal/vxgehal-mgmt.c optional vxge dev/vxge/vxgehal/vxgehal-srpcim.c optional vxge dev/vxge/vxgehal/vxgehal-config.c optional vxge dev/vxge/vxgehal/vxgehal-blockpool.c optional vxge dev/vxge/vxgehal/vxgehal-doorbells.c optional vxge dev/vxge/vxgehal/vxgehal-mgmtaux.c optional vxge dev/vxge/vxgehal/vxgehal-device.c optional vxge dev/vxge/vxgehal/vxgehal-mm.c optional vxge dev/vxge/vxgehal/vxgehal-driver.c optional vxge dev/vxge/vxgehal/vxgehal-virtualpath.c optional vxge dev/vxge/vxgehal/vxgehal-channel.c optional vxge dev/vxge/vxgehal/vxgehal-fifo.c optional vxge dev/watchdog/watchdog.c standard dev/wb/if_wb.c optional wb pci dev/wi/if_wi.c optional wi dev/wi/if_wi_pccard.c optional wi pccard dev/wi/if_wi_pci.c optional wi pci dev/wpi/if_wpi.c optional wpi pci wpifw.c optional wpifw \ compile-with "${AWK} -f $S/tools/fw_stub.awk wpi.fw:wpifw:153229 -mwpi -c${.TARGET}" \ no-implicit-rule before-depend local \ clean "wpifw.c" wpifw.fwo optional wpifw \ dependency "wpi.fw" \ compile-with "${NORMAL_FWO}" \ no-implicit-rule \ clean "wpifw.fwo" wpi.fw optional wpifw \ dependency "$S/contrib/dev/wpi/iwlwifi-3945-15.32.2.9.fw.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "wpi.fw" dev/xdma/controller/pl330.c optional xdma pl330 dev/xdma/xdma.c optional xdma dev/xdma/xdma_bank.c optional xdma dev/xdma/xdma_bio.c optional xdma dev/xdma/xdma_fdt_test.c optional xdma xdma_test fdt dev/xdma/xdma_if.m optional xdma dev/xdma/xdma_mbuf.c optional xdma dev/xdma/xdma_queue.c optional xdma dev/xdma/xdma_sg.c optional xdma dev/xdma/xdma_sglist.c optional xdma dev/xe/if_xe.c optional xe dev/xe/if_xe_pccard.c optional xe pccard dev/xen/balloon/balloon.c optional xenhvm dev/xen/blkfront/blkfront.c optional xenhvm dev/xen/blkback/blkback.c optional xenhvm dev/xen/console/xen_console.c optional xenhvm dev/xen/control/control.c optional xenhvm dev/xen/grant_table/grant_table.c optional xenhvm dev/xen/netback/netback.c optional xenhvm dev/xen/netfront/netfront.c optional xenhvm dev/xen/xenpci/xenpci.c optional xenpci dev/xen/timer/timer.c optional xenhvm dev/xen/pvcpu/pvcpu.c optional xenhvm dev/xen/xenstore/xenstore.c optional xenhvm dev/xen/xenstore/xenstore_dev.c optional xenhvm dev/xen/xenstore/xenstored_dev.c optional xenhvm dev/xen/evtchn/evtchn_dev.c optional xenhvm dev/xen/privcmd/privcmd.c optional xenhvm dev/xen/gntdev/gntdev.c optional xenhvm dev/xen/debug/debug.c optional xenhvm dev/xl/if_xl.c optional xl pci dev/xl/xlphy.c optional xl pci fs/autofs/autofs.c optional autofs fs/autofs/autofs_vfsops.c optional autofs fs/autofs/autofs_vnops.c optional autofs fs/deadfs/dead_vnops.c standard fs/devfs/devfs_devs.c standard fs/devfs/devfs_dir.c standard fs/devfs/devfs_rule.c standard fs/devfs/devfs_vfsops.c standard fs/devfs/devfs_vnops.c standard fs/fdescfs/fdesc_vfsops.c optional fdescfs fs/fdescfs/fdesc_vnops.c optional fdescfs fs/fifofs/fifo_vnops.c standard fs/cuse/cuse.c optional cuse fs/fuse/fuse_device.c optional fuse fs/fuse/fuse_file.c optional fuse fs/fuse/fuse_internal.c optional fuse fs/fuse/fuse_io.c optional fuse fs/fuse/fuse_ipc.c optional fuse fs/fuse/fuse_main.c optional fuse fs/fuse/fuse_node.c optional fuse fs/fuse/fuse_vfsops.c optional fuse fs/fuse/fuse_vnops.c optional fuse fs/msdosfs/msdosfs_conv.c optional msdosfs fs/msdosfs/msdosfs_denode.c optional msdosfs fs/msdosfs/msdosfs_fat.c optional msdosfs fs/msdosfs/msdosfs_iconv.c optional msdosfs_iconv fs/msdosfs/msdosfs_lookup.c optional msdosfs fs/msdosfs/msdosfs_vfsops.c optional msdosfs fs/msdosfs/msdosfs_vnops.c optional msdosfs fs/nandfs/bmap.c optional nandfs fs/nandfs/nandfs_alloc.c optional nandfs fs/nandfs/nandfs_bmap.c optional nandfs fs/nandfs/nandfs_buffer.c optional nandfs fs/nandfs/nandfs_cleaner.c optional nandfs fs/nandfs/nandfs_cpfile.c optional nandfs fs/nandfs/nandfs_dat.c optional nandfs fs/nandfs/nandfs_dir.c optional nandfs fs/nandfs/nandfs_ifile.c optional nandfs fs/nandfs/nandfs_segment.c optional nandfs fs/nandfs/nandfs_subr.c optional nandfs fs/nandfs/nandfs_sufile.c optional nandfs fs/nandfs/nandfs_vfsops.c optional nandfs fs/nandfs/nandfs_vnops.c optional nandfs fs/nfs/nfs_commonkrpc.c optional nfscl | nfsd fs/nfs/nfs_commonsubs.c optional nfscl | nfsd fs/nfs/nfs_commonport.c optional nfscl | nfsd fs/nfs/nfs_commonacl.c optional nfscl | nfsd fs/nfsclient/nfs_clcomsubs.c optional nfscl fs/nfsclient/nfs_clsubs.c optional nfscl fs/nfsclient/nfs_clstate.c optional nfscl fs/nfsclient/nfs_clkrpc.c optional nfscl fs/nfsclient/nfs_clrpcops.c optional nfscl fs/nfsclient/nfs_clvnops.c optional nfscl fs/nfsclient/nfs_clnode.c optional nfscl fs/nfsclient/nfs_clvfsops.c optional nfscl fs/nfsclient/nfs_clport.c optional nfscl fs/nfsclient/nfs_clbio.c optional nfscl fs/nfsclient/nfs_clnfsiod.c optional nfscl fs/nfsserver/nfs_fha_new.c optional nfsd inet fs/nfsserver/nfs_nfsdsocket.c optional nfsd inet fs/nfsserver/nfs_nfsdsubs.c optional nfsd inet fs/nfsserver/nfs_nfsdstate.c optional nfsd inet fs/nfsserver/nfs_nfsdkrpc.c optional nfsd inet fs/nfsserver/nfs_nfsdserv.c optional nfsd inet fs/nfsserver/nfs_nfsdport.c optional nfsd inet fs/nfsserver/nfs_nfsdcache.c optional nfsd inet fs/nullfs/null_subr.c optional nullfs fs/nullfs/null_vfsops.c optional nullfs fs/nullfs/null_vnops.c optional nullfs fs/procfs/procfs.c optional procfs fs/procfs/procfs_dbregs.c optional procfs fs/procfs/procfs_fpregs.c optional procfs fs/procfs/procfs_ioctl.c optional procfs fs/procfs/procfs_map.c optional procfs fs/procfs/procfs_mem.c optional procfs fs/procfs/procfs_note.c optional procfs fs/procfs/procfs_osrel.c optional procfs fs/procfs/procfs_regs.c optional procfs fs/procfs/procfs_rlimit.c optional procfs fs/procfs/procfs_status.c optional procfs fs/procfs/procfs_type.c optional procfs fs/pseudofs/pseudofs.c optional pseudofs fs/pseudofs/pseudofs_fileno.c optional pseudofs fs/pseudofs/pseudofs_vncache.c optional pseudofs fs/pseudofs/pseudofs_vnops.c optional pseudofs fs/smbfs/smbfs_io.c optional smbfs fs/smbfs/smbfs_node.c optional smbfs fs/smbfs/smbfs_smb.c optional smbfs fs/smbfs/smbfs_subr.c optional smbfs fs/smbfs/smbfs_vfsops.c optional smbfs fs/smbfs/smbfs_vnops.c optional smbfs fs/udf/osta.c optional udf fs/udf/udf_iconv.c optional udf_iconv fs/udf/udf_vfsops.c optional udf fs/udf/udf_vnops.c optional udf fs/unionfs/union_subr.c optional unionfs fs/unionfs/union_vfsops.c optional unionfs fs/unionfs/union_vnops.c optional unionfs fs/tmpfs/tmpfs_vnops.c optional tmpfs fs/tmpfs/tmpfs_fifoops.c optional tmpfs fs/tmpfs/tmpfs_vfsops.c optional tmpfs fs/tmpfs/tmpfs_subr.c optional tmpfs gdb/gdb_cons.c optional gdb gdb/gdb_main.c optional gdb gdb/gdb_packet.c optional gdb geom/bde/g_bde.c optional geom_bde geom/bde/g_bde_crypt.c optional geom_bde geom/bde/g_bde_lock.c optional geom_bde geom/bde/g_bde_work.c optional geom_bde geom/cache/g_cache.c optional geom_cache geom/concat/g_concat.c optional geom_concat geom/eli/g_eli.c optional geom_eli geom/eli/g_eli_crypto.c optional geom_eli geom/eli/g_eli_ctl.c optional geom_eli geom/eli/g_eli_hmac.c optional geom_eli geom/eli/g_eli_integrity.c optional geom_eli geom/eli/g_eli_key.c optional geom_eli geom/eli/g_eli_key_cache.c optional geom_eli geom/eli/g_eli_privacy.c optional geom_eli geom/eli/pkcs5v2.c optional geom_eli geom/gate/g_gate.c optional geom_gate geom/geom_bsd.c optional geom_bsd geom/geom_bsd_enc.c optional geom_bsd | geom_part_bsd geom/geom_ccd.c optional ccd | geom_ccd geom/geom_ctl.c standard geom/geom_dev.c standard geom/geom_disk.c standard geom/geom_dump.c standard geom/geom_event.c standard geom/geom_fox.c optional geom_fox geom/geom_flashmap.c optional fdt cfi | fdt nand | fdt mx25l | mmcsd | fdt n25q geom/geom_io.c standard geom/geom_kern.c standard geom/geom_map.c optional geom_map geom/geom_mbr.c optional geom_mbr geom/geom_mbr_enc.c optional geom_mbr geom/geom_redboot.c optional geom_redboot geom/geom_slice.c standard geom/geom_subr.c standard geom/geom_sunlabel.c optional geom_sunlabel geom/geom_sunlabel_enc.c optional geom_sunlabel geom/geom_vfs.c standard geom/geom_vol_ffs.c optional geom_vol geom/journal/g_journal.c optional geom_journal geom/journal/g_journal_ufs.c optional geom_journal geom/label/g_label.c optional geom_label | geom_label_gpt geom/label/g_label_ext2fs.c optional geom_label geom/label/g_label_iso9660.c optional geom_label geom/label/g_label_msdosfs.c optional geom_label geom/label/g_label_ntfs.c optional geom_label geom/label/g_label_reiserfs.c optional geom_label geom/label/g_label_ufs.c optional geom_label geom/label/g_label_gpt.c optional geom_label | geom_label_gpt geom/label/g_label_disk_ident.c optional geom_label geom/linux_lvm/g_linux_lvm.c optional geom_linux_lvm geom/mirror/g_mirror.c optional geom_mirror geom/mirror/g_mirror_ctl.c optional geom_mirror geom/mountver/g_mountver.c optional geom_mountver geom/multipath/g_multipath.c optional geom_multipath geom/nop/g_nop.c optional geom_nop geom/part/g_part.c standard geom/part/g_part_if.m standard geom/part/g_part_apm.c optional geom_part_apm geom/part/g_part_bsd.c optional geom_part_bsd geom/part/g_part_bsd64.c optional geom_part_bsd64 geom/part/g_part_ebr.c optional geom_part_ebr geom/part/g_part_gpt.c optional geom_part_gpt geom/part/g_part_ldm.c optional geom_part_ldm geom/part/g_part_mbr.c optional geom_part_mbr geom/part/g_part_vtoc8.c optional geom_part_vtoc8 geom/raid/g_raid.c optional geom_raid geom/raid/g_raid_ctl.c optional geom_raid geom/raid/g_raid_md_if.m optional geom_raid geom/raid/g_raid_tr_if.m optional geom_raid geom/raid/md_ddf.c optional geom_raid geom/raid/md_intel.c optional geom_raid geom/raid/md_jmicron.c optional geom_raid geom/raid/md_nvidia.c optional geom_raid geom/raid/md_promise.c optional geom_raid geom/raid/md_sii.c optional geom_raid geom/raid/tr_concat.c optional geom_raid geom/raid/tr_raid0.c optional geom_raid geom/raid/tr_raid1.c optional geom_raid geom/raid/tr_raid1e.c optional geom_raid geom/raid/tr_raid5.c optional geom_raid geom/raid3/g_raid3.c optional geom_raid3 geom/raid3/g_raid3_ctl.c optional geom_raid3 geom/shsec/g_shsec.c optional geom_shsec geom/stripe/g_stripe.c optional geom_stripe contrib/xz-embedded/freebsd/xz_malloc.c \ optional xz_embedded | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" contrib/xz-embedded/linux/lib/xz/xz_crc32.c \ optional xz_embedded | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" contrib/xz-embedded/linux/lib/xz/xz_dec_bcj.c \ optional xz_embedded | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" contrib/xz-embedded/linux/lib/xz/xz_dec_lzma2.c \ optional xz_embedded | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" contrib/xz-embedded/linux/lib/xz/xz_dec_stream.c \ optional xz_embedded | geom_uzip \ compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" geom/uzip/g_uzip.c optional geom_uzip geom/uzip/g_uzip_lzma.c optional geom_uzip geom/uzip/g_uzip_wrkthr.c optional geom_uzip geom/uzip/g_uzip_zlib.c optional geom_uzip geom/vinum/geom_vinum.c optional geom_vinum geom/vinum/geom_vinum_create.c optional geom_vinum geom/vinum/geom_vinum_drive.c optional geom_vinum geom/vinum/geom_vinum_plex.c optional geom_vinum geom/vinum/geom_vinum_volume.c optional geom_vinum geom/vinum/geom_vinum_subr.c optional geom_vinum geom/vinum/geom_vinum_raid5.c optional geom_vinum geom/vinum/geom_vinum_share.c optional geom_vinum geom/vinum/geom_vinum_list.c optional geom_vinum geom/vinum/geom_vinum_rm.c optional geom_vinum geom/vinum/geom_vinum_init.c optional geom_vinum geom/vinum/geom_vinum_state.c optional geom_vinum geom/vinum/geom_vinum_rename.c optional geom_vinum geom/vinum/geom_vinum_move.c optional geom_vinum geom/vinum/geom_vinum_events.c optional geom_vinum geom/virstor/binstream.c optional geom_virstor geom/virstor/g_virstor.c optional geom_virstor geom/virstor/g_virstor_md.c optional geom_virstor geom/zero/g_zero.c optional geom_zero fs/ext2fs/ext2_acl.c optional ext2fs fs/ext2fs/ext2_alloc.c optional ext2fs fs/ext2fs/ext2_balloc.c optional ext2fs fs/ext2fs/ext2_bmap.c optional ext2fs fs/ext2fs/ext2_csum.c optional ext2fs fs/ext2fs/ext2_extattr.c optional ext2fs fs/ext2fs/ext2_extents.c optional ext2fs fs/ext2fs/ext2_inode.c optional ext2fs fs/ext2fs/ext2_inode_cnv.c optional ext2fs fs/ext2fs/ext2_hash.c optional ext2fs fs/ext2fs/ext2_htree.c optional ext2fs fs/ext2fs/ext2_lookup.c optional ext2fs fs/ext2fs/ext2_subr.c optional ext2fs fs/ext2fs/ext2_vfsops.c optional ext2fs fs/ext2fs/ext2_vnops.c optional ext2fs # isa/isa_if.m standard isa/isa_common.c optional isa isa/isahint.c optional isa isa/pnp.c optional isa isapnp isa/pnpparse.c optional isa isapnp fs/cd9660/cd9660_bmap.c optional cd9660 fs/cd9660/cd9660_lookup.c optional cd9660 fs/cd9660/cd9660_node.c optional cd9660 fs/cd9660/cd9660_rrip.c optional cd9660 fs/cd9660/cd9660_util.c optional cd9660 fs/cd9660/cd9660_vfsops.c optional cd9660 fs/cd9660/cd9660_vnops.c optional cd9660 fs/cd9660/cd9660_iconv.c optional cd9660_iconv kern/bus_if.m standard kern/clock_if.m standard kern/cpufreq_if.m standard kern/device_if.m standard kern/imgact_binmisc.c optional imagact_binmisc kern/imgact_elf.c standard kern/imgact_elf32.c optional compat_freebsd32 kern/imgact_shell.c standard kern/inflate.c optional gzip kern/init_main.c standard kern/init_sysent.c standard kern/ksched.c optional _kposix_priority_scheduling kern/kern_acct.c standard kern/kern_alq.c optional alq kern/kern_clock.c standard kern/kern_condvar.c standard kern/kern_conf.c standard kern/kern_cons.c standard kern/kern_cpu.c standard kern/kern_cpuset.c standard kern/kern_context.c standard kern/kern_descrip.c standard kern/kern_dtrace.c optional kdtrace_hooks kern/kern_dump.c standard kern/kern_environment.c standard kern/kern_et.c standard kern/kern_event.c standard kern/kern_exec.c standard kern/kern_exit.c standard kern/kern_fail.c standard kern/kern_ffclock.c standard kern/kern_fork.c standard kern/kern_hhook.c standard kern/kern_idle.c standard kern/kern_intr.c standard kern/kern_jail.c standard kern/kern_khelp.c standard kern/kern_kthread.c standard kern/kern_ktr.c optional ktr kern/kern_ktrace.c standard kern/kern_linker.c standard kern/kern_lock.c standard kern/kern_lockf.c standard kern/kern_lockstat.c optional kdtrace_hooks kern/kern_loginclass.c standard kern/kern_malloc.c standard kern/kern_mbuf.c standard kern/kern_mib.c standard kern/kern_module.c standard kern/kern_mtxpool.c standard kern/kern_mutex.c standard kern/kern_ntptime.c standard kern/kern_osd.c standard kern/kern_physio.c standard kern/kern_pmc.c standard kern/kern_poll.c optional device_polling kern/kern_priv.c standard kern/kern_proc.c standard kern/kern_procctl.c standard kern/kern_prot.c standard kern/kern_racct.c standard kern/kern_rangelock.c standard kern/kern_rctl.c standard kern/kern_resource.c standard kern/kern_rmlock.c standard kern/kern_rwlock.c standard kern/kern_sdt.c optional kdtrace_hooks kern/kern_sema.c standard kern/kern_sendfile.c standard kern/kern_sharedpage.c standard kern/kern_shutdown.c standard kern/kern_sig.c standard kern/kern_switch.c standard kern/kern_sx.c standard kern/kern_synch.c standard kern/kern_syscalls.c standard kern/kern_sysctl.c standard kern/kern_tc.c standard kern/kern_thr.c standard kern/kern_thread.c standard kern/kern_time.c standard kern/kern_timeout.c standard kern/kern_tslog.c optional tslog kern/kern_umtx.c standard kern/kern_uuid.c standard kern/kern_xxx.c standard kern/link_elf.c standard kern/linker_if.m standard kern/md4c.c optional netsmb kern/md5c.c standard kern/p1003_1b.c standard kern/posix4_mib.c standard kern/sched_4bsd.c optional sched_4bsd kern/sched_ule.c optional sched_ule kern/serdev_if.m standard kern/stack_protector.c standard \ compile-with "${NORMAL_C:N-fstack-protector*}" kern/subr_acl_nfs4.c optional ufs_acl | zfs kern/subr_acl_posix1e.c optional ufs_acl kern/subr_autoconf.c standard kern/subr_blist.c standard kern/subr_bus.c standard kern/subr_bus_dma.c standard kern/subr_bufring.c standard kern/subr_capability.c standard kern/subr_clock.c standard kern/subr_compressor.c standard \ compile-with "${NORMAL_C} -I$S/contrib/zstd/lib/freebsd" kern/subr_counter.c standard kern/subr_devstat.c standard kern/subr_disk.c standard kern/subr_eventhandler.c standard kern/subr_fattime.c standard kern/subr_firmware.c optional firmware kern/subr_gtaskqueue.c standard kern/subr_hash.c standard kern/subr_hints.c standard kern/subr_kdb.c standard kern/subr_kobj.c standard kern/subr_lock.c standard kern/subr_log.c standard kern/subr_mchain.c optional libmchain kern/subr_module.c standard kern/subr_msgbuf.c standard kern/subr_param.c standard kern/subr_pcpu.c standard kern/subr_pctrie.c standard kern/subr_pidctrl.c standard kern/subr_power.c standard kern/subr_prf.c standard kern/subr_prof.c standard kern/subr_rman.c standard kern/subr_rtc.c standard kern/subr_sbuf.c standard kern/subr_scanf.c standard kern/subr_sglist.c standard kern/subr_sleepqueue.c standard kern/subr_smp.c standard kern/subr_stack.c optional ddb | stack | ktr kern/subr_taskqueue.c standard kern/subr_terminal.c optional vt kern/subr_trap.c standard kern/subr_turnstile.c standard kern/subr_uio.c standard kern/subr_unit.c standard kern/subr_vmem.c standard kern/subr_witness.c optional witness kern/sys_capability.c standard kern/sys_generic.c standard kern/sys_getrandom.c standard kern/sys_pipe.c standard kern/sys_procdesc.c standard kern/sys_process.c standard kern/sys_socket.c standard kern/syscalls.c standard kern/sysv_ipc.c standard kern/sysv_msg.c optional sysvmsg kern/sysv_sem.c optional sysvsem kern/sysv_shm.c optional sysvshm kern/tty.c standard kern/tty_compat.c optional compat_43tty kern/tty_info.c standard kern/tty_inq.c standard kern/tty_outq.c standard kern/tty_pts.c standard kern/tty_tty.c standard kern/tty_ttydisc.c standard kern/uipc_accf.c standard kern/uipc_debug.c optional ddb kern/uipc_domain.c standard kern/uipc_mbuf.c standard kern/uipc_mbuf2.c standard kern/uipc_mbufhash.c standard kern/uipc_mqueue.c optional p1003_1b_mqueue kern/uipc_sem.c optional p1003_1b_semaphores kern/uipc_shm.c standard kern/uipc_sockbuf.c standard kern/uipc_socket.c standard kern/uipc_syscalls.c standard kern/uipc_usrreq.c standard kern/vfs_acl.c standard kern/vfs_aio.c standard kern/vfs_bio.c standard kern/vfs_cache.c standard kern/vfs_cluster.c standard kern/vfs_default.c standard kern/vfs_export.c standard kern/vfs_extattr.c standard kern/vfs_hash.c standard kern/vfs_init.c standard kern/vfs_lookup.c standard kern/vfs_mount.c standard kern/vfs_mountroot.c standard kern/vfs_subr.c standard kern/vfs_syscalls.c standard kern/vfs_vnops.c standard # # Kernel GSS-API # gssd.h optional kgssapi \ dependency "$S/kgssapi/gssd.x" \ compile-with "RPCGEN_CPP='${CPP}' rpcgen -hM $S/kgssapi/gssd.x | grep -v pthread.h > gssd.h" \ no-obj no-implicit-rule before-depend local \ clean "gssd.h" gssd_xdr.c optional kgssapi \ dependency "$S/kgssapi/gssd.x gssd.h" \ compile-with "RPCGEN_CPP='${CPP}' rpcgen -c $S/kgssapi/gssd.x -o gssd_xdr.c" \ no-implicit-rule before-depend local \ clean "gssd_xdr.c" gssd_clnt.c optional kgssapi \ dependency "$S/kgssapi/gssd.x gssd.h" \ compile-with "RPCGEN_CPP='${CPP}' rpcgen -lM $S/kgssapi/gssd.x | grep -v string.h > gssd_clnt.c" \ no-implicit-rule before-depend local \ clean "gssd_clnt.c" kgssapi/gss_accept_sec_context.c optional kgssapi kgssapi/gss_add_oid_set_member.c optional kgssapi kgssapi/gss_acquire_cred.c optional kgssapi kgssapi/gss_canonicalize_name.c optional kgssapi kgssapi/gss_create_empty_oid_set.c optional kgssapi kgssapi/gss_delete_sec_context.c optional kgssapi kgssapi/gss_display_status.c optional kgssapi kgssapi/gss_export_name.c optional kgssapi kgssapi/gss_get_mic.c optional kgssapi kgssapi/gss_init_sec_context.c optional kgssapi kgssapi/gss_impl.c optional kgssapi kgssapi/gss_import_name.c optional kgssapi kgssapi/gss_names.c optional kgssapi kgssapi/gss_pname_to_uid.c optional kgssapi kgssapi/gss_release_buffer.c optional kgssapi kgssapi/gss_release_cred.c optional kgssapi kgssapi/gss_release_name.c optional kgssapi kgssapi/gss_release_oid_set.c optional kgssapi kgssapi/gss_set_cred_option.c optional kgssapi kgssapi/gss_test_oid_set_member.c optional kgssapi kgssapi/gss_unwrap.c optional kgssapi kgssapi/gss_verify_mic.c optional kgssapi kgssapi/gss_wrap.c optional kgssapi kgssapi/gss_wrap_size_limit.c optional kgssapi kgssapi/gssd_prot.c optional kgssapi kgssapi/krb5/krb5_mech.c optional kgssapi kgssapi/krb5/kcrypto.c optional kgssapi kgssapi/krb5/kcrypto_aes.c optional kgssapi kgssapi/krb5/kcrypto_arcfour.c optional kgssapi kgssapi/krb5/kcrypto_des.c optional kgssapi kgssapi/krb5/kcrypto_des3.c optional kgssapi kgssapi/kgss_if.m optional kgssapi kgssapi/gsstest.c optional kgssapi_debug # These files in libkern/ are those needed by all architectures. Some # of the files in libkern/ are only needed on some architectures, e.g., # libkern/divdi3.c is needed by i386 but not alpha. Also, some of these # routines may be optimized for a particular platform. In either case, # the file should be moved to conf/files. from here. # libkern/arc4random.c standard crypto/chacha20/chacha.c standard libkern/asprintf.c standard libkern/bcd.c standard libkern/bsearch.c standard libkern/crc32.c standard libkern/explicit_bzero.c standard libkern/fnmatch.c standard libkern/iconv.c optional libiconv libkern/iconv_converter_if.m optional libiconv libkern/iconv_ucs.c optional libiconv libkern/iconv_xlat.c optional libiconv libkern/iconv_xlat16.c optional libiconv libkern/inet_aton.c standard libkern/inet_ntoa.c standard libkern/inet_ntop.c standard libkern/inet_pton.c standard libkern/jenkins_hash.c standard libkern/murmur3_32.c standard libkern/mcount.c optional profiling-routine libkern/memcchr.c standard libkern/memchr.c standard libkern/memcmp.c standard libkern/memmem.c optional gdb libkern/qsort.c standard libkern/qsort_r.c standard libkern/random.c standard libkern/scanc.c standard libkern/strcasecmp.c standard libkern/strcat.c standard libkern/strchr.c standard libkern/strcmp.c standard libkern/strcpy.c standard libkern/strcspn.c standard libkern/strdup.c standard libkern/strndup.c standard libkern/strlcat.c standard libkern/strlcpy.c standard libkern/strlen.c standard libkern/strncat.c standard libkern/strncmp.c standard libkern/strncpy.c standard libkern/strnlen.c standard libkern/strrchr.c standard libkern/strsep.c standard libkern/strspn.c standard libkern/strstr.c standard libkern/strtol.c standard libkern/strtoq.c standard libkern/strtoul.c standard libkern/strtouq.c standard libkern/strvalid.c standard libkern/timingsafe_bcmp.c standard libkern/zlib.c optional crypto | geom_uzip | ipsec | \ ipsec_support | mxge | netgraph_deflate | ddb_ctf | gzio net/altq/altq_cbq.c optional altq net/altq/altq_cdnr.c optional altq net/altq/altq_codel.c optional altq net/altq/altq_hfsc.c optional altq net/altq/altq_fairq.c optional altq net/altq/altq_priq.c optional altq net/altq/altq_red.c optional altq net/altq/altq_rio.c optional altq net/altq/altq_rmclass.c optional altq net/altq/altq_subr.c optional altq net/bpf.c standard net/bpf_buffer.c optional bpf net/bpf_jitter.c optional bpf_jitter net/bpf_filter.c optional bpf | netgraph_bpf net/bpf_zerocopy.c optional bpf net/bridgestp.c optional bridge | if_bridge net/flowtable.c optional flowtable inet | flowtable inet6 net/ieee8023ad_lacp.c optional lagg net/if.c standard net/if_bridge.c optional bridge inet | if_bridge inet net/if_clone.c standard net/if_dead.c standard net/if_debug.c optional ddb net/if_disc.c optional disc net/if_edsc.c optional edsc net/if_enc.c optional enc inet | enc inet6 net/if_epair.c optional epair net/if_ethersubr.c optional ether net/if_fwsubr.c optional fwip net/if_gif.c optional gif inet | gif inet6 | \ netgraph_gif inet | netgraph_gif inet6 net/if_gre.c optional gre inet | gre inet6 net/if_ipsec.c optional inet ipsec | inet6 ipsec net/if_lagg.c optional lagg net/if_loop.c optional loop net/if_llatbl.c standard net/if_me.c optional me inet net/if_media.c standard net/if_mib.c standard net/if_spppfr.c optional sppp | netgraph_sppp net/if_spppsubr.c optional sppp | netgraph_sppp net/if_stf.c optional stf inet inet6 net/if_tun.c optional tun net/if_tap.c optional tap net/if_vlan.c optional vlan net/if_vxlan.c optional vxlan inet | vxlan inet6 net/ifdi_if.m optional ether pci net/iflib.c optional ether pci net/mp_ring.c optional ether net/mppcc.c optional netgraph_mppc_compression net/mppcd.c optional netgraph_mppc_compression net/netisr.c standard net/pfil.c optional ether | inet net/radix.c standard net/radix_mpath.c standard net/raw_cb.c standard net/raw_usrreq.c standard net/route.c standard net/rss_config.c optional inet rss | inet6 rss net/rtsock.c standard net/slcompress.c optional netgraph_vjc | sppp | \ netgraph_sppp net/toeplitz.c optional inet rss | inet6 rss net/vnet.c optional vimage net80211/ieee80211.c optional wlan net80211/ieee80211_acl.c optional wlan wlan_acl net80211/ieee80211_action.c optional wlan net80211/ieee80211_adhoc.c optional wlan \ compile-with "${NORMAL_C} -Wno-unused-function" net80211/ieee80211_ageq.c optional wlan net80211/ieee80211_amrr.c optional wlan | wlan_amrr net80211/ieee80211_crypto.c optional wlan \ compile-with "${NORMAL_C} -Wno-unused-function" net80211/ieee80211_crypto_ccmp.c optional wlan wlan_ccmp net80211/ieee80211_crypto_none.c optional wlan net80211/ieee80211_crypto_tkip.c optional wlan wlan_tkip net80211/ieee80211_crypto_wep.c optional wlan wlan_wep net80211/ieee80211_ddb.c optional wlan ddb net80211/ieee80211_dfs.c optional wlan net80211/ieee80211_freebsd.c optional wlan net80211/ieee80211_hostap.c optional wlan \ compile-with "${NORMAL_C} -Wno-unused-function" net80211/ieee80211_ht.c optional wlan net80211/ieee80211_hwmp.c optional wlan ieee80211_support_mesh net80211/ieee80211_input.c optional wlan net80211/ieee80211_ioctl.c optional wlan net80211/ieee80211_mesh.c optional wlan ieee80211_support_mesh \ compile-with "${NORMAL_C} -Wno-unused-function" net80211/ieee80211_monitor.c optional wlan net80211/ieee80211_node.c optional wlan net80211/ieee80211_output.c optional wlan net80211/ieee80211_phy.c optional wlan net80211/ieee80211_power.c optional wlan net80211/ieee80211_proto.c optional wlan net80211/ieee80211_radiotap.c optional wlan net80211/ieee80211_ratectl.c optional wlan net80211/ieee80211_ratectl_none.c optional wlan net80211/ieee80211_regdomain.c optional wlan net80211/ieee80211_rssadapt.c optional wlan wlan_rssadapt net80211/ieee80211_scan.c optional wlan net80211/ieee80211_scan_sta.c optional wlan net80211/ieee80211_sta.c optional wlan \ compile-with "${NORMAL_C} -Wno-unused-function" net80211/ieee80211_superg.c optional wlan ieee80211_support_superg net80211/ieee80211_scan_sw.c optional wlan net80211/ieee80211_tdma.c optional wlan ieee80211_support_tdma net80211/ieee80211_vht.c optional wlan net80211/ieee80211_wds.c optional wlan net80211/ieee80211_xauth.c optional wlan wlan_xauth net80211/ieee80211_alq.c optional wlan ieee80211_alq netgraph/atm/ccatm/ng_ccatm.c optional ngatm_ccatm \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" netgraph/atm/ngatmbase.c optional ngatm_atmbase \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" netgraph/atm/sscfu/ng_sscfu.c optional ngatm_sscfu \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" netgraph/atm/sscop/ng_sscop.c optional ngatm_sscop \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" netgraph/atm/uni/ng_uni.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" netgraph/bluetooth/common/ng_bluetooth.c optional netgraph_bluetooth netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c optional netgraph_bluetooth_bt3c netgraph/bluetooth/drivers/h4/ng_h4.c optional netgraph_bluetooth_h4 netgraph/bluetooth/drivers/ubt/ng_ubt.c optional netgraph_bluetooth_ubt usb netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c optional netgraph_bluetooth_ubtbcmfw usb netgraph/bluetooth/hci/ng_hci_cmds.c optional netgraph_bluetooth_hci netgraph/bluetooth/hci/ng_hci_evnt.c optional netgraph_bluetooth_hci netgraph/bluetooth/hci/ng_hci_main.c optional netgraph_bluetooth_hci netgraph/bluetooth/hci/ng_hci_misc.c optional netgraph_bluetooth_hci netgraph/bluetooth/hci/ng_hci_ulpi.c optional netgraph_bluetooth_hci netgraph/bluetooth/l2cap/ng_l2cap_cmds.c optional netgraph_bluetooth_l2cap netgraph/bluetooth/l2cap/ng_l2cap_evnt.c optional netgraph_bluetooth_l2cap netgraph/bluetooth/l2cap/ng_l2cap_llpi.c optional netgraph_bluetooth_l2cap netgraph/bluetooth/l2cap/ng_l2cap_main.c optional netgraph_bluetooth_l2cap netgraph/bluetooth/l2cap/ng_l2cap_misc.c optional netgraph_bluetooth_l2cap netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c optional netgraph_bluetooth_l2cap netgraph/bluetooth/socket/ng_btsocket.c optional netgraph_bluetooth_socket netgraph/bluetooth/socket/ng_btsocket_hci_raw.c optional netgraph_bluetooth_socket netgraph/bluetooth/socket/ng_btsocket_l2cap.c optional netgraph_bluetooth_socket netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c optional netgraph_bluetooth_socket netgraph/bluetooth/socket/ng_btsocket_rfcomm.c optional netgraph_bluetooth_socket netgraph/bluetooth/socket/ng_btsocket_sco.c optional netgraph_bluetooth_socket netgraph/netflow/netflow.c optional netgraph_netflow netgraph/netflow/netflow_v9.c optional netgraph_netflow netgraph/netflow/ng_netflow.c optional netgraph_netflow netgraph/ng_UI.c optional netgraph_UI netgraph/ng_async.c optional netgraph_async netgraph/ng_atmllc.c optional netgraph_atmllc netgraph/ng_base.c optional netgraph netgraph/ng_bpf.c optional netgraph_bpf netgraph/ng_bridge.c optional netgraph_bridge netgraph/ng_car.c optional netgraph_car netgraph/ng_cisco.c optional netgraph_cisco netgraph/ng_deflate.c optional netgraph_deflate netgraph/ng_device.c optional netgraph_device netgraph/ng_echo.c optional netgraph_echo netgraph/ng_eiface.c optional netgraph_eiface netgraph/ng_ether.c optional netgraph_ether netgraph/ng_ether_echo.c optional netgraph_ether_echo netgraph/ng_frame_relay.c optional netgraph_frame_relay netgraph/ng_gif.c optional netgraph_gif inet6 | netgraph_gif inet netgraph/ng_gif_demux.c optional netgraph_gif_demux netgraph/ng_hole.c optional netgraph_hole netgraph/ng_iface.c optional netgraph_iface netgraph/ng_ip_input.c optional netgraph_ip_input netgraph/ng_ipfw.c optional netgraph_ipfw inet ipfirewall netgraph/ng_ksocket.c optional netgraph_ksocket netgraph/ng_l2tp.c optional netgraph_l2tp netgraph/ng_lmi.c optional netgraph_lmi netgraph/ng_mppc.c optional netgraph_mppc_compression | \ netgraph_mppc_encryption netgraph/ng_nat.c optional netgraph_nat inet libalias netgraph/ng_one2many.c optional netgraph_one2many netgraph/ng_parse.c optional netgraph netgraph/ng_patch.c optional netgraph_patch netgraph/ng_pipe.c optional netgraph_pipe netgraph/ng_ppp.c optional netgraph_ppp netgraph/ng_pppoe.c optional netgraph_pppoe netgraph/ng_pptpgre.c optional netgraph_pptpgre netgraph/ng_pred1.c optional netgraph_pred1 netgraph/ng_rfc1490.c optional netgraph_rfc1490 netgraph/ng_socket.c optional netgraph_socket netgraph/ng_split.c optional netgraph_split netgraph/ng_sppp.c optional netgraph_sppp netgraph/ng_tag.c optional netgraph_tag netgraph/ng_tcpmss.c optional netgraph_tcpmss netgraph/ng_tee.c optional netgraph_tee netgraph/ng_tty.c optional netgraph_tty netgraph/ng_vjc.c optional netgraph_vjc netgraph/ng_vlan.c optional netgraph_vlan netinet/accf_data.c optional accept_filter_data inet netinet/accf_dns.c optional accept_filter_dns inet netinet/accf_http.c optional accept_filter_http inet netinet/if_ether.c optional inet ether netinet/igmp.c optional inet netinet/in.c optional inet netinet/in_debug.c optional inet ddb netinet/in_kdtrace.c optional inet | inet6 netinet/ip_carp.c optional inet carp | inet6 carp netinet/in_fib.c optional inet netinet/in_gif.c optional gif inet | netgraph_gif inet netinet/ip_gre.c optional gre inet netinet/ip_id.c optional inet netinet/in_jail.c optional inet netinet/in_mcast.c optional inet netinet/in_pcb.c optional inet | inet6 netinet/in_pcbgroup.c optional inet pcbgroup | inet6 pcbgroup netinet/in_prot.c optional inet | inet6 netinet/in_proto.c optional inet | inet6 netinet/in_rmx.c optional inet netinet/in_rss.c optional inet rss netinet/ip_divert.c optional inet ipdivert ipfirewall netinet/ip_ecn.c optional inet | inet6 netinet/ip_encap.c optional inet | inet6 netinet/ip_fastfwd.c optional inet netinet/ip_icmp.c optional inet | inet6 netinet/ip_input.c optional inet netinet/ip_mroute.c optional mrouting inet netinet/ip_options.c optional inet netinet/ip_output.c optional inet netinet/ip_reass.c optional inet netinet/raw_ip.c optional inet | inet6 netinet/cc/cc.c optional inet | inet6 netinet/cc/cc_newreno.c optional inet | inet6 netinet/sctp_asconf.c optional inet sctp | inet6 sctp netinet/sctp_auth.c optional inet sctp | inet6 sctp netinet/sctp_bsd_addr.c optional inet sctp | inet6 sctp netinet/sctp_cc_functions.c optional inet sctp | inet6 sctp netinet/sctp_crc32.c optional inet | inet6 netinet/sctp_indata.c optional inet sctp | inet6 sctp netinet/sctp_input.c optional inet sctp | inet6 sctp netinet/sctp_output.c optional inet sctp | inet6 sctp netinet/sctp_pcb.c optional inet sctp | inet6 sctp netinet/sctp_peeloff.c optional inet sctp | inet6 sctp netinet/sctp_ss_functions.c optional inet sctp | inet6 sctp netinet/sctp_syscalls.c optional inet sctp | inet6 sctp netinet/sctp_sysctl.c optional inet sctp | inet6 sctp netinet/sctp_timer.c optional inet sctp | inet6 sctp netinet/sctp_usrreq.c optional inet sctp | inet6 sctp netinet/sctputil.c optional inet sctp | inet6 sctp netinet/siftr.c optional inet siftr alq | inet6 siftr alq netinet/tcp_debug.c optional tcpdebug netinet/tcp_fastopen.c optional inet tcp_rfc7413 | inet6 tcp_rfc7413 netinet/tcp_hostcache.c optional inet | inet6 netinet/tcp_input.c optional inet | inet6 netinet/tcp_log_buf.c optional tcp_blackbox inet | tcp_blackbox inet6 netinet/tcp_lro.c optional inet | inet6 netinet/tcp_output.c optional inet | inet6 netinet/tcp_offload.c optional tcp_offload inet | tcp_offload inet6 netinet/tcp_hpts.c optional tcphpts inet | tcphpts inet6 netinet/tcp_pcap.c optional inet tcppcap | inet6 tcppcap netinet/tcp_reass.c optional inet | inet6 netinet/tcp_sack.c optional inet | inet6 netinet/tcp_subr.c optional inet | inet6 netinet/tcp_syncache.c optional inet | inet6 netinet/tcp_timer.c optional inet | inet6 netinet/tcp_timewait.c optional inet | inet6 netinet/tcp_usrreq.c optional inet | inet6 netinet/udp_usrreq.c optional inet | inet6 netinet/libalias/alias.c optional libalias inet | netgraph_nat inet netinet/libalias/alias_db.c optional libalias inet | netgraph_nat inet netinet/libalias/alias_mod.c optional libalias | netgraph_nat netinet/libalias/alias_proxy.c optional libalias inet | netgraph_nat inet netinet/libalias/alias_util.c optional libalias inet | netgraph_nat inet netinet/libalias/alias_sctp.c optional libalias inet | netgraph_nat inet netinet/netdump/netdump_client.c optional inet netdump netinet6/dest6.c optional inet6 netinet6/frag6.c optional inet6 netinet6/icmp6.c optional inet6 netinet6/in6.c optional inet6 netinet6/in6_cksum.c optional inet6 netinet6/in6_fib.c optional inet6 netinet6/in6_gif.c optional gif inet6 | netgraph_gif inet6 netinet6/in6_ifattach.c optional inet6 netinet6/in6_jail.c optional inet6 netinet6/in6_mcast.c optional inet6 netinet6/in6_pcb.c optional inet6 netinet6/in6_pcbgroup.c optional inet6 pcbgroup netinet6/in6_proto.c optional inet6 netinet6/in6_rmx.c optional inet6 netinet6/in6_rss.c optional inet6 rss netinet6/in6_src.c optional inet6 netinet6/ip6_fastfwd.c optional inet6 netinet6/ip6_forward.c optional inet6 netinet6/ip6_gre.c optional gre inet6 netinet6/ip6_id.c optional inet6 netinet6/ip6_input.c optional inet6 netinet6/ip6_mroute.c optional mrouting inet6 netinet6/ip6_output.c optional inet6 netinet6/mld6.c optional inet6 netinet6/nd6.c optional inet6 netinet6/nd6_nbr.c optional inet6 netinet6/nd6_rtr.c optional inet6 netinet6/raw_ip6.c optional inet6 netinet6/route6.c optional inet6 netinet6/scope6.c optional inet6 netinet6/sctp6_usrreq.c optional inet6 sctp netinet6/udp6_usrreq.c optional inet6 netipsec/ipsec.c optional ipsec inet | ipsec inet6 netipsec/ipsec_input.c optional ipsec inet | ipsec inet6 netipsec/ipsec_mbuf.c optional ipsec inet | ipsec inet6 netipsec/ipsec_mod.c optional ipsec inet | ipsec inet6 netipsec/ipsec_output.c optional ipsec inet | ipsec inet6 netipsec/ipsec_pcb.c optional ipsec inet | ipsec inet6 | \ ipsec_support inet | ipsec_support inet6 netipsec/key.c optional ipsec inet | ipsec inet6 | \ ipsec_support inet | ipsec_support inet6 netipsec/key_debug.c optional ipsec inet | ipsec inet6 | \ ipsec_support inet | ipsec_support inet6 netipsec/keysock.c optional ipsec inet | ipsec inet6 | \ ipsec_support inet | ipsec_support inet6 netipsec/subr_ipsec.c optional ipsec inet | ipsec inet6 | \ ipsec_support inet | ipsec_support inet6 netipsec/udpencap.c optional ipsec inet netipsec/xform_ah.c optional ipsec inet | ipsec inet6 netipsec/xform_esp.c optional ipsec inet | ipsec inet6 netipsec/xform_ipcomp.c optional ipsec inet | ipsec inet6 netipsec/xform_tcp.c optional ipsec inet tcp_signature | \ ipsec inet6 tcp_signature | ipsec_support inet tcp_signature | \ ipsec_support inet6 tcp_signature netpfil/ipfw/dn_aqm_codel.c optional inet dummynet netpfil/ipfw/dn_aqm_pie.c optional inet dummynet netpfil/ipfw/dn_heap.c optional inet dummynet netpfil/ipfw/dn_sched_fifo.c optional inet dummynet netpfil/ipfw/dn_sched_fq_codel.c optional inet dummynet netpfil/ipfw/dn_sched_fq_pie.c optional inet dummynet netpfil/ipfw/dn_sched_prio.c optional inet dummynet netpfil/ipfw/dn_sched_qfq.c optional inet dummynet netpfil/ipfw/dn_sched_rr.c optional inet dummynet netpfil/ipfw/dn_sched_wf2q.c optional inet dummynet netpfil/ipfw/ip_dummynet.c optional inet dummynet netpfil/ipfw/ip_dn_io.c optional inet dummynet netpfil/ipfw/ip_dn_glue.c optional inet dummynet netpfil/ipfw/ip_fw2.c optional inet ipfirewall netpfil/ipfw/ip_fw_bpf.c optional inet ipfirewall netpfil/ipfw/ip_fw_dynamic.c optional inet ipfirewall \ compile-with "${NORMAL_C} -I$S/contrib/ck/include" netpfil/ipfw/ip_fw_eaction.c optional inet ipfirewall netpfil/ipfw/ip_fw_log.c optional inet ipfirewall netpfil/ipfw/ip_fw_pfil.c optional inet ipfirewall netpfil/ipfw/ip_fw_sockopt.c optional inet ipfirewall netpfil/ipfw/ip_fw_table.c optional inet ipfirewall netpfil/ipfw/ip_fw_table_algo.c optional inet ipfirewall netpfil/ipfw/ip_fw_table_value.c optional inet ipfirewall netpfil/ipfw/ip_fw_iface.c optional inet ipfirewall netpfil/ipfw/ip_fw_nat.c optional inet ipfirewall_nat netpfil/ipfw/nat64/ip_fw_nat64.c optional inet inet6 ipfirewall \ ipfirewall_nat64 netpfil/ipfw/nat64/nat64lsn.c optional inet inet6 ipfirewall \ ipfirewall_nat64 netpfil/ipfw/nat64/nat64lsn_control.c optional inet inet6 ipfirewall \ ipfirewall_nat64 netpfil/ipfw/nat64/nat64stl.c optional inet inet6 ipfirewall \ ipfirewall_nat64 netpfil/ipfw/nat64/nat64stl_control.c optional inet inet6 ipfirewall \ ipfirewall_nat64 netpfil/ipfw/nat64/nat64_translate.c optional inet inet6 ipfirewall \ ipfirewall_nat64 netpfil/ipfw/nptv6/ip_fw_nptv6.c optional inet inet6 ipfirewall \ ipfirewall_nptv6 netpfil/ipfw/nptv6/nptv6.c optional inet inet6 ipfirewall \ ipfirewall_nptv6 netpfil/ipfw/pmod/ip_fw_pmod.c optional inet ipfirewall_pmod netpfil/ipfw/pmod/tcpmod.c optional inet ipfirewall_pmod netpfil/pf/if_pflog.c optional pflog pf inet netpfil/pf/if_pfsync.c optional pfsync pf inet netpfil/pf/pf.c optional pf inet netpfil/pf/pf_if.c optional pf inet netpfil/pf/pf_ioctl.c optional pf inet netpfil/pf/pf_lb.c optional pf inet netpfil/pf/pf_norm.c optional pf inet netpfil/pf/pf_osfp.c optional pf inet netpfil/pf/pf_ruleset.c optional pf inet netpfil/pf/pf_table.c optional pf inet netpfil/pf/in4_cksum.c optional pf inet netsmb/smb_conn.c optional netsmb netsmb/smb_crypt.c optional netsmb netsmb/smb_dev.c optional netsmb netsmb/smb_iod.c optional netsmb netsmb/smb_rq.c optional netsmb netsmb/smb_smb.c optional netsmb netsmb/smb_subr.c optional netsmb netsmb/smb_trantcp.c optional netsmb netsmb/smb_usr.c optional netsmb nfs/bootp_subr.c optional bootp nfscl nfs/krpc_subr.c optional bootp nfscl nfs/nfs_diskless.c optional nfscl nfs_root nfs/nfs_fha.c optional nfsd nfs/nfs_lock.c optional nfscl | nfslockd | nfsd nfs/nfs_nfssvc.c optional nfscl | nfsd nlm/nlm_advlock.c optional nfslockd | nfsd nlm/nlm_prot_clnt.c optional nfslockd | nfsd nlm/nlm_prot_impl.c optional nfslockd | nfsd nlm/nlm_prot_server.c optional nfslockd | nfsd nlm/nlm_prot_svc.c optional nfslockd | nfsd nlm/nlm_prot_xdr.c optional nfslockd | nfsd nlm/sm_inter_xdr.c optional nfslockd | nfsd # Linux Kernel Programming Interface compat/linuxkpi/common/src/linux_kmod.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_compat.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_current.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_hrtimer.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_kthread.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_lock.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_page.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_pci.c optional compat_linuxkpi pci \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_tasklet.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_idr.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_radix.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_rcu.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C} -I$S/contrib/ck/include" compat/linuxkpi/common/src/linux_schedule.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_slab.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_usb.c optional compat_linuxkpi usb \ compile-with "${LINUXKPI_C}" compat/linuxkpi/common/src/linux_work.c optional compat_linuxkpi \ compile-with "${LINUXKPI_C}" # OpenFabrics Enterprise Distribution (Infiniband) ofed/drivers/infiniband/core/ib_addr.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_agent.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_cache.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_cm.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_cma.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_cq.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_device.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_fmr_pool.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_iwcm.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_iwpm_msg.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_iwpm_util.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_mad.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_mad_rmpp.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_multicast.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_packer.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_roce_gid_mgmt.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_sa_query.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_smi.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_sysfs.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_ucm.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_ucma.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_ud_header.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_umem.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_user_mad.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_uverbs_cmd.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_uverbs_main.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_uverbs_marshall.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/core/ib_verbs.c optional ofed \ compile-with "${OFED_C}" ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c optional ipoib \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" #ofed/drivers/infiniband/ulp/ipoib/ipoib_fs.c optional ipoib \ # compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c optional ipoib \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c optional ipoib \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c optional ipoib \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c optional ipoib \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" #ofed/drivers/infiniband/ulp/ipoib/ipoib_vlan.c optional ipoib \ # compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/ipoib/" ofed/drivers/infiniband/ulp/sdp/sdp_bcopy.c optional sdp inet \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" ofed/drivers/infiniband/ulp/sdp/sdp_main.c optional sdp inet \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" ofed/drivers/infiniband/ulp/sdp/sdp_rx.c optional sdp inet \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" ofed/drivers/infiniband/ulp/sdp/sdp_cma.c optional sdp inet \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" ofed/drivers/infiniband/ulp/sdp/sdp_tx.c optional sdp inet \ compile-with "${OFED_C} -I$S/ofed/drivers/infiniband/ulp/sdp/" dev/mthca/mthca_allocator.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_av.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_catas.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_cmd.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_cq.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_eq.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_mad.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_main.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_mcg.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_memfree.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_mr.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_pd.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_profile.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_provider.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_qp.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_reset.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_srq.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mthca/mthca_uar.c optional mthca pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_alias_GUID.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_mcg.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_sysfs.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_cm.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_ah.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_cq.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_doorbell.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_mad.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_main.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_mr.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_qp.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_srq.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_ib/mlx4_ib_wc.c optional mlx4ib pci ofed \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_alloc.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_catas.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_cmd.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_cq.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_eq.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_fw.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_fw_qos.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_icm.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_intf.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_main.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_mcg.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_mr.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_pd.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_port.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_profile.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_qp.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_reset.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_sense.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_srq.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_core/mlx4_resource_tracker.c optional mlx4 pci \ compile-with "${OFED_C}" dev/mlx4/mlx4_en/mlx4_en_cq.c optional mlx4en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx4/mlx4_en/mlx4_en_main.c optional mlx4en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx4/mlx4_en/mlx4_en_netdev.c optional mlx4en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx4/mlx4_en/mlx4_en_port.c optional mlx4en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx4/mlx4_en/mlx4_en_resources.c optional mlx4en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx4/mlx4_en/mlx4_en_rx.c optional mlx4en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx4/mlx4_en/mlx4_en_tx.c optional mlx4en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_ah.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_cong.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_cq.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_doorbell.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_gsi.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_mad.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_main.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_mem.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_mr.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_qp.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_srq.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_ib/mlx5_ib_virt.c optional mlx5ib pci ofed \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_alloc.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_cmd.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_cq.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_crspace.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_diagnostics.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_eq.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fs_cmd.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fs_tree.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fw.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fwdump.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fwdump_regmaps.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_health.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mad.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_main.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mcg.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_mr.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_pagealloc.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_pd.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_port.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_qp.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_srq.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_transobj.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_uar.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_vport.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_vsc.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_wq.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_ethtool.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_main.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_tx.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_flow_table.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_rx.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" dev/mlx5/mlx5_en/mlx5_en_txrx.c optional mlx5en pci inet inet6 \ compile-with "${OFED_C}" # crypto support opencrypto/cast.c optional crypto | ipsec | ipsec_support opencrypto/criov.c optional crypto | ipsec | ipsec_support opencrypto/crypto.c optional crypto | ipsec | ipsec_support opencrypto/cryptodev.c optional cryptodev opencrypto/cryptodev_if.m optional crypto | ipsec | ipsec_support opencrypto/cryptosoft.c optional crypto | ipsec | ipsec_support opencrypto/cryptodeflate.c optional crypto | ipsec | ipsec_support opencrypto/gmac.c optional crypto | ipsec | ipsec_support opencrypto/gfmult.c optional crypto | ipsec | ipsec_support opencrypto/rmd160.c optional crypto | ipsec | ipsec_support opencrypto/skipjack.c optional crypto | ipsec | ipsec_support opencrypto/xform.c optional crypto | ipsec | ipsec_support rpc/auth_none.c optional krpc | nfslockd | nfscl | nfsd rpc/auth_unix.c optional krpc | nfslockd | nfscl | nfsd rpc/authunix_prot.c optional krpc | nfslockd | nfscl | nfsd rpc/clnt_bck.c optional krpc | nfslockd | nfscl | nfsd rpc/clnt_dg.c optional krpc | nfslockd | nfscl | nfsd rpc/clnt_rc.c optional krpc | nfslockd | nfscl | nfsd rpc/clnt_vc.c optional krpc | nfslockd | nfscl | nfsd rpc/getnetconfig.c optional krpc | nfslockd | nfscl | nfsd rpc/replay.c optional krpc | nfslockd | nfscl | nfsd rpc/rpc_callmsg.c optional krpc | nfslockd | nfscl | nfsd rpc/rpc_generic.c optional krpc | nfslockd | nfscl | nfsd rpc/rpc_prot.c optional krpc | nfslockd | nfscl | nfsd rpc/rpcb_clnt.c optional krpc | nfslockd | nfscl | nfsd rpc/rpcb_prot.c optional krpc | nfslockd | nfscl | nfsd rpc/svc.c optional krpc | nfslockd | nfscl | nfsd rpc/svc_auth.c optional krpc | nfslockd | nfscl | nfsd rpc/svc_auth_unix.c optional krpc | nfslockd | nfscl | nfsd rpc/svc_dg.c optional krpc | nfslockd | nfscl | nfsd rpc/svc_generic.c optional krpc | nfslockd | nfscl | nfsd rpc/svc_vc.c optional krpc | nfslockd | nfscl | nfsd rpc/rpcsec_gss/rpcsec_gss.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi rpc/rpcsec_gss/rpcsec_gss_conf.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi rpc/rpcsec_gss/rpcsec_gss_misc.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi rpc/rpcsec_gss/rpcsec_gss_prot.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi rpc/rpcsec_gss/svc_rpcsec_gss.c optional krpc kgssapi | nfslockd kgssapi | nfscl kgssapi | nfsd kgssapi security/audit/audit.c optional audit security/audit/audit_arg.c optional audit security/audit/audit_bsm.c optional audit security/audit/audit_bsm_db.c optional audit security/audit/audit_bsm_klib.c optional audit security/audit/audit_dtrace.c optional dtaudit audit | dtraceall audit compile-with "${CDDL_C}" security/audit/audit_pipe.c optional audit security/audit/audit_syscalls.c standard security/audit/audit_trigger.c optional audit security/audit/audit_worker.c optional audit security/audit/bsm_domain.c optional audit security/audit/bsm_errno.c optional audit security/audit/bsm_fcntl.c optional audit security/audit/bsm_socket_type.c optional audit security/audit/bsm_token.c optional audit security/mac/mac_audit.c optional mac audit security/mac/mac_cred.c optional mac security/mac/mac_framework.c optional mac security/mac/mac_inet.c optional mac inet | mac inet6 security/mac/mac_inet6.c optional mac inet6 security/mac/mac_label.c optional mac security/mac/mac_net.c optional mac security/mac/mac_pipe.c optional mac security/mac/mac_posix_sem.c optional mac security/mac/mac_posix_shm.c optional mac security/mac/mac_priv.c optional mac security/mac/mac_process.c optional mac security/mac/mac_socket.c optional mac security/mac/mac_syscalls.c standard security/mac/mac_system.c optional mac security/mac/mac_sysv_msg.c optional mac security/mac/mac_sysv_sem.c optional mac security/mac/mac_sysv_shm.c optional mac security/mac/mac_vfs.c optional mac security/mac_biba/mac_biba.c optional mac_biba security/mac_bsdextended/mac_bsdextended.c optional mac_bsdextended security/mac_bsdextended/ugidfw_system.c optional mac_bsdextended security/mac_bsdextended/ugidfw_vnode.c optional mac_bsdextended security/mac_ifoff/mac_ifoff.c optional mac_ifoff security/mac_lomac/mac_lomac.c optional mac_lomac security/mac_mls/mac_mls.c optional mac_mls security/mac_none/mac_none.c optional mac_none security/mac_partition/mac_partition.c optional mac_partition security/mac_portacl/mac_portacl.c optional mac_portacl security/mac_seeotheruids/mac_seeotheruids.c optional mac_seeotheruids security/mac_stub/mac_stub.c optional mac_stub security/mac_test/mac_test.c optional mac_test teken/teken.c optional sc | vt ufs/ffs/ffs_alloc.c optional ffs ufs/ffs/ffs_balloc.c optional ffs ufs/ffs/ffs_inode.c optional ffs ufs/ffs/ffs_snapshot.c optional ffs ufs/ffs/ffs_softdep.c optional ffs ufs/ffs/ffs_subr.c optional ffs | geom_label ufs/ffs/ffs_tables.c optional ffs | geom_label ufs/ffs/ffs_vfsops.c optional ffs ufs/ffs/ffs_vnops.c optional ffs ufs/ffs/ffs_rawread.c optional ffs directio ufs/ffs/ffs_suspend.c optional ffs ufs/ufs/ufs_acl.c optional ffs ufs/ufs/ufs_bmap.c optional ffs ufs/ufs/ufs_dirhash.c optional ffs ufs/ufs/ufs_extattr.c optional ffs ufs/ufs/ufs_gjournal.c optional ffs UFS_GJOURNAL ufs/ufs/ufs_inode.c optional ffs ufs/ufs/ufs_lookup.c optional ffs ufs/ufs/ufs_quota.c optional ffs ufs/ufs/ufs_vfsops.c optional ffs ufs/ufs/ufs_vnops.c optional ffs vm/default_pager.c standard vm/device_pager.c standard vm/phys_pager.c standard vm/redzone.c optional DEBUG_REDZONE vm/sg_pager.c standard vm/swap_pager.c standard vm/uma_core.c standard vm/uma_dbg.c standard vm/memguard.c optional DEBUG_MEMGUARD vm/vm_domainset.c standard vm/vm_fault.c standard vm/vm_glue.c standard vm/vm_init.c standard vm/vm_kern.c standard vm/vm_map.c standard vm/vm_meter.c standard vm/vm_mmap.c standard vm/vm_object.c standard vm/vm_page.c standard vm/vm_pageout.c standard vm/vm_pager.c standard vm/vm_phys.c standard vm/vm_radix.c standard vm/vm_reserv.c standard vm/vm_swapout.c optional !NO_SWAPPING vm/vm_swapout_dummy.c optional NO_SWAPPING vm/vm_unix.c standard vm/vnode_pager.c standard xen/features.c optional xenhvm xen/xenbus/xenbus_if.m optional xenhvm xen/xenbus/xenbus.c optional xenhvm xen/xenbus/xenbusb_if.m optional xenhvm xen/xenbus/xenbusb.c optional xenhvm xen/xenbus/xenbusb_front.c optional xenhvm xen/xenbus/xenbusb_back.c optional xenhvm xen/xenmem/xenmem_if.m optional xenhvm xdr/xdr.c optional krpc | nfslockd | nfscl | nfsd xdr/xdr_array.c optional krpc | nfslockd | nfscl | nfsd xdr/xdr_mbuf.c optional krpc | nfslockd | nfscl | nfsd xdr/xdr_mem.c optional krpc | nfslockd | nfscl | nfsd xdr/xdr_reference.c optional krpc | nfslockd | nfscl | nfsd xdr/xdr_sizeof.c optional krpc | nfslockd | nfscl | nfsd Index: head/sys/dev/nxge/xge-osdep.h =================================================================== --- head/sys/dev/nxge/xge-osdep.h (revision 333387) +++ head/sys/dev/nxge/xge-osdep.h (nonexistent) @@ -1,790 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_OSDEP_H -#define XGE_OSDEP_H - -/** - * Includes and defines - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define XGE_OS_PLATFORM_64BIT - -#if BYTE_ORDER == BIG_ENDIAN -#define XGE_OS_HOST_BIG_ENDIAN -#elif BYTE_ORDER == LITTLE_ENDIAN -#define XGE_OS_HOST_LITTLE_ENDIAN -#endif - -#define XGE_HAL_USE_5B_MODE - -#ifdef XGE_TRACE_ASSERT -#undef XGE_TRACE_ASSERT -#endif - -#define OS_NETSTACK_BUF struct mbuf * -#define XGE_LL_IP_FAST_CSUM(hdr, len) 0 - -#ifndef __DECONST -#define __DECONST(type, var) ((type)(uintrptr_t)(const void *)(var)) -#endif - -#define xge_os_ntohs ntohs -#define xge_os_ntohl ntohl -#define xge_os_htons htons -#define xge_os_htonl htonl - -typedef struct xge_bus_resource_t { - bus_space_tag_t bus_tag; /* DMA Tag */ - bus_space_handle_t bus_handle; /* Bus handle */ - struct resource *bar_start_addr;/* BAR start address */ -} xge_bus_resource_t; - -typedef struct xge_dma_alloc_t { - bus_addr_t dma_phyaddr; /* Physical Address */ - caddr_t dma_viraddr; /* Virtual Address */ - bus_dma_tag_t dma_tag; /* DMA Tag */ - bus_dmamap_t dma_map; /* DMA Map */ - bus_dma_segment_t dma_segment; /* DMA Segment */ - bus_size_t dma_size; /* Size */ - int dma_nseg; /* Maximum scatter-gather segs. */ -} xge_dma_alloc_t; - -typedef struct xge_dma_mbuf_t { - bus_addr_t dma_phyaddr; /* Physical Address */ - bus_dmamap_t dma_map; /* DMA Map */ -}xge_dma_mbuf_t; - -typedef struct xge_pci_info { - device_t device; /* Device */ - struct resource *regmap0; /* Resource for BAR0 */ - struct resource *regmap1; /* Resource for BAR1 */ - void *bar0resource; /* BAR0 tag and handle */ - void *bar1resource; /* BAR1 tag and handle */ -} xge_pci_info_t; - - -/** - * Fixed size primitive types - */ -#define u8 uint8_t -#define u16 uint16_t -#define u32 uint32_t -#define u64 uint64_t -#define ulong_t unsigned long -#define uint unsigned int -#define ptrdiff_t ptrdiff_t -typedef bus_addr_t dma_addr_t; -typedef struct mtx spinlock_t; -typedef xge_pci_info_t *pci_dev_h; -typedef xge_bus_resource_t *pci_reg_h; -typedef xge_dma_alloc_t pci_dma_h; -typedef xge_dma_alloc_t pci_dma_acc_h; -typedef struct resource *pci_irq_h; -typedef xge_pci_info_t *pci_cfg_h; - -/** - * "libc" functionality - */ -#define xge_os_memzero(addr, size) bzero(addr, size) -#define xge_os_memcpy(dst, src, size) bcopy(src, dst, size) -#define xge_os_memcmp memcmp -#define xge_os_strcpy strcpy -#define xge_os_strlen strlen -#define xge_os_snprintf snprintf -#define xge_os_sprintf sprintf -#define xge_os_printf(fmt...) { \ - printf(fmt); \ - printf("\n"); \ -} - -#define xge_os_vaprintf(fmt) { \ - sprintf(fmt, fmt, "\n"); \ - va_list va; \ - va_start(va, fmt); \ - vprintf(fmt, va); \ - va_end(va); \ -} - -#define xge_os_vasprintf(buf, fmt) { \ - va_list va; \ - va_start(va, fmt); \ - (void) vaprintf(buf, fmt, va); \ - va_end(va); \ -} - -#define xge_os_timestamp(buf) { \ - struct timeval current_time; \ - gettimeofday(¤t_time, 0); \ - sprintf(buf, "%08li.%08li: ", current_time.tv_sec, \ - current_time.tv_usec); \ -} - -#define xge_os_println xge_os_printf - -/** - * Synchronization Primitives - */ -/* Initialize the spin lock */ -#define xge_os_spin_lock_init(lockp, ctxh) { \ - if(mtx_initialized(lockp) == 0) { \ - mtx_init((lockp), "xge", NULL, MTX_DEF); \ - } \ -} - -/* Initialize the spin lock (IRQ version) */ -#define xge_os_spin_lock_init_irq(lockp, ctxh) { \ - if(mtx_initialized(lockp) == 0) { \ - mtx_init((lockp), "xge", NULL, MTX_DEF); \ - } \ -} - -/* Destroy the lock */ -#define xge_os_spin_lock_destroy(lockp, ctxh) { \ - if(mtx_initialized(lockp) != 0) { \ - mtx_destroy(lockp); \ - } \ -} - -/* Destroy the lock (IRQ version) */ -#define xge_os_spin_lock_destroy_irq(lockp, ctxh) { \ - if(mtx_initialized(lockp) != 0) { \ - mtx_destroy(lockp); \ - } \ -} - -/* Acquire the lock */ -#define xge_os_spin_lock(lockp) { \ - if(mtx_owned(lockp) == 0) mtx_lock(lockp); \ -} - -/* Release the lock */ -#define xge_os_spin_unlock(lockp) { \ - mtx_unlock(lockp); \ -} - -/* Acquire the lock (IRQ version) */ -#define xge_os_spin_lock_irq(lockp, flags) { \ - flags = MTX_QUIET; \ - if(mtx_owned(lockp) == 0) mtx_lock_flags(lockp, flags); \ -} - -/* Release the lock (IRQ version) */ -#define xge_os_spin_unlock_irq(lockp, flags) { \ - flags = MTX_QUIET; \ - mtx_unlock_flags(lockp, flags); \ -} - -#if __FreeBSD_version > 800053 -/* Write memory barrier */ -#define xge_os_wmb() wmb() -#else -#define xge_os_wmb() -#endif - -/* Delay (in micro seconds) */ -#define xge_os_udelay(us) DELAY(us) - -/* Delay (in milli seconds) */ -#define xge_os_mdelay(ms) DELAY(ms * 1000) - -/* Compare and exchange */ -//#define xge_os_cmpxchg(targetp, cmd, newval) - -/** - * Misc primitives - */ -#define xge_os_unlikely(x) (x) -#define xge_os_prefetch(x) (x=x) -#define xge_os_prefetchw(x) (x=x) -#define xge_os_bug(fmt...) printf(fmt) -#define xge_os_htohs ntohs -#define xge_os_ntohl ntohl -#define xge_os_htons htons -#define xge_os_htonl htonl - -/** - * Compiler Stuffs - */ -#define __xge_os_attr_cacheline_aligned -#define __xge_os_cacheline_size 32 - -/** - * Memory Primitives - */ -#define XGE_OS_INVALID_DMA_ADDR ((dma_addr_t)0) - -/** - * xge_os_malloc - * Allocate non DMA-able memory. - * @pdev: Device context. - * @size: Size to allocate. - * - * Allocate @size bytes of memory. This allocation can sleep, and therefore, - * and therefore it requires process context. In other words, xge_os_malloc() - * cannot be called from the interrupt context. Use xge_os_free() to free the - * allocated block. - * - * Returns: Pointer to allocated memory, NULL - on failure. - * - * See also: xge_os_free(). - */ -static inline void * -xge_os_malloc(pci_dev_h pdev, unsigned long size) { - void *vaddr = malloc((size), M_DEVBUF, M_NOWAIT | M_ZERO); - if(vaddr != NULL) { - XGE_OS_MEMORY_CHECK_MALLOC(vaddr, size, __FILE__, __LINE__); - xge_os_memzero(vaddr, size); - } - return (vaddr); -} - -/** - * xge_os_free - * Free non DMA-able memory. - * @pdev: Device context. - * @vaddr: Address of the allocated memory block. - * @size: Some OS's require to provide size on free - * - * Free the memory area obtained via xge_os_malloc(). This call may also sleep, - * and therefore it cannot be used inside interrupt. - * - * See also: xge_os_malloc(). - */ -static inline void -xge_os_free(pci_dev_h pdev, const void *vaddr, unsigned long size) { - XGE_OS_MEMORY_CHECK_FREE(vaddr, size); - free(__DECONST(void *, vaddr), M_DEVBUF); -} - -static void -xge_dmamap_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error) { - if(error) return; - *(bus_addr_t *) arg = segs->ds_addr; - return; -} - -/** - * xge_os_dma_malloc - * Allocate DMA-able memory. - * @pdev: Device context. Used to allocate/pin/map/unmap DMA-able memory. - * @size: Size (in bytes) to allocate. - * @dma_flags: XGE_OS_DMA_CACHELINE_ALIGNED, XGE_OS_DMA_STREAMING, - * XGE_OS_DMA_CONSISTENT (Note that the last two flags are mutually exclusive.) - * @p_dmah: Handle used to map the memory onto the corresponding device memory - * space. See xge_os_dma_map(). The handle is an out-parameter returned by the - * function. - * @p_dma_acch: One more DMA handle used subsequently to free the DMA object - * (via xge_os_dma_free()). - * - * Allocate DMA-able contiguous memory block of the specified @size. This memory - * can be subsequently freed using xge_os_dma_free(). - * Note: can be used inside interrupt context. - * - * Returns: Pointer to allocated memory(DMA-able), NULL on failure. - */ -static inline void * -xge_os_dma_malloc(pci_dev_h pdev, unsigned long size, int dma_flags, - pci_dma_h *p_dmah, pci_dma_acc_h *p_dma_acch) { - int retValue = bus_dma_tag_create( - bus_get_dma_tag(pdev->device), /* Parent */ - PAGE_SIZE, /* Alignment no specific alignment */ - 0, /* Bounds */ - BUS_SPACE_MAXADDR, /* Low Address */ - BUS_SPACE_MAXADDR, /* High Address */ - NULL, /* Filter */ - NULL, /* Filter arg */ - size, /* Max Size */ - 1, /* n segments */ - size, /* max segment size */ - BUS_DMA_ALLOCNOW, /* Flags */ - NULL, /* lockfunction */ - NULL, /* lock arg */ - &p_dmah->dma_tag); /* DMA tag */ - if(retValue != 0) { - xge_os_printf("bus_dma_tag_create failed\n") - goto fail_1; - } - p_dmah->dma_size = size; - retValue = bus_dmamem_alloc(p_dmah->dma_tag, - (void **)&p_dmah->dma_viraddr, BUS_DMA_NOWAIT, &p_dmah->dma_map); - if(retValue != 0) { - xge_os_printf("bus_dmamem_alloc failed\n") - goto fail_2; - } - XGE_OS_MEMORY_CHECK_MALLOC(p_dmah->dma_viraddr, p_dmah->dma_size, - __FILE__, __LINE__); - return(p_dmah->dma_viraddr); - -fail_2: bus_dma_tag_destroy(p_dmah->dma_tag); -fail_1: return(NULL); -} - -/** - * xge_os_dma_free - * Free previously allocated DMA-able memory. - * @pdev: Device context. Used to allocate/pin/map/unmap DMA-able memory. - * @vaddr: Virtual address of the DMA-able memory. - * @p_dma_acch: DMA handle used to free the resource. - * @p_dmah: DMA handle used for mapping. See xge_os_dma_malloc(). - * - * Free DMA-able memory originally allocated by xge_os_dma_malloc(). - * Note: can be used inside interrupt. - * See also: xge_os_dma_malloc(). - */ -static inline void -xge_os_dma_free(pci_dev_h pdev, const void *vaddr, int size, - pci_dma_acc_h *p_dma_acch, pci_dma_h *p_dmah) -{ - XGE_OS_MEMORY_CHECK_FREE(p_dmah->dma_viraddr, size); - bus_dmamem_free(p_dmah->dma_tag, p_dmah->dma_viraddr, p_dmah->dma_map); - bus_dma_tag_destroy(p_dmah->dma_tag); - p_dmah->dma_tag = NULL; - p_dmah->dma_viraddr = NULL; - return; -} - -/** - * IO/PCI/DMA Primitives - */ -#define XGE_OS_DMA_DIR_TODEVICE 0 -#define XGE_OS_DMA_DIR_FROMDEVICE 1 -#define XGE_OS_DMA_DIR_BIDIRECTIONAL 2 - -/** - * xge_os_pci_read8 - * Read one byte from device PCI configuration. - * @pdev: Device context. Some OSs require device context to perform PIO and/or - * config space IO. - * @cfgh: PCI configuration space handle. - * @where: Offset in the PCI configuration space. - * @val: Address of the result. - * - * Read byte value from the specified @regh PCI configuration space at the - * specified offset = @where. - * Returns: 0 - success, non-zero - failure. - */ -#define xge_os_pci_read8(pdev, cfgh, where, val) \ - (*(val) = pci_read_config(pdev->device, where, 1)) - -/** - * xge_os_pci_write8 - * Write one byte into device PCI configuration. - * @pdev: Device context. Some OSs require device context to perform PIO and/or - * config space IO. - * @cfgh: PCI configuration space handle. - * @where: Offset in the PCI configuration space. - * @val: Value to write. - * - * Write byte value into the specified PCI configuration space - * Returns: 0 - success, non-zero - failure. - */ -#define xge_os_pci_write8(pdev, cfgh, where, val) \ - pci_write_config(pdev->device, where, val, 1) - -/** - * xge_os_pci_read16 - * Read 16bit word from device PCI configuration. - * @pdev: Device context. - * @cfgh: PCI configuration space handle. - * @where: Offset in the PCI configuration space. - * @val: Address of the 16bit result. - * - * Read 16bit value from the specified PCI configuration space at the - * specified offset. - * Returns: 0 - success, non-zero - failure. - */ -#define xge_os_pci_read16(pdev, cfgh, where, val) \ - (*(val) = pci_read_config(pdev->device, where, 2)) - -/** - * xge_os_pci_write16 - * Write 16bit word into device PCI configuration. - * @pdev: Device context. - * @cfgh: PCI configuration space handle. - * @where: Offset in the PCI configuration space. - * @val: Value to write. - * - * Write 16bit value into the specified @offset in PCI configuration space. - * Returns: 0 - success, non-zero - failure. - */ -#define xge_os_pci_write16(pdev, cfgh, where, val) \ - pci_write_config(pdev->device, where, val, 2) - -/** - * xge_os_pci_read32 - * Read 32bit word from device PCI configuration. - * @pdev: Device context. - * @cfgh: PCI configuration space handle. - * @where: Offset in the PCI configuration space. - * @val: Address of 32bit result. - * - * Read 32bit value from the specified PCI configuration space at the - * specified offset. - * Returns: 0 - success, non-zero - failure. - */ -#define xge_os_pci_read32(pdev, cfgh, where, val) \ - (*(val) = pci_read_config(pdev->device, where, 4)) - -/** - * xge_os_pci_write32 - * Write 32bit word into device PCI configuration. - * @pdev: Device context. - * @cfgh: PCI configuration space handle. - * @where: Offset in the PCI configuration space. - * @val: Value to write. - * - * Write 32bit value into the specified @offset in PCI configuration space. - * Returns: 0 - success, non-zero - failure. - */ -#define xge_os_pci_write32(pdev, cfgh, where, val) \ - pci_write_config(pdev->device, where, val, 4) - -/** - * xge_os_pio_mem_read8 - * Read 1 byte from device memory mapped space. - * @pdev: Device context. - * @regh: PCI configuration space handle. - * @addr: Address in device memory space. - * - * Returns: 1 byte value read from the specified (mapped) memory space address. - */ -static inline u8 -xge_os_pio_mem_read8(pci_dev_h pdev, pci_reg_h regh, void *addr) -{ - bus_space_tag_t tag = - (bus_space_tag_t)(((xge_bus_resource_t *)regh)->bus_tag); - bus_space_handle_t handle = - (bus_space_handle_t)(((xge_bus_resource_t *)regh)->bus_handle); - caddr_t addrss = (caddr_t) - (((xge_bus_resource_t *)(regh))->bar_start_addr); - - return bus_space_read_1(tag, handle, (caddr_t)(addr) - addrss); -} - -/** - * xge_os_pio_mem_write8 - * Write 1 byte into device memory mapped space. - * @pdev: Device context. - * @regh: PCI configuration space handle. - * @val: Value to write. - * @addr: Address in device memory space. - * - * Write byte value into the specified (mapped) device memory space. - */ -static inline void -xge_os_pio_mem_write8(pci_dev_h pdev, pci_reg_h regh, u8 val, void *addr) -{ - bus_space_tag_t tag = - (bus_space_tag_t)(((xge_bus_resource_t *)regh)->bus_tag); - bus_space_handle_t handle = - (bus_space_handle_t)(((xge_bus_resource_t *)regh)->bus_handle); - caddr_t addrss = (caddr_t) - (((xge_bus_resource_t *)(regh))->bar_start_addr); - - bus_space_write_1(tag, handle, (caddr_t)(addr) - addrss, val); -} - -/** - * xge_os_pio_mem_read16 - * Read 16bit from device memory mapped space. - * @pdev: Device context. - * @regh: PCI configuration space handle. - * @addr: Address in device memory space. - * - * Returns: 16bit value read from the specified (mapped) memory space address. - */ -static inline u16 -xge_os_pio_mem_read16(pci_dev_h pdev, pci_reg_h regh, void *addr) -{ - bus_space_tag_t tag = - (bus_space_tag_t)(((xge_bus_resource_t *)regh)->bus_tag); - bus_space_handle_t handle = - (bus_space_handle_t)(((xge_bus_resource_t *)regh)->bus_handle); - caddr_t addrss = (caddr_t) - (((xge_bus_resource_t *)(regh))->bar_start_addr); - - return bus_space_read_2(tag, handle, (caddr_t)(addr) - addrss); -} - -/** - * xge_os_pio_mem_write16 - * Write 16bit into device memory mapped space. - * @pdev: Device context. - * @regh: PCI configuration space handle. - * @val: Value to write. - * @addr: Address in device memory space. - * - * Write 16bit value into the specified (mapped) device memory space. - */ -static inline void -xge_os_pio_mem_write16(pci_dev_h pdev, pci_reg_h regh, u16 val, void *addr) -{ - bus_space_tag_t tag = - (bus_space_tag_t)(((xge_bus_resource_t *)regh)->bus_tag); - bus_space_handle_t handle = - (bus_space_handle_t)(((xge_bus_resource_t *)regh)->bus_handle); - caddr_t addrss = (caddr_t)(((xge_bus_resource_t *)(regh))->bar_start_addr); - - bus_space_write_2(tag, handle, (caddr_t)(addr) - addrss, val); -} - -/** - * xge_os_pio_mem_read32 - * Read 32bit from device memory mapped space. - * @pdev: Device context. - * @regh: PCI configuration space handle. - * @addr: Address in device memory space. - * - * Returns: 32bit value read from the specified (mapped) memory space address. - */ -static inline u32 -xge_os_pio_mem_read32(pci_dev_h pdev, pci_reg_h regh, void *addr) -{ - bus_space_tag_t tag = - (bus_space_tag_t)(((xge_bus_resource_t *)regh)->bus_tag); - bus_space_handle_t handle = - (bus_space_handle_t)(((xge_bus_resource_t *)regh)->bus_handle); - caddr_t addrss = (caddr_t) - (((xge_bus_resource_t *)(regh))->bar_start_addr); - - return bus_space_read_4(tag, handle, (caddr_t)(addr) - addrss); -} - -/** - * xge_os_pio_mem_write32 - * Write 32bit into device memory space. - * @pdev: Device context. - * @regh: PCI configuration space handle. - * @val: Value to write. - * @addr: Address in device memory space. - * - * Write 32bit value into the specified (mapped) device memory space. - */ -static inline void -xge_os_pio_mem_write32(pci_dev_h pdev, pci_reg_h regh, u32 val, void *addr) -{ - bus_space_tag_t tag = - (bus_space_tag_t)(((xge_bus_resource_t *)regh)->bus_tag); - bus_space_handle_t handle = - (bus_space_handle_t)(((xge_bus_resource_t *)regh)->bus_handle); - caddr_t addrss = (caddr_t)(((xge_bus_resource_t *)(regh))->bar_start_addr); - bus_space_write_4(tag, handle, (caddr_t)(addr) - addrss, val); -} - -/** - * xge_os_pio_mem_read64 - * Read 64bit from device memory mapped space. - * @pdev: Device context. - * @regh: PCI configuration space handle. - * @addr: Address in device memory space. - * - * Returns: 64bit value read from the specified (mapped) memory space address. - */ -static inline u64 -xge_os_pio_mem_read64(pci_dev_h pdev, pci_reg_h regh, void *addr) -{ - u64 value1, value2; - - bus_space_tag_t tag = - (bus_space_tag_t)(((xge_bus_resource_t *)regh)->bus_tag); - bus_space_handle_t handle = - (bus_space_handle_t)(((xge_bus_resource_t *)regh)->bus_handle); - caddr_t addrss = (caddr_t) - (((xge_bus_resource_t *)(regh))->bar_start_addr); - - value1 = bus_space_read_4(tag, handle, (caddr_t)(addr) + 4 - addrss); - value1 <<= 32; - value2 = bus_space_read_4(tag, handle, (caddr_t)(addr) - addrss); - value1 |= value2; - return value1; -} - -/** - * xge_os_pio_mem_write64 - * Write 32bit into device memory space. - * @pdev: Device context. - * @regh: PCI configuration space handle. - * @val: Value to write. - * @addr: Address in device memory space. - * - * Write 64bit value into the specified (mapped) device memory space. - */ -static inline void -xge_os_pio_mem_write64(pci_dev_h pdev, pci_reg_h regh, u64 val, void *addr) -{ - u32 vall = val & 0xffffffff; - xge_os_pio_mem_write32(pdev, regh, vall, addr); - xge_os_pio_mem_write32(pdev, regh, val >> 32, ((caddr_t)(addr) + 4)); -} - -/** - * FIXME: document - */ -#define xge_os_flush_bridge xge_os_pio_mem_read64 - -/** - * xge_os_dma_map - * Map DMA-able memory block to, or from, or to-and-from device. - * @pdev: Device context. Used to allocate/pin/map/unmap DMA-able memory. - * @dmah: DMA handle used to map the memory block. Obtained via - * xge_os_dma_malloc(). - * @vaddr: Virtual address of the DMA-able memory. - * @size: Size (in bytes) to be mapped. - * @dir: Direction of this operation (XGE_OS_DMA_DIR_TODEVICE, etc.) - * @dma_flags: XGE_OS_DMA_CACHELINE_ALIGNED, XGE_OS_DMA_STREAMING, - * XGE_OS_DMA_CONSISTENT (Note that the last two flags are mutually exclusive). - * - * Map a single memory block. - * - * Returns: DMA address of the memory block, XGE_OS_INVALID_DMA_ADDR on failure. - * - * See also: xge_os_dma_malloc(), xge_os_dma_unmap(), xge_os_dma_sync(). - */ -static inline dma_addr_t -xge_os_dma_map(pci_dev_h pdev, pci_dma_h dmah, void *vaddr, size_t size, - int dir, int dma_flags) -{ - int retValue = - bus_dmamap_load(dmah.dma_tag, dmah.dma_map, dmah.dma_viraddr, - dmah.dma_size, xge_dmamap_cb, &dmah.dma_phyaddr, BUS_DMA_NOWAIT); - if(retValue != 0) { - xge_os_printf("bus_dmamap_load_ failed\n") - return XGE_OS_INVALID_DMA_ADDR; - } - dmah.dma_size = size; - return dmah.dma_phyaddr; -} - -/** - * xge_os_dma_unmap - Unmap DMA-able memory. - * @pdev: Device context. Used to allocate/pin/map/unmap DMA-able memory. - * @dmah: DMA handle used to map the memory block. Obtained via - * xge_os_dma_malloc(). - * @dma_addr: DMA address of the block. Obtained via xge_os_dma_map(). - * @size: Size (in bytes) to be unmapped. - * @dir: Direction of this operation (XGE_OS_DMA_DIR_TODEVICE, etc.) - * - * Unmap a single DMA-able memory block that was previously mapped using - * xge_os_dma_map(). - * See also: xge_os_dma_malloc(), xge_os_dma_map(). - */ -static inline void -xge_os_dma_unmap(pci_dev_h pdev, pci_dma_h dmah, dma_addr_t dma_addr, - size_t size, int dir) -{ - bus_dmamap_unload(dmah.dma_tag, dmah.dma_map); - return; -} - -/** - * xge_os_dma_sync - Synchronize mapped memory. - * @pdev: Device context. Used to allocate/pin/map/unmap DMA-able memory. - * @dmah: DMA handle used to map the memory block. Obtained via - * xge_os_dma_malloc(). - * @dma_addr: DMA address of the block. Obtained via xge_os_dma_map(). - * @dma_offset: Offset from start of the blocke. Used by Solaris only. - * @length: Size of the block. - * @dir: Direction of this operation (XGE_OS_DMA_DIR_TODEVICE, etc.) - * - * Make physical and CPU memory consistent for a single streaming mode DMA - * translation. This API compiles to NOP on cache-coherent platforms. On - * non cache-coherent platforms, depending on the direction of the "sync" - * operation, this API will effectively either invalidate CPU cache (that might - * contain old data), or flush CPU cache to update physical memory. - * See also: xge_os_dma_malloc(), xge_os_dma_map(), - * xge_os_dma_unmap(). - */ -static inline void -xge_os_dma_sync(pci_dev_h pdev, pci_dma_h dmah, dma_addr_t dma_addr, - u64 dma_offset, size_t length, int dir) -{ - bus_dmasync_op_t syncop; - switch(dir) { - case XGE_OS_DMA_DIR_TODEVICE: - syncop = BUS_DMASYNC_PREWRITE | BUS_DMASYNC_POSTWRITE; - break; - - case XGE_OS_DMA_DIR_FROMDEVICE: - syncop = BUS_DMASYNC_PREREAD | BUS_DMASYNC_POSTREAD; - break; - - default: - syncop = BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREWRITE; - break; - } - bus_dmamap_sync(dmah.dma_tag, dmah.dma_map, syncop); - return; -} - -#endif /* XGE_OSDEP_H */ - Property changes on: head/sys/dev/nxge/xge-osdep.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/if_nxge.c =================================================================== --- head/sys/dev/nxge/if_nxge.c (revision 333387) +++ head/sys/dev/nxge/if_nxge.c (nonexistent) @@ -1,3533 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include -#include -#include -#include -#include -#include - -int copyright_print = 0; -int hal_driver_init_count = 0; -size_t size = sizeof(int); - -static void inline xge_flush_txds(xge_hal_channel_h); - -/** - * xge_probe - * Probes for Xframe devices - * - * @dev Device handle - * - * Returns - * BUS_PROBE_DEFAULT if device is supported - * ENXIO if device is not supported - */ -int -xge_probe(device_t dev) -{ - int devid = pci_get_device(dev); - int vendorid = pci_get_vendor(dev); - int retValue = ENXIO; - - if(vendorid == XGE_PCI_VENDOR_ID) { - if((devid == XGE_PCI_DEVICE_ID_XENA_2) || - (devid == XGE_PCI_DEVICE_ID_HERC_2)) { - if(!copyright_print) { - xge_os_printf(XGE_COPYRIGHT); - copyright_print = 1; - } - device_set_desc_copy(dev, - "Neterion Xframe 10 Gigabit Ethernet Adapter"); - retValue = BUS_PROBE_DEFAULT; - } - } - - return retValue; -} - -/** - * xge_init_params - * Sets HAL parameter values (from kenv). - * - * @dconfig Device Configuration - * @dev Device Handle - */ -void -xge_init_params(xge_hal_device_config_t *dconfig, device_t dev) -{ - int qindex, tindex, revision; - device_t checkdev; - xge_lldev_t *lldev = (xge_lldev_t *)device_get_softc(dev); - - dconfig->mtu = XGE_DEFAULT_INITIAL_MTU; - dconfig->pci_freq_mherz = XGE_DEFAULT_USER_HARDCODED; - dconfig->device_poll_millis = XGE_HAL_DEFAULT_DEVICE_POLL_MILLIS; - dconfig->link_stability_period = XGE_HAL_DEFAULT_LINK_STABILITY_PERIOD; - dconfig->mac.rmac_bcast_en = XGE_DEFAULT_MAC_RMAC_BCAST_EN; - dconfig->fifo.alignment_size = XGE_DEFAULT_FIFO_ALIGNMENT_SIZE; - - XGE_GET_PARAM("hw.xge.enable_tso", (*lldev), enabled_tso, - XGE_DEFAULT_ENABLED_TSO); - XGE_GET_PARAM("hw.xge.enable_lro", (*lldev), enabled_lro, - XGE_DEFAULT_ENABLED_LRO); - XGE_GET_PARAM("hw.xge.enable_msi", (*lldev), enabled_msi, - XGE_DEFAULT_ENABLED_MSI); - - XGE_GET_PARAM("hw.xge.latency_timer", (*dconfig), latency_timer, - XGE_DEFAULT_LATENCY_TIMER); - XGE_GET_PARAM("hw.xge.max_splits_trans", (*dconfig), max_splits_trans, - XGE_DEFAULT_MAX_SPLITS_TRANS); - XGE_GET_PARAM("hw.xge.mmrb_count", (*dconfig), mmrb_count, - XGE_DEFAULT_MMRB_COUNT); - XGE_GET_PARAM("hw.xge.shared_splits", (*dconfig), shared_splits, - XGE_DEFAULT_SHARED_SPLITS); - XGE_GET_PARAM("hw.xge.isr_polling_cnt", (*dconfig), isr_polling_cnt, - XGE_DEFAULT_ISR_POLLING_CNT); - XGE_GET_PARAM("hw.xge.stats_refresh_time_sec", (*dconfig), - stats_refresh_time_sec, XGE_DEFAULT_STATS_REFRESH_TIME_SEC); - - XGE_GET_PARAM_MAC("hw.xge.mac_tmac_util_period", tmac_util_period, - XGE_DEFAULT_MAC_TMAC_UTIL_PERIOD); - XGE_GET_PARAM_MAC("hw.xge.mac_rmac_util_period", rmac_util_period, - XGE_DEFAULT_MAC_RMAC_UTIL_PERIOD); - XGE_GET_PARAM_MAC("hw.xge.mac_rmac_pause_gen_en", rmac_pause_gen_en, - XGE_DEFAULT_MAC_RMAC_PAUSE_GEN_EN); - XGE_GET_PARAM_MAC("hw.xge.mac_rmac_pause_rcv_en", rmac_pause_rcv_en, - XGE_DEFAULT_MAC_RMAC_PAUSE_RCV_EN); - XGE_GET_PARAM_MAC("hw.xge.mac_rmac_pause_time", rmac_pause_time, - XGE_DEFAULT_MAC_RMAC_PAUSE_TIME); - XGE_GET_PARAM_MAC("hw.xge.mac_mc_pause_threshold_q0q3", - mc_pause_threshold_q0q3, XGE_DEFAULT_MAC_MC_PAUSE_THRESHOLD_Q0Q3); - XGE_GET_PARAM_MAC("hw.xge.mac_mc_pause_threshold_q4q7", - mc_pause_threshold_q4q7, XGE_DEFAULT_MAC_MC_PAUSE_THRESHOLD_Q4Q7); - - XGE_GET_PARAM_FIFO("hw.xge.fifo_memblock_size", memblock_size, - XGE_DEFAULT_FIFO_MEMBLOCK_SIZE); - XGE_GET_PARAM_FIFO("hw.xge.fifo_reserve_threshold", reserve_threshold, - XGE_DEFAULT_FIFO_RESERVE_THRESHOLD); - XGE_GET_PARAM_FIFO("hw.xge.fifo_max_frags", max_frags, - XGE_DEFAULT_FIFO_MAX_FRAGS); - - for(qindex = 0; qindex < XGE_FIFO_COUNT; qindex++) { - XGE_GET_PARAM_FIFO_QUEUE("hw.xge.fifo_queue_intr", intr, qindex, - XGE_DEFAULT_FIFO_QUEUE_INTR); - XGE_GET_PARAM_FIFO_QUEUE("hw.xge.fifo_queue_max", max, qindex, - XGE_DEFAULT_FIFO_QUEUE_MAX); - XGE_GET_PARAM_FIFO_QUEUE("hw.xge.fifo_queue_initial", initial, - qindex, XGE_DEFAULT_FIFO_QUEUE_INITIAL); - - for (tindex = 0; tindex < XGE_HAL_MAX_FIFO_TTI_NUM; tindex++) { - dconfig->fifo.queue[qindex].tti[tindex].enabled = 1; - dconfig->fifo.queue[qindex].configured = 1; - - XGE_GET_PARAM_FIFO_QUEUE_TTI("hw.xge.fifo_queue_tti_urange_a", - urange_a, qindex, tindex, - XGE_DEFAULT_FIFO_QUEUE_TTI_URANGE_A); - XGE_GET_PARAM_FIFO_QUEUE_TTI("hw.xge.fifo_queue_tti_urange_b", - urange_b, qindex, tindex, - XGE_DEFAULT_FIFO_QUEUE_TTI_URANGE_B); - XGE_GET_PARAM_FIFO_QUEUE_TTI("hw.xge.fifo_queue_tti_urange_c", - urange_c, qindex, tindex, - XGE_DEFAULT_FIFO_QUEUE_TTI_URANGE_C); - XGE_GET_PARAM_FIFO_QUEUE_TTI("hw.xge.fifo_queue_tti_ufc_a", - ufc_a, qindex, tindex, XGE_DEFAULT_FIFO_QUEUE_TTI_UFC_A); - XGE_GET_PARAM_FIFO_QUEUE_TTI("hw.xge.fifo_queue_tti_ufc_b", - ufc_b, qindex, tindex, XGE_DEFAULT_FIFO_QUEUE_TTI_UFC_B); - XGE_GET_PARAM_FIFO_QUEUE_TTI("hw.xge.fifo_queue_tti_ufc_c", - ufc_c, qindex, tindex, XGE_DEFAULT_FIFO_QUEUE_TTI_UFC_C); - XGE_GET_PARAM_FIFO_QUEUE_TTI("hw.xge.fifo_queue_tti_ufc_d", - ufc_d, qindex, tindex, XGE_DEFAULT_FIFO_QUEUE_TTI_UFC_D); - XGE_GET_PARAM_FIFO_QUEUE_TTI( - "hw.xge.fifo_queue_tti_timer_ci_en", timer_ci_en, qindex, - tindex, XGE_DEFAULT_FIFO_QUEUE_TTI_TIMER_CI_EN); - XGE_GET_PARAM_FIFO_QUEUE_TTI( - "hw.xge.fifo_queue_tti_timer_ac_en", timer_ac_en, qindex, - tindex, XGE_DEFAULT_FIFO_QUEUE_TTI_TIMER_AC_EN); - XGE_GET_PARAM_FIFO_QUEUE_TTI( - "hw.xge.fifo_queue_tti_timer_val_us", timer_val_us, qindex, - tindex, XGE_DEFAULT_FIFO_QUEUE_TTI_TIMER_VAL_US); - } - } - - XGE_GET_PARAM_RING("hw.xge.ring_memblock_size", memblock_size, - XGE_DEFAULT_RING_MEMBLOCK_SIZE); - - XGE_GET_PARAM_RING("hw.xge.ring_strip_vlan_tag", strip_vlan_tag, - XGE_DEFAULT_RING_STRIP_VLAN_TAG); - - XGE_GET_PARAM("hw.xge.buffer_mode", (*lldev), buffer_mode, - XGE_DEFAULT_BUFFER_MODE); - if((lldev->buffer_mode < XGE_HAL_RING_QUEUE_BUFFER_MODE_1) || - (lldev->buffer_mode > XGE_HAL_RING_QUEUE_BUFFER_MODE_2)) { - xge_trace(XGE_ERR, "Supported buffer modes are 1 and 2"); - lldev->buffer_mode = XGE_HAL_RING_QUEUE_BUFFER_MODE_1; - } - - for (qindex = 0; qindex < XGE_RING_COUNT; qindex++) { - dconfig->ring.queue[qindex].max_frm_len = XGE_HAL_RING_USE_MTU; - dconfig->ring.queue[qindex].priority = 0; - dconfig->ring.queue[qindex].configured = 1; - dconfig->ring.queue[qindex].buffer_mode = - (lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_2) ? - XGE_HAL_RING_QUEUE_BUFFER_MODE_3 : lldev->buffer_mode; - - XGE_GET_PARAM_RING_QUEUE("hw.xge.ring_queue_max", max, qindex, - XGE_DEFAULT_RING_QUEUE_MAX); - XGE_GET_PARAM_RING_QUEUE("hw.xge.ring_queue_initial", initial, - qindex, XGE_DEFAULT_RING_QUEUE_INITIAL); - XGE_GET_PARAM_RING_QUEUE("hw.xge.ring_queue_dram_size_mb", - dram_size_mb, qindex, XGE_DEFAULT_RING_QUEUE_DRAM_SIZE_MB); - XGE_GET_PARAM_RING_QUEUE("hw.xge.ring_queue_indicate_max_pkts", - indicate_max_pkts, qindex, - XGE_DEFAULT_RING_QUEUE_INDICATE_MAX_PKTS); - XGE_GET_PARAM_RING_QUEUE("hw.xge.ring_queue_backoff_interval_us", - backoff_interval_us, qindex, - XGE_DEFAULT_RING_QUEUE_BACKOFF_INTERVAL_US); - - XGE_GET_PARAM_RING_QUEUE_RTI("hw.xge.ring_queue_rti_ufc_a", ufc_a, - qindex, XGE_DEFAULT_RING_QUEUE_RTI_UFC_A); - XGE_GET_PARAM_RING_QUEUE_RTI("hw.xge.ring_queue_rti_ufc_b", ufc_b, - qindex, XGE_DEFAULT_RING_QUEUE_RTI_UFC_B); - XGE_GET_PARAM_RING_QUEUE_RTI("hw.xge.ring_queue_rti_ufc_c", ufc_c, - qindex, XGE_DEFAULT_RING_QUEUE_RTI_UFC_C); - XGE_GET_PARAM_RING_QUEUE_RTI("hw.xge.ring_queue_rti_ufc_d", ufc_d, - qindex, XGE_DEFAULT_RING_QUEUE_RTI_UFC_D); - XGE_GET_PARAM_RING_QUEUE_RTI("hw.xge.ring_queue_rti_timer_ac_en", - timer_ac_en, qindex, XGE_DEFAULT_RING_QUEUE_RTI_TIMER_AC_EN); - XGE_GET_PARAM_RING_QUEUE_RTI("hw.xge.ring_queue_rti_timer_val_us", - timer_val_us, qindex, XGE_DEFAULT_RING_QUEUE_RTI_TIMER_VAL_US); - XGE_GET_PARAM_RING_QUEUE_RTI("hw.xge.ring_queue_rti_urange_a", - urange_a, qindex, XGE_DEFAULT_RING_QUEUE_RTI_URANGE_A); - XGE_GET_PARAM_RING_QUEUE_RTI("hw.xge.ring_queue_rti_urange_b", - urange_b, qindex, XGE_DEFAULT_RING_QUEUE_RTI_URANGE_B); - XGE_GET_PARAM_RING_QUEUE_RTI("hw.xge.ring_queue_rti_urange_c", - urange_c, qindex, XGE_DEFAULT_RING_QUEUE_RTI_URANGE_C); - } - - if(dconfig->fifo.max_frags > (PAGE_SIZE/32)) { - xge_os_printf("fifo_max_frags = %d", dconfig->fifo.max_frags) - xge_os_printf("fifo_max_frags should be <= (PAGE_SIZE / 32) = %d", - (int)(PAGE_SIZE / 32)) - xge_os_printf("Using fifo_max_frags = %d", (int)(PAGE_SIZE / 32)) - dconfig->fifo.max_frags = (PAGE_SIZE / 32); - } - - checkdev = pci_find_device(VENDOR_ID_AMD, DEVICE_ID_8131_PCI_BRIDGE); - if(checkdev != NULL) { - /* Check Revision for 0x12 */ - revision = pci_read_config(checkdev, - xge_offsetof(xge_hal_pci_config_t, revision), 1); - if(revision <= 0x12) { - /* Set mmrb_count to 1k and max splits = 2 */ - dconfig->mmrb_count = 1; - dconfig->max_splits_trans = XGE_HAL_THREE_SPLIT_TRANSACTION; - } - } -} - -/** - * xge_buffer_sizes_set - * Set buffer sizes based on Rx buffer mode - * - * @lldev Per-adapter Data - * @buffer_mode Rx Buffer Mode - */ -void -xge_rx_buffer_sizes_set(xge_lldev_t *lldev, int buffer_mode, int mtu) -{ - int index = 0; - int frame_header = XGE_HAL_MAC_HEADER_MAX_SIZE; - int buffer_size = mtu + frame_header; - - xge_os_memzero(lldev->rxd_mbuf_len, sizeof(lldev->rxd_mbuf_len)); - - if(buffer_mode != XGE_HAL_RING_QUEUE_BUFFER_MODE_5) - lldev->rxd_mbuf_len[buffer_mode - 1] = mtu; - - lldev->rxd_mbuf_len[0] = (buffer_mode == 1) ? buffer_size:frame_header; - - if(buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) - lldev->rxd_mbuf_len[1] = XGE_HAL_TCPIP_HEADER_MAX_SIZE; - - if(buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) { - index = 2; - buffer_size -= XGE_HAL_TCPIP_HEADER_MAX_SIZE; - while(buffer_size > MJUMPAGESIZE) { - lldev->rxd_mbuf_len[index++] = MJUMPAGESIZE; - buffer_size -= MJUMPAGESIZE; - } - XGE_ALIGN_TO(buffer_size, 128); - lldev->rxd_mbuf_len[index] = buffer_size; - lldev->rxd_mbuf_cnt = index + 1; - } - - for(index = 0; index < buffer_mode; index++) - xge_trace(XGE_TRACE, "Buffer[%d] %d\n", index, - lldev->rxd_mbuf_len[index]); -} - -/** - * xge_buffer_mode_init - * Init Rx buffer mode - * - * @lldev Per-adapter Data - * @mtu Interface MTU - */ -void -xge_buffer_mode_init(xge_lldev_t *lldev, int mtu) -{ - int index = 0, buffer_size = 0; - xge_hal_ring_config_t *ring_config = &((lldev->devh)->config.ring); - - buffer_size = mtu + XGE_HAL_MAC_HEADER_MAX_SIZE; - - if(lldev->enabled_lro) - (lldev->ifnetp)->if_capenable |= IFCAP_LRO; - else - (lldev->ifnetp)->if_capenable &= ~IFCAP_LRO; - - lldev->rxd_mbuf_cnt = lldev->buffer_mode; - if(lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_2) { - XGE_SET_BUFFER_MODE_IN_RINGS(XGE_HAL_RING_QUEUE_BUFFER_MODE_3); - ring_config->scatter_mode = XGE_HAL_RING_QUEUE_SCATTER_MODE_B; - } - else { - XGE_SET_BUFFER_MODE_IN_RINGS(lldev->buffer_mode); - ring_config->scatter_mode = XGE_HAL_RING_QUEUE_SCATTER_MODE_A; - } - xge_rx_buffer_sizes_set(lldev, lldev->buffer_mode, mtu); - - xge_os_printf("%s: TSO %s", device_get_nameunit(lldev->device), - ((lldev->enabled_tso) ? "Enabled":"Disabled")); - xge_os_printf("%s: LRO %s", device_get_nameunit(lldev->device), - ((lldev->ifnetp)->if_capenable & IFCAP_LRO) ? "Enabled":"Disabled"); - xge_os_printf("%s: Rx %d Buffer Mode Enabled", - device_get_nameunit(lldev->device), lldev->buffer_mode); -} - -/** - * xge_driver_initialize - * Initializes HAL driver (common for all devices) - * - * Returns - * XGE_HAL_OK if success - * XGE_HAL_ERR_BAD_DRIVER_CONFIG if driver configuration parameters are invalid - */ -int -xge_driver_initialize(void) -{ - xge_hal_uld_cbs_t uld_callbacks; - xge_hal_driver_config_t driver_config; - xge_hal_status_e status = XGE_HAL_OK; - - /* Initialize HAL driver */ - if(!hal_driver_init_count) { - xge_os_memzero(&uld_callbacks, sizeof(xge_hal_uld_cbs_t)); - xge_os_memzero(&driver_config, sizeof(xge_hal_driver_config_t)); - - /* - * Initial and maximum size of the queue used to store the events - * like Link up/down (xge_hal_event_e) - */ - driver_config.queue_size_initial = XGE_HAL_MIN_QUEUE_SIZE_INITIAL; - driver_config.queue_size_max = XGE_HAL_MAX_QUEUE_SIZE_MAX; - - uld_callbacks.link_up = xge_callback_link_up; - uld_callbacks.link_down = xge_callback_link_down; - uld_callbacks.crit_err = xge_callback_crit_err; - uld_callbacks.event = xge_callback_event; - - status = xge_hal_driver_initialize(&driver_config, &uld_callbacks); - if(status != XGE_HAL_OK) { - XGE_EXIT_ON_ERR("xgeX: Initialization of HAL driver failed", - xdi_out, status); - } - } - hal_driver_init_count = hal_driver_init_count + 1; - - xge_hal_driver_debug_module_mask_set(0xffffffff); - xge_hal_driver_debug_level_set(XGE_TRACE); - -xdi_out: - return status; -} - -/** - * xge_media_init - * Initializes, adds and sets media - * - * @devc Device Handle - */ -void -xge_media_init(device_t devc) -{ - xge_lldev_t *lldev = (xge_lldev_t *)device_get_softc(devc); - - /* Initialize Media */ - ifmedia_init(&lldev->media, IFM_IMASK, xge_ifmedia_change, - xge_ifmedia_status); - - /* Add supported media */ - ifmedia_add(&lldev->media, IFM_ETHER | IFM_1000_SX | IFM_FDX, 0, NULL); - ifmedia_add(&lldev->media, IFM_ETHER | IFM_1000_SX, 0, NULL); - ifmedia_add(&lldev->media, IFM_ETHER | IFM_AUTO, 0, NULL); - ifmedia_add(&lldev->media, IFM_ETHER | IFM_10G_SR, 0, NULL); - ifmedia_add(&lldev->media, IFM_ETHER | IFM_10G_LR, 0, NULL); - - /* Set media */ - ifmedia_set(&lldev->media, IFM_ETHER | IFM_AUTO); -} - -/** - * xge_pci_space_save - * Save PCI configuration space - * - * @dev Device Handle - */ -void -xge_pci_space_save(device_t dev) -{ - struct pci_devinfo *dinfo = NULL; - - dinfo = device_get_ivars(dev); - xge_trace(XGE_TRACE, "Saving PCI configuration space"); - pci_cfg_save(dev, dinfo, 0); -} - -/** - * xge_pci_space_restore - * Restore saved PCI configuration space - * - * @dev Device Handle - */ -void -xge_pci_space_restore(device_t dev) -{ - struct pci_devinfo *dinfo = NULL; - - dinfo = device_get_ivars(dev); - xge_trace(XGE_TRACE, "Restoring PCI configuration space"); - pci_cfg_restore(dev, dinfo); -} - -/** - * xge_msi_info_save - * Save MSI info - * - * @lldev Per-adapter Data - */ -void -xge_msi_info_save(xge_lldev_t * lldev) -{ - xge_os_pci_read16(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_control), - &lldev->msi_info.msi_control); - xge_os_pci_read32(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_lower_address), - &lldev->msi_info.msi_lower_address); - xge_os_pci_read32(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_higher_address), - &lldev->msi_info.msi_higher_address); - xge_os_pci_read16(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_data), - &lldev->msi_info.msi_data); -} - -/** - * xge_msi_info_restore - * Restore saved MSI info - * - * @dev Device Handle - */ -void -xge_msi_info_restore(xge_lldev_t *lldev) -{ - /* - * If interface is made down and up, traffic fails. It was observed that - * MSI information were getting reset on down. Restoring them. - */ - xge_os_pci_write16(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_control), - lldev->msi_info.msi_control); - - xge_os_pci_write32(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_lower_address), - lldev->msi_info.msi_lower_address); - - xge_os_pci_write32(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_higher_address), - lldev->msi_info.msi_higher_address); - - xge_os_pci_write16(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_data), - lldev->msi_info.msi_data); -} - -/** - * xge_init_mutex - * Initializes mutexes used in driver - * - * @lldev Per-adapter Data - */ -void -xge_mutex_init(xge_lldev_t *lldev) -{ - int qindex; - - sprintf(lldev->mtx_name_drv, "%s_drv", - device_get_nameunit(lldev->device)); - mtx_init(&lldev->mtx_drv, lldev->mtx_name_drv, MTX_NETWORK_LOCK, - MTX_DEF); - - for(qindex = 0; qindex < XGE_FIFO_COUNT; qindex++) { - sprintf(lldev->mtx_name_tx[qindex], "%s_tx_%d", - device_get_nameunit(lldev->device), qindex); - mtx_init(&lldev->mtx_tx[qindex], lldev->mtx_name_tx[qindex], NULL, - MTX_DEF); - } -} - -/** - * xge_mutex_destroy - * Destroys mutexes used in driver - * - * @lldev Per-adapter Data - */ -void -xge_mutex_destroy(xge_lldev_t *lldev) -{ - int qindex; - - for(qindex = 0; qindex < XGE_FIFO_COUNT; qindex++) - mtx_destroy(&lldev->mtx_tx[qindex]); - mtx_destroy(&lldev->mtx_drv); -} - -/** - * xge_print_info - * Print device and driver information - * - * @lldev Per-adapter Data - */ -void -xge_print_info(xge_lldev_t *lldev) -{ - device_t dev = lldev->device; - xge_hal_device_t *hldev = lldev->devh; - xge_hal_status_e status = XGE_HAL_OK; - u64 val64 = 0; - const char *xge_pci_bus_speeds[17] = { - "PCI 33MHz Bus", - "PCI 66MHz Bus", - "PCIX(M1) 66MHz Bus", - "PCIX(M1) 100MHz Bus", - "PCIX(M1) 133MHz Bus", - "PCIX(M2) 133MHz Bus", - "PCIX(M2) 200MHz Bus", - "PCIX(M2) 266MHz Bus", - "PCIX(M1) Reserved", - "PCIX(M1) 66MHz Bus (Not Supported)", - "PCIX(M1) 100MHz Bus (Not Supported)", - "PCIX(M1) 133MHz Bus (Not Supported)", - "PCIX(M2) Reserved", - "PCIX 533 Reserved", - "PCI Basic Mode", - "PCIX Basic Mode", - "PCI Invalid Mode" - }; - - xge_os_printf("%s: Xframe%s %s Revision %d Driver v%s", - device_get_nameunit(dev), - ((hldev->device_id == XGE_PCI_DEVICE_ID_XENA_2) ? "I" : "II"), - hldev->vpd_data.product_name, hldev->revision, XGE_DRIVER_VERSION); - xge_os_printf("%s: Serial Number %s", - device_get_nameunit(dev), hldev->vpd_data.serial_num); - - if(pci_get_device(dev) == XGE_PCI_DEVICE_ID_HERC_2) { - status = xge_hal_mgmt_reg_read(hldev, 0, - xge_offsetof(xge_hal_pci_bar0_t, pci_info), &val64); - if(status != XGE_HAL_OK) - xge_trace(XGE_ERR, "Error for getting bus speed"); - - xge_os_printf("%s: Adapter is on %s bit %s", - device_get_nameunit(dev), ((val64 & BIT(8)) ? "32":"64"), - (xge_pci_bus_speeds[((val64 & XGE_HAL_PCI_INFO) >> 60)])); - } - - xge_os_printf("%s: Using %s Interrupts", - device_get_nameunit(dev), - (lldev->enabled_msi == XGE_HAL_INTR_MODE_MSI) ? "MSI":"Line"); -} - -/** - * xge_create_dma_tags - * Creates DMA tags for both Tx and Rx - * - * @dev Device Handle - * - * Returns XGE_HAL_OK or XGE_HAL_FAIL (if errors) - */ -xge_hal_status_e -xge_create_dma_tags(device_t dev) -{ - xge_lldev_t *lldev = (xge_lldev_t *)device_get_softc(dev); - xge_hal_status_e status = XGE_HAL_FAIL; - int mtu = (lldev->ifnetp)->if_mtu, maxsize; - - /* DMA tag for Tx */ - status = bus_dma_tag_create( - bus_get_dma_tag(dev), /* Parent */ - PAGE_SIZE, /* Alignment */ - 0, /* Bounds */ - BUS_SPACE_MAXADDR, /* Low Address */ - BUS_SPACE_MAXADDR, /* High Address */ - NULL, /* Filter Function */ - NULL, /* Filter Function Arguments */ - MCLBYTES * XGE_MAX_SEGS, /* Maximum Size */ - XGE_MAX_SEGS, /* Number of Segments */ - MCLBYTES, /* Maximum Segment Size */ - BUS_DMA_ALLOCNOW, /* Flags */ - NULL, /* Lock Function */ - NULL, /* Lock Function Arguments */ - (&lldev->dma_tag_tx)); /* DMA Tag */ - if(status != 0) - goto _exit; - - maxsize = mtu + XGE_HAL_MAC_HEADER_MAX_SIZE; - if(maxsize <= MCLBYTES) { - maxsize = MCLBYTES; - } - else { - if(lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) - maxsize = MJUMPAGESIZE; - else - maxsize = (maxsize <= MJUMPAGESIZE) ? MJUMPAGESIZE : MJUM9BYTES; - } - - /* DMA tag for Rx */ - status = bus_dma_tag_create( - bus_get_dma_tag(dev), /* Parent */ - PAGE_SIZE, /* Alignment */ - 0, /* Bounds */ - BUS_SPACE_MAXADDR, /* Low Address */ - BUS_SPACE_MAXADDR, /* High Address */ - NULL, /* Filter Function */ - NULL, /* Filter Function Arguments */ - maxsize, /* Maximum Size */ - 1, /* Number of Segments */ - maxsize, /* Maximum Segment Size */ - BUS_DMA_ALLOCNOW, /* Flags */ - NULL, /* Lock Function */ - NULL, /* Lock Function Arguments */ - (&lldev->dma_tag_rx)); /* DMA Tag */ - if(status != 0) - goto _exit1; - - status = bus_dmamap_create(lldev->dma_tag_rx, BUS_DMA_NOWAIT, - &lldev->extra_dma_map); - if(status != 0) - goto _exit2; - - status = XGE_HAL_OK; - goto _exit; - -_exit2: - status = bus_dma_tag_destroy(lldev->dma_tag_rx); - if(status != 0) - xge_trace(XGE_ERR, "Rx DMA tag destroy failed"); -_exit1: - status = bus_dma_tag_destroy(lldev->dma_tag_tx); - if(status != 0) - xge_trace(XGE_ERR, "Tx DMA tag destroy failed"); - status = XGE_HAL_FAIL; -_exit: - return status; -} - -/** - * xge_confirm_changes - * Disables and Enables interface to apply requested change - * - * @lldev Per-adapter Data - * @mtu_set Is it called for changing MTU? (Yes: 1, No: 0) - * - * Returns 0 or Error Number - */ -void -xge_confirm_changes(xge_lldev_t *lldev, xge_option_e option) -{ - if(lldev->initialized == 0) goto _exit1; - - mtx_lock(&lldev->mtx_drv); - if_down(lldev->ifnetp); - xge_device_stop(lldev, XGE_HAL_CHANNEL_OC_NORMAL); - - if(option == XGE_SET_MTU) - (lldev->ifnetp)->if_mtu = lldev->mtu; - else - xge_buffer_mode_init(lldev, lldev->mtu); - - xge_device_init(lldev, XGE_HAL_CHANNEL_OC_NORMAL); - if_up(lldev->ifnetp); - mtx_unlock(&lldev->mtx_drv); - goto _exit; - -_exit1: - /* Request was to change MTU and device not initialized */ - if(option == XGE_SET_MTU) { - (lldev->ifnetp)->if_mtu = lldev->mtu; - xge_buffer_mode_init(lldev, lldev->mtu); - } -_exit: - return; -} - -/** - * xge_change_lro_status - * Enable/Disable LRO feature - * - * @SYSCTL_HANDLER_ARGS sysctl_oid structure with arguments - * - * Returns 0 or error number. - */ -static int -xge_change_lro_status(SYSCTL_HANDLER_ARGS) -{ - xge_lldev_t *lldev = (xge_lldev_t *)arg1; - int request = lldev->enabled_lro, status = XGE_HAL_OK; - - status = sysctl_handle_int(oidp, &request, arg2, req); - if((status != XGE_HAL_OK) || (!req->newptr)) - goto _exit; - - if((request < 0) || (request > 1)) { - status = EINVAL; - goto _exit; - } - - /* Return if current and requested states are same */ - if(request == lldev->enabled_lro){ - xge_trace(XGE_ERR, "LRO is already %s", - ((request) ? "enabled" : "disabled")); - goto _exit; - } - - lldev->enabled_lro = request; - xge_confirm_changes(lldev, XGE_CHANGE_LRO); - arg2 = lldev->enabled_lro; - -_exit: - return status; -} - -/** - * xge_add_sysctl_handlers - * Registers sysctl parameter value update handlers - * - * @lldev Per-adapter data - */ -void -xge_add_sysctl_handlers(xge_lldev_t *lldev) -{ - struct sysctl_ctx_list *context_list = - device_get_sysctl_ctx(lldev->device); - struct sysctl_oid *oid = device_get_sysctl_tree(lldev->device); - - SYSCTL_ADD_PROC(context_list, SYSCTL_CHILDREN(oid), OID_AUTO, - "enable_lro", CTLTYPE_INT | CTLFLAG_RW, lldev, 0, - xge_change_lro_status, "I", "Enable or disable LRO feature"); -} - -/** - * xge_attach - * Connects driver to the system if probe was success - * - * @dev Device Handle - */ -int -xge_attach(device_t dev) -{ - xge_hal_device_config_t *device_config; - xge_hal_device_attr_t attr; - xge_lldev_t *lldev; - xge_hal_device_t *hldev; - xge_pci_info_t *pci_info; - struct ifnet *ifnetp; - int rid, rid0, rid1, error; - int msi_count = 0, status = XGE_HAL_OK; - int enable_msi = XGE_HAL_INTR_MODE_IRQLINE; - - device_config = xge_os_malloc(NULL, sizeof(xge_hal_device_config_t)); - if(!device_config) { - XGE_EXIT_ON_ERR("Memory allocation for device configuration failed", - attach_out_config, ENOMEM); - } - - lldev = (xge_lldev_t *) device_get_softc(dev); - if(!lldev) { - XGE_EXIT_ON_ERR("Adapter softc is NULL", attach_out, ENOMEM); - } - lldev->device = dev; - - xge_mutex_init(lldev); - - error = xge_driver_initialize(); - if(error != XGE_HAL_OK) { - xge_resources_free(dev, xge_free_mutex); - XGE_EXIT_ON_ERR("Initializing driver failed", attach_out, ENXIO); - } - - /* HAL device */ - hldev = - (xge_hal_device_t *)xge_os_malloc(NULL, sizeof(xge_hal_device_t)); - if(!hldev) { - xge_resources_free(dev, xge_free_terminate_hal_driver); - XGE_EXIT_ON_ERR("Memory allocation for HAL device failed", - attach_out, ENOMEM); - } - lldev->devh = hldev; - - /* Our private structure */ - pci_info = - (xge_pci_info_t*) xge_os_malloc(NULL, sizeof(xge_pci_info_t)); - if(!pci_info) { - xge_resources_free(dev, xge_free_hal_device); - XGE_EXIT_ON_ERR("Memory allocation for PCI info. failed", - attach_out, ENOMEM); - } - lldev->pdev = pci_info; - pci_info->device = dev; - - /* Set bus master */ - pci_enable_busmaster(dev); - - /* Get virtual address for BAR0 */ - rid0 = PCIR_BAR(0); - pci_info->regmap0 = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid0, - RF_ACTIVE); - if(pci_info->regmap0 == NULL) { - xge_resources_free(dev, xge_free_pci_info); - XGE_EXIT_ON_ERR("Bus resource allocation for BAR0 failed", - attach_out, ENOMEM); - } - attr.bar0 = (char *)pci_info->regmap0; - - pci_info->bar0resource = (xge_bus_resource_t*) - xge_os_malloc(NULL, sizeof(xge_bus_resource_t)); - if(pci_info->bar0resource == NULL) { - xge_resources_free(dev, xge_free_bar0); - XGE_EXIT_ON_ERR("Memory allocation for BAR0 Resources failed", - attach_out, ENOMEM); - } - ((xge_bus_resource_t *)(pci_info->bar0resource))->bus_tag = - rman_get_bustag(pci_info->regmap0); - ((xge_bus_resource_t *)(pci_info->bar0resource))->bus_handle = - rman_get_bushandle(pci_info->regmap0); - ((xge_bus_resource_t *)(pci_info->bar0resource))->bar_start_addr = - pci_info->regmap0; - - /* Get virtual address for BAR1 */ - rid1 = PCIR_BAR(2); - pci_info->regmap1 = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid1, - RF_ACTIVE); - if(pci_info->regmap1 == NULL) { - xge_resources_free(dev, xge_free_bar0_resource); - XGE_EXIT_ON_ERR("Bus resource allocation for BAR1 failed", - attach_out, ENOMEM); - } - attr.bar1 = (char *)pci_info->regmap1; - - pci_info->bar1resource = (xge_bus_resource_t*) - xge_os_malloc(NULL, sizeof(xge_bus_resource_t)); - if(pci_info->bar1resource == NULL) { - xge_resources_free(dev, xge_free_bar1); - XGE_EXIT_ON_ERR("Memory allocation for BAR1 Resources failed", - attach_out, ENOMEM); - } - ((xge_bus_resource_t *)(pci_info->bar1resource))->bus_tag = - rman_get_bustag(pci_info->regmap1); - ((xge_bus_resource_t *)(pci_info->bar1resource))->bus_handle = - rman_get_bushandle(pci_info->regmap1); - ((xge_bus_resource_t *)(pci_info->bar1resource))->bar_start_addr = - pci_info->regmap1; - - /* Save PCI config space */ - xge_pci_space_save(dev); - - attr.regh0 = (xge_bus_resource_t *) pci_info->bar0resource; - attr.regh1 = (xge_bus_resource_t *) pci_info->bar1resource; - attr.irqh = lldev->irqhandle; - attr.cfgh = pci_info; - attr.pdev = pci_info; - - /* Initialize device configuration parameters */ - xge_init_params(device_config, dev); - - rid = 0; - if(lldev->enabled_msi) { - /* Number of MSI messages supported by device */ - msi_count = pci_msi_count(dev); - if(msi_count > 1) { - /* Device supports MSI */ - if(bootverbose) { - xge_trace(XGE_ERR, "MSI count: %d", msi_count); - xge_trace(XGE_ERR, "Now, driver supporting 1 message"); - } - msi_count = 1; - error = pci_alloc_msi(dev, &msi_count); - if(error == 0) { - if(bootverbose) - xge_trace(XGE_ERR, "Allocated messages: %d", msi_count); - enable_msi = XGE_HAL_INTR_MODE_MSI; - rid = 1; - } - else { - if(bootverbose) - xge_trace(XGE_ERR, "pci_alloc_msi failed, %d", error); - } - } - } - lldev->enabled_msi = enable_msi; - - /* Allocate resource for irq */ - lldev->irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, - (RF_SHAREABLE | RF_ACTIVE)); - if(lldev->irq == NULL) { - xge_trace(XGE_ERR, "Allocating irq resource for %s failed", - ((rid == 0) ? "line interrupt" : "MSI")); - if(rid == 1) { - error = pci_release_msi(dev); - if(error != 0) { - xge_trace(XGE_ERR, "Releasing MSI resources failed %d", - error); - xge_trace(XGE_ERR, "Requires reboot to use MSI again"); - } - xge_trace(XGE_ERR, "Trying line interrupts"); - rid = 0; - lldev->enabled_msi = XGE_HAL_INTR_MODE_IRQLINE; - lldev->irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, - (RF_SHAREABLE | RF_ACTIVE)); - } - if(lldev->irq == NULL) { - xge_trace(XGE_ERR, "Allocating irq resource failed"); - xge_resources_free(dev, xge_free_bar1_resource); - status = ENOMEM; - goto attach_out; - } - } - - device_config->intr_mode = lldev->enabled_msi; - if(bootverbose) { - xge_trace(XGE_TRACE, "rid: %d, Mode: %d, MSI count: %d", rid, - lldev->enabled_msi, msi_count); - } - - /* Initialize HAL device */ - error = xge_hal_device_initialize(hldev, &attr, device_config); - if(error != XGE_HAL_OK) { - xge_resources_free(dev, xge_free_irq_resource); - XGE_EXIT_ON_ERR("Initializing HAL device failed", attach_out, - ENXIO); - } - - xge_hal_device_private_set(hldev, lldev); - - error = xge_interface_setup(dev); - if(error != 0) { - status = error; - goto attach_out; - } - - ifnetp = lldev->ifnetp; - ifnetp->if_mtu = device_config->mtu; - - xge_media_init(dev); - - /* Associate interrupt handler with the device */ - if(lldev->enabled_msi == XGE_HAL_INTR_MODE_MSI) { - error = bus_setup_intr(dev, lldev->irq, - (INTR_TYPE_NET | INTR_MPSAFE), -#if __FreeBSD_version > 700030 - NULL, -#endif - xge_isr_msi, lldev, &lldev->irqhandle); - xge_msi_info_save(lldev); - } - else { - error = bus_setup_intr(dev, lldev->irq, - (INTR_TYPE_NET | INTR_MPSAFE), -#if __FreeBSD_version > 700030 - xge_isr_filter, -#endif - xge_isr_line, lldev, &lldev->irqhandle); - } - if(error != 0) { - xge_resources_free(dev, xge_free_media_interface); - XGE_EXIT_ON_ERR("Associating interrupt handler with device failed", - attach_out, ENXIO); - } - - xge_print_info(lldev); - - xge_add_sysctl_handlers(lldev); - - xge_buffer_mode_init(lldev, device_config->mtu); - -attach_out: - xge_os_free(NULL, device_config, sizeof(xge_hal_device_config_t)); -attach_out_config: - gone_in_dev(dev, 12, "nxge(4) driver"); - return status; -} - -/** - * xge_resources_free - * Undo what-all we did during load/attach - * - * @dev Device Handle - * @error Identifies what-all to undo - */ -void -xge_resources_free(device_t dev, xge_lables_e error) -{ - xge_lldev_t *lldev; - xge_pci_info_t *pci_info; - xge_hal_device_t *hldev; - int rid, status; - - /* LL Device */ - lldev = (xge_lldev_t *) device_get_softc(dev); - pci_info = lldev->pdev; - - /* HAL Device */ - hldev = lldev->devh; - - switch(error) { - case xge_free_all: - /* Teardown interrupt handler - device association */ - bus_teardown_intr(dev, lldev->irq, lldev->irqhandle); - - case xge_free_media_interface: - /* Media */ - ifmedia_removeall(&lldev->media); - - /* Detach Ether */ - ether_ifdetach(lldev->ifnetp); - if_free(lldev->ifnetp); - - xge_hal_device_private_set(hldev, NULL); - xge_hal_device_disable(hldev); - - case xge_free_terminate_hal_device: - /* HAL Device */ - xge_hal_device_terminate(hldev); - - case xge_free_irq_resource: - /* Release IRQ resource */ - bus_release_resource(dev, SYS_RES_IRQ, - ((lldev->enabled_msi == XGE_HAL_INTR_MODE_IRQLINE) ? 0:1), - lldev->irq); - - if(lldev->enabled_msi == XGE_HAL_INTR_MODE_MSI) { - status = pci_release_msi(dev); - if(status != 0) { - if(bootverbose) { - xge_trace(XGE_ERR, - "pci_release_msi returned %d", status); - } - } - } - - case xge_free_bar1_resource: - /* Restore PCI configuration space */ - xge_pci_space_restore(dev); - - /* Free bar1resource */ - xge_os_free(NULL, pci_info->bar1resource, - sizeof(xge_bus_resource_t)); - - case xge_free_bar1: - /* Release BAR1 */ - rid = PCIR_BAR(2); - bus_release_resource(dev, SYS_RES_MEMORY, rid, - pci_info->regmap1); - - case xge_free_bar0_resource: - /* Free bar0resource */ - xge_os_free(NULL, pci_info->bar0resource, - sizeof(xge_bus_resource_t)); - - case xge_free_bar0: - /* Release BAR0 */ - rid = PCIR_BAR(0); - bus_release_resource(dev, SYS_RES_MEMORY, rid, - pci_info->regmap0); - - case xge_free_pci_info: - /* Disable Bus Master */ - pci_disable_busmaster(dev); - - /* Free pci_info_t */ - lldev->pdev = NULL; - xge_os_free(NULL, pci_info, sizeof(xge_pci_info_t)); - - case xge_free_hal_device: - /* Free device configuration struct and HAL device */ - xge_os_free(NULL, hldev, sizeof(xge_hal_device_t)); - - case xge_free_terminate_hal_driver: - /* Terminate HAL driver */ - hal_driver_init_count = hal_driver_init_count - 1; - if(!hal_driver_init_count) { - xge_hal_driver_terminate(); - } - - case xge_free_mutex: - xge_mutex_destroy(lldev); - } -} - -/** - * xge_detach - * Detaches driver from the Kernel subsystem - * - * @dev Device Handle - */ -int -xge_detach(device_t dev) -{ - xge_lldev_t *lldev = (xge_lldev_t *)device_get_softc(dev); - - if(lldev->in_detach == 0) { - lldev->in_detach = 1; - xge_stop(lldev); - xge_resources_free(dev, xge_free_all); - } - - return 0; -} - -/** - * xge_shutdown - * To shutdown device before system shutdown - * - * @dev Device Handle - */ -int -xge_shutdown(device_t dev) -{ - xge_lldev_t *lldev = (xge_lldev_t *) device_get_softc(dev); - xge_stop(lldev); - - return 0; -} - -/** - * xge_interface_setup - * Setup interface - * - * @dev Device Handle - * - * Returns 0 on success, ENXIO/ENOMEM on failure - */ -int -xge_interface_setup(device_t dev) -{ - u8 mcaddr[ETHER_ADDR_LEN]; - xge_hal_status_e status; - xge_lldev_t *lldev = (xge_lldev_t *)device_get_softc(dev); - struct ifnet *ifnetp; - xge_hal_device_t *hldev = lldev->devh; - - /* Get the MAC address of the device */ - status = xge_hal_device_macaddr_get(hldev, 0, &mcaddr); - if(status != XGE_HAL_OK) { - xge_resources_free(dev, xge_free_terminate_hal_device); - XGE_EXIT_ON_ERR("Getting MAC address failed", ifsetup_out, ENXIO); - } - - /* Get interface ifnet structure for this Ether device */ - ifnetp = lldev->ifnetp = if_alloc(IFT_ETHER); - if(ifnetp == NULL) { - xge_resources_free(dev, xge_free_terminate_hal_device); - XGE_EXIT_ON_ERR("Allocation ifnet failed", ifsetup_out, ENOMEM); - } - - /* Initialize interface ifnet structure */ - if_initname(ifnetp, device_get_name(dev), device_get_unit(dev)); - ifnetp->if_mtu = XGE_HAL_DEFAULT_MTU; - ifnetp->if_baudrate = XGE_BAUDRATE; - ifnetp->if_init = xge_init; - ifnetp->if_softc = lldev; - ifnetp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; - ifnetp->if_ioctl = xge_ioctl; - ifnetp->if_start = xge_send; - - /* TODO: Check and assign optimal value */ - ifnetp->if_snd.ifq_maxlen = ifqmaxlen; - - ifnetp->if_capabilities = IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_MTU | - IFCAP_HWCSUM; - if(lldev->enabled_tso) - ifnetp->if_capabilities |= IFCAP_TSO4; - if(lldev->enabled_lro) - ifnetp->if_capabilities |= IFCAP_LRO; - - ifnetp->if_capenable = ifnetp->if_capabilities; - - /* Attach the interface */ - ether_ifattach(ifnetp, mcaddr); - -ifsetup_out: - return status; -} - -/** - * xge_callback_link_up - * Callback for Link-up indication from HAL - * - * @userdata Per-adapter data - */ -void -xge_callback_link_up(void *userdata) -{ - xge_lldev_t *lldev = (xge_lldev_t *)userdata; - struct ifnet *ifnetp = lldev->ifnetp; - - ifnetp->if_flags &= ~IFF_DRV_OACTIVE; - if_link_state_change(ifnetp, LINK_STATE_UP); -} - -/** - * xge_callback_link_down - * Callback for Link-down indication from HAL - * - * @userdata Per-adapter data - */ -void -xge_callback_link_down(void *userdata) -{ - xge_lldev_t *lldev = (xge_lldev_t *)userdata; - struct ifnet *ifnetp = lldev->ifnetp; - - ifnetp->if_flags |= IFF_DRV_OACTIVE; - if_link_state_change(ifnetp, LINK_STATE_DOWN); -} - -/** - * xge_callback_crit_err - * Callback for Critical error indication from HAL - * - * @userdata Per-adapter data - * @type Event type (Enumerated hardware error) - * @serr_data Hardware status - */ -void -xge_callback_crit_err(void *userdata, xge_hal_event_e type, u64 serr_data) -{ - xge_trace(XGE_ERR, "Critical Error"); - xge_reset(userdata); -} - -/** - * xge_callback_event - * Callback from HAL indicating that some event has been queued - * - * @item Queued event item - */ -void -xge_callback_event(xge_queue_item_t *item) -{ - xge_lldev_t *lldev = NULL; - xge_hal_device_t *hldev = NULL; - struct ifnet *ifnetp = NULL; - - hldev = item->context; - lldev = xge_hal_device_private(hldev); - ifnetp = lldev->ifnetp; - - switch((int)item->event_type) { - case XGE_LL_EVENT_TRY_XMIT_AGAIN: - if(lldev->initialized) { - if(xge_hal_channel_dtr_count(lldev->fifo_channel[0]) > 0) { - ifnetp->if_flags &= ~IFF_DRV_OACTIVE; - } - else { - xge_queue_produce_context( - xge_hal_device_queue(lldev->devh), - XGE_LL_EVENT_TRY_XMIT_AGAIN, lldev->devh); - } - } - break; - - case XGE_LL_EVENT_DEVICE_RESETTING: - xge_reset(item->context); - break; - - default: - break; - } -} - -/** - * xge_ifmedia_change - * Media change driver callback - * - * @ifnetp Interface Handle - * - * Returns 0 if media is Ether else EINVAL - */ -int -xge_ifmedia_change(struct ifnet *ifnetp) -{ - xge_lldev_t *lldev = ifnetp->if_softc; - struct ifmedia *ifmediap = &lldev->media; - - return (IFM_TYPE(ifmediap->ifm_media) != IFM_ETHER) ? EINVAL:0; -} - -/** - * xge_ifmedia_status - * Media status driver callback - * - * @ifnetp Interface Handle - * @ifmr Interface Media Settings - */ -void -xge_ifmedia_status(struct ifnet *ifnetp, struct ifmediareq *ifmr) -{ - xge_hal_status_e status; - u64 regvalue; - xge_lldev_t *lldev = ifnetp->if_softc; - xge_hal_device_t *hldev = lldev->devh; - - ifmr->ifm_status = IFM_AVALID; - ifmr->ifm_active = IFM_ETHER; - - status = xge_hal_mgmt_reg_read(hldev, 0, - xge_offsetof(xge_hal_pci_bar0_t, adapter_status), ®value); - if(status != XGE_HAL_OK) { - xge_trace(XGE_TRACE, "Getting adapter status failed"); - goto _exit; - } - - if((regvalue & (XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT | - XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT)) == 0) { - ifmr->ifm_status |= IFM_ACTIVE; - ifmr->ifm_active |= IFM_10G_SR | IFM_FDX; - if_link_state_change(ifnetp, LINK_STATE_UP); - } - else { - if_link_state_change(ifnetp, LINK_STATE_DOWN); - } -_exit: - return; -} - -/** - * xge_ioctl_stats - * IOCTL to get statistics - * - * @lldev Per-adapter data - * @ifreqp Interface request - */ -int -xge_ioctl_stats(xge_lldev_t *lldev, struct ifreq *ifreqp) -{ - xge_hal_status_e status = XGE_HAL_OK; - char cmd, mode; - void *info = NULL; - int retValue; - - cmd = retValue = fubyte(ifr_data_get_ptr(ifreqp)); - if (retValue == -1) - return (EFAULT); - - retValue = EINVAL; - switch(cmd) { - case XGE_QUERY_STATS: - mtx_lock(&lldev->mtx_drv); - status = xge_hal_stats_hw(lldev->devh, - (xge_hal_stats_hw_info_t **)&info); - mtx_unlock(&lldev->mtx_drv); - if(status == XGE_HAL_OK) { - if(copyout(info, ifr_data_get_ptr(ifreqp), - sizeof(xge_hal_stats_hw_info_t)) == 0) - retValue = 0; - } - else { - xge_trace(XGE_ERR, "Getting statistics failed (Status: %d)", - status); - } - break; - - case XGE_QUERY_PCICONF: - info = xge_os_malloc(NULL, sizeof(xge_hal_pci_config_t)); - if(info != NULL) { - mtx_lock(&lldev->mtx_drv); - status = xge_hal_mgmt_pci_config(lldev->devh, info, - sizeof(xge_hal_pci_config_t)); - mtx_unlock(&lldev->mtx_drv); - if(status == XGE_HAL_OK) { - if(copyout(info, ifr_data_get_ptr(ifreqp), - sizeof(xge_hal_pci_config_t)) == 0) - retValue = 0; - } - else { - xge_trace(XGE_ERR, - "Getting PCI configuration failed (%d)", status); - } - xge_os_free(NULL, info, sizeof(xge_hal_pci_config_t)); - } - break; - - case XGE_QUERY_DEVSTATS: - info = xge_os_malloc(NULL, sizeof(xge_hal_stats_device_info_t)); - if(info != NULL) { - mtx_lock(&lldev->mtx_drv); - status =xge_hal_mgmt_device_stats(lldev->devh, info, - sizeof(xge_hal_stats_device_info_t)); - mtx_unlock(&lldev->mtx_drv); - if(status == XGE_HAL_OK) { - if(copyout(info, ifr_data_get_ptr(ifreqp), - sizeof(xge_hal_stats_device_info_t)) == 0) - retValue = 0; - } - else { - xge_trace(XGE_ERR, "Getting device info failed (%d)", - status); - } - xge_os_free(NULL, info, - sizeof(xge_hal_stats_device_info_t)); - } - break; - - case XGE_QUERY_SWSTATS: - info = xge_os_malloc(NULL, sizeof(xge_hal_stats_sw_err_t)); - if(info != NULL) { - mtx_lock(&lldev->mtx_drv); - status =xge_hal_mgmt_sw_stats(lldev->devh, info, - sizeof(xge_hal_stats_sw_err_t)); - mtx_unlock(&lldev->mtx_drv); - if(status == XGE_HAL_OK) { - if(copyout(info, ifr_data_get_ptr(ifreqp), - sizeof(xge_hal_stats_sw_err_t)) == 0) - retValue = 0; - } - else { - xge_trace(XGE_ERR, - "Getting tcode statistics failed (%d)", status); - } - xge_os_free(NULL, info, sizeof(xge_hal_stats_sw_err_t)); - } - break; - - case XGE_QUERY_DRIVERSTATS: - if(copyout(&lldev->driver_stats, ifr_data_get_ptr(ifreqp), - sizeof(xge_driver_stats_t)) == 0) { - retValue = 0; - } - else { - xge_trace(XGE_ERR, - "Copyout of driver statistics failed (%d)", status); - } - break; - - case XGE_READ_VERSION: - info = xge_os_malloc(NULL, XGE_BUFFER_SIZE); - if(info != NULL) { - strcpy(info, XGE_DRIVER_VERSION); - if(copyout(info, ifr_data_get_ptr(ifreqp), - XGE_BUFFER_SIZE) == 0) - retValue = 0; - xge_os_free(NULL, info, XGE_BUFFER_SIZE); - } - break; - - case XGE_QUERY_DEVCONF: - info = xge_os_malloc(NULL, sizeof(xge_hal_device_config_t)); - if(info != NULL) { - mtx_lock(&lldev->mtx_drv); - status = xge_hal_mgmt_device_config(lldev->devh, info, - sizeof(xge_hal_device_config_t)); - mtx_unlock(&lldev->mtx_drv); - if(status == XGE_HAL_OK) { - if(copyout(info, ifr_data_get_ptr(ifreqp), - sizeof(xge_hal_device_config_t)) == 0) - retValue = 0; - } - else { - xge_trace(XGE_ERR, "Getting devconfig failed (%d)", - status); - } - xge_os_free(NULL, info, sizeof(xge_hal_device_config_t)); - } - break; - - case XGE_QUERY_BUFFER_MODE: - if(copyout(&lldev->buffer_mode, ifr_data_get_ptr(ifreqp), - sizeof(int)) == 0) - retValue = 0; - break; - - case XGE_SET_BUFFER_MODE_1: - case XGE_SET_BUFFER_MODE_2: - case XGE_SET_BUFFER_MODE_5: - mode = (cmd == XGE_SET_BUFFER_MODE_1) ? 'Y':'N'; - if(copyout(&mode, ifr_data_get_ptr(ifreqp), sizeof(mode)) == 0) - retValue = 0; - break; - default: - xge_trace(XGE_TRACE, "Nothing is matching"); - retValue = ENOTTY; - break; - } - return retValue; -} - -/** - * xge_ioctl_registers - * IOCTL to get registers - * - * @lldev Per-adapter data - * @ifreqp Interface request - */ -int -xge_ioctl_registers(xge_lldev_t *lldev, struct ifreq *ifreqp) -{ - xge_register_t tmpdata; - xge_register_t *data; - xge_hal_status_e status = XGE_HAL_OK; - int retValue = EINVAL, offset = 0, index = 0; - int error; - u64 val64 = 0; - - error = copyin(ifr_data_get_ptr(ifreqp), &tmpdata, sizeof(tmpdata)); - if (error != 0) - return (error); - data = &tmpdata; - - /* Reading a register */ - if(strcmp(data->option, "-r") == 0) { - data->value = 0x0000; - mtx_lock(&lldev->mtx_drv); - status = xge_hal_mgmt_reg_read(lldev->devh, 0, data->offset, - &data->value); - mtx_unlock(&lldev->mtx_drv); - if(status == XGE_HAL_OK) { - if(copyout(data, ifr_data_get_ptr(ifreqp), - sizeof(xge_register_t)) == 0) - retValue = 0; - } - } - /* Writing to a register */ - else if(strcmp(data->option, "-w") == 0) { - mtx_lock(&lldev->mtx_drv); - status = xge_hal_mgmt_reg_write(lldev->devh, 0, data->offset, - data->value); - if(status == XGE_HAL_OK) { - val64 = 0x0000; - status = xge_hal_mgmt_reg_read(lldev->devh, 0, data->offset, - &val64); - if(status != XGE_HAL_OK) { - xge_trace(XGE_ERR, "Reading back updated register failed"); - } - else { - if(val64 != data->value) { - xge_trace(XGE_ERR, - "Read and written register values mismatched"); - } - else retValue = 0; - } - } - else { - xge_trace(XGE_ERR, "Getting register value failed"); - } - mtx_unlock(&lldev->mtx_drv); - } - else { - mtx_lock(&lldev->mtx_drv); - for(index = 0, offset = 0; offset <= XGE_OFFSET_OF_LAST_REG; - index++, offset += 0x0008) { - val64 = 0; - status = xge_hal_mgmt_reg_read(lldev->devh, 0, offset, &val64); - if(status != XGE_HAL_OK) { - xge_trace(XGE_ERR, "Getting register value failed"); - break; - } - *((u64 *)((u64 *)data + index)) = val64; - retValue = 0; - } - mtx_unlock(&lldev->mtx_drv); - - if(retValue == 0) { - if(copyout(data, ifr_data_get_ptr(ifreqp), - sizeof(xge_hal_pci_bar0_t)) != 0) { - xge_trace(XGE_ERR, "Copyout of register values failed"); - retValue = EINVAL; - } - } - else { - xge_trace(XGE_ERR, "Getting register values failed"); - } - } - return retValue; -} - -/** - * xge_ioctl - * Callback to control the device - Interface configuration - * - * @ifnetp Interface Handle - * @command Device control command - * @data Parameters associated with command (if any) - */ -int -xge_ioctl(struct ifnet *ifnetp, unsigned long command, caddr_t data) -{ - struct ifreq *ifreqp = (struct ifreq *)data; - xge_lldev_t *lldev = ifnetp->if_softc; - struct ifmedia *ifmediap = &lldev->media; - int retValue = 0, mask = 0; - - if(lldev->in_detach) { - return retValue; - } - - switch(command) { - /* Set ifnet MTU */ - case SIOCSIFMTU: - retValue = xge_change_mtu(lldev, ifreqp->ifr_mtu); - break; - - /* Set ifnet flags */ - case SIOCSIFFLAGS: - if(ifnetp->if_flags & IFF_UP) { - /* Link status is UP */ - if(!(ifnetp->if_drv_flags & IFF_DRV_RUNNING)) { - xge_init(lldev); - } - xge_disable_promisc(lldev); - xge_enable_promisc(lldev); - } - else { - /* Link status is DOWN */ - /* If device is in running, make it down */ - if(ifnetp->if_drv_flags & IFF_DRV_RUNNING) { - xge_stop(lldev); - } - } - break; - - /* Add/delete multicast address */ - case SIOCADDMULTI: - case SIOCDELMULTI: - if(ifnetp->if_drv_flags & IFF_DRV_RUNNING) { - xge_setmulti(lldev); - } - break; - - /* Set/Get net media */ - case SIOCSIFMEDIA: - case SIOCGIFMEDIA: - retValue = ifmedia_ioctl(ifnetp, ifreqp, ifmediap, command); - break; - - /* Set capabilities */ - case SIOCSIFCAP: - mtx_lock(&lldev->mtx_drv); - mask = ifreqp->ifr_reqcap ^ ifnetp->if_capenable; - if(mask & IFCAP_TXCSUM) { - if(ifnetp->if_capenable & IFCAP_TXCSUM) { - ifnetp->if_capenable &= ~(IFCAP_TSO4 | IFCAP_TXCSUM); - ifnetp->if_hwassist &= - ~(CSUM_TCP | CSUM_UDP | CSUM_TSO); - } - else { - ifnetp->if_capenable |= IFCAP_TXCSUM; - ifnetp->if_hwassist |= (CSUM_TCP | CSUM_UDP); - } - } - if(mask & IFCAP_TSO4) { - if(ifnetp->if_capenable & IFCAP_TSO4) { - ifnetp->if_capenable &= ~IFCAP_TSO4; - ifnetp->if_hwassist &= ~CSUM_TSO; - - xge_os_printf("%s: TSO Disabled", - device_get_nameunit(lldev->device)); - } - else if(ifnetp->if_capenable & IFCAP_TXCSUM) { - ifnetp->if_capenable |= IFCAP_TSO4; - ifnetp->if_hwassist |= CSUM_TSO; - - xge_os_printf("%s: TSO Enabled", - device_get_nameunit(lldev->device)); - } - } - - mtx_unlock(&lldev->mtx_drv); - break; - - /* Custom IOCTL 0 */ - case SIOCGPRIVATE_0: - retValue = xge_ioctl_stats(lldev, ifreqp); - break; - - /* Custom IOCTL 1 */ - case SIOCGPRIVATE_1: - retValue = xge_ioctl_registers(lldev, ifreqp); - break; - - default: - retValue = ether_ioctl(ifnetp, command, data); - break; - } - return retValue; -} - -/** - * xge_init - * Initialize the interface - * - * @plldev Per-adapter Data - */ -void -xge_init(void *plldev) -{ - xge_lldev_t *lldev = (xge_lldev_t *)plldev; - - mtx_lock(&lldev->mtx_drv); - xge_os_memzero(&lldev->driver_stats, sizeof(xge_driver_stats_t)); - xge_device_init(lldev, XGE_HAL_CHANNEL_OC_NORMAL); - mtx_unlock(&lldev->mtx_drv); -} - -/** - * xge_device_init - * Initialize the interface (called by holding lock) - * - * @pdevin Per-adapter Data - */ -void -xge_device_init(xge_lldev_t *lldev, xge_hal_channel_reopen_e option) -{ - struct ifnet *ifnetp = lldev->ifnetp; - xge_hal_device_t *hldev = lldev->devh; - struct ifaddr *ifaddrp; - unsigned char *macaddr; - struct sockaddr_dl *sockaddrp; - int status = XGE_HAL_OK; - - mtx_assert((&lldev->mtx_drv), MA_OWNED); - - /* If device is in running state, initializing is not required */ - if(ifnetp->if_drv_flags & IFF_DRV_RUNNING) - return; - - /* Initializing timer */ - callout_init(&lldev->timer, 1); - - xge_trace(XGE_TRACE, "Set MTU size"); - status = xge_hal_device_mtu_set(hldev, ifnetp->if_mtu); - if(status != XGE_HAL_OK) { - xge_trace(XGE_ERR, "Setting MTU in HAL device failed"); - goto _exit; - } - - /* Enable HAL device */ - xge_hal_device_enable(hldev); - - /* Get MAC address and update in HAL */ - ifaddrp = ifnetp->if_addr; - sockaddrp = (struct sockaddr_dl *)ifaddrp->ifa_addr; - sockaddrp->sdl_type = IFT_ETHER; - sockaddrp->sdl_alen = ifnetp->if_addrlen; - macaddr = LLADDR(sockaddrp); - xge_trace(XGE_TRACE, - "Setting MAC address: %02x:%02x:%02x:%02x:%02x:%02x\n", - *macaddr, *(macaddr + 1), *(macaddr + 2), *(macaddr + 3), - *(macaddr + 4), *(macaddr + 5)); - status = xge_hal_device_macaddr_set(hldev, 0, macaddr); - if(status != XGE_HAL_OK) - xge_trace(XGE_ERR, "Setting MAC address failed (%d)", status); - - /* Opening channels */ - mtx_unlock(&lldev->mtx_drv); - status = xge_channel_open(lldev, option); - mtx_lock(&lldev->mtx_drv); - if(status != XGE_HAL_OK) - goto _exit; - - /* Set appropriate flags */ - ifnetp->if_drv_flags |= IFF_DRV_RUNNING; - ifnetp->if_flags &= ~IFF_DRV_OACTIVE; - - /* Checksum capability */ - ifnetp->if_hwassist = (ifnetp->if_capenable & IFCAP_TXCSUM) ? - (CSUM_TCP | CSUM_UDP) : 0; - - if((lldev->enabled_tso) && (ifnetp->if_capenable & IFCAP_TSO4)) - ifnetp->if_hwassist |= CSUM_TSO; - - /* Enable interrupts */ - xge_hal_device_intr_enable(hldev); - - callout_reset(&lldev->timer, 10*hz, xge_timer, lldev); - - /* Disable promiscuous mode */ - xge_trace(XGE_TRACE, "If opted, enable promiscuous mode"); - xge_enable_promisc(lldev); - - /* Device is initialized */ - lldev->initialized = 1; - xge_os_mdelay(1000); - -_exit: - return; -} - -/** - * xge_timer - * Timer timeout function to handle link status - * - * @devp Per-adapter Data - */ -void -xge_timer(void *devp) -{ - xge_lldev_t *lldev = (xge_lldev_t *)devp; - xge_hal_device_t *hldev = lldev->devh; - - /* Poll for changes */ - xge_hal_device_poll(hldev); - - /* Reset timer */ - callout_reset(&lldev->timer, hz, xge_timer, lldev); - - return; -} - -/** - * xge_stop - * De-activate the interface - * - * @lldev Per-adater Data - */ -void -xge_stop(xge_lldev_t *lldev) -{ - mtx_lock(&lldev->mtx_drv); - xge_device_stop(lldev, XGE_HAL_CHANNEL_OC_NORMAL); - mtx_unlock(&lldev->mtx_drv); -} - -/** - * xge_isr_filter - * ISR filter function - to filter interrupts from other devices (shared) - * - * @handle Per-adapter Data - * - * Returns - * FILTER_STRAY if interrupt is from other device - * FILTER_SCHEDULE_THREAD if interrupt is from Xframe device - */ -int -xge_isr_filter(void *handle) -{ - xge_lldev_t *lldev = (xge_lldev_t *)handle; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)((lldev->devh)->bar0); - u16 retValue = FILTER_STRAY; - u64 val64 = 0; - - XGE_DRV_STATS(isr_filter); - - val64 = xge_os_pio_mem_read64(lldev->pdev, (lldev->devh)->regh0, - &bar0->general_int_status); - retValue = (!val64) ? FILTER_STRAY : FILTER_SCHEDULE_THREAD; - - return retValue; -} - -/** - * xge_isr_line - * Interrupt service routine for Line interrupts - * - * @plldev Per-adapter Data - */ -void -xge_isr_line(void *plldev) -{ - xge_hal_status_e status; - xge_lldev_t *lldev = (xge_lldev_t *)plldev; - xge_hal_device_t *hldev = (xge_hal_device_t *)lldev->devh; - struct ifnet *ifnetp = lldev->ifnetp; - - XGE_DRV_STATS(isr_line); - - if(ifnetp->if_drv_flags & IFF_DRV_RUNNING) { - status = xge_hal_device_handle_irq(hldev); - if(!(IFQ_DRV_IS_EMPTY(&ifnetp->if_snd))) - xge_send(ifnetp); - } -} - -/* - * xge_isr_msi - * ISR for Message signaled interrupts - */ -void -xge_isr_msi(void *plldev) -{ - xge_lldev_t *lldev = (xge_lldev_t *)plldev; - XGE_DRV_STATS(isr_msi); - xge_hal_device_continue_irq(lldev->devh); -} - -/** - * xge_rx_open - * Initiate and open all Rx channels - * - * @qid Ring Index - * @lldev Per-adapter Data - * @rflag Channel open/close/reopen flag - * - * Returns 0 or Error Number - */ -int -xge_rx_open(int qid, xge_lldev_t *lldev, xge_hal_channel_reopen_e rflag) -{ - u64 adapter_status = 0x0; - xge_hal_status_e status = XGE_HAL_FAIL; - - xge_hal_channel_attr_t attr = { - .post_qid = qid, - .compl_qid = 0, - .callback = xge_rx_compl, - .per_dtr_space = sizeof(xge_rx_priv_t), - .flags = 0, - .type = XGE_HAL_CHANNEL_TYPE_RING, - .userdata = lldev, - .dtr_init = xge_rx_initial_replenish, - .dtr_term = xge_rx_term - }; - - /* If device is not ready, return */ - status = xge_hal_device_status(lldev->devh, &adapter_status); - if(status != XGE_HAL_OK) { - xge_os_printf("Adapter Status: 0x%llx", (long long) adapter_status); - XGE_EXIT_ON_ERR("Device is not ready", _exit, XGE_HAL_FAIL); - } - else { - status = xge_hal_channel_open(lldev->devh, &attr, - &lldev->ring_channel[qid], rflag); - } - -_exit: - return status; -} - -/** - * xge_tx_open - * Initialize and open all Tx channels - * - * @lldev Per-adapter Data - * @tflag Channel open/close/reopen flag - * - * Returns 0 or Error Number - */ -int -xge_tx_open(xge_lldev_t *lldev, xge_hal_channel_reopen_e tflag) -{ - xge_hal_status_e status = XGE_HAL_FAIL; - u64 adapter_status = 0x0; - int qindex, index; - - xge_hal_channel_attr_t attr = { - .compl_qid = 0, - .callback = xge_tx_compl, - .per_dtr_space = sizeof(xge_tx_priv_t), - .flags = 0, - .type = XGE_HAL_CHANNEL_TYPE_FIFO, - .userdata = lldev, - .dtr_init = xge_tx_initial_replenish, - .dtr_term = xge_tx_term - }; - - /* If device is not ready, return */ - status = xge_hal_device_status(lldev->devh, &adapter_status); - if(status != XGE_HAL_OK) { - xge_os_printf("Adapter Status: 0x%llx", (long long) adapter_status); - XGE_EXIT_ON_ERR("Device is not ready", _exit, XGE_HAL_FAIL); - } - - for(qindex = 0; qindex < XGE_FIFO_COUNT; qindex++) { - attr.post_qid = qindex, - status = xge_hal_channel_open(lldev->devh, &attr, - &lldev->fifo_channel[qindex], tflag); - if(status != XGE_HAL_OK) { - for(index = 0; index < qindex; index++) - xge_hal_channel_close(lldev->fifo_channel[index], tflag); - } - } - -_exit: - return status; -} - -/** - * xge_enable_msi - * Enables MSI - * - * @lldev Per-adapter Data - */ -void -xge_enable_msi(xge_lldev_t *lldev) -{ - xge_list_t *item = NULL; - xge_hal_device_t *hldev = lldev->devh; - xge_hal_channel_t *channel = NULL; - u16 offset = 0, val16 = 0; - - xge_os_pci_read16(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_control), &val16); - - /* Update msi_data */ - offset = (val16 & 0x80) ? 0x4c : 0x48; - xge_os_pci_read16(lldev->pdev, NULL, offset, &val16); - if(val16 & 0x1) - val16 &= 0xfffe; - else - val16 |= 0x1; - xge_os_pci_write16(lldev->pdev, NULL, offset, val16); - - /* Update msi_control */ - xge_os_pci_read16(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_control), &val16); - val16 |= 0x10; - xge_os_pci_write16(lldev->pdev, NULL, - xge_offsetof(xge_hal_pci_config_le_t, msi_control), val16); - - /* Set TxMAT and RxMAT registers with MSI */ - xge_list_for_each(item, &hldev->free_channels) { - channel = xge_container_of(item, xge_hal_channel_t, item); - xge_hal_channel_msi_set(channel, 1, (u32)val16); - } -} - -/** - * xge_channel_open - * Open both Tx and Rx channels - * - * @lldev Per-adapter Data - * @option Channel reopen option - */ -int -xge_channel_open(xge_lldev_t *lldev, xge_hal_channel_reopen_e option) -{ - xge_lro_entry_t *lro_session = NULL; - xge_hal_status_e status = XGE_HAL_OK; - int index = 0, index2 = 0; - - if(lldev->enabled_msi == XGE_HAL_INTR_MODE_MSI) { - xge_msi_info_restore(lldev); - xge_enable_msi(lldev); - } - -_exit2: - status = xge_create_dma_tags(lldev->device); - if(status != XGE_HAL_OK) - XGE_EXIT_ON_ERR("DMA tag creation failed", _exit, status); - - /* Open ring (Rx) channel */ - for(index = 0; index < XGE_RING_COUNT; index++) { - status = xge_rx_open(index, lldev, option); - if(status != XGE_HAL_OK) { - /* - * DMA mapping fails in the unpatched Kernel which can't - * allocate contiguous memory for Jumbo frames. - * Try using 5 buffer mode. - */ - if((lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_1) && - (((lldev->ifnetp)->if_mtu + XGE_HAL_MAC_HEADER_MAX_SIZE) > - MJUMPAGESIZE)) { - /* Close so far opened channels */ - for(index2 = 0; index2 < index; index2++) { - xge_hal_channel_close(lldev->ring_channel[index2], - option); - } - - /* Destroy DMA tags intended to use for 1 buffer mode */ - if(bus_dmamap_destroy(lldev->dma_tag_rx, - lldev->extra_dma_map)) { - xge_trace(XGE_ERR, "Rx extra DMA map destroy failed"); - } - if(bus_dma_tag_destroy(lldev->dma_tag_rx)) - xge_trace(XGE_ERR, "Rx DMA tag destroy failed"); - if(bus_dma_tag_destroy(lldev->dma_tag_tx)) - xge_trace(XGE_ERR, "Tx DMA tag destroy failed"); - - /* Switch to 5 buffer mode */ - lldev->buffer_mode = XGE_HAL_RING_QUEUE_BUFFER_MODE_5; - xge_buffer_mode_init(lldev, (lldev->ifnetp)->if_mtu); - - /* Restart init */ - goto _exit2; - } - else { - XGE_EXIT_ON_ERR("Opening Rx channel failed", _exit1, - status); - } - } - } - - if(lldev->enabled_lro) { - SLIST_INIT(&lldev->lro_free); - SLIST_INIT(&lldev->lro_active); - lldev->lro_num = XGE_LRO_DEFAULT_ENTRIES; - - for(index = 0; index < lldev->lro_num; index++) { - lro_session = (xge_lro_entry_t *) - xge_os_malloc(NULL, sizeof(xge_lro_entry_t)); - if(lro_session == NULL) { - lldev->lro_num = index; - break; - } - SLIST_INSERT_HEAD(&lldev->lro_free, lro_session, next); - } - } - - /* Open FIFO (Tx) channel */ - status = xge_tx_open(lldev, option); - if(status != XGE_HAL_OK) - XGE_EXIT_ON_ERR("Opening Tx channel failed", _exit1, status); - - goto _exit; - -_exit1: - /* - * Opening Rx channel(s) failed (index is ) or - * Initialization of LRO failed (index is XGE_RING_COUNT) - * Opening Tx channel failed (index is XGE_RING_COUNT) - */ - for(index2 = 0; index2 < index; index2++) - xge_hal_channel_close(lldev->ring_channel[index2], option); - -_exit: - return status; -} - -/** - * xge_channel_close - * Close both Tx and Rx channels - * - * @lldev Per-adapter Data - * @option Channel reopen option - * - */ -void -xge_channel_close(xge_lldev_t *lldev, xge_hal_channel_reopen_e option) -{ - int qindex = 0; - - DELAY(1000 * 1000); - - /* Close FIFO (Tx) channel */ - for(qindex = 0; qindex < XGE_FIFO_COUNT; qindex++) - xge_hal_channel_close(lldev->fifo_channel[qindex], option); - - /* Close Ring (Rx) channels */ - for(qindex = 0; qindex < XGE_RING_COUNT; qindex++) - xge_hal_channel_close(lldev->ring_channel[qindex], option); - - if(bus_dmamap_destroy(lldev->dma_tag_rx, lldev->extra_dma_map)) - xge_trace(XGE_ERR, "Rx extra map destroy failed"); - if(bus_dma_tag_destroy(lldev->dma_tag_rx)) - xge_trace(XGE_ERR, "Rx DMA tag destroy failed"); - if(bus_dma_tag_destroy(lldev->dma_tag_tx)) - xge_trace(XGE_ERR, "Tx DMA tag destroy failed"); -} - -/** - * dmamap_cb - * DMA map callback - * - * @arg Parameter passed from dmamap - * @segs Segments - * @nseg Number of segments - * @error Error - */ -void -dmamap_cb(void *arg, bus_dma_segment_t *segs, int nseg, int error) -{ - if(!error) { - *(bus_addr_t *) arg = segs->ds_addr; - } -} - -/** - * xge_reset - * Device Reset - * - * @lldev Per-adapter Data - */ -void -xge_reset(xge_lldev_t *lldev) -{ - xge_trace(XGE_TRACE, "Reseting the chip"); - - /* If the device is not initialized, return */ - if(lldev->initialized) { - mtx_lock(&lldev->mtx_drv); - xge_device_stop(lldev, XGE_HAL_CHANNEL_OC_NORMAL); - xge_device_init(lldev, XGE_HAL_CHANNEL_OC_NORMAL); - mtx_unlock(&lldev->mtx_drv); - } - - return; -} - -/** - * xge_setmulti - * Set an address as a multicast address - * - * @lldev Per-adapter Data - */ -void -xge_setmulti(xge_lldev_t *lldev) -{ - struct ifmultiaddr *ifma; - u8 *lladdr; - xge_hal_device_t *hldev = (xge_hal_device_t *)lldev->devh; - struct ifnet *ifnetp = lldev->ifnetp; - int index = 0; - int offset = 1; - int table_size = 47; - xge_hal_status_e status = XGE_HAL_OK; - u8 initial_addr[]= {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; - - if((ifnetp->if_flags & IFF_MULTICAST) && (!lldev->all_multicast)) { - status = xge_hal_device_mcast_enable(hldev); - lldev->all_multicast = 1; - } - else if((ifnetp->if_flags & IFF_MULTICAST) && (lldev->all_multicast)) { - status = xge_hal_device_mcast_disable(hldev); - lldev->all_multicast = 0; - } - - if(status != XGE_HAL_OK) { - xge_trace(XGE_ERR, "Enabling/disabling multicast failed"); - goto _exit; - } - - /* Updating address list */ - if_maddr_rlock(ifnetp); - index = 0; - TAILQ_FOREACH(ifma, &ifnetp->if_multiaddrs, ifma_link) { - if(ifma->ifma_addr->sa_family != AF_LINK) { - continue; - } - lladdr = LLADDR((struct sockaddr_dl *)ifma->ifma_addr); - index += 1; - } - if_maddr_runlock(ifnetp); - - if((!lldev->all_multicast) && (index)) { - lldev->macaddr_count = (index + 1); - if(lldev->macaddr_count > table_size) { - goto _exit; - } - - /* Clear old addresses */ - for(index = 0; index < 48; index++) { - xge_hal_device_macaddr_set(hldev, (offset + index), - initial_addr); - } - } - - /* Add new addresses */ - if_maddr_rlock(ifnetp); - index = 0; - TAILQ_FOREACH(ifma, &ifnetp->if_multiaddrs, ifma_link) { - if(ifma->ifma_addr->sa_family != AF_LINK) { - continue; - } - lladdr = LLADDR((struct sockaddr_dl *)ifma->ifma_addr); - xge_hal_device_macaddr_set(hldev, (offset + index), lladdr); - index += 1; - } - if_maddr_runlock(ifnetp); - -_exit: - return; -} - -/** - * xge_enable_promisc - * Enable Promiscuous Mode - * - * @lldev Per-adapter Data - */ -void -xge_enable_promisc(xge_lldev_t *lldev) -{ - struct ifnet *ifnetp = lldev->ifnetp; - xge_hal_device_t *hldev = lldev->devh; - xge_hal_pci_bar0_t *bar0 = NULL; - u64 val64 = 0; - - bar0 = (xge_hal_pci_bar0_t *) hldev->bar0; - - if(ifnetp->if_flags & IFF_PROMISC) { - xge_hal_device_promisc_enable(lldev->devh); - - /* - * When operating in promiscuous mode, don't strip the VLAN tag - */ - val64 = xge_os_pio_mem_read64(lldev->pdev, hldev->regh0, - &bar0->rx_pa_cfg); - val64 &= ~XGE_HAL_RX_PA_CFG_STRIP_VLAN_TAG_MODE(1); - val64 |= XGE_HAL_RX_PA_CFG_STRIP_VLAN_TAG_MODE(0); - xge_os_pio_mem_write64(lldev->pdev, hldev->regh0, val64, - &bar0->rx_pa_cfg); - - xge_trace(XGE_TRACE, "Promiscuous mode ON"); - } -} - -/** - * xge_disable_promisc - * Disable Promiscuous Mode - * - * @lldev Per-adapter Data - */ -void -xge_disable_promisc(xge_lldev_t *lldev) -{ - xge_hal_device_t *hldev = lldev->devh; - xge_hal_pci_bar0_t *bar0 = NULL; - u64 val64 = 0; - - bar0 = (xge_hal_pci_bar0_t *) hldev->bar0; - - xge_hal_device_promisc_disable(lldev->devh); - - /* - * Strip VLAN tag when operating in non-promiscuous mode - */ - val64 = xge_os_pio_mem_read64(lldev->pdev, hldev->regh0, - &bar0->rx_pa_cfg); - val64 &= ~XGE_HAL_RX_PA_CFG_STRIP_VLAN_TAG_MODE(1); - val64 |= XGE_HAL_RX_PA_CFG_STRIP_VLAN_TAG_MODE(1); - xge_os_pio_mem_write64(lldev->pdev, hldev->regh0, val64, - &bar0->rx_pa_cfg); - - xge_trace(XGE_TRACE, "Promiscuous mode OFF"); -} - -/** - * xge_change_mtu - * Change interface MTU to a requested valid size - * - * @lldev Per-adapter Data - * @NewMtu Requested MTU - * - * Returns 0 or Error Number - */ -int -xge_change_mtu(xge_lldev_t *lldev, int new_mtu) -{ - int status = XGE_HAL_OK; - - /* Check requested MTU size for boundary */ - if(xge_hal_device_mtu_check(lldev->devh, new_mtu) != XGE_HAL_OK) { - XGE_EXIT_ON_ERR("Invalid MTU", _exit, EINVAL); - } - - lldev->mtu = new_mtu; - xge_confirm_changes(lldev, XGE_SET_MTU); - -_exit: - return status; -} - -/** - * xge_device_stop - * - * Common code for both stop and part of reset. Disables device, interrupts and - * closes channels - * - * @dev Device Handle - * @option Channel normal/reset option - */ -void -xge_device_stop(xge_lldev_t *lldev, xge_hal_channel_reopen_e option) -{ - xge_hal_device_t *hldev = lldev->devh; - struct ifnet *ifnetp = lldev->ifnetp; - u64 val64 = 0; - - mtx_assert((&lldev->mtx_drv), MA_OWNED); - - /* If device is not in "Running" state, return */ - if (!(ifnetp->if_drv_flags & IFF_DRV_RUNNING)) - goto _exit; - - /* Set appropriate flags */ - ifnetp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); - - /* Stop timer */ - callout_stop(&lldev->timer); - - /* Disable interrupts */ - xge_hal_device_intr_disable(hldev); - - mtx_unlock(&lldev->mtx_drv); - xge_queue_flush(xge_hal_device_queue(lldev->devh)); - mtx_lock(&lldev->mtx_drv); - - /* Disable HAL device */ - if(xge_hal_device_disable(hldev) != XGE_HAL_OK) { - xge_trace(XGE_ERR, "Disabling HAL device failed"); - xge_hal_device_status(hldev, &val64); - xge_trace(XGE_ERR, "Adapter Status: 0x%llx", (long long)val64); - } - - /* Close Tx and Rx channels */ - xge_channel_close(lldev, option); - - /* Reset HAL device */ - xge_hal_device_reset(hldev); - - xge_os_mdelay(1000); - lldev->initialized = 0; - - if_link_state_change(ifnetp, LINK_STATE_DOWN); - -_exit: - return; -} - -/** - * xge_set_mbuf_cflags - * set checksum flag for the mbuf - * - * @pkt Packet - */ -void -xge_set_mbuf_cflags(mbuf_t pkt) -{ - pkt->m_pkthdr.csum_flags = CSUM_IP_CHECKED; - pkt->m_pkthdr.csum_flags |= CSUM_IP_VALID; - pkt->m_pkthdr.csum_flags |= (CSUM_DATA_VALID | CSUM_PSEUDO_HDR); - pkt->m_pkthdr.csum_data = htons(0xffff); -} - -/** - * xge_lro_flush_sessions - * Flush LRO session and send accumulated LRO packet to upper layer - * - * @lldev Per-adapter Data - */ -void -xge_lro_flush_sessions(xge_lldev_t *lldev) -{ - xge_lro_entry_t *lro_session = NULL; - - while(!SLIST_EMPTY(&lldev->lro_active)) { - lro_session = SLIST_FIRST(&lldev->lro_active); - SLIST_REMOVE_HEAD(&lldev->lro_active, next); - xge_lro_flush(lldev, lro_session); - } -} - -/** - * xge_lro_flush - * Flush LRO session. Send accumulated LRO packet to upper layer - * - * @lldev Per-adapter Data - * @lro LRO session to be flushed - */ -static void -xge_lro_flush(xge_lldev_t *lldev, xge_lro_entry_t *lro_session) -{ - struct ip *header_ip; - struct tcphdr *header_tcp; - u32 *ptr; - - if(lro_session->append_cnt) { - header_ip = lro_session->lro_header_ip; - header_ip->ip_len = htons(lro_session->len - ETHER_HDR_LEN); - lro_session->m_head->m_pkthdr.len = lro_session->len; - header_tcp = (struct tcphdr *)(header_ip + 1); - header_tcp->th_ack = lro_session->ack_seq; - header_tcp->th_win = lro_session->window; - if(lro_session->timestamp) { - ptr = (u32 *)(header_tcp + 1); - ptr[1] = htonl(lro_session->tsval); - ptr[2] = lro_session->tsecr; - } - } - - (*lldev->ifnetp->if_input)(lldev->ifnetp, lro_session->m_head); - lro_session->m_head = NULL; - lro_session->timestamp = 0; - lro_session->append_cnt = 0; - SLIST_INSERT_HEAD(&lldev->lro_free, lro_session, next); -} - -/** - * xge_lro_accumulate - * Accumulate packets to form a large LRO packet based on various conditions - * - * @lldev Per-adapter Data - * @m_head Current Packet - * - * Returns XGE_HAL_OK or XGE_HAL_FAIL (failure) - */ -static int -xge_lro_accumulate(xge_lldev_t *lldev, struct mbuf *m_head) -{ - struct ether_header *header_ethernet; - struct ip *header_ip; - struct tcphdr *header_tcp; - u32 seq, *ptr; - struct mbuf *buffer_next, *buffer_tail; - xge_lro_entry_t *lro_session; - xge_hal_status_e status = XGE_HAL_FAIL; - int hlen, ip_len, tcp_hdr_len, tcp_data_len, tot_len, tcp_options; - int trim; - - /* Get Ethernet header */ - header_ethernet = mtod(m_head, struct ether_header *); - - /* Return if it is not IP packet */ - if(header_ethernet->ether_type != htons(ETHERTYPE_IP)) - goto _exit; - - /* Get IP header */ - header_ip = lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_1 ? - (struct ip *)(header_ethernet + 1) : - mtod(m_head->m_next, struct ip *); - - /* Return if it is not TCP packet */ - if(header_ip->ip_p != IPPROTO_TCP) - goto _exit; - - /* Return if packet has options */ - if((header_ip->ip_hl << 2) != sizeof(*header_ip)) - goto _exit; - - /* Return if packet is fragmented */ - if(header_ip->ip_off & htons(IP_MF | IP_OFFMASK)) - goto _exit; - - /* Get TCP header */ - header_tcp = (struct tcphdr *)(header_ip + 1); - - /* Return if not ACK or PUSH */ - if((header_tcp->th_flags & ~(TH_ACK | TH_PUSH)) != 0) - goto _exit; - - /* Only timestamp option is handled */ - tcp_options = (header_tcp->th_off << 2) - sizeof(*header_tcp); - tcp_hdr_len = sizeof(*header_tcp) + tcp_options; - ptr = (u32 *)(header_tcp + 1); - if(tcp_options != 0) { - if(__predict_false(tcp_options != TCPOLEN_TSTAMP_APPA) || - (*ptr != ntohl(TCPOPT_NOP << 24 | TCPOPT_NOP << 16 | - TCPOPT_TIMESTAMP << 8 | TCPOLEN_TIMESTAMP))) { - goto _exit; - } - } - - /* Total length of packet (IP) */ - ip_len = ntohs(header_ip->ip_len); - - /* TCP data size */ - tcp_data_len = ip_len - (header_tcp->th_off << 2) - sizeof(*header_ip); - - /* If the frame is padded, trim it */ - tot_len = m_head->m_pkthdr.len; - trim = tot_len - (ip_len + ETHER_HDR_LEN); - if(trim != 0) { - if(trim < 0) - goto _exit; - m_adj(m_head, -trim); - tot_len = m_head->m_pkthdr.len; - } - - buffer_next = m_head; - buffer_tail = NULL; - while(buffer_next != NULL) { - buffer_tail = buffer_next; - buffer_next = buffer_tail->m_next; - } - - /* Total size of only headers */ - hlen = ip_len + ETHER_HDR_LEN - tcp_data_len; - - /* Get sequence number */ - seq = ntohl(header_tcp->th_seq); - - SLIST_FOREACH(lro_session, &lldev->lro_active, next) { - if(lro_session->source_port == header_tcp->th_sport && - lro_session->dest_port == header_tcp->th_dport && - lro_session->source_ip == header_ip->ip_src.s_addr && - lro_session->dest_ip == header_ip->ip_dst.s_addr) { - - /* Unmatched sequence number, flush LRO session */ - if(__predict_false(seq != lro_session->next_seq)) { - SLIST_REMOVE(&lldev->lro_active, lro_session, - xge_lro_entry_t, next); - xge_lro_flush(lldev, lro_session); - goto _exit; - } - - /* Handle timestamp option */ - if(tcp_options) { - u32 tsval = ntohl(*(ptr + 1)); - if(__predict_false(lro_session->tsval > tsval || - *(ptr + 2) == 0)) { - goto _exit; - } - lro_session->tsval = tsval; - lro_session->tsecr = *(ptr + 2); - } - - lro_session->next_seq += tcp_data_len; - lro_session->ack_seq = header_tcp->th_ack; - lro_session->window = header_tcp->th_win; - - /* If TCP data/payload is of 0 size, free mbuf */ - if(tcp_data_len == 0) { - m_freem(m_head); - status = XGE_HAL_OK; - goto _exit; - } - - lro_session->append_cnt++; - lro_session->len += tcp_data_len; - - /* Adjust mbuf so that m_data points to payload than headers */ - m_adj(m_head, hlen); - - /* Append this packet to LRO accumulated packet */ - lro_session->m_tail->m_next = m_head; - lro_session->m_tail = buffer_tail; - - /* Flush if LRO packet is exceeding maximum size */ - if(lro_session->len > - (XGE_HAL_LRO_DEFAULT_FRM_LEN - lldev->ifnetp->if_mtu)) { - SLIST_REMOVE(&lldev->lro_active, lro_session, - xge_lro_entry_t, next); - xge_lro_flush(lldev, lro_session); - } - status = XGE_HAL_OK; - goto _exit; - } - } - - if(SLIST_EMPTY(&lldev->lro_free)) - goto _exit; - - /* Start a new LRO session */ - lro_session = SLIST_FIRST(&lldev->lro_free); - SLIST_REMOVE_HEAD(&lldev->lro_free, next); - SLIST_INSERT_HEAD(&lldev->lro_active, lro_session, next); - lro_session->source_port = header_tcp->th_sport; - lro_session->dest_port = header_tcp->th_dport; - lro_session->source_ip = header_ip->ip_src.s_addr; - lro_session->dest_ip = header_ip->ip_dst.s_addr; - lro_session->next_seq = seq + tcp_data_len; - lro_session->mss = tcp_data_len; - lro_session->ack_seq = header_tcp->th_ack; - lro_session->window = header_tcp->th_win; - - lro_session->lro_header_ip = header_ip; - - /* Handle timestamp option */ - if(tcp_options) { - lro_session->timestamp = 1; - lro_session->tsval = ntohl(*(ptr + 1)); - lro_session->tsecr = *(ptr + 2); - } - - lro_session->len = tot_len; - lro_session->m_head = m_head; - lro_session->m_tail = buffer_tail; - status = XGE_HAL_OK; - -_exit: - return status; -} - -/** - * xge_accumulate_large_rx - * Accumulate packets to form a large LRO packet based on various conditions - * - * @lldev Per-adapter Data - * @pkt Current packet - * @pkt_length Packet Length - * @rxd_priv Rx Descriptor Private Data - */ -void -xge_accumulate_large_rx(xge_lldev_t *lldev, struct mbuf *pkt, int pkt_length, - xge_rx_priv_t *rxd_priv) -{ - if(xge_lro_accumulate(lldev, pkt) != XGE_HAL_OK) { - bus_dmamap_sync(lldev->dma_tag_rx, rxd_priv->dmainfo[0].dma_map, - BUS_DMASYNC_POSTREAD); - (*lldev->ifnetp->if_input)(lldev->ifnetp, pkt); - } -} - -/** - * xge_rx_compl - * If the interrupt is due to received frame (Rx completion), send it up - * - * @channelh Ring Channel Handle - * @dtr Current Descriptor - * @t_code Transfer Code indicating success or error - * @userdata Per-adapter Data - * - * Returns XGE_HAL_OK or HAL error enums - */ -xge_hal_status_e -xge_rx_compl(xge_hal_channel_h channelh, xge_hal_dtr_h dtr, u8 t_code, - void *userdata) -{ - struct ifnet *ifnetp; - xge_rx_priv_t *rxd_priv = NULL; - mbuf_t mbuf_up = NULL; - xge_hal_status_e status = XGE_HAL_OK; - xge_hal_dtr_info_t ext_info; - int index; - u16 vlan_tag; - - /*get the user data portion*/ - xge_lldev_t *lldev = xge_hal_channel_userdata(channelh); - if(!lldev) { - XGE_EXIT_ON_ERR("Failed to get user data", _exit, XGE_HAL_FAIL); - } - - XGE_DRV_STATS(rx_completions); - - /* get the interface pointer */ - ifnetp = lldev->ifnetp; - - do { - XGE_DRV_STATS(rx_desc_compl); - - if(!(ifnetp->if_drv_flags & IFF_DRV_RUNNING)) { - status = XGE_HAL_FAIL; - goto _exit; - } - - if(t_code) { - xge_trace(XGE_TRACE, "Packet dropped because of %d", t_code); - XGE_DRV_STATS(rx_tcode); - xge_hal_device_handle_tcode(channelh, dtr, t_code); - xge_hal_ring_dtr_post(channelh,dtr); - continue; - } - - /* Get the private data for this descriptor*/ - rxd_priv = (xge_rx_priv_t *) xge_hal_ring_dtr_private(channelh, - dtr); - if(!rxd_priv) { - XGE_EXIT_ON_ERR("Failed to get descriptor private data", _exit, - XGE_HAL_FAIL); - } - - /* - * Prepare one buffer to send it to upper layer -- since the upper - * layer frees the buffer do not use rxd_priv->buffer. Meanwhile - * prepare a new buffer, do mapping, use it in the current - * descriptor and post descriptor back to ring channel - */ - mbuf_up = rxd_priv->bufferArray[0]; - - /* Gets details of mbuf i.e., packet length */ - xge_ring_dtr_get(mbuf_up, channelh, dtr, lldev, rxd_priv); - - status = - (lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_1) ? - xge_get_buf(dtr, rxd_priv, lldev, 0) : - xge_get_buf_3b_5b(dtr, rxd_priv, lldev); - - if(status != XGE_HAL_OK) { - xge_trace(XGE_ERR, "No memory"); - XGE_DRV_STATS(rx_no_buf); - - /* - * Unable to allocate buffer. Instead of discarding, post - * descriptor back to channel for future processing of same - * packet. - */ - xge_hal_ring_dtr_post(channelh, dtr); - continue; - } - - /* Get the extended information */ - xge_hal_ring_dtr_info_get(channelh, dtr, &ext_info); - - /* - * As we have allocated a new mbuf for this descriptor, post this - * descriptor with new mbuf back to ring channel - */ - vlan_tag = ext_info.vlan; - xge_hal_ring_dtr_post(channelh, dtr); - if ((!(ext_info.proto & XGE_HAL_FRAME_PROTO_IP_FRAGMENTED) && - (ext_info.proto & XGE_HAL_FRAME_PROTO_TCP_OR_UDP) && - (ext_info.l3_cksum == XGE_HAL_L3_CKSUM_OK) && - (ext_info.l4_cksum == XGE_HAL_L4_CKSUM_OK))) { - - /* set Checksum Flag */ - xge_set_mbuf_cflags(mbuf_up); - - if(lldev->enabled_lro) { - xge_accumulate_large_rx(lldev, mbuf_up, mbuf_up->m_len, - rxd_priv); - } - else { - /* Post-Read sync for buffers*/ - for(index = 0; index < lldev->rxd_mbuf_cnt; index++) { - bus_dmamap_sync(lldev->dma_tag_rx, - rxd_priv->dmainfo[0].dma_map, BUS_DMASYNC_POSTREAD); - } - (*ifnetp->if_input)(ifnetp, mbuf_up); - } - } - else { - /* - * Packet with erroneous checksum , let the upper layer deal - * with it - */ - - /* Post-Read sync for buffers*/ - for(index = 0; index < lldev->rxd_mbuf_cnt; index++) { - bus_dmamap_sync(lldev->dma_tag_rx, - rxd_priv->dmainfo[0].dma_map, BUS_DMASYNC_POSTREAD); - } - - if(vlan_tag) { - mbuf_up->m_pkthdr.ether_vtag = vlan_tag; - mbuf_up->m_flags |= M_VLANTAG; - } - - if(lldev->enabled_lro) - xge_lro_flush_sessions(lldev); - - (*ifnetp->if_input)(ifnetp, mbuf_up); - } - } while(xge_hal_ring_dtr_next_completed(channelh, &dtr, &t_code) - == XGE_HAL_OK); - - if(lldev->enabled_lro) - xge_lro_flush_sessions(lldev); - -_exit: - return status; -} - -/** - * xge_ring_dtr_get - * Get descriptors - * - * @mbuf_up Packet to send up - * @channelh Ring Channel Handle - * @dtr Descriptor - * @lldev Per-adapter Data - * @rxd_priv Rx Descriptor Private Data - * - * Returns XGE_HAL_OK or HAL error enums - */ -int -xge_ring_dtr_get(mbuf_t mbuf_up, xge_hal_channel_h channelh, xge_hal_dtr_h dtr, - xge_lldev_t *lldev, xge_rx_priv_t *rxd_priv) -{ - mbuf_t m; - int pkt_length[5]={0,0}, pkt_len=0; - dma_addr_t dma_data[5]; - int index; - - m = mbuf_up; - pkt_len = 0; - - if(lldev->buffer_mode != XGE_HAL_RING_QUEUE_BUFFER_MODE_1) { - xge_os_memzero(pkt_length, sizeof(pkt_length)); - - /* - * Retrieve data of interest from the completed descriptor -- This - * returns the packet length - */ - if(lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) { - xge_hal_ring_dtr_5b_get(channelh, dtr, dma_data, pkt_length); - } - else { - xge_hal_ring_dtr_3b_get(channelh, dtr, dma_data, pkt_length); - } - - for(index = 0; index < lldev->rxd_mbuf_cnt; index++) { - m->m_len = pkt_length[index]; - - if(index < (lldev->rxd_mbuf_cnt-1)) { - m->m_next = rxd_priv->bufferArray[index + 1]; - m = m->m_next; - } - else { - m->m_next = NULL; - } - pkt_len+=pkt_length[index]; - } - - /* - * Since 2 buffer mode is an exceptional case where data is in 3rd - * buffer but not in 2nd buffer - */ - if(lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_2) { - m->m_len = pkt_length[2]; - pkt_len+=pkt_length[2]; - } - - /* - * Update length of newly created buffer to be sent up with packet - * length - */ - mbuf_up->m_pkthdr.len = pkt_len; - } - else { - /* - * Retrieve data of interest from the completed descriptor -- This - * returns the packet length - */ - xge_hal_ring_dtr_1b_get(channelh, dtr,&dma_data[0], &pkt_length[0]); - - /* - * Update length of newly created buffer to be sent up with packet - * length - */ - mbuf_up->m_len = mbuf_up->m_pkthdr.len = pkt_length[0]; - } - - return XGE_HAL_OK; -} - -/** - * xge_flush_txds - * Flush Tx descriptors - * - * @channelh Channel handle - */ -static void inline -xge_flush_txds(xge_hal_channel_h channelh) -{ - xge_lldev_t *lldev = xge_hal_channel_userdata(channelh); - xge_hal_dtr_h tx_dtr; - xge_tx_priv_t *tx_priv; - u8 t_code; - - while(xge_hal_fifo_dtr_next_completed(channelh, &tx_dtr, &t_code) - == XGE_HAL_OK) { - XGE_DRV_STATS(tx_desc_compl); - if(t_code) { - xge_trace(XGE_TRACE, "Tx descriptor with t_code %d", t_code); - XGE_DRV_STATS(tx_tcode); - xge_hal_device_handle_tcode(channelh, tx_dtr, t_code); - } - - tx_priv = xge_hal_fifo_dtr_private(tx_dtr); - bus_dmamap_unload(lldev->dma_tag_tx, tx_priv->dma_map); - m_freem(tx_priv->buffer); - tx_priv->buffer = NULL; - xge_hal_fifo_dtr_free(channelh, tx_dtr); - } -} - -/** - * xge_send - * Transmit function - * - * @ifnetp Interface Handle - */ -void -xge_send(struct ifnet *ifnetp) -{ - int qindex = 0; - xge_lldev_t *lldev = ifnetp->if_softc; - - for(qindex = 0; qindex < XGE_FIFO_COUNT; qindex++) { - if(mtx_trylock(&lldev->mtx_tx[qindex]) == 0) { - XGE_DRV_STATS(tx_lock_fail); - break; - } - xge_send_locked(ifnetp, qindex); - mtx_unlock(&lldev->mtx_tx[qindex]); - } -} - -static void inline -xge_send_locked(struct ifnet *ifnetp, int qindex) -{ - xge_hal_dtr_h dtr; - static bus_dma_segment_t segs[XGE_MAX_SEGS]; - xge_hal_status_e status; - unsigned int max_fragments; - xge_lldev_t *lldev = ifnetp->if_softc; - xge_hal_channel_h channelh = lldev->fifo_channel[qindex]; - mbuf_t m_head = NULL; - mbuf_t m_buf = NULL; - xge_tx_priv_t *ll_tx_priv = NULL; - register unsigned int count = 0; - unsigned int nsegs = 0; - u16 vlan_tag; - - max_fragments = ((xge_hal_fifo_t *)channelh)->config->max_frags; - - /* If device is not initialized, return */ - if((!lldev->initialized) || (!(ifnetp->if_drv_flags & IFF_DRV_RUNNING))) - return; - - XGE_DRV_STATS(tx_calls); - - /* - * This loop will be executed for each packet in the kernel maintained - * queue -- each packet can be with fragments as an mbuf chain - */ - for(;;) { - IF_DEQUEUE(&ifnetp->if_snd, m_head); - if (m_head == NULL) { - ifnetp->if_drv_flags &= ~(IFF_DRV_OACTIVE); - return; - } - - for(m_buf = m_head; m_buf != NULL; m_buf = m_buf->m_next) { - if(m_buf->m_len) count += 1; - } - - if(count >= max_fragments) { - m_buf = m_defrag(m_head, M_NOWAIT); - if(m_buf != NULL) m_head = m_buf; - XGE_DRV_STATS(tx_defrag); - } - - /* Reserve descriptors */ - status = xge_hal_fifo_dtr_reserve(channelh, &dtr); - if(status != XGE_HAL_OK) { - XGE_DRV_STATS(tx_no_txd); - xge_flush_txds(channelh); - break; - } - - vlan_tag = - (m_head->m_flags & M_VLANTAG) ? m_head->m_pkthdr.ether_vtag : 0; - xge_hal_fifo_dtr_vlan_set(dtr, vlan_tag); - - /* Update Tx private structure for this descriptor */ - ll_tx_priv = xge_hal_fifo_dtr_private(dtr); - ll_tx_priv->buffer = m_head; - - /* - * Do mapping -- Required DMA tag has been created in xge_init - * function and DMA maps have already been created in the - * xgell_tx_replenish function. - * Returns number of segments through nsegs - */ - if(bus_dmamap_load_mbuf_sg(lldev->dma_tag_tx, - ll_tx_priv->dma_map, m_head, segs, &nsegs, BUS_DMA_NOWAIT)) { - xge_trace(XGE_TRACE, "DMA map load failed"); - XGE_DRV_STATS(tx_map_fail); - break; - } - - if(lldev->driver_stats.tx_max_frags < nsegs) - lldev->driver_stats.tx_max_frags = nsegs; - - /* Set descriptor buffer for header and each fragment/segment */ - count = 0; - do { - xge_hal_fifo_dtr_buffer_set(channelh, dtr, count, - (dma_addr_t)htole64(segs[count].ds_addr), - segs[count].ds_len); - count++; - } while(count < nsegs); - - /* Pre-write Sync of mapping */ - bus_dmamap_sync(lldev->dma_tag_tx, ll_tx_priv->dma_map, - BUS_DMASYNC_PREWRITE); - - if((lldev->enabled_tso) && - (m_head->m_pkthdr.csum_flags & CSUM_TSO)) { - XGE_DRV_STATS(tx_tso); - xge_hal_fifo_dtr_mss_set(dtr, m_head->m_pkthdr.tso_segsz); - } - - /* Checksum */ - if(ifnetp->if_hwassist > 0) { - xge_hal_fifo_dtr_cksum_set_bits(dtr, XGE_HAL_TXD_TX_CKO_IPV4_EN - | XGE_HAL_TXD_TX_CKO_TCP_EN | XGE_HAL_TXD_TX_CKO_UDP_EN); - } - - /* Post descriptor to FIFO channel */ - xge_hal_fifo_dtr_post(channelh, dtr); - XGE_DRV_STATS(tx_posted); - - /* Send the same copy of mbuf packet to BPF (Berkely Packet Filter) - * listener so that we can use tools like tcpdump */ - ETHER_BPF_MTAP(ifnetp, m_head); - } - - /* Prepend the packet back to queue */ - IF_PREPEND(&ifnetp->if_snd, m_head); - ifnetp->if_drv_flags |= IFF_DRV_OACTIVE; - - xge_queue_produce_context(xge_hal_device_queue(lldev->devh), - XGE_LL_EVENT_TRY_XMIT_AGAIN, lldev->devh); - XGE_DRV_STATS(tx_again); -} - -/** - * xge_get_buf - * Allocates new mbufs to be placed into descriptors - * - * @dtrh Descriptor Handle - * @rxd_priv Rx Descriptor Private Data - * @lldev Per-adapter Data - * @index Buffer Index (if multi-buffer mode) - * - * Returns XGE_HAL_OK or HAL error enums - */ -int -xge_get_buf(xge_hal_dtr_h dtrh, xge_rx_priv_t *rxd_priv, - xge_lldev_t *lldev, int index) -{ - register mbuf_t mp = NULL; - struct ifnet *ifnetp = lldev->ifnetp; - int status = XGE_HAL_OK; - int buffer_size = 0, cluster_size = 0, count; - bus_dmamap_t map = rxd_priv->dmainfo[index].dma_map; - bus_dma_segment_t segs[3]; - - buffer_size = (lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_1) ? - ifnetp->if_mtu + XGE_HAL_MAC_HEADER_MAX_SIZE : - lldev->rxd_mbuf_len[index]; - - if(buffer_size <= MCLBYTES) { - cluster_size = MCLBYTES; - mp = m_getcl(M_NOWAIT, MT_DATA, M_PKTHDR); - } - else { - cluster_size = MJUMPAGESIZE; - if((lldev->buffer_mode != XGE_HAL_RING_QUEUE_BUFFER_MODE_5) && - (buffer_size > MJUMPAGESIZE)) { - cluster_size = MJUM9BYTES; - } - mp = m_getjcl(M_NOWAIT, MT_DATA, M_PKTHDR, cluster_size); - } - if(!mp) { - xge_trace(XGE_ERR, "Out of memory to allocate mbuf"); - status = XGE_HAL_FAIL; - goto getbuf_out; - } - - /* Update mbuf's length, packet length and receive interface */ - mp->m_len = mp->m_pkthdr.len = buffer_size; - mp->m_pkthdr.rcvif = ifnetp; - - /* Load DMA map */ - if(bus_dmamap_load_mbuf_sg(lldev->dma_tag_rx, lldev->extra_dma_map, - mp, segs, &count, BUS_DMA_NOWAIT)) { - XGE_DRV_STATS(rx_map_fail); - m_freem(mp); - XGE_EXIT_ON_ERR("DMA map load failed", getbuf_out, XGE_HAL_FAIL); - } - - /* Update descriptor private data */ - rxd_priv->bufferArray[index] = mp; - rxd_priv->dmainfo[index].dma_phyaddr = htole64(segs->ds_addr); - rxd_priv->dmainfo[index].dma_map = lldev->extra_dma_map; - lldev->extra_dma_map = map; - - /* Pre-Read/Write sync */ - bus_dmamap_sync(lldev->dma_tag_rx, map, BUS_DMASYNC_POSTREAD); - - /* Unload DMA map of mbuf in current descriptor */ - bus_dmamap_unload(lldev->dma_tag_rx, map); - - /* Set descriptor buffer */ - if(lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_1) { - xge_hal_ring_dtr_1b_set(dtrh, rxd_priv->dmainfo[0].dma_phyaddr, - cluster_size); - } - -getbuf_out: - return status; -} - -/** - * xge_get_buf_3b_5b - * Allocates new mbufs to be placed into descriptors (in multi-buffer modes) - * - * @dtrh Descriptor Handle - * @rxd_priv Rx Descriptor Private Data - * @lldev Per-adapter Data - * - * Returns XGE_HAL_OK or HAL error enums - */ -int -xge_get_buf_3b_5b(xge_hal_dtr_h dtrh, xge_rx_priv_t *rxd_priv, - xge_lldev_t *lldev) -{ - bus_addr_t dma_pointers[5]; - int dma_sizes[5]; - int status = XGE_HAL_OK, index; - int newindex = 0; - - for(index = 0; index < lldev->rxd_mbuf_cnt; index++) { - status = xge_get_buf(dtrh, rxd_priv, lldev, index); - if(status != XGE_HAL_OK) { - for(newindex = 0; newindex < index; newindex++) { - m_freem(rxd_priv->bufferArray[newindex]); - } - XGE_EXIT_ON_ERR("mbuf allocation failed", _exit, status); - } - } - - for(index = 0; index < lldev->buffer_mode; index++) { - if(lldev->rxd_mbuf_len[index] != 0) { - dma_pointers[index] = rxd_priv->dmainfo[index].dma_phyaddr; - dma_sizes[index] = lldev->rxd_mbuf_len[index]; - } - else { - dma_pointers[index] = rxd_priv->dmainfo[index-1].dma_phyaddr; - dma_sizes[index] = 1; - } - } - - /* Assigning second buffer to third pointer in 2 buffer mode */ - if(lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_2) { - dma_pointers[2] = dma_pointers[1]; - dma_sizes[2] = dma_sizes[1]; - dma_sizes[1] = 1; - } - - if(lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) { - xge_hal_ring_dtr_5b_set(dtrh, dma_pointers, dma_sizes); - } - else { - xge_hal_ring_dtr_3b_set(dtrh, dma_pointers, dma_sizes); - } - -_exit: - return status; -} - -/** - * xge_tx_compl - * If the interrupt is due to Tx completion, free the sent buffer - * - * @channelh Channel Handle - * @dtr Descriptor - * @t_code Transfer Code indicating success or error - * @userdata Per-adapter Data - * - * Returns XGE_HAL_OK or HAL error enum - */ -xge_hal_status_e -xge_tx_compl(xge_hal_channel_h channelh, - xge_hal_dtr_h dtr, u8 t_code, void *userdata) -{ - xge_tx_priv_t *ll_tx_priv = NULL; - xge_lldev_t *lldev = (xge_lldev_t *)userdata; - struct ifnet *ifnetp = lldev->ifnetp; - mbuf_t m_buffer = NULL; - int qindex = xge_hal_channel_id(channelh); - - mtx_lock(&lldev->mtx_tx[qindex]); - - XGE_DRV_STATS(tx_completions); - - /* - * For each completed descriptor: Get private structure, free buffer, - * do unmapping, and free descriptor - */ - do { - XGE_DRV_STATS(tx_desc_compl); - - if(t_code) { - XGE_DRV_STATS(tx_tcode); - xge_trace(XGE_TRACE, "t_code %d", t_code); - xge_hal_device_handle_tcode(channelh, dtr, t_code); - } - - ll_tx_priv = xge_hal_fifo_dtr_private(dtr); - m_buffer = ll_tx_priv->buffer; - bus_dmamap_unload(lldev->dma_tag_tx, ll_tx_priv->dma_map); - m_freem(m_buffer); - ll_tx_priv->buffer = NULL; - xge_hal_fifo_dtr_free(channelh, dtr); - } while(xge_hal_fifo_dtr_next_completed(channelh, &dtr, &t_code) - == XGE_HAL_OK); - xge_send_locked(ifnetp, qindex); - ifnetp->if_drv_flags &= ~IFF_DRV_OACTIVE; - - mtx_unlock(&lldev->mtx_tx[qindex]); - - return XGE_HAL_OK; -} - -/** - * xge_tx_initial_replenish - * Initially allocate buffers and set them into descriptors for later use - * - * @channelh Tx Channel Handle - * @dtrh Descriptor Handle - * @index - * @userdata Per-adapter Data - * @reopen Channel open/reopen option - * - * Returns XGE_HAL_OK or HAL error enums - */ -xge_hal_status_e -xge_tx_initial_replenish(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - int index, void *userdata, xge_hal_channel_reopen_e reopen) -{ - xge_tx_priv_t *txd_priv = NULL; - int status = XGE_HAL_OK; - - /* Get the user data portion from channel handle */ - xge_lldev_t *lldev = xge_hal_channel_userdata(channelh); - if(lldev == NULL) { - XGE_EXIT_ON_ERR("Failed to get user data from channel", txinit_out, - XGE_HAL_FAIL); - } - - /* Get the private data */ - txd_priv = (xge_tx_priv_t *) xge_hal_fifo_dtr_private(dtrh); - if(txd_priv == NULL) { - XGE_EXIT_ON_ERR("Failed to get descriptor private data", txinit_out, - XGE_HAL_FAIL); - } - - /* Create DMA map for this descriptor */ - if(bus_dmamap_create(lldev->dma_tag_tx, BUS_DMA_NOWAIT, - &txd_priv->dma_map)) { - XGE_EXIT_ON_ERR("DMA map creation for Tx descriptor failed", - txinit_out, XGE_HAL_FAIL); - } - -txinit_out: - return status; -} - -/** - * xge_rx_initial_replenish - * Initially allocate buffers and set them into descriptors for later use - * - * @channelh Tx Channel Handle - * @dtrh Descriptor Handle - * @index Ring Index - * @userdata Per-adapter Data - * @reopen Channel open/reopen option - * - * Returns XGE_HAL_OK or HAL error enums - */ -xge_hal_status_e -xge_rx_initial_replenish(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - int index, void *userdata, xge_hal_channel_reopen_e reopen) -{ - xge_rx_priv_t *rxd_priv = NULL; - int status = XGE_HAL_OK; - int index1 = 0, index2 = 0; - - /* Get the user data portion from channel handle */ - xge_lldev_t *lldev = xge_hal_channel_userdata(channelh); - if(lldev == NULL) { - XGE_EXIT_ON_ERR("Failed to get user data from channel", rxinit_out, - XGE_HAL_FAIL); - } - - /* Get the private data */ - rxd_priv = (xge_rx_priv_t *) xge_hal_ring_dtr_private(channelh, dtrh); - if(rxd_priv == NULL) { - XGE_EXIT_ON_ERR("Failed to get descriptor private data", rxinit_out, - XGE_HAL_FAIL); - } - - rxd_priv->bufferArray = xge_os_malloc(NULL, - (sizeof(rxd_priv->bufferArray) * lldev->rxd_mbuf_cnt)); - - if(rxd_priv->bufferArray == NULL) { - XGE_EXIT_ON_ERR("Failed to allocate Rxd private", rxinit_out, - XGE_HAL_FAIL); - } - - if(lldev->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_1) { - /* Create DMA map for these descriptors*/ - if(bus_dmamap_create(lldev->dma_tag_rx , BUS_DMA_NOWAIT, - &rxd_priv->dmainfo[0].dma_map)) { - XGE_EXIT_ON_ERR("DMA map creation for Rx descriptor failed", - rxinit_err_out, XGE_HAL_FAIL); - } - /* Get a buffer, attach it to this descriptor */ - status = xge_get_buf(dtrh, rxd_priv, lldev, 0); - } - else { - for(index1 = 0; index1 < lldev->rxd_mbuf_cnt; index1++) { - /* Create DMA map for this descriptor */ - if(bus_dmamap_create(lldev->dma_tag_rx , BUS_DMA_NOWAIT , - &rxd_priv->dmainfo[index1].dma_map)) { - for(index2 = index1 - 1; index2 >= 0; index2--) { - bus_dmamap_destroy(lldev->dma_tag_rx, - rxd_priv->dmainfo[index2].dma_map); - } - XGE_EXIT_ON_ERR( - "Jumbo DMA map creation for Rx descriptor failed", - rxinit_err_out, XGE_HAL_FAIL); - } - } - status = xge_get_buf_3b_5b(dtrh, rxd_priv, lldev); - } - - if(status != XGE_HAL_OK) { - for(index1 = 0; index1 < lldev->rxd_mbuf_cnt; index1++) { - bus_dmamap_destroy(lldev->dma_tag_rx, - rxd_priv->dmainfo[index1].dma_map); - } - goto rxinit_err_out; - } - else { - goto rxinit_out; - } - -rxinit_err_out: - xge_os_free(NULL, rxd_priv->bufferArray, - (sizeof(rxd_priv->bufferArray) * lldev->rxd_mbuf_cnt)); -rxinit_out: - return status; -} - -/** - * xge_rx_term - * During unload terminate and free all descriptors - * - * @channelh Rx Channel Handle - * @dtrh Rx Descriptor Handle - * @state Descriptor State - * @userdata Per-adapter Data - * @reopen Channel open/reopen option - */ -void -xge_rx_term(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - xge_hal_dtr_state_e state, void *userdata, - xge_hal_channel_reopen_e reopen) -{ - xge_rx_priv_t *rxd_priv = NULL; - xge_lldev_t *lldev = NULL; - int index = 0; - - /* Descriptor state is not "Posted" */ - if(state != XGE_HAL_DTR_STATE_POSTED) goto rxterm_out; - - /* Get the user data portion */ - lldev = xge_hal_channel_userdata(channelh); - - /* Get the private data */ - rxd_priv = (xge_rx_priv_t *) xge_hal_ring_dtr_private(channelh, dtrh); - - for(index = 0; index < lldev->rxd_mbuf_cnt; index++) { - if(rxd_priv->dmainfo[index].dma_map != NULL) { - bus_dmamap_sync(lldev->dma_tag_rx, - rxd_priv->dmainfo[index].dma_map, BUS_DMASYNC_POSTREAD); - bus_dmamap_unload(lldev->dma_tag_rx, - rxd_priv->dmainfo[index].dma_map); - if(rxd_priv->bufferArray[index] != NULL) - m_free(rxd_priv->bufferArray[index]); - bus_dmamap_destroy(lldev->dma_tag_rx, - rxd_priv->dmainfo[index].dma_map); - } - } - xge_os_free(NULL, rxd_priv->bufferArray, - (sizeof(rxd_priv->bufferArray) * lldev->rxd_mbuf_cnt)); - - /* Free the descriptor */ - xge_hal_ring_dtr_free(channelh, dtrh); - -rxterm_out: - return; -} - -/** - * xge_tx_term - * During unload terminate and free all descriptors - * - * @channelh Rx Channel Handle - * @dtrh Rx Descriptor Handle - * @state Descriptor State - * @userdata Per-adapter Data - * @reopen Channel open/reopen option - */ -void -xge_tx_term(xge_hal_channel_h channelh, xge_hal_dtr_h dtr, - xge_hal_dtr_state_e state, void *userdata, - xge_hal_channel_reopen_e reopen) -{ - xge_tx_priv_t *ll_tx_priv = xge_hal_fifo_dtr_private(dtr); - xge_lldev_t *lldev = (xge_lldev_t *)userdata; - - /* Destroy DMA map */ - bus_dmamap_destroy(lldev->dma_tag_tx, ll_tx_priv->dma_map); -} - -/** - * xge_methods - * - * FreeBSD device interface entry points - */ -static device_method_t xge_methods[] = { - DEVMETHOD(device_probe, xge_probe), - DEVMETHOD(device_attach, xge_attach), - DEVMETHOD(device_detach, xge_detach), - DEVMETHOD(device_shutdown, xge_shutdown), - - DEVMETHOD_END -}; - -static driver_t xge_driver = { - "nxge", - xge_methods, - sizeof(xge_lldev_t), -}; -static devclass_t xge_devclass; -DRIVER_MODULE(nxge, pci, xge_driver, xge_devclass, 0, 0); - Property changes on: head/sys/dev/nxge/if_nxge.c ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-device.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-device.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-device.c (nonexistent) @@ -1,7268 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include -#include -#include -#include -#include - -#define SWITCH_SIGN 0xA5A5A5A5A5A5A5A5ULL -#define END_SIGN 0x0 - -#ifdef XGE_HAL_HERC_EMULATION -#undef XGE_HAL_PROCESS_LINK_INT_IN_ISR -#endif - -/* - * Jenkins hash key length(in bytes) - */ -#define XGE_HAL_JHASH_MSG_LEN 50 - -/* - * mix(a,b,c) used in Jenkins hash algorithm - */ -#define mix(a,b,c) { \ - a -= b; a -= c; a ^= (c>>13); \ - b -= c; b -= a; b ^= (a<<8); \ - c -= a; c -= b; c ^= (b>>13); \ - a -= b; a -= c; a ^= (c>>12); \ - b -= c; b -= a; b ^= (a<<16); \ - c -= a; c -= b; c ^= (b>>5); \ - a -= b; a -= c; a ^= (c>>3); \ - b -= c; b -= a; b ^= (a<<10); \ - c -= a; c -= b; c ^= (b>>15); \ -} - - -/* - * __hal_device_event_queued - * @data: pointer to xge_hal_device_t structure - * - * Will be called when new event succesfully queued. - */ -void -__hal_device_event_queued(void *data, int event_type) -{ - xge_assert(((xge_hal_device_t*)data)->magic == XGE_HAL_MAGIC); - if (g_xge_hal_driver->uld_callbacks.event_queued) { - g_xge_hal_driver->uld_callbacks.event_queued(data, event_type); - } -} - -/* - * __hal_pio_mem_write32_upper - * - * Endiann-aware implementation of xge_os_pio_mem_write32(). - * Since Xframe has 64bit registers, we differintiate uppper and lower - * parts. - */ -void -__hal_pio_mem_write32_upper(pci_dev_h pdev, pci_reg_h regh, u32 val, void *addr) -{ -#if defined(XGE_OS_HOST_BIG_ENDIAN) && !defined(XGE_OS_PIO_LITTLE_ENDIAN) - xge_os_pio_mem_write32(pdev, regh, val, addr); -#else - xge_os_pio_mem_write32(pdev, regh, val, (void *)((char *)addr + 4)); -#endif -} - -/* - * __hal_pio_mem_write32_upper - * - * Endiann-aware implementation of xge_os_pio_mem_write32(). - * Since Xframe has 64bit registers, we differintiate uppper and lower - * parts. - */ -void -__hal_pio_mem_write32_lower(pci_dev_h pdev, pci_reg_h regh, u32 val, - void *addr) -{ -#if defined(XGE_OS_HOST_BIG_ENDIAN) && !defined(XGE_OS_PIO_LITTLE_ENDIAN) - xge_os_pio_mem_write32(pdev, regh, val, - (void *) ((char *)addr + 4)); -#else - xge_os_pio_mem_write32(pdev, regh, val, addr); -#endif -} - -/* - * __hal_device_register_poll - * @hldev: pointer to xge_hal_device_t structure - * @reg: register to poll for - * @op: 0 - bit reset, 1 - bit set - * @mask: mask for logical "and" condition based on %op - * @max_millis: maximum time to try to poll in milliseconds - * - * Will poll certain register for specified amount of time. - * Will poll until masked bit is not cleared. - */ -xge_hal_status_e -__hal_device_register_poll(xge_hal_device_t *hldev, u64 *reg, - int op, u64 mask, int max_millis) -{ - u64 val64; - int i = 0; - xge_hal_status_e ret = XGE_HAL_FAIL; - - xge_os_udelay(10); - - do { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, reg); - if (op == 0 && !(val64 & mask)) - return XGE_HAL_OK; - else if (op == 1 && (val64 & mask) == mask) - return XGE_HAL_OK; - xge_os_udelay(100); - } while (++i <= 9); - - do { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, reg); - if (op == 0 && !(val64 & mask)) - return XGE_HAL_OK; - else if (op == 1 && (val64 & mask) == mask) - return XGE_HAL_OK; - xge_os_udelay(1000); - } while (++i < max_millis); - - return ret; -} - -/* - * __hal_device_wait_quiescent - * @hldev: the device - * @hw_status: hw_status in case of error - * - * Will wait until device is quiescent for some blocks. - */ -static xge_hal_status_e -__hal_device_wait_quiescent(xge_hal_device_t *hldev, u64 *hw_status) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - /* poll and wait first */ -#ifdef XGE_HAL_HERC_EMULATION - (void) __hal_device_register_poll(hldev, &bar0->adapter_status, 1, - (XGE_HAL_ADAPTER_STATUS_TDMA_READY | - XGE_HAL_ADAPTER_STATUS_RDMA_READY | - XGE_HAL_ADAPTER_STATUS_PFC_READY | - XGE_HAL_ADAPTER_STATUS_TMAC_BUF_EMPTY | - XGE_HAL_ADAPTER_STATUS_PIC_QUIESCENT | - XGE_HAL_ADAPTER_STATUS_MC_DRAM_READY | - XGE_HAL_ADAPTER_STATUS_MC_QUEUES_READY | - XGE_HAL_ADAPTER_STATUS_M_PLL_LOCK), - XGE_HAL_DEVICE_QUIESCENT_WAIT_MAX_MILLIS); -#else - (void) __hal_device_register_poll(hldev, &bar0->adapter_status, 1, - (XGE_HAL_ADAPTER_STATUS_TDMA_READY | - XGE_HAL_ADAPTER_STATUS_RDMA_READY | - XGE_HAL_ADAPTER_STATUS_PFC_READY | - XGE_HAL_ADAPTER_STATUS_TMAC_BUF_EMPTY | - XGE_HAL_ADAPTER_STATUS_PIC_QUIESCENT | - XGE_HAL_ADAPTER_STATUS_MC_DRAM_READY | - XGE_HAL_ADAPTER_STATUS_MC_QUEUES_READY | - XGE_HAL_ADAPTER_STATUS_M_PLL_LOCK | - XGE_HAL_ADAPTER_STATUS_P_PLL_LOCK), - XGE_HAL_DEVICE_QUIESCENT_WAIT_MAX_MILLIS); -#endif - - return xge_hal_device_status(hldev, hw_status); -} - -/** - * xge_hal_device_is_slot_freeze - * @devh: the device - * - * Returns non-zero if the slot is freezed. - * The determination is made based on the adapter_status - * register which will never give all FFs, unless PCI read - * cannot go through. - */ -int -xge_hal_device_is_slot_freeze(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u16 device_id; - u64 adapter_status = - xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_status); - xge_os_pci_read16(hldev->pdev,hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, device_id), - &device_id); -#ifdef TX_DEBUG - if (adapter_status == XGE_HAL_ALL_FOXES) - { - u64 dummy; - dummy = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->pcc_enable); - printf(">>> Slot is frozen!\n"); - brkpoint(0); - } -#endif - return((adapter_status == XGE_HAL_ALL_FOXES) || (device_id == 0xffff)); -} - - -/* - * __hal_device_led_actifity_fix - * @hldev: pointer to xge_hal_device_t structure - * - * SXE-002: Configure link and activity LED to turn it off - */ -static void -__hal_device_led_actifity_fix(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u16 subid; - u64 val64; - - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, subsystem_id), &subid); - - /* - * In the case of Herc, there is a new register named beacon control - * is added which was not present in Xena. - * Beacon control register in Herc is at the same offset as - * gpio control register in Xena. It means they are one and same in - * the case of Xena. Also, gpio control register offset in Herc and - * Xena is different. - * The current register map represents Herc(It means we have - * both beacon and gpio control registers in register map). - * WRT transition from Xena to Herc, all the code in Xena which was - * using gpio control register for LED handling would have to - * use beacon control register in Herc and the rest of the code - * which uses gpio control in Xena would use the same register - * in Herc. - * WRT LED handling(following code), In the case of Herc, beacon - * control register has to be used. This is applicable for Xena also, - * since it represents the gpio control register in Xena. - */ - if ((subid & 0xFF) >= 0x07) { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->beacon_control); - val64 |= 0x0000800000000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->beacon_control); - val64 = 0x0411040400000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - (void *) ((u8 *)bar0 + 0x2700)); - } -} - -/* Constants for Fixing the MacAddress problem seen mostly on - * Alpha machines. - */ -static u64 xena_fix_mac[] = { - 0x0060000000000000ULL, 0x0060600000000000ULL, - 0x0040600000000000ULL, 0x0000600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0060600000000000ULL, - 0x0020600000000000ULL, 0x0000600000000000ULL, - 0x0040600000000000ULL, 0x0060600000000000ULL, - END_SIGN -}; - -/* - * __hal_device_fix_mac - * @hldev: HAL device handle. - * - * Fix for all "FFs" MAC address problems observed on Alpha platforms. - */ -static void -__hal_device_xena_fix_mac(xge_hal_device_t *hldev) -{ - int i = 0; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - /* - * In the case of Herc, there is a new register named beacon control - * is added which was not present in Xena. - * Beacon control register in Herc is at the same offset as - * gpio control register in Xena. It means they are one and same in - * the case of Xena. Also, gpio control register offset in Herc and - * Xena is different. - * The current register map represents Herc(It means we have - * both beacon and gpio control registers in register map). - * WRT transition from Xena to Herc, all the code in Xena which was - * using gpio control register for LED handling would have to - * use beacon control register in Herc and the rest of the code - * which uses gpio control in Xena would use the same register - * in Herc. - * In the following code(xena_fix_mac), beacon control register has - * to be used in the case of Xena, since it represents gpio control - * register. In the case of Herc, there is no change required. - */ - while (xena_fix_mac[i] != END_SIGN) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - xena_fix_mac[i++], &bar0->beacon_control); - xge_os_mdelay(1); - } -} - -/* - * xge_hal_device_bcast_enable - * @hldev: HAL device handle. - * - * Enable receiving broadcasts. - * The host must first write RMAC_CFG_KEY "key" - * register, and then - MAC_CFG register. - */ -void -xge_hal_device_bcast_enable(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mac_cfg); - val64 |= XGE_HAL_MAC_RMAC_BCAST_ENABLE; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_CFG_KEY(0x4C0D), &bar0->rmac_cfg_key); - - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, - (u32)(val64 >> 32), &bar0->mac_cfg); - - xge_debug_device(XGE_TRACE, "mac_cfg 0x"XGE_OS_LLXFMT": broadcast %s", - (unsigned long long)val64, - hldev->config.mac.rmac_bcast_en ? "enabled" : "disabled"); -} - -/* - * xge_hal_device_bcast_disable - * @hldev: HAL device handle. - * - * Disable receiving broadcasts. - * The host must first write RMAC_CFG_KEY "key" - * register, and then - MAC_CFG register. - */ -void -xge_hal_device_bcast_disable(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mac_cfg); - - val64 &= ~(XGE_HAL_MAC_RMAC_BCAST_ENABLE); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_CFG_KEY(0x4C0D), &bar0->rmac_cfg_key); - - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, - (u32)(val64 >> 32), &bar0->mac_cfg); - - xge_debug_device(XGE_TRACE, "mac_cfg 0x"XGE_OS_LLXFMT": broadcast %s", - (unsigned long long)val64, - hldev->config.mac.rmac_bcast_en ? "enabled" : "disabled"); -} - -/* - * __hal_device_shared_splits_configure - * @hldev: HAL device handle. - * - * TxDMA will stop Read request if the number of read split had exceeded - * the limit set by shared_splits - */ -static void -__hal_device_shared_splits_configure(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->pic_control); - val64 |= - XGE_HAL_PIC_CNTL_SHARED_SPLITS(hldev->config.shared_splits); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->pic_control); - xge_debug_device(XGE_TRACE, "%s", "shared splits configured"); -} - -/* - * __hal_device_rmac_padding_configure - * @hldev: HAL device handle. - * - * Configure RMAC frame padding. Depends on configuration, it - * can be send to host or removed by MAC. - */ -static void -__hal_device_rmac_padding_configure(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_CFG_KEY(0x4C0D), &bar0->rmac_cfg_key); - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mac_cfg); - val64 &= ( ~XGE_HAL_MAC_RMAC_ALL_ADDR_ENABLE ); - val64 &= ( ~XGE_HAL_MAC_CFG_RMAC_PROM_ENABLE ); - val64 |= XGE_HAL_MAC_CFG_TMAC_APPEND_PAD; - - /* - * If the RTH enable bit is not set, strip the FCS - */ - if (!hldev->config.rth_en || - !(xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_rth_cfg) & XGE_HAL_RTS_RTH_EN)) { - val64 |= XGE_HAL_MAC_CFG_RMAC_STRIP_FCS; - } - - val64 &= ( ~XGE_HAL_MAC_CFG_RMAC_STRIP_PAD ); - val64 |= XGE_HAL_MAC_RMAC_DISCARD_PFRM; - - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, - (u32)(val64 >> 32), (char*)&bar0->mac_cfg); - xge_os_mdelay(1); - - xge_debug_device(XGE_TRACE, - "mac_cfg 0x"XGE_OS_LLXFMT": frame padding configured", - (unsigned long long)val64); -} - -/* - * __hal_device_pause_frames_configure - * @hldev: HAL device handle. - * - * Set Pause threshold. - * - * Pause frame is generated if the amount of data outstanding - * on any queue exceeded the ratio of - * (mac_control.mc_pause_threshold_q0q3 or q4q7)/256 - */ -static void -__hal_device_pause_frames_configure(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - int i; - u64 val64; - - switch (hldev->config.mac.media) { - case XGE_HAL_MEDIA_SR: - case XGE_HAL_MEDIA_SW: - val64=0xfffbfffbfffbfffbULL; - break; - case XGE_HAL_MEDIA_LR: - case XGE_HAL_MEDIA_LW: - val64=0xffbbffbbffbbffbbULL; - break; - case XGE_HAL_MEDIA_ER: - case XGE_HAL_MEDIA_EW: - default: - val64=0xffbbffbbffbbffbbULL; - break; - } - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->mc_pause_thresh_q0q3); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->mc_pause_thresh_q4q7); - - /* Set the time value to be inserted in the pause frame generated - * by Xframe */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rmac_pause_cfg); - if (hldev->config.mac.rmac_pause_gen_en) - val64 |= XGE_HAL_RMAC_PAUSE_GEN_EN; - else - val64 &= ~(XGE_HAL_RMAC_PAUSE_GEN_EN); - if (hldev->config.mac.rmac_pause_rcv_en) - val64 |= XGE_HAL_RMAC_PAUSE_RCV_EN; - else - val64 &= ~(XGE_HAL_RMAC_PAUSE_RCV_EN); - val64 &= ~(XGE_HAL_RMAC_PAUSE_HG_PTIME(0xffff)); - val64 |= XGE_HAL_RMAC_PAUSE_HG_PTIME(hldev->config.mac.rmac_pause_time); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rmac_pause_cfg); - - val64 = 0; - for (i = 0; i<4; i++) { - val64 |= - (((u64)0xFF00|hldev->config.mac.mc_pause_threshold_q0q3) - <<(i*2*8)); - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_pause_thresh_q0q3); - - val64 = 0; - for (i = 0; i<4; i++) { - val64 |= - (((u64)0xFF00|hldev->config.mac.mc_pause_threshold_q4q7) - <<(i*2*8)); - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_pause_thresh_q4q7); - xge_debug_device(XGE_TRACE, "%s", "pause frames configured"); -} - -/* - * Herc's clock rate doubled, unless the slot is 33MHz. - */ -unsigned int __hal_fix_time_ival_herc(xge_hal_device_t *hldev, - unsigned int time_ival) -{ - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) - return time_ival; - - xge_assert(xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC); - - if (hldev->bus_frequency != XGE_HAL_PCI_BUS_FREQUENCY_UNKNOWN && - hldev->bus_frequency != XGE_HAL_PCI_BUS_FREQUENCY_33MHZ) - time_ival *= 2; - - return time_ival; -} - - -/* - * __hal_device_bus_master_disable - * @hldev: HAL device handle. - * - * Disable bus mastership. - */ -static void -__hal_device_bus_master_disable (xge_hal_device_t *hldev) -{ - u16 cmd; - u16 bus_master = 4; - - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, command), &cmd); - cmd &= ~bus_master; - xge_os_pci_write16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, command), cmd); -} - -/* - * __hal_device_bus_master_enable - * @hldev: HAL device handle. - * - * Disable bus mastership. - */ -static void -__hal_device_bus_master_enable (xge_hal_device_t *hldev) -{ - u16 cmd; - u16 bus_master = 4; - - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, command), &cmd); - - /* already enabled? do nothing */ - if (cmd & bus_master) - return; - - cmd |= bus_master; - xge_os_pci_write16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, command), cmd); -} -/* - * __hal_device_intr_mgmt - * @hldev: HAL device handle. - * @mask: mask indicating which Intr block must be modified. - * @flag: if true - enable, otherwise - disable interrupts. - * - * Disable or enable device interrupts. Mask is used to specify - * which hardware blocks should produce interrupts. For details - * please refer to Xframe User Guide. - */ -static void -__hal_device_intr_mgmt(xge_hal_device_t *hldev, u64 mask, int flag) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64 = 0, temp64 = 0; - u64 gim, gim_saved; - - gim_saved = gim = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->general_int_mask); - - /* Top level interrupt classification */ - /* PIC Interrupts */ - if ((mask & (XGE_HAL_TX_PIC_INTR/* | XGE_HAL_RX_PIC_INTR*/))) { - /* Enable PIC Intrs in the general intr mask register */ - val64 = XGE_HAL_TXPIC_INT_M/* | XGE_HAL_PIC_RX_INT_M*/; - if (flag) { - gim &= ~((u64) val64); - temp64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->pic_int_mask); - - temp64 &= ~XGE_HAL_PIC_INT_TX; -#ifdef XGE_HAL_PROCESS_LINK_INT_IN_ISR - if (xge_hal_device_check_id(hldev) == - XGE_HAL_CARD_HERC) { - temp64 &= ~XGE_HAL_PIC_INT_MISC; - } -#endif - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - temp64, &bar0->pic_int_mask); -#ifdef XGE_HAL_PROCESS_LINK_INT_IN_ISR - if (xge_hal_device_check_id(hldev) == - XGE_HAL_CARD_HERC) { - /* - * Unmask only Link Up interrupt - */ - temp64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->misc_int_mask); - temp64 &= ~XGE_HAL_MISC_INT_REG_LINK_UP_INT; - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, temp64, - &bar0->misc_int_mask); - xge_debug_device(XGE_TRACE, - "unmask link up flag "XGE_OS_LLXFMT, - (unsigned long long)temp64); - } -#endif - } else { /* flag == 0 */ - -#ifdef XGE_HAL_PROCESS_LINK_INT_IN_ISR - if (xge_hal_device_check_id(hldev) == - XGE_HAL_CARD_HERC) { - /* - * Mask both Link Up and Down interrupts - */ - temp64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->misc_int_mask); - temp64 |= XGE_HAL_MISC_INT_REG_LINK_UP_INT; - temp64 |= XGE_HAL_MISC_INT_REG_LINK_DOWN_INT; - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, temp64, - &bar0->misc_int_mask); - xge_debug_device(XGE_TRACE, - "mask link up/down flag "XGE_OS_LLXFMT, - (unsigned long long)temp64); - } -#endif - /* Disable PIC Intrs in the general intr mask - * register */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, - &bar0->pic_int_mask); - gim |= val64; - } - } - - /* DMA Interrupts */ - /* Enabling/Disabling Tx DMA interrupts */ - if (mask & XGE_HAL_TX_DMA_INTR) { - /* Enable TxDMA Intrs in the general intr mask register */ - val64 = XGE_HAL_TXDMA_INT_M; - if (flag) { - gim &= ~((u64) val64); - /* Enable all TxDMA interrupts */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0, &bar0->txdma_int_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0, &bar0->pfc_err_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0, &bar0->tda_err_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0, &bar0->pcc_err_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0, &bar0->tti_err_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0, &bar0->lso_err_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0, &bar0->tpa_err_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0, &bar0->sm_err_mask); - - } else { /* flag == 0 */ - - /* Disable TxDMA Intrs in the general intr mask - * register */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, - &bar0->txdma_int_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, - &bar0->pfc_err_mask); - - gim |= val64; - } - } - - /* Enabling/Disabling Rx DMA interrupts */ - if (mask & XGE_HAL_RX_DMA_INTR) { - /* Enable RxDMA Intrs in the general intr mask register */ - val64 = XGE_HAL_RXDMA_INT_M; - if (flag) { - - gim &= ~((u64) val64); - /* All RxDMA block interrupts are disabled for now - * TODO */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, - &bar0->rxdma_int_mask); - - } else { /* flag == 0 */ - - /* Disable RxDMA Intrs in the general intr mask - * register */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, - &bar0->rxdma_int_mask); - - gim |= val64; - } - } - - /* MAC Interrupts */ - /* Enabling/Disabling MAC interrupts */ - if (mask & (XGE_HAL_TX_MAC_INTR | XGE_HAL_RX_MAC_INTR)) { - val64 = XGE_HAL_TXMAC_INT_M | XGE_HAL_RXMAC_INT_M; - if (flag) { - - gim &= ~((u64) val64); - - /* All MAC block error inter. are disabled for now. */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, &bar0->mac_int_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, &bar0->mac_rmac_err_mask); - - } else { /* flag == 0 */ - - /* Disable MAC Intrs in the general intr mask - * register */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, &bar0->mac_int_mask); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, &bar0->mac_rmac_err_mask); - - gim |= val64; - } - } - - /* XGXS Interrupts */ - if (mask & (XGE_HAL_TX_XGXS_INTR | XGE_HAL_RX_XGXS_INTR)) { - val64 = XGE_HAL_TXXGXS_INT_M | XGE_HAL_RXXGXS_INT_M; - if (flag) { - - gim &= ~((u64) val64); - /* All XGXS block error interrupts are disabled for now - * TODO */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, &bar0->xgxs_int_mask); - - } else { /* flag == 0 */ - - /* Disable MC Intrs in the general intr mask register */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, &bar0->xgxs_int_mask); - - gim |= val64; - } - } - - /* Memory Controller(MC) interrupts */ - if (mask & XGE_HAL_MC_INTR) { - val64 = XGE_HAL_MC_INT_M; - if (flag) { - - gim &= ~((u64) val64); - - /* Enable all MC blocks error interrupts */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0ULL, &bar0->mc_int_mask); - - } else { /* flag == 0 */ - - /* Disable MC Intrs in the general intr mask - * register */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, &bar0->mc_int_mask); - - gim |= val64; - } - } - - - /* Tx traffic interrupts */ - if (mask & XGE_HAL_TX_TRAFFIC_INTR) { - val64 = XGE_HAL_TXTRAFFIC_INT_M; - if (flag) { - - gim &= ~((u64) val64); - - /* Enable all the Tx side interrupts */ - /* '0' Enables all 64 TX interrupt levels. */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0x0, - &bar0->tx_traffic_mask); - - } else { /* flag == 0 */ - - /* Disable Tx Traffic Intrs in the general intr mask - * register. */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, - &bar0->tx_traffic_mask); - gim |= val64; - } - } - - /* Rx traffic interrupts */ - if (mask & XGE_HAL_RX_TRAFFIC_INTR) { - val64 = XGE_HAL_RXTRAFFIC_INT_M; - if (flag) { - gim &= ~((u64) val64); - /* '0' Enables all 8 RX interrupt levels. */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0x0, - &bar0->rx_traffic_mask); - - } else { /* flag == 0 */ - - /* Disable Rx Traffic Intrs in the general intr mask - * register. - */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_ALL_INTRS_DIS, - &bar0->rx_traffic_mask); - - gim |= val64; - } - } - - /* Sched Timer interrupt */ - if (mask & XGE_HAL_SCHED_INTR) { - if (flag) { - temp64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->txpic_int_mask); - temp64 &= ~XGE_HAL_TXPIC_INT_SCHED_INTR; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - temp64, &bar0->txpic_int_mask); - - xge_hal_device_sched_timer(hldev, - hldev->config.sched_timer_us, - hldev->config.sched_timer_one_shot); - } else { - temp64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->txpic_int_mask); - temp64 |= XGE_HAL_TXPIC_INT_SCHED_INTR; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - temp64, &bar0->txpic_int_mask); - - xge_hal_device_sched_timer(hldev, - XGE_HAL_SCHED_TIMER_DISABLED, - XGE_HAL_SCHED_TIMER_ON_SHOT_ENABLE); - } - } - - if (gim != gim_saved) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, gim, - &bar0->general_int_mask); - xge_debug_device(XGE_TRACE, "general_int_mask updated " - XGE_OS_LLXFMT" => "XGE_OS_LLXFMT, - (unsigned long long)gim_saved, (unsigned long long)gim); - } -} - -/* - * __hal_device_bimodal_configure - * @hldev: HAL device handle. - * - * Bimodal parameters initialization. - */ -static void -__hal_device_bimodal_configure(xge_hal_device_t *hldev) -{ - int i; - - for (i=0; iconfig.ring.queue[i].configured) - continue; - rti = &hldev->config.ring.queue[i].rti; - tti = &hldev->bimodal_tti[i]; - - tti->enabled = 1; - tti->urange_a = hldev->bimodal_urange_a_en * 10; - tti->urange_b = 20; - tti->urange_c = 30; - tti->ufc_a = hldev->bimodal_urange_a_en * 8; - tti->ufc_b = 16; - tti->ufc_c = 32; - tti->ufc_d = 64; - tti->timer_val_us = hldev->bimodal_timer_val_us; - tti->timer_ac_en = 1; - tti->timer_ci_en = 0; - - rti->urange_a = 10; - rti->urange_b = 20; - rti->urange_c = 30; - rti->ufc_a = 1; /* <= for netpipe type of tests */ - rti->ufc_b = 4; - rti->ufc_c = 4; - rti->ufc_d = 4; /* <= 99% of a bandwidth traffic counts here */ - rti->timer_ac_en = 1; - rti->timer_val_us = 5; /* for optimal bus efficiency usage */ - } -} - -/* - * __hal_device_tti_apply - * @hldev: HAL device handle. - * - * apply TTI configuration. - */ -static xge_hal_status_e -__hal_device_tti_apply(xge_hal_device_t *hldev, xge_hal_tti_config_t *tti, - int num, int runtime) -{ - u64 val64, data1 = 0, data2 = 0; - xge_hal_pci_bar0_t *bar0; - - if (runtime) - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - else - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - if (tti->timer_val_us) { - unsigned int tx_interval; - - if (hldev->config.pci_freq_mherz) { - tx_interval = hldev->config.pci_freq_mherz * - tti->timer_val_us / 64; - tx_interval = - __hal_fix_time_ival_herc(hldev, - tx_interval); - } else { - tx_interval = tti->timer_val_us; - } - data1 |= XGE_HAL_TTI_DATA1_MEM_TX_TIMER_VAL(tx_interval); - if (tti->timer_ac_en) { - data1 |= XGE_HAL_TTI_DATA1_MEM_TX_TIMER_AC_EN; - } - if (tti->timer_ci_en) { - data1 |= XGE_HAL_TTI_DATA1_MEM_TX_TIMER_CI_EN; - } - - if (!runtime) { - xge_debug_device(XGE_TRACE, "TTI[%d] timer enabled to %d, ci %s", - num, tx_interval, tti->timer_ci_en ? - "enabled": "disabled"); - } - } - - if (tti->urange_a || - tti->urange_b || - tti->urange_c || - tti->ufc_a || - tti->ufc_b || - tti->ufc_c || - tti->ufc_d ) { - data1 |= XGE_HAL_TTI_DATA1_MEM_TX_URNG_A(tti->urange_a) | - XGE_HAL_TTI_DATA1_MEM_TX_URNG_B(tti->urange_b) | - XGE_HAL_TTI_DATA1_MEM_TX_URNG_C(tti->urange_c); - - data2 |= XGE_HAL_TTI_DATA2_MEM_TX_UFC_A(tti->ufc_a) | - XGE_HAL_TTI_DATA2_MEM_TX_UFC_B(tti->ufc_b) | - XGE_HAL_TTI_DATA2_MEM_TX_UFC_C(tti->ufc_c) | - XGE_HAL_TTI_DATA2_MEM_TX_UFC_D(tti->ufc_d); - } - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, data1, - &bar0->tti_data1_mem); - (void)xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->tti_data1_mem); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, data2, - &bar0->tti_data2_mem); - (void)xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->tti_data2_mem); - xge_os_wmb(); - - val64 = XGE_HAL_TTI_CMD_MEM_WE | XGE_HAL_TTI_CMD_MEM_STROBE_NEW_CMD | - XGE_HAL_TTI_CMD_MEM_OFFSET(num); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->tti_command_mem); - - if (!runtime && __hal_device_register_poll(hldev, &bar0->tti_command_mem, - 0, XGE_HAL_TTI_CMD_MEM_STROBE_NEW_CMD, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - /* upper layer may require to repeat */ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - if (!runtime) { - xge_debug_device(XGE_TRACE, "TTI[%d] configured: tti_data1_mem 0x" - XGE_OS_LLXFMT, num, - (unsigned long long)xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->tti_data1_mem)); - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_tti_configure - * @hldev: HAL device handle. - * - * TTI Initialization. - * Initialize Transmit Traffic Interrupt Scheme. - */ -static xge_hal_status_e -__hal_device_tti_configure(xge_hal_device_t *hldev, int runtime) -{ - int i; - - for (i=0; iconfig.fifo.queue[i].configured) - continue; - - for (j=0; jconfig.fifo.queue[i].tti[j].enabled) - continue; - - /* at least some TTI enabled. Record it. */ - hldev->tti_enabled = 1; - - status = __hal_device_tti_apply(hldev, - &hldev->config.fifo.queue[i].tti[j], - i * XGE_HAL_MAX_FIFO_TTI_NUM + j, runtime); - if (status != XGE_HAL_OK) - return status; - } - } - - /* processing bimodal TTIs */ - for (i=0; ibimodal_tti[i].enabled) - continue; - - /* at least some bimodal TTI enabled. Record it. */ - hldev->tti_enabled = 1; - - status = __hal_device_tti_apply(hldev, &hldev->bimodal_tti[i], - XGE_HAL_MAX_FIFO_TTI_RING_0 + i, runtime); - if (status != XGE_HAL_OK) - return status; - - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_rti_configure - * @hldev: HAL device handle. - * - * RTI Initialization. - * Initialize Receive Traffic Interrupt Scheme. - */ -xge_hal_status_e -__hal_device_rti_configure(xge_hal_device_t *hldev, int runtime) -{ - xge_hal_pci_bar0_t *bar0; - u64 val64, data1 = 0, data2 = 0; - int i; - - if (runtime) { - /* - * we don't want to re-configure RTI in case when - * bimodal interrupts are in use. Instead reconfigure TTI - * with new RTI values. - */ - if (hldev->config.bimodal_interrupts) { - __hal_device_bimodal_configure(hldev); - return __hal_device_tti_configure(hldev, 1); - } - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - } else - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - for (i=0; iconfig.ring.queue[i].rti; - - if (!hldev->config.ring.queue[i].configured) - continue; - - if (rti->timer_val_us) { - unsigned int rx_interval; - - if (hldev->config.pci_freq_mherz) { - rx_interval = hldev->config.pci_freq_mherz * - rti->timer_val_us / 8; - rx_interval = - __hal_fix_time_ival_herc(hldev, - rx_interval); - } else { - rx_interval = rti->timer_val_us; - } - data1 |=XGE_HAL_RTI_DATA1_MEM_RX_TIMER_VAL(rx_interval); - if (rti->timer_ac_en) { - data1 |= XGE_HAL_RTI_DATA1_MEM_RX_TIMER_AC_EN; - } - data1 |= XGE_HAL_RTI_DATA1_MEM_RX_TIMER_CI_EN; - } - - if (rti->urange_a || - rti->urange_b || - rti->urange_c || - rti->ufc_a || - rti->ufc_b || - rti->ufc_c || - rti->ufc_d) { - data1 |=XGE_HAL_RTI_DATA1_MEM_RX_URNG_A(rti->urange_a) | - XGE_HAL_RTI_DATA1_MEM_RX_URNG_B(rti->urange_b) | - XGE_HAL_RTI_DATA1_MEM_RX_URNG_C(rti->urange_c); - - data2 |= XGE_HAL_RTI_DATA2_MEM_RX_UFC_A(rti->ufc_a) | - XGE_HAL_RTI_DATA2_MEM_RX_UFC_B(rti->ufc_b) | - XGE_HAL_RTI_DATA2_MEM_RX_UFC_C(rti->ufc_c) | - XGE_HAL_RTI_DATA2_MEM_RX_UFC_D(rti->ufc_d); - } - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, data1, - &bar0->rti_data1_mem); - (void)xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->rti_data1_mem); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, data2, - &bar0->rti_data2_mem); - (void)xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->rti_data2_mem); - xge_os_wmb(); - - val64 = XGE_HAL_RTI_CMD_MEM_WE | - XGE_HAL_RTI_CMD_MEM_STROBE_NEW_CMD; - val64 |= XGE_HAL_RTI_CMD_MEM_OFFSET(i); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rti_command_mem); - - if (!runtime && __hal_device_register_poll(hldev, - &bar0->rti_command_mem, 0, - XGE_HAL_RTI_CMD_MEM_STROBE_NEW_CMD, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - /* upper layer may require to repeat */ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - if (!runtime) { - xge_debug_device(XGE_TRACE, - "RTI[%d] configured: rti_data1_mem 0x"XGE_OS_LLXFMT, - i, - (unsigned long long)xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->rti_data1_mem)); - } - } - - return XGE_HAL_OK; -} - - -/* Constants to be programmed into the Xena's registers to configure - * the XAUI. */ -static u64 default_xena_mdio_cfg[] = { - /* Reset PMA PLL */ - 0xC001010000000000ULL, 0xC0010100000000E0ULL, - 0xC0010100008000E4ULL, - /* Remove Reset from PMA PLL */ - 0xC001010000000000ULL, 0xC0010100000000E0ULL, - 0xC0010100000000E4ULL, - END_SIGN -}; - -static u64 default_herc_mdio_cfg[] = { - END_SIGN -}; - -static u64 default_xena_dtx_cfg[] = { - 0x8000051500000000ULL, 0x80000515000000E0ULL, - 0x80000515D93500E4ULL, 0x8001051500000000ULL, - 0x80010515000000E0ULL, 0x80010515001E00E4ULL, - 0x8002051500000000ULL, 0x80020515000000E0ULL, - 0x80020515F21000E4ULL, - /* Set PADLOOPBACKN */ - 0x8002051500000000ULL, 0x80020515000000E0ULL, - 0x80020515B20000E4ULL, 0x8003051500000000ULL, - 0x80030515000000E0ULL, 0x80030515B20000E4ULL, - 0x8004051500000000ULL, 0x80040515000000E0ULL, - 0x80040515B20000E4ULL, 0x8005051500000000ULL, - 0x80050515000000E0ULL, 0x80050515B20000E4ULL, - SWITCH_SIGN, - /* Remove PADLOOPBACKN */ - 0x8002051500000000ULL, 0x80020515000000E0ULL, - 0x80020515F20000E4ULL, 0x8003051500000000ULL, - 0x80030515000000E0ULL, 0x80030515F20000E4ULL, - 0x8004051500000000ULL, 0x80040515000000E0ULL, - 0x80040515F20000E4ULL, 0x8005051500000000ULL, - 0x80050515000000E0ULL, 0x80050515F20000E4ULL, - END_SIGN -}; - -/* -static u64 default_herc_dtx_cfg[] = { - 0x80000515BA750000ULL, 0x80000515BA7500E0ULL, - 0x80000515BA750004ULL, 0x80000515BA7500E4ULL, - 0x80010515003F0000ULL, 0x80010515003F00E0ULL, - 0x80010515003F0004ULL, 0x80010515003F00E4ULL, - 0x80020515F2100000ULL, 0x80020515F21000E0ULL, - 0x80020515F2100004ULL, 0x80020515F21000E4ULL, - END_SIGN -}; -*/ - -static u64 default_herc_dtx_cfg[] = { - 0x8000051536750000ULL, 0x80000515367500E0ULL, - 0x8000051536750004ULL, 0x80000515367500E4ULL, - - 0x80010515003F0000ULL, 0x80010515003F00E0ULL, - 0x80010515003F0004ULL, 0x80010515003F00E4ULL, - - 0x801205150D440000ULL, 0x801205150D4400E0ULL, - 0x801205150D440004ULL, 0x801205150D4400E4ULL, - - 0x80020515F2100000ULL, 0x80020515F21000E0ULL, - 0x80020515F2100004ULL, 0x80020515F21000E4ULL, - END_SIGN -}; - - -void -__hal_serial_mem_write64(xge_hal_device_t *hldev, u64 value, u64 *reg) -{ - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, - (u32)(value>>32), reg); - xge_os_wmb(); - __hal_pio_mem_write32_lower(hldev->pdev, hldev->regh0, - (u32)value, reg); - xge_os_wmb(); - xge_os_mdelay(1); -} - -u64 -__hal_serial_mem_read64(xge_hal_device_t *hldev, u64 *reg) -{ - u64 val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - reg); - xge_os_mdelay(1); - return val64; -} - -/* - * __hal_device_xaui_configure - * @hldev: HAL device handle. - * - * Configure XAUI Interface of Xena. - * - * To Configure the Xena's XAUI, one has to write a series - * of 64 bit values into two registers in a particular - * sequence. Hence a macro 'SWITCH_SIGN' has been defined - * which will be defined in the array of configuration values - * (default_dtx_cfg & default_mdio_cfg) at appropriate places - * to switch writing from one regsiter to another. We continue - * writing these values until we encounter the 'END_SIGN' macro. - * For example, After making a series of 21 writes into - * dtx_control register the 'SWITCH_SIGN' appears and hence we - * start writing into mdio_control until we encounter END_SIGN. - */ -static void -__hal_device_xaui_configure(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - int mdio_cnt = 0, dtx_cnt = 0; - u64 *default_dtx_cfg = NULL, *default_mdio_cfg = NULL; - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) { - default_dtx_cfg = default_xena_dtx_cfg; - default_mdio_cfg = default_xena_mdio_cfg; - } else if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - default_dtx_cfg = default_herc_dtx_cfg; - default_mdio_cfg = default_herc_mdio_cfg; - } else { - xge_assert(default_dtx_cfg); - return; - } - - do { - dtx_cfg: - while (default_dtx_cfg[dtx_cnt] != END_SIGN) { - if (default_dtx_cfg[dtx_cnt] == SWITCH_SIGN) { - dtx_cnt++; - goto mdio_cfg; - } - __hal_serial_mem_write64(hldev, default_dtx_cfg[dtx_cnt], - &bar0->dtx_control); - dtx_cnt++; - } - mdio_cfg: - while (default_mdio_cfg[mdio_cnt] != END_SIGN) { - if (default_mdio_cfg[mdio_cnt] == SWITCH_SIGN) { - mdio_cnt++; - goto dtx_cfg; - } - __hal_serial_mem_write64(hldev, default_mdio_cfg[mdio_cnt], - &bar0->mdio_control); - mdio_cnt++; - } - } while ( !((default_dtx_cfg[dtx_cnt] == END_SIGN) && - (default_mdio_cfg[mdio_cnt] == END_SIGN)) ); - - xge_debug_device(XGE_TRACE, "%s", "XAUI interface configured"); -} - -/* - * __hal_device_mac_link_util_set - * @hldev: HAL device handle. - * - * Set sampling rate to calculate link utilization. - */ -static void -__hal_device_mac_link_util_set(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - val64 = XGE_HAL_MAC_TX_LINK_UTIL_VAL( - hldev->config.mac.tmac_util_period) | - XGE_HAL_MAC_RX_LINK_UTIL_VAL( - hldev->config.mac.rmac_util_period); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mac_link_util); - xge_debug_device(XGE_TRACE, "%s", - "bandwidth link utilization configured"); -} - -/* - * __hal_device_set_swapper - * @hldev: HAL device handle. - * - * Set the Xframe's byte "swapper" in accordance with - * endianness of the host. - */ -xge_hal_status_e -__hal_device_set_swapper(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - /* - * from 32bit errarta: - * - * The SWAPPER_CONTROL register determines how the adapter accesses - * host memory as well as how it responds to read and write requests - * from the host system. Writes to this register should be performed - * carefully, since the byte swappers could reverse the order of bytes. - * When configuring this register keep in mind that writes to the PIF - * read and write swappers could reverse the order of the upper and - * lower 32-bit words. This means that the driver may have to write - * to the upper 32 bits of the SWAPPER_CONTROL twice in order to - * configure the entire register. */ - - /* - * The device by default set to a big endian format, so a big endian - * driver need not set anything. - */ - -#if defined(XGE_HAL_CUSTOM_HW_SWAPPER) - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0xffffffffffffffffULL, &bar0->swapper_ctrl); - - val64 = XGE_HAL_CUSTOM_HW_SWAPPER; - - xge_os_wmb(); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->swapper_ctrl); - - xge_debug_device(XGE_TRACE, "using custom HW swapper 0x"XGE_OS_LLXFMT, - (unsigned long long)val64); - -#elif !defined(XGE_OS_HOST_BIG_ENDIAN) - - /* - * Initially we enable all bits to make it accessible by the driver, - * then we selectively enable only those bits that we want to set. - * i.e. force swapper to swap for the first time since second write - * will overwrite with the final settings. - * - * Use only for little endian platforms. - */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0xffffffffffffffffULL, &bar0->swapper_ctrl); - xge_os_wmb(); - val64 = (XGE_HAL_SWAPPER_CTRL_PIF_R_FE | - XGE_HAL_SWAPPER_CTRL_PIF_R_SE | - XGE_HAL_SWAPPER_CTRL_PIF_W_FE | - XGE_HAL_SWAPPER_CTRL_PIF_W_SE | - XGE_HAL_SWAPPER_CTRL_RTH_FE | - XGE_HAL_SWAPPER_CTRL_RTH_SE | - XGE_HAL_SWAPPER_CTRL_TXP_FE | - XGE_HAL_SWAPPER_CTRL_TXP_SE | - XGE_HAL_SWAPPER_CTRL_TXD_R_FE | - XGE_HAL_SWAPPER_CTRL_TXD_R_SE | - XGE_HAL_SWAPPER_CTRL_TXD_W_FE | - XGE_HAL_SWAPPER_CTRL_TXD_W_SE | - XGE_HAL_SWAPPER_CTRL_TXF_R_FE | - XGE_HAL_SWAPPER_CTRL_RXD_R_FE | - XGE_HAL_SWAPPER_CTRL_RXD_R_SE | - XGE_HAL_SWAPPER_CTRL_RXD_W_FE | - XGE_HAL_SWAPPER_CTRL_RXD_W_SE | - XGE_HAL_SWAPPER_CTRL_RXF_W_FE | - XGE_HAL_SWAPPER_CTRL_XMSI_FE | - XGE_HAL_SWAPPER_CTRL_STATS_FE | XGE_HAL_SWAPPER_CTRL_STATS_SE); - - /* - if (hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSIX) { - val64 |= XGE_HAL_SWAPPER_CTRL_XMSI_SE; - } */ - __hal_pio_mem_write32_lower(hldev->pdev, hldev->regh0, (u32)val64, - &bar0->swapper_ctrl); - xge_os_wmb(); - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, (u32)(val64>>32), - &bar0->swapper_ctrl); - xge_os_wmb(); - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, (u32)(val64>>32), - &bar0->swapper_ctrl); - xge_debug_device(XGE_TRACE, "%s", "using little endian set"); -#endif - - /* Verifying if endian settings are accurate by reading a feedback - * register. */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->pif_rd_swapper_fb); - if (val64 != XGE_HAL_IF_RD_SWAPPER_FB) { - xge_debug_device(XGE_ERR, "pif_rd_swapper_fb read "XGE_OS_LLXFMT, - (unsigned long long) val64); - return XGE_HAL_ERR_SWAPPER_CTRL; - } - - xge_debug_device(XGE_TRACE, "%s", "be/le swapper enabled"); - - return XGE_HAL_OK; -} - -/* - * __hal_device_rts_mac_configure - Configure RTS steering based on - * destination mac address. - * @hldev: HAL device handle. - * - */ -xge_hal_status_e -__hal_device_rts_mac_configure(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - if (!hldev->config.rts_mac_en) { - return XGE_HAL_OK; - } - - /* - * Set the receive traffic steering mode from default(classic) - * to enhanced. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_ctrl); - val64 |= XGE_HAL_RTS_CTRL_ENHANCED_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rts_ctrl); - return XGE_HAL_OK; -} - -/* - * __hal_device_rts_port_configure - Configure RTS steering based on - * destination or source port number. - * @hldev: HAL device handle. - * - */ -xge_hal_status_e -__hal_device_rts_port_configure(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - int rnum; - - if (!hldev->config.rts_port_en) { - return XGE_HAL_OK; - } - - /* - * Set the receive traffic steering mode from default(classic) - * to enhanced. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_ctrl); - val64 |= XGE_HAL_RTS_CTRL_ENHANCED_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rts_ctrl); - - /* - * Initiate port steering according to per-ring configuration - */ - for (rnum = 0; rnum < XGE_HAL_MAX_RING_NUM; rnum++) { - int pnum; - xge_hal_ring_queue_t *queue = &hldev->config.ring.queue[rnum]; - - if (!queue->configured || queue->rts_port_en) - continue; - - for (pnum = 0; pnum < XGE_HAL_MAX_STEERABLE_PORTS; pnum++) { - xge_hal_rts_port_t *port = &queue->rts_ports[pnum]; - - /* - * Skip and clear empty ports - */ - if (!port->num) { - /* - * Clear CAM memory - */ - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, 0ULL, - &bar0->rts_pn_cam_data); - - val64 = BIT(7) | BIT(15); - } else { - /* - * Assign new Port values according - * to configuration - */ - val64 = vBIT(port->num,8,16) | - vBIT(rnum,37,3) | BIT(63); - if (port->src) - val64 = BIT(47); - if (!port->udp) - val64 = BIT(7); - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, val64, - &bar0->rts_pn_cam_data); - - val64 = BIT(7) | BIT(15) | vBIT(pnum,24,8); - } - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rts_pn_cam_ctrl); - - /* poll until done */ - if (__hal_device_register_poll(hldev, - &bar0->rts_pn_cam_ctrl, 0, - XGE_HAL_RTS_PN_CAM_CTRL_STROBE_BEING_EXECUTED, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != - XGE_HAL_OK) { - /* upper layer may require to repeat */ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - } - } - return XGE_HAL_OK; -} - -/* - * __hal_device_rts_qos_configure - Configure RTS steering based on - * qos. - * @hldev: HAL device handle. - * - */ -xge_hal_status_e -__hal_device_rts_qos_configure(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - int j, rx_ring_num; - - if (!hldev->config.rts_qos_en) { - return XGE_HAL_OK; - } - - /* First clear the RTS_DS_MEM_DATA */ - val64 = 0; - for (j = 0; j < 64; j++ ) - { - /* First clear the value */ - val64 = XGE_HAL_RTS_DS_MEM_DATA(0); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_ds_mem_data); - - val64 = XGE_HAL_RTS_DS_MEM_CTRL_WE | - XGE_HAL_RTS_DS_MEM_CTRL_STROBE_NEW_CMD | - XGE_HAL_RTS_DS_MEM_CTRL_OFFSET ( j ); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_ds_mem_ctrl); - - - /* poll until done */ - if (__hal_device_register_poll(hldev, - &bar0->rts_ds_mem_ctrl, 0, - XGE_HAL_RTS_DS_MEM_CTRL_STROBE_CMD_BEING_EXECUTED, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - /* upper layer may require to repeat */ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - } - - rx_ring_num = 0; - for (j = 0; j < XGE_HAL_MAX_RING_NUM; j++) { - if (hldev->config.ring.queue[j].configured) - rx_ring_num++; - } - - switch (rx_ring_num) { - case 1: - val64 = 0x0; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_0); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_1); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_2); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_3); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_4); - break; - case 2: - val64 = 0x0001000100010001ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_0); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_1); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_2); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_3); - val64 = 0x0001000100000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_4); - break; - case 3: - val64 = 0x0001020001020001ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_0); - val64 = 0x0200010200010200ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_1); - val64 = 0x0102000102000102ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_2); - val64 = 0x0001020001020001ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_3); - val64 = 0x0200010200000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_4); - break; - case 4: - val64 = 0x0001020300010203ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_0); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_1); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_2); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_3); - val64 = 0x0001020300000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_4); - break; - case 5: - val64 = 0x0001020304000102ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_0); - val64 = 0x0304000102030400ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_1); - val64 = 0x0102030400010203ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_2); - val64 = 0x0400010203040001ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_3); - val64 = 0x0203040000000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_4); - break; - case 6: - val64 = 0x0001020304050001ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_0); - val64 = 0x0203040500010203ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_1); - val64 = 0x0405000102030405ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_2); - val64 = 0x0001020304050001ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_3); - val64 = 0x0203040500000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_4); - break; - case 7: - val64 = 0x0001020304050600ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_0); - val64 = 0x0102030405060001ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_1); - val64 = 0x0203040506000102ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_2); - val64 = 0x0304050600010203ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_3); - val64 = 0x0405060000000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_4); - break; - case 8: - val64 = 0x0001020304050607ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_0); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_1); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_2); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_3); - val64 = 0x0001020300000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, &bar0->rx_w_round_robin_4); - break; - } - - return XGE_HAL_OK; -} - -/* - * xge__hal_device_rts_mac_enable - * - * @devh: HAL device handle. - * @index: index number where the MAC addr will be stored - * @macaddr: MAC address - * - * - Enable RTS steering for the given MAC address. This function has to be - * called with lock acquired. - * - * NOTE: - * 1. ULD has to call this function with the index value which - * statisfies the following condition: - * ring_num = (index % 8) - * 2.ULD also needs to make sure that the index is not - * occupied by any MAC address. If that index has any MAC address - * it will be overwritten and HAL will not check for it. - * - */ -xge_hal_status_e -xge_hal_device_rts_mac_enable(xge_hal_device_h devh, int index, macaddr_t macaddr) -{ - int max_addr = XGE_HAL_MAX_MAC_ADDRESSES; - xge_hal_status_e status; - - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) - max_addr = XGE_HAL_MAX_MAC_ADDRESSES_HERC; - - if ( index >= max_addr ) - return XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES; - - /* - * Set the MAC address at the given location marked by index. - */ - status = xge_hal_device_macaddr_set(hldev, index, macaddr); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, "%s", - "Not able to set the mac addr"); - return status; - } - - return xge_hal_device_rts_section_enable(hldev, index); -} - -/* - * xge__hal_device_rts_mac_disable - * @hldev: HAL device handle. - * @index: index number where to disable the MAC addr - * - * Disable RTS Steering based on the MAC address. - * This function should be called with lock acquired. - * - */ -xge_hal_status_e -xge_hal_device_rts_mac_disable(xge_hal_device_h devh, int index) -{ - xge_hal_status_e status; - u8 macaddr[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; - int max_addr = XGE_HAL_MAX_MAC_ADDRESSES; - - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - xge_debug_ll(XGE_TRACE, "the index value is %d ", index); - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) - max_addr = XGE_HAL_MAX_MAC_ADDRESSES_HERC; - - if ( index >= max_addr ) - return XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES; - - /* - * Disable MAC address @ given index location - */ - status = xge_hal_device_macaddr_set(hldev, index, macaddr); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, "%s", - "Not able to set the mac addr"); - return status; - } - - return XGE_HAL_OK; -} - - -/* - * __hal_device_rth_configure - Configure RTH for the device - * @hldev: HAL device handle. - * - * Using IT (Indirection Table). - */ -xge_hal_status_e -__hal_device_rth_it_configure(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - int rings[XGE_HAL_MAX_RING_NUM]={0}; - int rnum; - int rmax; - int buckets_num; - int bucket; - - if (!hldev->config.rth_en) { - return XGE_HAL_OK; - } - - /* - * Set the receive traffic steering mode from default(classic) - * to enhanced. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_ctrl); - val64 |= XGE_HAL_RTS_CTRL_ENHANCED_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rts_ctrl); - - buckets_num = (1 << hldev->config.rth_bucket_size); - - rmax=0; - for (rnum = 0; rnum < XGE_HAL_MAX_RING_NUM; rnum++) { - if (hldev->config.ring.queue[rnum].configured && - hldev->config.ring.queue[rnum].rth_en) - rings[rmax++] = rnum; - } - - rnum = 0; - /* for starters: fill in all the buckets with rings "equally" */ - for (bucket = 0; bucket < buckets_num; bucket++) { - - if (rnum == rmax) - rnum = 0; - - /* write data */ - val64 = XGE_HAL_RTS_RTH_MAP_MEM_DATA_ENTRY_EN | - XGE_HAL_RTS_RTH_MAP_MEM_DATA(rings[rnum]); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_map_mem_data); - - /* execute */ - val64 = XGE_HAL_RTS_RTH_MAP_MEM_CTRL_WE | - XGE_HAL_RTS_RTH_MAP_MEM_CTRL_STROBE | - XGE_HAL_RTS_RTH_MAP_MEM_CTRL_OFFSET(bucket); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_map_mem_ctrl); - - /* poll until done */ - if (__hal_device_register_poll(hldev, - &bar0->rts_rth_map_mem_ctrl, 0, - XGE_HAL_RTS_RTH_MAP_MEM_CTRL_STROBE, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - rnum++; - } - - val64 = XGE_HAL_RTS_RTH_EN; - val64 |= XGE_HAL_RTS_RTH_BUCKET_SIZE(hldev->config.rth_bucket_size); - val64 |= XGE_HAL_RTS_RTH_TCP_IPV4_EN | XGE_HAL_RTS_RTH_UDP_IPV4_EN | XGE_HAL_RTS_RTH_IPV4_EN | - XGE_HAL_RTS_RTH_TCP_IPV6_EN |XGE_HAL_RTS_RTH_UDP_IPV6_EN | XGE_HAL_RTS_RTH_IPV6_EN | - XGE_HAL_RTS_RTH_TCP_IPV6_EX_EN | XGE_HAL_RTS_RTH_UDP_IPV6_EX_EN | XGE_HAL_RTS_RTH_IPV6_EX_EN; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_cfg); - - xge_debug_device(XGE_TRACE, "RTH configured, bucket_size %d", - hldev->config.rth_bucket_size); - - return XGE_HAL_OK; -} - - -/* - * __hal_spdm_entry_add - Add a new entry to the SPDM table. - * - * Add a new entry to the SPDM table - * - * This function add a new entry to the SPDM table. - * - * Note: - * This function should be called with spdm_lock. - * - * See also: xge_hal_spdm_entry_add , xge_hal_spdm_entry_remove. - */ -static xge_hal_status_e -__hal_spdm_entry_add(xge_hal_device_t *hldev, xge_hal_ipaddr_t *src_ip, - xge_hal_ipaddr_t *dst_ip, u16 l4_sp, u16 l4_dp, u8 is_tcp, - u8 is_ipv4, u8 tgt_queue, u32 jhash_value, u16 spdm_entry) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - u64 spdm_line_arr[8]; - u8 line_no; - - /* - * Clear the SPDM READY bit - */ - val64 = XGE_HAL_RX_PIC_INT_REG_SPDM_READY; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rxpic_int_reg); - - xge_debug_device(XGE_TRACE, - "L4 SP %x:DP %x: hash %x tgt_queue %d ", - l4_sp, l4_dp, jhash_value, tgt_queue); - - xge_os_memzero(&spdm_line_arr, sizeof(spdm_line_arr)); - - /* - * Construct the SPDM entry. - */ - spdm_line_arr[0] = vBIT(l4_sp,0,16) | - vBIT(l4_dp,16,32) | - vBIT(tgt_queue,53,3) | - vBIT(is_tcp,59,1) | - vBIT(is_ipv4,63,1); - - - if (is_ipv4) { - spdm_line_arr[1] = vBIT(src_ip->ipv4.addr,0,32) | - vBIT(dst_ip->ipv4.addr,32,32); - - } else { - xge_os_memcpy(&spdm_line_arr[1], &src_ip->ipv6.addr[0], 8); - xge_os_memcpy(&spdm_line_arr[2], &src_ip->ipv6.addr[1], 8); - xge_os_memcpy(&spdm_line_arr[3], &dst_ip->ipv6.addr[0], 8); - xge_os_memcpy(&spdm_line_arr[4], &dst_ip->ipv6.addr[1], 8); - } - - spdm_line_arr[7] = vBIT(jhash_value,0,32) | - BIT(63); /* entry enable bit */ - - /* - * Add the entry to the SPDM table - */ - for(line_no = 0; line_no < 8; line_no++) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - spdm_line_arr[line_no], - (void *)((char *)hldev->spdm_mem_base + - (spdm_entry * 64) + - (line_no * 8))); - } - - /* - * Wait for the operation to be completed. - */ - if (__hal_device_register_poll(hldev, &bar0->rxpic_int_reg, 1, - XGE_HAL_RX_PIC_INT_REG_SPDM_READY, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - /* - * Add this information to a local SPDM table. The purpose of - * maintaining a local SPDM table is to avoid a search in the - * adapter SPDM table for spdm entry lookup which is very costly - * in terms of time. - */ - hldev->spdm_table[spdm_entry]->in_use = 1; - xge_os_memcpy(&hldev->spdm_table[spdm_entry]->src_ip, src_ip, - sizeof(xge_hal_ipaddr_t)); - xge_os_memcpy(&hldev->spdm_table[spdm_entry]->dst_ip, dst_ip, - sizeof(xge_hal_ipaddr_t)); - hldev->spdm_table[spdm_entry]->l4_sp = l4_sp; - hldev->spdm_table[spdm_entry]->l4_dp = l4_dp; - hldev->spdm_table[spdm_entry]->is_tcp = is_tcp; - hldev->spdm_table[spdm_entry]->is_ipv4 = is_ipv4; - hldev->spdm_table[spdm_entry]->tgt_queue = tgt_queue; - hldev->spdm_table[spdm_entry]->jhash_value = jhash_value; - hldev->spdm_table[spdm_entry]->spdm_entry = spdm_entry; - - return XGE_HAL_OK; -} - -/* - * __hal_device_rth_spdm_configure - Configure RTH for the device - * @hldev: HAL device handle. - * - * Using SPDM (Socket-Pair Direct Match). - */ -xge_hal_status_e -__hal_device_rth_spdm_configure(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - u8 spdm_bar_num; - u32 spdm_bar_offset; - int spdm_table_size; - int i; - - if (!hldev->config.rth_spdm_en) { - return XGE_HAL_OK; - } - - /* - * Retrieve the base address of SPDM Table. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->spdm_bir_offset); - - spdm_bar_num = XGE_HAL_SPDM_PCI_BAR_NUM(val64); - spdm_bar_offset = XGE_HAL_SPDM_PCI_BAR_OFFSET(val64); - - - /* - * spdm_bar_num specifies the PCI bar num register used to - * address the memory space. spdm_bar_offset specifies the offset - * of the SPDM memory with in the bar num memory space. - */ - switch (spdm_bar_num) { - case 0: - { - hldev->spdm_mem_base = (char *)bar0 + - (spdm_bar_offset * 8); - break; - } - case 1: - { - char *bar1 = (char *)hldev->bar1; - hldev->spdm_mem_base = bar1 + (spdm_bar_offset * 8); - break; - } - default: - xge_assert(((spdm_bar_num != 0) && (spdm_bar_num != 1))); - } - - /* - * Retrieve the size of SPDM table(number of entries). - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->spdm_structure); - hldev->spdm_max_entries = XGE_HAL_SPDM_MAX_ENTRIES(val64); - - - spdm_table_size = hldev->spdm_max_entries * - sizeof(xge_hal_spdm_entry_t); - if (hldev->spdm_table == NULL) { - void *mem; - - /* - * Allocate memory to hold the copy of SPDM table. - */ - if ((hldev->spdm_table = (xge_hal_spdm_entry_t **) - xge_os_malloc( - hldev->pdev, - (sizeof(xge_hal_spdm_entry_t *) * - hldev->spdm_max_entries))) == NULL) { - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - if ((mem = xge_os_malloc(hldev->pdev, spdm_table_size)) == NULL) - { - xge_os_free(hldev->pdev, hldev->spdm_table, - (sizeof(xge_hal_spdm_entry_t *) * - hldev->spdm_max_entries)); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - xge_os_memzero(mem, spdm_table_size); - for (i = 0; i < hldev->spdm_max_entries; i++) { - hldev->spdm_table[i] = (xge_hal_spdm_entry_t *) - ((char *)mem + - i * sizeof(xge_hal_spdm_entry_t)); - } - xge_os_spin_lock_init(&hldev->spdm_lock, hldev->pdev); - } else { - /* - * We are here because the host driver tries to - * do a soft reset on the device. - * Since the device soft reset clears the SPDM table, copy - * the entries from the local SPDM table to the actual one. - */ - xge_os_spin_lock(&hldev->spdm_lock); - for (i = 0; i < hldev->spdm_max_entries; i++) { - xge_hal_spdm_entry_t *spdm_entry = hldev->spdm_table[i]; - - if (spdm_entry->in_use) { - if (__hal_spdm_entry_add(hldev, - &spdm_entry->src_ip, - &spdm_entry->dst_ip, - spdm_entry->l4_sp, - spdm_entry->l4_dp, - spdm_entry->is_tcp, - spdm_entry->is_ipv4, - spdm_entry->tgt_queue, - spdm_entry->jhash_value, - spdm_entry->spdm_entry) - != XGE_HAL_OK) { - /* Log an warning */ - xge_debug_device(XGE_ERR, - "SPDM table update from local" - " memory failed"); - } - } - } - xge_os_spin_unlock(&hldev->spdm_lock); - } - - /* - * Set the receive traffic steering mode from default(classic) - * to enhanced. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->rts_ctrl); - val64 |= XGE_HAL_RTS_CTRL_ENHANCED_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rts_ctrl); - - /* - * We may not need to configure rts_rth_jhash_cfg register as the - * default values are good enough to calculate the hash. - */ - - /* - * As of now, set all the rth mask registers to zero. TODO. - */ - for(i = 0; i < 5; i++) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0, &bar0->rts_rth_hash_mask[i]); - } - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0, &bar0->rts_rth_hash_mask_5); - - if (hldev->config.rth_spdm_use_l4) { - val64 = XGE_HAL_RTH_STATUS_SPDM_USE_L4; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rts_rth_status); - } - - val64 = XGE_HAL_RTS_RTH_EN; - val64 |= XGE_HAL_RTS_RTH_IPV4_EN | XGE_HAL_RTS_RTH_TCP_IPV4_EN; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_cfg); - - - return XGE_HAL_OK; -} - -/* - * __hal_device_pci_init - * @hldev: HAL device handle. - * - * Initialize certain PCI/PCI-X configuration registers - * with recommended values. Save config space for future hw resets. - */ -static void -__hal_device_pci_init(xge_hal_device_t *hldev) -{ - int i, pcisize = 0; - u16 cmd = 0; - u8 val; - - /* Store PCI device ID and revision for future references where in we - * decide Xena revision using PCI sub system ID */ - xge_os_pci_read16(hldev->pdev,hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, device_id), - &hldev->device_id); - xge_os_pci_read8(hldev->pdev,hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, revision), - &hldev->revision); - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) - pcisize = XGE_HAL_PCISIZE_HERC; - else if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) - pcisize = XGE_HAL_PCISIZE_XENA; - - /* save original PCI config space to restore it on device_terminate() */ - for (i = 0; i < pcisize; i++) { - xge_os_pci_read32(hldev->pdev, hldev->cfgh, i*4, - (u32*)&hldev->pci_config_space_bios + i); - } - - /* Set the PErr Repconse bit and SERR in PCI command register. */ - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, command), &cmd); - cmd |= 0x140; - xge_os_pci_write16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, command), cmd); - - /* Set user spcecified value for the PCI Latency Timer */ - if (hldev->config.latency_timer && - hldev->config.latency_timer != XGE_HAL_USE_BIOS_DEFAULT_LATENCY) { - xge_os_pci_write8(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, - latency_timer), - (u8)hldev->config.latency_timer); - } - /* Read back latency timer to reflect it into user level */ - xge_os_pci_read8(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, latency_timer), &val); - hldev->config.latency_timer = val; - - /* Enable Data Parity Error Recovery in PCI-X command register. */ - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_command), &cmd); - cmd |= 1; - xge_os_pci_write16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_command), cmd); - - /* Set MMRB count in PCI-X command register. */ - if (hldev->config.mmrb_count != XGE_HAL_DEFAULT_BIOS_MMRB_COUNT) { - cmd &= 0xFFF3; - cmd |= hldev->config.mmrb_count << 2; - xge_os_pci_write16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_command), - cmd); - } - /* Read back MMRB count to reflect it into user level */ - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_command), - &cmd); - cmd &= 0x000C; - hldev->config.mmrb_count = cmd>>2; - - /* Setting Maximum outstanding splits based on system type. */ - if (hldev->config.max_splits_trans != XGE_HAL_USE_BIOS_DEFAULT_SPLITS) { - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_command), - &cmd); - cmd &= 0xFF8F; - cmd |= hldev->config.max_splits_trans << 4; - xge_os_pci_write16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_command), - cmd); - } - - /* Read back max split trans to reflect it into user level */ - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_command), &cmd); - cmd &= 0x0070; - hldev->config.max_splits_trans = cmd>>4; - - /* Forcibly disabling relaxed ordering capability of the card. */ - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_command), &cmd); - cmd &= 0xFFFD; - xge_os_pci_write16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_command), cmd); - - /* save PCI config space for future resets */ - for (i = 0; i < pcisize; i++) { - xge_os_pci_read32(hldev->pdev, hldev->cfgh, i*4, - (u32*)&hldev->pci_config_space + i); - } -} - -/* - * __hal_device_pci_info_get - Get PCI bus informations such as width, frequency - * and mode. - * @devh: HAL device handle. - * @pci_mode: pointer to a variable of enumerated type - * xge_hal_pci_mode_e{}. - * @bus_frequency: pointer to a variable of enumerated type - * xge_hal_pci_bus_frequency_e{}. - * @bus_width: pointer to a variable of enumerated type - * xge_hal_pci_bus_width_e{}. - * - * Get pci mode, frequency, and PCI bus width. - * - * Returns: one of the xge_hal_status_e{} enumerated types. - * XGE_HAL_OK - for success. - * XGE_HAL_ERR_INVALID_PCI_INFO - for invalid PCI information from the card. - * XGE_HAL_ERR_BAD_DEVICE_ID - for invalid card. - * - * See Also: xge_hal_pci_mode_e, xge_hal_pci_mode_e, xge_hal_pci_width_e. - */ -static xge_hal_status_e -__hal_device_pci_info_get(xge_hal_device_h devh, xge_hal_pci_mode_e *pci_mode, - xge_hal_pci_bus_frequency_e *bus_frequency, - xge_hal_pci_bus_width_e *bus_width) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_status_e rc_status = XGE_HAL_OK; - xge_hal_card_e card_id = xge_hal_device_check_id (devh); - -#ifdef XGE_HAL_HERC_EMULATION - hldev->config.pci_freq_mherz = - XGE_HAL_PCI_BUS_FREQUENCY_66MHZ; - *bus_frequency = - XGE_HAL_PCI_BUS_FREQUENCY_66MHZ; - *pci_mode = XGE_HAL_PCI_66MHZ_MODE; -#else - if (card_id == XGE_HAL_CARD_HERC) { - xge_hal_pci_bar0_t *bar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 pci_info = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->pci_info); - if (XGE_HAL_PCI_32_BIT & pci_info) - *bus_width = XGE_HAL_PCI_BUS_WIDTH_32BIT; - else - *bus_width = XGE_HAL_PCI_BUS_WIDTH_64BIT; - switch((pci_info & XGE_HAL_PCI_INFO)>>60) - { - case XGE_HAL_PCI_33MHZ_MODE: - *bus_frequency = - XGE_HAL_PCI_BUS_FREQUENCY_33MHZ; - *pci_mode = XGE_HAL_PCI_33MHZ_MODE; - break; - case XGE_HAL_PCI_66MHZ_MODE: - *bus_frequency = - XGE_HAL_PCI_BUS_FREQUENCY_66MHZ; - *pci_mode = XGE_HAL_PCI_66MHZ_MODE; - break; - case XGE_HAL_PCIX_M1_66MHZ_MODE: - *bus_frequency = - XGE_HAL_PCI_BUS_FREQUENCY_66MHZ; - *pci_mode = XGE_HAL_PCIX_M1_66MHZ_MODE; - break; - case XGE_HAL_PCIX_M1_100MHZ_MODE: - *bus_frequency = - XGE_HAL_PCI_BUS_FREQUENCY_100MHZ; - *pci_mode = XGE_HAL_PCIX_M1_100MHZ_MODE; - break; - case XGE_HAL_PCIX_M1_133MHZ_MODE: - *bus_frequency = - XGE_HAL_PCI_BUS_FREQUENCY_133MHZ; - *pci_mode = XGE_HAL_PCIX_M1_133MHZ_MODE; - break; - case XGE_HAL_PCIX_M2_66MHZ_MODE: - *bus_frequency = - XGE_HAL_PCI_BUS_FREQUENCY_133MHZ; - *pci_mode = XGE_HAL_PCIX_M2_66MHZ_MODE; - break; - case XGE_HAL_PCIX_M2_100MHZ_MODE: - *bus_frequency = - XGE_HAL_PCI_BUS_FREQUENCY_200MHZ; - *pci_mode = XGE_HAL_PCIX_M2_100MHZ_MODE; - break; - case XGE_HAL_PCIX_M2_133MHZ_MODE: - *bus_frequency = - XGE_HAL_PCI_BUS_FREQUENCY_266MHZ; - *pci_mode = XGE_HAL_PCIX_M2_133MHZ_MODE; - break; - case XGE_HAL_PCIX_M1_RESERVED: - case XGE_HAL_PCIX_M1_66MHZ_NS: - case XGE_HAL_PCIX_M1_100MHZ_NS: - case XGE_HAL_PCIX_M1_133MHZ_NS: - case XGE_HAL_PCIX_M2_RESERVED: - case XGE_HAL_PCIX_533_RESERVED: - default: - rc_status = XGE_HAL_ERR_INVALID_PCI_INFO; - xge_debug_device(XGE_ERR, - "invalid pci info "XGE_OS_LLXFMT, - (unsigned long long)pci_info); - break; - } - if (rc_status != XGE_HAL_ERR_INVALID_PCI_INFO) - xge_debug_device(XGE_TRACE, "PCI info: mode %d width " - "%d frequency %d", *pci_mode, *bus_width, - *bus_frequency); - if (hldev->config.pci_freq_mherz == - XGE_HAL_DEFAULT_USE_HARDCODE) { - hldev->config.pci_freq_mherz = *bus_frequency; - } - } - /* for XENA, we report PCI mode, only. PCI bus frequency, and bus width - * are set to unknown */ - else if (card_id == XGE_HAL_CARD_XENA) { - u32 pcix_status; - u8 dev_num, bus_num; - /* initialize defaults for XENA */ - *bus_frequency = XGE_HAL_PCI_BUS_FREQUENCY_UNKNOWN; - *bus_width = XGE_HAL_PCI_BUS_WIDTH_UNKNOWN; - xge_os_pci_read32(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, pcix_status), - &pcix_status); - dev_num = (u8)((pcix_status & 0xF8) >> 3); - bus_num = (u8)((pcix_status & 0xFF00) >> 8); - if (dev_num == 0 && bus_num == 0) - *pci_mode = XGE_HAL_PCI_BASIC_MODE; - else - *pci_mode = XGE_HAL_PCIX_BASIC_MODE; - xge_debug_device(XGE_TRACE, "PCI info: mode %d", *pci_mode); - if (hldev->config.pci_freq_mherz == - XGE_HAL_DEFAULT_USE_HARDCODE) { - /* - * There is no way to detect BUS frequency on Xena, - * so, in case of automatic configuration we hopelessly - * assume 133MHZ. - */ - hldev->config.pci_freq_mherz = - XGE_HAL_PCI_BUS_FREQUENCY_133MHZ; - } - } else if (card_id == XGE_HAL_CARD_TITAN) { - *bus_width = XGE_HAL_PCI_BUS_WIDTH_64BIT; - *bus_frequency = XGE_HAL_PCI_BUS_FREQUENCY_250MHZ; - if (hldev->config.pci_freq_mherz == - XGE_HAL_DEFAULT_USE_HARDCODE) { - hldev->config.pci_freq_mherz = *bus_frequency; - } - } else{ - rc_status = XGE_HAL_ERR_BAD_DEVICE_ID; - xge_debug_device(XGE_ERR, "invalid device id %d", card_id); - } -#endif - - return rc_status; -} - -/* - * __hal_device_handle_link_up_ind - * @hldev: HAL device handle. - * - * Link up indication handler. The function is invoked by HAL when - * Xframe indicates that the link is up for programmable amount of time. - */ -static int -__hal_device_handle_link_up_ind(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - /* - * If the previous link state is not down, return. - */ - if (hldev->link_state == XGE_HAL_LINK_UP) { -#ifdef XGE_HAL_PROCESS_LINK_INT_IN_ISR - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC){ - val64 = xge_os_pio_mem_read64( - hldev->pdev, hldev->regh0, - &bar0->misc_int_mask); - val64 |= XGE_HAL_MISC_INT_REG_LINK_UP_INT; - val64 &= ~XGE_HAL_MISC_INT_REG_LINK_DOWN_INT; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->misc_int_mask); - } -#endif - xge_debug_device(XGE_TRACE, - "link up indication while link is up, ignoring.."); - return 0; - } - - /* Now re-enable it as due to noise, hardware turned it off */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 |= XGE_HAL_ADAPTER_CNTL_EN; - val64 = val64 & (~XGE_HAL_ADAPTER_ECC_EN); /* ECC enable */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - - /* Turn on the Laser */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 = val64|(XGE_HAL_ADAPTER_EOI_TX_ON | - XGE_HAL_ADAPTER_LED_ON); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - -#ifdef XGE_HAL_PROCESS_LINK_INT_IN_ISR - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_status); - if (val64 & (XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT | - XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT)) { - xge_debug_device(XGE_TRACE, "%s", - "fail to transition link to up..."); - return 0; - } - else { - /* - * Mask the Link Up interrupt and unmask the Link Down - * interrupt. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->misc_int_mask); - val64 |= XGE_HAL_MISC_INT_REG_LINK_UP_INT; - val64 &= ~XGE_HAL_MISC_INT_REG_LINK_DOWN_INT; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->misc_int_mask); - xge_debug_device(XGE_TRACE, "calling link up.."); - hldev->link_state = XGE_HAL_LINK_UP; - - /* notify ULD */ - if (g_xge_hal_driver->uld_callbacks.link_up) { - g_xge_hal_driver->uld_callbacks.link_up( - hldev->upper_layer_info); - } - return 1; - } - } -#endif - xge_os_mdelay(1); - if (__hal_device_register_poll(hldev, &bar0->adapter_status, 0, - (XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT | - XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT), - XGE_HAL_DEVICE_FAULT_WAIT_MAX_MILLIS) == XGE_HAL_OK) { - - /* notify ULD */ - (void) xge_queue_produce_context(hldev->queueh, - XGE_HAL_EVENT_LINK_IS_UP, - hldev); - /* link is up after been enabled */ - return 1; - } else { - xge_debug_device(XGE_TRACE, "%s", - "fail to transition link to up..."); - return 0; - } -} - -/* - * __hal_device_handle_link_down_ind - * @hldev: HAL device handle. - * - * Link down indication handler. The function is invoked by HAL when - * Xframe indicates that the link is down. - */ -static int -__hal_device_handle_link_down_ind(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - /* - * If the previous link state is not up, return. - */ - if (hldev->link_state == XGE_HAL_LINK_DOWN) { -#ifdef XGE_HAL_PROCESS_LINK_INT_IN_ISR - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC){ - val64 = xge_os_pio_mem_read64( - hldev->pdev, hldev->regh0, - &bar0->misc_int_mask); - val64 |= XGE_HAL_MISC_INT_REG_LINK_DOWN_INT; - val64 &= ~XGE_HAL_MISC_INT_REG_LINK_UP_INT; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->misc_int_mask); - } -#endif - xge_debug_device(XGE_TRACE, - "link down indication while link is down, ignoring.."); - return 0; - } - xge_os_mdelay(1); - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - - /* try to debounce the link only if the adapter is enabled. */ - if (val64 & XGE_HAL_ADAPTER_CNTL_EN) { - if (__hal_device_register_poll(hldev, &bar0->adapter_status, 0, - (XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT | - XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT), - XGE_HAL_DEVICE_FAULT_WAIT_MAX_MILLIS) == XGE_HAL_OK) { - xge_debug_device(XGE_TRACE, - "link is actually up (possible noisy link?), ignoring."); - return(0); - } - } - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - /* turn off LED */ - val64 = val64 & (~XGE_HAL_ADAPTER_LED_ON); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - -#ifdef XGE_HAL_PROCESS_LINK_INT_IN_ISR - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - /* - * Mask the Link Down interrupt and unmask the Link up - * interrupt - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->misc_int_mask); - val64 |= XGE_HAL_MISC_INT_REG_LINK_DOWN_INT; - val64 &= ~XGE_HAL_MISC_INT_REG_LINK_UP_INT; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->misc_int_mask); - - /* link is down */ - xge_debug_device(XGE_TRACE, "calling link down.."); - hldev->link_state = XGE_HAL_LINK_DOWN; - - /* notify ULD */ - if (g_xge_hal_driver->uld_callbacks.link_down) { - g_xge_hal_driver->uld_callbacks.link_down( - hldev->upper_layer_info); - } - return 1; - } -#endif - /* notify ULD */ - (void) xge_queue_produce_context(hldev->queueh, - XGE_HAL_EVENT_LINK_IS_DOWN, - hldev); - /* link is down */ - return 1; -} -/* - * __hal_device_handle_link_state_change - * @hldev: HAL device handle. - * - * Link state change handler. The function is invoked by HAL when - * Xframe indicates link state change condition. The code here makes sure to - * 1) ignore redundant state change indications; - * 2) execute link-up sequence, and handle the failure to bring the link up; - * 3) generate XGE_HAL_LINK_UP/DOWN event for the subsequent handling by - * upper-layer driver (ULD). - */ -static int -__hal_device_handle_link_state_change(xge_hal_device_t *hldev) -{ - u64 hw_status; - int hw_link_state; - int retcode; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - int i = 0; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - - /* If the adapter is not enabled but the hal thinks we are in the up - * state then transition to the down state. - */ - if ( !(val64 & XGE_HAL_ADAPTER_CNTL_EN) && - (hldev->link_state == XGE_HAL_LINK_UP) ) { - return(__hal_device_handle_link_down_ind(hldev)); - } - - do { - xge_os_mdelay(1); - (void) xge_hal_device_status(hldev, &hw_status); - hw_link_state = (hw_status & - (XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT | - XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT)) ? - XGE_HAL_LINK_DOWN : XGE_HAL_LINK_UP; - - /* check if the current link state is still considered - * to be changed. This way we will make sure that this is - * not a noise which needs to be filtered out */ - if (hldev->link_state == hw_link_state) - break; - } while (i++ < hldev->config.link_valid_cnt); - - /* If the current link state is same as previous, just return */ - if (hldev->link_state == hw_link_state) - retcode = 0; - /* detected state change */ - else if (hw_link_state == XGE_HAL_LINK_UP) - retcode = __hal_device_handle_link_up_ind(hldev); - else - retcode = __hal_device_handle_link_down_ind(hldev); - return retcode; -} - -/* - * - */ -static void -__hal_device_handle_serr(xge_hal_device_t *hldev, char *reg, u64 value) -{ - hldev->stats.sw_dev_err_stats.serr_cnt++; - if (hldev->config.dump_on_serr) { -#ifdef XGE_HAL_USE_MGMT_AUX - (void) xge_hal_aux_device_dump(hldev); -#endif - } - - (void) xge_queue_produce(hldev->queueh, XGE_HAL_EVENT_SERR, hldev, - 1, sizeof(u64), (void *)&value); - - xge_debug_device(XGE_ERR, "%s: read "XGE_OS_LLXFMT, reg, - (unsigned long long) value); -} - -/* - * - */ -static void -__hal_device_handle_eccerr(xge_hal_device_t *hldev, char *reg, u64 value) -{ - if (hldev->config.dump_on_eccerr) { -#ifdef XGE_HAL_USE_MGMT_AUX - (void) xge_hal_aux_device_dump(hldev); -#endif - } - - /* Herc smart enough to recover on its own! */ - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) { - (void) xge_queue_produce(hldev->queueh, - XGE_HAL_EVENT_ECCERR, hldev, - 1, sizeof(u64), (void *)&value); - } - - xge_debug_device(XGE_ERR, "%s: read "XGE_OS_LLXFMT, reg, - (unsigned long long) value); -} - -/* - * - */ -static void -__hal_device_handle_parityerr(xge_hal_device_t *hldev, char *reg, u64 value) -{ - if (hldev->config.dump_on_parityerr) { -#ifdef XGE_HAL_USE_MGMT_AUX - (void) xge_hal_aux_device_dump(hldev); -#endif - } - (void) xge_queue_produce_context(hldev->queueh, - XGE_HAL_EVENT_PARITYERR, hldev); - - xge_debug_device(XGE_ERR, "%s: read "XGE_OS_LLXFMT, reg, - (unsigned long long) value); -} - -/* - * - */ -static void -__hal_device_handle_targetabort(xge_hal_device_t *hldev) -{ - (void) xge_queue_produce_context(hldev->queueh, - XGE_HAL_EVENT_TARGETABORT, hldev); -} - - -/* - * __hal_device_hw_initialize - * @hldev: HAL device handle. - * - * Initialize Xframe hardware. - */ -static xge_hal_status_e -__hal_device_hw_initialize(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - xge_hal_status_e status; - u64 val64; - - /* Set proper endian settings and verify the same by reading the PIF - * Feed-back register. */ - status = __hal_device_set_swapper(hldev); - if (status != XGE_HAL_OK) { - return status; - } - - /* update the pci mode, frequency, and width */ - if (__hal_device_pci_info_get(hldev, &hldev->pci_mode, - &hldev->bus_frequency, &hldev->bus_width) != XGE_HAL_OK){ - hldev->pci_mode = XGE_HAL_PCI_INVALID_MODE; - hldev->bus_frequency = XGE_HAL_PCI_BUS_FREQUENCY_UNKNOWN; - hldev->bus_width = XGE_HAL_PCI_BUS_WIDTH_UNKNOWN; - /* - * FIXME: this cannot happen. - * But if it happens we cannot continue just like that - */ - xge_debug_device(XGE_ERR, "unable to get pci info"); - } - - if ((hldev->pci_mode == XGE_HAL_PCI_33MHZ_MODE) || - (hldev->pci_mode == XGE_HAL_PCI_66MHZ_MODE) || - (hldev->pci_mode == XGE_HAL_PCI_BASIC_MODE)) { - /* PCI optimization: set TxReqTimeOut - * register (0x800+0x120) to 0x1ff or - * something close to this. - * Note: not to be used for PCI-X! */ - - val64 = XGE_HAL_TXREQTO_VAL(0x1FF); - val64 |= XGE_HAL_TXREQTO_EN; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->txreqtimeout); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0ULL, - &bar0->read_retry_delay); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0ULL, - &bar0->write_retry_delay); - - xge_debug_device(XGE_TRACE, "%s", "optimizing for PCI mode"); - } - - if (hldev->bus_frequency == XGE_HAL_PCI_BUS_FREQUENCY_266MHZ || - hldev->bus_frequency == XGE_HAL_PCI_BUS_FREQUENCY_250MHZ) { - - /* Optimizing for PCI-X 266/250 */ - - val64 = XGE_HAL_TXREQTO_VAL(0x7F); - val64 |= XGE_HAL_TXREQTO_EN; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->txreqtimeout); - - xge_debug_device(XGE_TRACE, "%s", "optimizing for PCI-X 266/250 modes"); - } - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0x4000000000000ULL, - &bar0->read_retry_delay); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0x4000000000000ULL, - &bar0->write_retry_delay); - } - - /* added this to set the no of bytes used to update lso_bytes_sent - returned TxD0 */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->pic_control_2); - val64 &= ~XGE_HAL_TXD_WRITE_BC(0x2); - val64 |= XGE_HAL_TXD_WRITE_BC(0x4); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->pic_control_2); - /* added this to clear the EOI_RESET field while leaving XGXS_RESET - * in reset, then a 1-second delay */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_SW_RESET_XGXS, &bar0->sw_reset); - xge_os_mdelay(1000); - - /* Clear the XGXS_RESET field of the SW_RESET register in order to - * release the XGXS from reset. Its reset value is 0xA5; write 0x00 - * to activate the XGXS. The core requires a minimum 500 us reset.*/ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0, &bar0->sw_reset); - (void) xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->sw_reset); - xge_os_mdelay(1); - - /* read registers in all blocks */ - (void) xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mac_int_mask); - (void) xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mc_int_mask); - (void) xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->xgxs_int_mask); - - /* set default MTU and steer based on length*/ - __hal_ring_mtu_set(hldev, hldev->config.mtu+22); // Alway set 22 bytes extra for steering to work - - if (hldev->config.mac.rmac_bcast_en) { - xge_hal_device_bcast_enable(hldev); - } else { - xge_hal_device_bcast_disable(hldev); - } - -#ifndef XGE_HAL_HERC_EMULATION - __hal_device_xaui_configure(hldev); -#endif - __hal_device_mac_link_util_set(hldev); - - __hal_device_mac_link_util_set(hldev); - - /* - * Keep its PCI REQ# line asserted during a write - * transaction up to the end of the transaction - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->misc_control); - - val64 |= XGE_HAL_MISC_CONTROL_EXT_REQ_EN; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->misc_control); - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->misc_control); - - val64 |= XGE_HAL_MISC_CONTROL_LINK_FAULT; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->misc_control); - } - - /* - * bimodal interrupts is when all Rx traffic interrupts - * will go to TTI, so we need to adjust RTI settings and - * use adaptive TTI timer. We need to make sure RTI is - * properly configured to sane value which will not - * distrupt bimodal behavior. - */ - if (hldev->config.bimodal_interrupts) { - int i; - - /* force polling_cnt to be "0", otherwise - * IRQ workload statistics will be screwed. This could - * be worked out in TXPIC handler later. */ - hldev->config.isr_polling_cnt = 0; - hldev->config.sched_timer_us = 10000; - - /* disable all TTI < 56 */ - for (i=0; iconfig.fifo.queue[i].configured) - continue; - for (j=0; jconfig.fifo.queue[i].tti[j].enabled) - hldev->config.fifo.queue[i].tti[j].enabled = 0; - } - } - - /* now configure bimodal interrupts */ - __hal_device_bimodal_configure(hldev); - } - - status = __hal_device_tti_configure(hldev, 0); - if (status != XGE_HAL_OK) - return status; - - status = __hal_device_rti_configure(hldev, 0); - if (status != XGE_HAL_OK) - return status; - - status = __hal_device_rth_it_configure(hldev); - if (status != XGE_HAL_OK) - return status; - - status = __hal_device_rth_spdm_configure(hldev); - if (status != XGE_HAL_OK) - return status; - - status = __hal_device_rts_mac_configure(hldev); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, "__hal_device_rts_mac_configure Failed "); - return status; - } - - status = __hal_device_rts_port_configure(hldev); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, "__hal_device_rts_port_configure Failed "); - return status; - } - - status = __hal_device_rts_qos_configure(hldev); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, "__hal_device_rts_qos_configure Failed "); - return status; - } - - __hal_device_pause_frames_configure(hldev); - __hal_device_rmac_padding_configure(hldev); - __hal_device_shared_splits_configure(hldev); - - /* make sure all interrupts going to be disabled at the moment */ - __hal_device_intr_mgmt(hldev, XGE_HAL_ALL_INTRS, 0); - - /* SXE-008 Transmit DMA arbitration issue */ - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA && - hldev->revision < 4) { - xge_os_pio_mem_write64(hldev->pdev,hldev->regh0, - XGE_HAL_ADAPTER_PCC_ENABLE_FOUR, - &bar0->pcc_enable); - } -#if 0 // Removing temporarily as FreeBSD is seeing lower performance - // attributable to this fix. - /* SXE-2-010 */ - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - /* Turn off the ECC error reporting for RLDRAM interface */ - if ((status = xge_hal_fix_rldram_ecc_error(hldev)) != XGE_HAL_OK) - return status; - } -#endif - __hal_fifo_hw_initialize(hldev); - __hal_ring_hw_initialize(hldev); - - if (__hal_device_wait_quiescent(hldev, &val64)) { - return XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT; - } - - if (__hal_device_register_poll(hldev, &bar0->adapter_status, 1, - XGE_HAL_ADAPTER_STATUS_RC_PRC_QUIESCENT, - XGE_HAL_DEVICE_QUIESCENT_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - xge_debug_device(XGE_TRACE, "%s", "PRC is not QUIESCENT!"); - return XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT; - } - - xge_debug_device(XGE_TRACE, "device 0x"XGE_OS_LLXFMT" is quiescent", - (unsigned long long)(ulong_t)hldev); - - if (hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSIX || - hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSI) { - /* - * If MSI is enabled, ensure that One Shot for MSI in PCI_CTRL - * is disabled. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->pic_control); - val64 &= ~(XGE_HAL_PIC_CNTL_ONE_SHOT_TINT); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->pic_control); - } - - hldev->hw_is_initialized = 1; - hldev->terminating = 0; - return XGE_HAL_OK; -} - -/* - * __hal_device_reset - Reset device only. - * @hldev: HAL device handle. - * - * Reset the device, and subsequently restore - * the previously saved PCI configuration space. - */ -#define XGE_HAL_MAX_PCI_CONFIG_SPACE_REINIT 50 -static xge_hal_status_e -__hal_device_reset(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - int i, j, swap_done, pcisize = 0; - u64 val64, rawval = 0ULL; - - if (hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSIX) { - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - if ( hldev->bar2 ) { - u64 *msix_vetor_table = (u64 *)hldev->bar2; - - // 2 64bit words for each entry - for (i = 0; i < XGE_HAL_MAX_MSIX_MESSAGES * 2; - i++) { - hldev->msix_vector_table[i] = - xge_os_pio_mem_read64(hldev->pdev, - hldev->regh2, &msix_vetor_table[i]); - } - } - } - } - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->pif_rd_swapper_fb); - swap_done = (val64 == XGE_HAL_IF_RD_SWAPPER_FB); - - if (swap_done) { - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, - (u32)(XGE_HAL_SW_RESET_ALL>>32), (char *)&bar0->sw_reset); - } else { - u32 val = (u32)(XGE_HAL_SW_RESET_ALL >> 32); -#if defined(XGE_OS_HOST_LITTLE_ENDIAN) || defined(XGE_OS_PIO_LITTLE_ENDIAN) - /* swap it */ - val = (((val & (u32)0x000000ffUL) << 24) | - ((val & (u32)0x0000ff00UL) << 8) | - ((val & (u32)0x00ff0000UL) >> 8) | - ((val & (u32)0xff000000UL) >> 24)); -#endif - xge_os_pio_mem_write32(hldev->pdev, hldev->regh0, val, - &bar0->sw_reset); - } - - pcisize = (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC)? - XGE_HAL_PCISIZE_HERC : XGE_HAL_PCISIZE_XENA; - - xge_os_mdelay(20); /* Wait for 20 ms after reset */ - - { - /* Poll for no more than 1 second */ - for (i = 0; i < XGE_HAL_MAX_PCI_CONFIG_SPACE_REINIT; i++) - { - for (j = 0; j < pcisize; j++) { - xge_os_pci_write32(hldev->pdev, hldev->cfgh, j * 4, - *((u32*)&hldev->pci_config_space + j)); - } - - xge_os_pci_read16(hldev->pdev,hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, device_id), - &hldev->device_id); - - if (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_UNKNOWN) - break; - xge_os_mdelay(20); - } - } - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_UNKNOWN) - { - xge_debug_device(XGE_ERR, "device reset failed"); - return XGE_HAL_ERR_RESET_FAILED; - } - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - int cnt = 0; - - rawval = XGE_HAL_SW_RESET_RAW_VAL_HERC; - pcisize = XGE_HAL_PCISIZE_HERC; - xge_os_mdelay(1); - do { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->sw_reset); - if (val64 != rawval) { - break; - } - cnt++; - xge_os_mdelay(1); /* Wait for 1ms before retry */ - } while(cnt < 20); - } else if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) { - rawval = XGE_HAL_SW_RESET_RAW_VAL_XENA; - pcisize = XGE_HAL_PCISIZE_XENA; - xge_os_mdelay(XGE_HAL_DEVICE_RESET_WAIT_MAX_MILLIS); - } - - /* Restore MSI-X vector table */ - if (hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSIX) { - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - if ( hldev->bar2 ) { - /* - * 94: MSIXTable 00000004 ( BIR:4 Offset:0x0 ) - * 98: PBATable 00000404 ( BIR:4 Offset:0x400 ) - */ - u64 *msix_vetor_table = (u64 *)hldev->bar2; - - /* 2 64bit words for each entry */ - for (i = 0; i < XGE_HAL_MAX_MSIX_MESSAGES * 2; - i++) { - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh2, - hldev->msix_vector_table[i], - &msix_vetor_table[i]); - } - } - } - } - - hldev->link_state = XGE_HAL_LINK_DOWN; - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->sw_reset); - - if (val64 != rawval) { - xge_debug_device(XGE_ERR, "device has not been reset " - "got 0x"XGE_OS_LLXFMT", expected 0x"XGE_OS_LLXFMT, - (unsigned long long)val64, (unsigned long long)rawval); - return XGE_HAL_ERR_RESET_FAILED; - } - - hldev->hw_is_initialized = 0; - return XGE_HAL_OK; -} - -/* - * __hal_device_poll - General private routine to poll the device. - * @hldev: HAL device handle. - * - * Returns: one of the xge_hal_status_e{} enumerated types. - * XGE_HAL_OK - for success. - * XGE_HAL_ERR_CRITICAL - when encounters critical error. - */ -static xge_hal_status_e -__hal_device_poll(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0; - u64 err_reg; - - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - /* Handling SERR errors by forcing a H/W reset. */ - err_reg = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->serr_source); - if (err_reg & XGE_HAL_SERR_SOURCE_ANY) { - __hal_device_handle_serr(hldev, "serr_source", err_reg); - return XGE_HAL_ERR_CRITICAL; - } - - err_reg = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->misc_int_reg); - - if (err_reg & XGE_HAL_MISC_INT_REG_DP_ERR_INT) { - hldev->stats.sw_dev_err_stats.parity_err_cnt++; - __hal_device_handle_parityerr(hldev, "misc_int_reg", err_reg); - return XGE_HAL_ERR_CRITICAL; - } - -#ifdef XGE_HAL_PROCESS_LINK_INT_IN_ISR - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) -#endif - { - - /* Handling link status change error Intr */ - err_reg = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mac_rmac_err_reg); - if (__hal_device_handle_link_state_change(hldev)) - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err_reg, &bar0->mac_rmac_err_reg); - } - - if (hldev->inject_serr != 0) { - err_reg = hldev->inject_serr; - hldev->inject_serr = 0; - __hal_device_handle_serr(hldev, "inject_serr", err_reg); - return XGE_HAL_ERR_CRITICAL; - } - - if (hldev->inject_ecc != 0) { - err_reg = hldev->inject_ecc; - hldev->inject_ecc = 0; - hldev->stats.sw_dev_err_stats.ecc_err_cnt++; - __hal_device_handle_eccerr(hldev, "inject_ecc", err_reg); - return XGE_HAL_ERR_CRITICAL; - } - - if (hldev->inject_bad_tcode != 0) { - u8 t_code = hldev->inject_bad_tcode; - xge_hal_channel_t channel; - xge_hal_fifo_txd_t txd; - xge_hal_ring_rxd_1_t rxd; - - channel.devh = hldev; - - if (hldev->inject_bad_tcode_for_chan_type == - XGE_HAL_CHANNEL_TYPE_FIFO) { - channel.type = XGE_HAL_CHANNEL_TYPE_FIFO; - - } else { - channel.type = XGE_HAL_CHANNEL_TYPE_RING; - } - - hldev->inject_bad_tcode = 0; - - if (channel.type == XGE_HAL_CHANNEL_TYPE_FIFO) - return xge_hal_device_handle_tcode(&channel, &txd, - t_code); - else - return xge_hal_device_handle_tcode(&channel, &rxd, - t_code); - } - - return XGE_HAL_OK; -} - -/* - * __hal_verify_pcc_idle - Verify All Enbled PCC are IDLE or not - * @hldev: HAL device handle. - * @adp_status: Adapter Status value - * Usage: See xge_hal_device_enable{}. - */ -xge_hal_status_e -__hal_verify_pcc_idle(xge_hal_device_t *hldev, u64 adp_status) -{ - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA && - hldev->revision < 4) { - /* - * For Xena 1,2,3 we enable only 4 PCCs Due to - * SXE-008 (Transmit DMA arbitration issue) - */ - if ((adp_status & XGE_HAL_ADAPTER_STATUS_RMAC_PCC_4_IDLE) - != XGE_HAL_ADAPTER_STATUS_RMAC_PCC_4_IDLE) { - xge_debug_device(XGE_TRACE, "%s", - "PCC is not IDLE after adapter enabled!"); - return XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT; - } - } else { - if ((adp_status & XGE_HAL_ADAPTER_STATUS_RMAC_PCC_IDLE) != - XGE_HAL_ADAPTER_STATUS_RMAC_PCC_IDLE) { - xge_debug_device(XGE_TRACE, "%s", - "PCC is not IDLE after adapter enabled!"); - return XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT; - } - } - return XGE_HAL_OK; -} - -static void -__hal_update_bimodal(xge_hal_device_t *hldev, int ring_no) -{ - int tval, d, iwl_avg, len_avg, bytes_avg, bytes_hist, d_hist; - int iwl_rxcnt, iwl_txcnt, iwl_txavg, len_rxavg, iwl_rxavg, len_txavg; - int iwl_cnt, i; - -#define _HIST_SIZE 50 /* 0.5 sec history */ -#define _HIST_ADJ_TIMER 1 -#define _STEP 2 - - static int bytes_avg_history[_HIST_SIZE] = {0}; - static int d_avg_history[_HIST_SIZE] = {0}; - static int history_idx = 0; - static int pstep = 1; - static int hist_adj_timer = 0; - - /* - * tval - current value of this bimodal timer - */ - tval = hldev->bimodal_tti[ring_no].timer_val_us; - - /* - * d - how many interrupts we were getting since last - * bimodal timer tick. - */ - d = hldev->stats.sw_dev_info_stats.tx_traffic_intr_cnt - - hldev->bimodal_intr_cnt; - - /* advance bimodal interrupt counter */ - hldev->bimodal_intr_cnt = - hldev->stats.sw_dev_info_stats.tx_traffic_intr_cnt; - - /* - * iwl_cnt - how many interrupts we've got since last - * bimodal timer tick. - */ - iwl_rxcnt = (hldev->irq_workload_rxcnt[ring_no] ? - hldev->irq_workload_rxcnt[ring_no] : 1); - iwl_txcnt = (hldev->irq_workload_txcnt[ring_no] ? - hldev->irq_workload_txcnt[ring_no] : 1); - iwl_cnt = iwl_rxcnt + iwl_txcnt; - - /* - * we need to take hldev->config.isr_polling_cnt into account - * but for some reason this line causing GCC to produce wrong - * code on Solaris. As of now, if bimodal_interrupts is configured - * hldev->config.isr_polling_cnt is forced to be "0". - * - * iwl_cnt = iwl_cnt / (hldev->config.isr_polling_cnt + 1); */ - - /* - * iwl_avg - how many RXDs on avarage been processed since - * last bimodal timer tick. This indirectly includes - * CPU utilizations. - */ - iwl_rxavg = hldev->irq_workload_rxd[ring_no] / iwl_rxcnt; - iwl_txavg = hldev->irq_workload_txd[ring_no] / iwl_txcnt; - iwl_avg = iwl_rxavg + iwl_txavg; - iwl_avg = iwl_avg == 0 ? 1 : iwl_avg; - - /* - * len_avg - how many bytes on avarage been processed since - * last bimodal timer tick. i.e. avarage frame size. - */ - len_rxavg = 1 + hldev->irq_workload_rxlen[ring_no] / - (hldev->irq_workload_rxd[ring_no] ? - hldev->irq_workload_rxd[ring_no] : 1); - len_txavg = 1 + hldev->irq_workload_txlen[ring_no] / - (hldev->irq_workload_txd[ring_no] ? - hldev->irq_workload_txd[ring_no] : 1); - len_avg = len_rxavg + len_txavg; - if (len_avg < 60) - len_avg = 60; - - /* align on low boundary */ - if ((tval -_STEP) < hldev->config.bimodal_timer_lo_us) - tval = hldev->config.bimodal_timer_lo_us; - - /* reset faster */ - if (iwl_avg == 1) { - tval = hldev->config.bimodal_timer_lo_us; - /* reset history */ - for (i = 0; i < _HIST_SIZE; i++) - bytes_avg_history[i] = d_avg_history[i] = 0; - history_idx = 0; - pstep = 1; - hist_adj_timer = 0; - } - - /* always try to ajust timer to the best throughput value */ - bytes_avg = iwl_avg * len_avg; - history_idx %= _HIST_SIZE; - bytes_avg_history[history_idx] = bytes_avg; - d_avg_history[history_idx] = d; - history_idx++; - d_hist = bytes_hist = 0; - for (i = 0; i < _HIST_SIZE; i++) { - /* do not re-configure until history is gathered */ - if (!bytes_avg_history[i]) { - tval = hldev->config.bimodal_timer_lo_us; - goto _end; - } - bytes_hist += bytes_avg_history[i]; - d_hist += d_avg_history[i]; - } - bytes_hist /= _HIST_SIZE; - d_hist /= _HIST_SIZE; - -// xge_os_printf("d %d iwl_avg %d len_avg %d:%d:%d tval %d avg %d hist %d pstep %d", -// d, iwl_avg, len_txavg, len_rxavg, len_avg, tval, d*bytes_avg, -// d_hist*bytes_hist, pstep); - - /* make an adaptive step */ - if (d * bytes_avg < d_hist * bytes_hist && hist_adj_timer++ > _HIST_ADJ_TIMER) { - pstep = !pstep; - hist_adj_timer = 0; - } - - if (pstep && - (tval + _STEP) <= hldev->config.bimodal_timer_hi_us) { - tval += _STEP; - hldev->stats.sw_dev_info_stats.bimodal_hi_adjust_cnt++; - } else if ((tval - _STEP) >= hldev->config.bimodal_timer_lo_us) { - tval -= _STEP; - hldev->stats.sw_dev_info_stats.bimodal_lo_adjust_cnt++; - } - - /* enable TTI range A for better latencies */ - hldev->bimodal_urange_a_en = 0; - if (tval <= hldev->config.bimodal_timer_lo_us && iwl_avg > 2) - hldev->bimodal_urange_a_en = 1; - -_end: - /* reset workload statistics counters */ - hldev->irq_workload_rxcnt[ring_no] = 0; - hldev->irq_workload_rxd[ring_no] = 0; - hldev->irq_workload_rxlen[ring_no] = 0; - hldev->irq_workload_txcnt[ring_no] = 0; - hldev->irq_workload_txd[ring_no] = 0; - hldev->irq_workload_txlen[ring_no] = 0; - - /* reconfigure TTI56 + ring_no with new timer value */ - hldev->bimodal_timer_val_us = tval; - (void) __hal_device_rti_configure(hldev, 1); -} - -static void -__hal_update_rxufca(xge_hal_device_t *hldev, int ring_no) -{ - int ufc, ic, i; - - ufc = hldev->config.ring.queue[ring_no].rti.ufc_a; - ic = hldev->stats.sw_dev_info_stats.rx_traffic_intr_cnt; - - /* urange_a adaptive coalescing */ - if (hldev->rxufca_lbolt > hldev->rxufca_lbolt_time) { - if (ic > hldev->rxufca_intr_thres) { - if (ufc < hldev->config.rxufca_hi_lim) { - ufc += 1; - for (i=0; iconfig.ring.queue[i].rti.ufc_a = ufc; - (void) __hal_device_rti_configure(hldev, 1); - hldev->stats.sw_dev_info_stats. - rxufca_hi_adjust_cnt++; - } - hldev->rxufca_intr_thres = ic + - hldev->config.rxufca_intr_thres; /* def: 30 */ - } else { - if (ufc > hldev->config.rxufca_lo_lim) { - ufc -= 1; - for (i=0; iconfig.ring.queue[i].rti.ufc_a = ufc; - (void) __hal_device_rti_configure(hldev, 1); - hldev->stats.sw_dev_info_stats. - rxufca_lo_adjust_cnt++; - } - } - hldev->rxufca_lbolt_time = hldev->rxufca_lbolt + - hldev->config.rxufca_lbolt_period; - } - hldev->rxufca_lbolt++; -} - -/* - * __hal_device_handle_mc - Handle MC interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_mc(xge_hal_device_t *hldev, u64 reason) -{ - xge_hal_pci_bar0_t *isrbar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - u64 val64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->mc_int_status); - if (!(val64 & XGE_HAL_MC_INT_STATUS_MC_INT)) - return XGE_HAL_OK; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->mc_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->mc_err_reg); - - if (val64 & XGE_HAL_MC_ERR_REG_ETQ_ECC_SG_ERR_L || - val64 & XGE_HAL_MC_ERR_REG_ETQ_ECC_SG_ERR_U || - val64 & XGE_HAL_MC_ERR_REG_MIRI_ECC_SG_ERR_0 || - val64 & XGE_HAL_MC_ERR_REG_MIRI_ECC_SG_ERR_1 || - (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_XENA && - (val64 & XGE_HAL_MC_ERR_REG_ITQ_ECC_SG_ERR_L || - val64 & XGE_HAL_MC_ERR_REG_ITQ_ECC_SG_ERR_U || - val64 & XGE_HAL_MC_ERR_REG_RLD_ECC_SG_ERR_L || - val64 & XGE_HAL_MC_ERR_REG_RLD_ECC_SG_ERR_U))) { - hldev->stats.sw_dev_err_stats.single_ecc_err_cnt++; - hldev->stats.sw_dev_err_stats.ecc_err_cnt++; - } - - if (val64 & XGE_HAL_MC_ERR_REG_ETQ_ECC_DB_ERR_L || - val64 & XGE_HAL_MC_ERR_REG_ETQ_ECC_DB_ERR_U || - val64 & XGE_HAL_MC_ERR_REG_MIRI_ECC_DB_ERR_0 || - val64 & XGE_HAL_MC_ERR_REG_MIRI_ECC_DB_ERR_1 || - (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_XENA && - (val64 & XGE_HAL_MC_ERR_REG_ITQ_ECC_DB_ERR_L || - val64 & XGE_HAL_MC_ERR_REG_ITQ_ECC_DB_ERR_U || - val64 & XGE_HAL_MC_ERR_REG_RLD_ECC_DB_ERR_L || - val64 & XGE_HAL_MC_ERR_REG_RLD_ECC_DB_ERR_U))) { - hldev->stats.sw_dev_err_stats.double_ecc_err_cnt++; - hldev->stats.sw_dev_err_stats.ecc_err_cnt++; - } - - if (val64 & XGE_HAL_MC_ERR_REG_SM_ERR) { - hldev->stats.sw_dev_err_stats.sm_err_cnt++; - } - - /* those two should result in device reset */ - if (val64 & XGE_HAL_MC_ERR_REG_MIRI_ECC_DB_ERR_0 || - val64 & XGE_HAL_MC_ERR_REG_MIRI_ECC_DB_ERR_1) { - __hal_device_handle_eccerr(hldev, "mc_err_reg", val64); - return XGE_HAL_ERR_CRITICAL; - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_handle_pic - Handle non-traffic PIC interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_pic(xge_hal_device_t *hldev, u64 reason) -{ - xge_hal_pci_bar0_t *isrbar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - u64 val64; - - if (reason & XGE_HAL_PIC_INT_FLSH) { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->flsh_int_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->flsh_int_reg); - /* FIXME: handle register */ - } - if (reason & XGE_HAL_PIC_INT_MDIO) { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->mdio_int_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->mdio_int_reg); - /* FIXME: handle register */ - } - if (reason & XGE_HAL_PIC_INT_IIC) { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->iic_int_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->iic_int_reg); - /* FIXME: handle register */ - } - if (reason & XGE_HAL_PIC_INT_MISC) { - val64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &isrbar0->misc_int_reg); -#ifdef XGE_HAL_PROCESS_LINK_INT_IN_ISR - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - /* Check for Link interrupts. If both Link Up/Down - * bits are set, clear both and check adapter status - */ - if ((val64 & XGE_HAL_MISC_INT_REG_LINK_UP_INT) && - (val64 & XGE_HAL_MISC_INT_REG_LINK_DOWN_INT)) { - u64 temp64; - - xge_debug_device(XGE_TRACE, - "both link up and link down detected "XGE_OS_LLXFMT, - (unsigned long long)val64); - - temp64 = (XGE_HAL_MISC_INT_REG_LINK_DOWN_INT | - XGE_HAL_MISC_INT_REG_LINK_UP_INT); - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, temp64, - &isrbar0->misc_int_reg); - } - else if (val64 & XGE_HAL_MISC_INT_REG_LINK_UP_INT) { - xge_debug_device(XGE_TRACE, - "link up call request, misc_int "XGE_OS_LLXFMT, - (unsigned long long)val64); - __hal_device_handle_link_up_ind(hldev); - } - else if (val64 & XGE_HAL_MISC_INT_REG_LINK_DOWN_INT){ - xge_debug_device(XGE_TRACE, - "link down request, misc_int "XGE_OS_LLXFMT, - (unsigned long long)val64); - __hal_device_handle_link_down_ind(hldev); - } - } else -#endif - { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->misc_int_reg); - } - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_handle_txpic - Handle TxPIC interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_txpic(xge_hal_device_t *hldev, u64 reason) -{ - xge_hal_status_e status = XGE_HAL_OK; - xge_hal_pci_bar0_t *isrbar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - volatile u64 val64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->pic_int_status); - if ( val64 & (XGE_HAL_PIC_INT_FLSH | - XGE_HAL_PIC_INT_MDIO | - XGE_HAL_PIC_INT_IIC | - XGE_HAL_PIC_INT_MISC) ) { - status = __hal_device_handle_pic(hldev, val64); - xge_os_wmb(); - } - - if (!(val64 & XGE_HAL_PIC_INT_TX)) - return status; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->txpic_int_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->txpic_int_reg); - xge_os_wmb(); - - if (val64 & XGE_HAL_TXPIC_INT_SCHED_INTR) { - int i; - - if (g_xge_hal_driver->uld_callbacks.sched_timer != NULL) - g_xge_hal_driver->uld_callbacks.sched_timer( - hldev, hldev->upper_layer_info); - /* - * This feature implements adaptive receive interrupt - * coalecing. It is disabled by default. To enable it - * set hldev->config.rxufca_lo_lim to be not equal to - * hldev->config.rxufca_hi_lim. - * - * We are using HW timer for this feature, so - * use needs to configure hldev->config.rxufca_lbolt_period - * which is essentially a time slice of timer. - * - * For those who familiar with Linux, lbolt means jiffies - * of this timer. I.e. timer tick. - */ - if (hldev->config.rxufca_lo_lim != - hldev->config.rxufca_hi_lim && - hldev->config.rxufca_lo_lim != 0) { - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - if (!hldev->config.ring.queue[i].configured) - continue; - if (hldev->config.ring.queue[i].rti.urange_a) - __hal_update_rxufca(hldev, i); - } - } - - /* - * This feature implements adaptive TTI timer re-calculation - * based on host utilization, number of interrupt processed, - * number of RXD per tick and avarage length of packets per - * tick. - */ - if (hldev->config.bimodal_interrupts) { - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - if (!hldev->config.ring.queue[i].configured) - continue; - if (hldev->bimodal_tti[i].enabled) - __hal_update_bimodal(hldev, i); - } - } - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_handle_txdma - Handle TxDMA interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_txdma(xge_hal_device_t *hldev, u64 reason) -{ - xge_hal_pci_bar0_t *isrbar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - u64 val64, temp64, err; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->txdma_int_status); - if (val64 & XGE_HAL_TXDMA_PFC_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->pfc_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->pfc_err_reg); - hldev->stats.sw_dev_info_stats.pfc_err_cnt++; - temp64 = XGE_HAL_PFC_ECC_DB_ERR|XGE_HAL_PFC_SM_ERR_ALARM - |XGE_HAL_PFC_MISC_0_ERR|XGE_HAL_PFC_MISC_1_ERR - |XGE_HAL_PFC_PCIX_ERR; - if (val64 & temp64) - goto reset; - } - if (val64 & XGE_HAL_TXDMA_TDA_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->tda_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->tda_err_reg); - hldev->stats.sw_dev_info_stats.tda_err_cnt++; - temp64 = XGE_HAL_TDA_Fn_ECC_DB_ERR|XGE_HAL_TDA_SM0_ERR_ALARM - |XGE_HAL_TDA_SM1_ERR_ALARM; - if (val64 & temp64) - goto reset; - } - if (val64 & XGE_HAL_TXDMA_PCC_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->pcc_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->pcc_err_reg); - hldev->stats.sw_dev_info_stats.pcc_err_cnt++; - temp64 = XGE_HAL_PCC_FB_ECC_DB_ERR|XGE_HAL_PCC_TXB_ECC_DB_ERR - |XGE_HAL_PCC_SM_ERR_ALARM|XGE_HAL_PCC_WR_ERR_ALARM - |XGE_HAL_PCC_N_SERR|XGE_HAL_PCC_6_COF_OV_ERR - |XGE_HAL_PCC_7_COF_OV_ERR|XGE_HAL_PCC_6_LSO_OV_ERR - |XGE_HAL_PCC_7_LSO_OV_ERR; - if (val64 & temp64) - goto reset; - } - if (val64 & XGE_HAL_TXDMA_TTI_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->tti_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->tti_err_reg); - hldev->stats.sw_dev_info_stats.tti_err_cnt++; - temp64 = XGE_HAL_TTI_SM_ERR_ALARM; - if (val64 & temp64) - goto reset; - } - if (val64 & XGE_HAL_TXDMA_LSO_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->lso_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->lso_err_reg); - hldev->stats.sw_dev_info_stats.lso_err_cnt++; - temp64 = XGE_HAL_LSO6_ABORT|XGE_HAL_LSO7_ABORT - |XGE_HAL_LSO6_SM_ERR_ALARM|XGE_HAL_LSO7_SM_ERR_ALARM; - if (val64 & temp64) - goto reset; - } - if (val64 & XGE_HAL_TXDMA_TPA_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->tpa_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->tpa_err_reg); - hldev->stats.sw_dev_info_stats.tpa_err_cnt++; - temp64 = XGE_HAL_TPA_SM_ERR_ALARM; - if (val64 & temp64) - goto reset; - } - if (val64 & XGE_HAL_TXDMA_SM_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->sm_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->sm_err_reg); - hldev->stats.sw_dev_info_stats.sm_err_cnt++; - temp64 = XGE_HAL_SM_SM_ERR_ALARM; - if (val64 & temp64) - goto reset; - } - - return XGE_HAL_OK; - -reset : xge_hal_device_reset(hldev); - xge_hal_device_enable(hldev); - xge_hal_device_intr_enable(hldev); - return XGE_HAL_OK; -} - -/* - * __hal_device_handle_txmac - Handle TxMAC interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_txmac(xge_hal_device_t *hldev, u64 reason) -{ - xge_hal_pci_bar0_t *isrbar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - u64 val64, temp64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->mac_int_status); - if (!(val64 & XGE_HAL_MAC_INT_STATUS_TMAC_INT)) - return XGE_HAL_OK; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->mac_tmac_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->mac_tmac_err_reg); - hldev->stats.sw_dev_info_stats.mac_tmac_err_cnt++; - temp64 = XGE_HAL_TMAC_TX_BUF_OVRN|XGE_HAL_TMAC_TX_SM_ERR; - if (val64 & temp64) { - xge_hal_device_reset(hldev); - xge_hal_device_enable(hldev); - xge_hal_device_intr_enable(hldev); - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_handle_txxgxs - Handle TxXGXS interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_txxgxs(xge_hal_device_t *hldev, u64 reason) -{ - xge_hal_pci_bar0_t *isrbar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - u64 val64, temp64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->xgxs_int_status); - if (!(val64 & XGE_HAL_XGXS_INT_STATUS_TXGXS)) - return XGE_HAL_OK; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->xgxs_txgxs_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->xgxs_txgxs_err_reg); - hldev->stats.sw_dev_info_stats.xgxs_txgxs_err_cnt++; - temp64 = XGE_HAL_TXGXS_ESTORE_UFLOW|XGE_HAL_TXGXS_TX_SM_ERR; - if (val64 & temp64) { - xge_hal_device_reset(hldev); - xge_hal_device_enable(hldev); - xge_hal_device_intr_enable(hldev); - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_handle_rxpic - Handle RxPIC interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_rxpic(xge_hal_device_t *hldev, u64 reason) -{ - /* FIXME: handle register */ - - return XGE_HAL_OK; -} - -/* - * __hal_device_handle_rxdma - Handle RxDMA interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_rxdma(xge_hal_device_t *hldev, u64 reason) -{ - xge_hal_pci_bar0_t *isrbar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - u64 val64, err, temp64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->rxdma_int_status); - if (val64 & XGE_HAL_RXDMA_RC_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->rc_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->rc_err_reg); - hldev->stats.sw_dev_info_stats.rc_err_cnt++; - temp64 = XGE_HAL_RC_PRCn_ECC_DB_ERR|XGE_HAL_RC_FTC_ECC_DB_ERR - |XGE_HAL_RC_PRCn_SM_ERR_ALARM - |XGE_HAL_RC_FTC_SM_ERR_ALARM; - if (val64 & temp64) - goto reset; - } - if (val64 & XGE_HAL_RXDMA_RPA_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->rpa_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->rpa_err_reg); - hldev->stats.sw_dev_info_stats.rpa_err_cnt++; - temp64 = XGE_HAL_RPA_SM_ERR_ALARM|XGE_HAL_RPA_CREDIT_ERR; - if (val64 & temp64) - goto reset; - } - if (val64 & XGE_HAL_RXDMA_RDA_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->rda_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->rda_err_reg); - hldev->stats.sw_dev_info_stats.rda_err_cnt++; - temp64 = XGE_HAL_RDA_RXDn_ECC_DB_ERR - |XGE_HAL_RDA_FRM_ECC_DB_N_AERR - |XGE_HAL_RDA_SM1_ERR_ALARM|XGE_HAL_RDA_SM0_ERR_ALARM - |XGE_HAL_RDA_RXD_ECC_DB_SERR; - if (val64 & temp64) - goto reset; - } - if (val64 & XGE_HAL_RXDMA_RTI_INT) { - err = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->rti_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - err, &isrbar0->rti_err_reg); - hldev->stats.sw_dev_info_stats.rti_err_cnt++; - temp64 = XGE_HAL_RTI_SM_ERR_ALARM; - if (val64 & temp64) - goto reset; - } - - return XGE_HAL_OK; - -reset : xge_hal_device_reset(hldev); - xge_hal_device_enable(hldev); - xge_hal_device_intr_enable(hldev); - return XGE_HAL_OK; -} - -/* - * __hal_device_handle_rxmac - Handle RxMAC interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_rxmac(xge_hal_device_t *hldev, u64 reason) -{ - xge_hal_pci_bar0_t *isrbar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - u64 val64, temp64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->mac_int_status); - if (!(val64 & XGE_HAL_MAC_INT_STATUS_RMAC_INT)) - return XGE_HAL_OK; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->mac_rmac_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->mac_rmac_err_reg); - hldev->stats.sw_dev_info_stats.mac_rmac_err_cnt++; - temp64 = XGE_HAL_RMAC_RX_BUFF_OVRN|XGE_HAL_RMAC_RX_SM_ERR; - if (val64 & temp64) { - xge_hal_device_reset(hldev); - xge_hal_device_enable(hldev); - xge_hal_device_intr_enable(hldev); - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_handle_rxxgxs - Handle RxXGXS interrupt reason - * @hldev: HAL device handle. - * @reason: interrupt reason - */ -xge_hal_status_e -__hal_device_handle_rxxgxs(xge_hal_device_t *hldev, u64 reason) -{ - xge_hal_pci_bar0_t *isrbar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->isrbar0; - u64 val64, temp64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->xgxs_int_status); - if (!(val64 & XGE_HAL_XGXS_INT_STATUS_RXGXS)) - return XGE_HAL_OK; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->xgxs_rxgxs_err_reg); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &isrbar0->xgxs_rxgxs_err_reg); - hldev->stats.sw_dev_info_stats.xgxs_rxgxs_err_cnt++; - temp64 = XGE_HAL_RXGXS_ESTORE_OFLOW|XGE_HAL_RXGXS_RX_SM_ERR; - if (val64 & temp64) { - xge_hal_device_reset(hldev); - xge_hal_device_enable(hldev); - xge_hal_device_intr_enable(hldev); - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_enable - Enable device. - * @hldev: HAL device handle. - * - * Enable the specified device: bring up the link/interface. - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT - Failed to restore the device - * to a "quiescent" state. - * - * See also: xge_hal_status_e{}. - * - * Usage: See ex_open{}. - */ -xge_hal_status_e -xge_hal_device_enable(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - u64 adp_status; - int i, j; - - if (!hldev->hw_is_initialized) { - xge_hal_status_e status; - - status = __hal_device_hw_initialize(hldev); - if (status != XGE_HAL_OK) { - return status; - } - } - - /* - * Not needed in most cases, i.e. - * when device_disable() is followed by reset - - * the latter copies back PCI config space, along with - * the bus mastership - see __hal_device_reset(). - * However, there are/may-in-future be other cases, and - * does not hurt. - */ - __hal_device_bus_master_enable(hldev); - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - /* - * Configure the link stability period. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->misc_control); - if (hldev->config.link_stability_period != - XGE_HAL_DEFAULT_USE_HARDCODE) { - - val64 |= XGE_HAL_MISC_CONTROL_LINK_STABILITY_PERIOD( - hldev->config.link_stability_period); - } else { - /* - * Use the link stability period 1 ms as default - */ - val64 |= XGE_HAL_MISC_CONTROL_LINK_STABILITY_PERIOD( - XGE_HAL_DEFAULT_LINK_STABILITY_PERIOD); - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->misc_control); - - /* - * Clearing any possible Link up/down interrupts that - * could have popped up just before Enabling the card. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->misc_int_reg); - if (val64) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->misc_int_reg); - xge_debug_device(XGE_TRACE, "%s","link state cleared"); - } - } else if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) { - /* - * Clearing any possible Link state change interrupts that - * could have popped up just before Enabling the card. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mac_rmac_err_reg); - if (val64) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->mac_rmac_err_reg); - xge_debug_device(XGE_TRACE, "%s", "link state cleared"); - } - } - - if (__hal_device_wait_quiescent(hldev, &val64)) { - return XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT; - } - - /* Enabling Laser. */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 |= XGE_HAL_ADAPTER_EOI_TX_ON; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - - /* let link establish */ - xge_os_mdelay(1); - - /* set link down untill poll() routine will set it up (maybe) */ - hldev->link_state = XGE_HAL_LINK_DOWN; - - /* If link is UP (adpter is connected) then enable the adapter */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_status); - if( val64 & (XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT | - XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT) ) { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 = val64 & (~XGE_HAL_ADAPTER_LED_ON); - } else { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 = val64 | ( XGE_HAL_ADAPTER_EOI_TX_ON | - XGE_HAL_ADAPTER_LED_ON ); - } - - val64 = val64 | XGE_HAL_ADAPTER_CNTL_EN; /* adapter enable */ - val64 = val64 & (~XGE_HAL_ADAPTER_ECC_EN); /* ECC enable */ - xge_os_pio_mem_write64 (hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - - /* We spin here waiting for the Link to come up. - * This is the fix for the Link being unstable after the reset. */ - i = 0; - j = 0; - do - { - adp_status = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_status); - - /* Read the adapter control register for Adapter_enable bit */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - if (!(adp_status & (XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT | - XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT)) && - (val64 & XGE_HAL_ADAPTER_CNTL_EN)) { - j++; - if (j >= hldev->config.link_valid_cnt) { - if (xge_hal_device_status(hldev, &adp_status) == - XGE_HAL_OK) { - if (__hal_verify_pcc_idle(hldev, - adp_status) != XGE_HAL_OK) { - return - XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT; - } - xge_debug_device(XGE_TRACE, - "adp_status: "XGE_OS_LLXFMT - ", link is up on " - "adapter enable!", - (unsigned long long)adp_status); - val64 = xge_os_pio_mem_read64( - hldev->pdev, - hldev->regh0, - &bar0->adapter_control); - val64 = val64| - (XGE_HAL_ADAPTER_EOI_TX_ON | - XGE_HAL_ADAPTER_LED_ON ); - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, val64, - &bar0->adapter_control); - xge_os_mdelay(1); - - val64 = xge_os_pio_mem_read64( - hldev->pdev, - hldev->regh0, - &bar0->adapter_control); - break; /* out of for loop */ - } else { - return - XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT; - } - } - } else { - j = 0; /* Reset the count */ - /* Turn on the Laser */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 = val64 | XGE_HAL_ADAPTER_EOI_TX_ON; - xge_os_pio_mem_write64 (hldev->pdev, hldev->regh0, - val64, &bar0->adapter_control); - - xge_os_mdelay(1); - - /* Now re-enable it as due to noise, hardware - * turned it off */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 |= XGE_HAL_ADAPTER_CNTL_EN; - val64 = val64 & (~XGE_HAL_ADAPTER_ECC_EN);/*ECC enable*/ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - } - xge_os_mdelay(1); /* Sleep for 1 msec */ - i++; - } while (i < hldev->config.link_retry_cnt); - - __hal_device_led_actifity_fix(hldev); - -#ifndef XGE_HAL_PROCESS_LINK_INT_IN_ISR - /* Here we are performing soft reset on XGXS to force link down. - * Since link is already up, we will get link state change - * poll notificatoin after adapter is enabled */ - - __hal_serial_mem_write64(hldev, 0x80010515001E0000ULL, - &bar0->dtx_control); - (void) __hal_serial_mem_read64(hldev, &bar0->dtx_control); - - __hal_serial_mem_write64(hldev, 0x80010515001E00E0ULL, - &bar0->dtx_control); - (void) __hal_serial_mem_read64(hldev, &bar0->dtx_control); - - __hal_serial_mem_write64(hldev, 0x80070515001F00E4ULL, - &bar0->dtx_control); - (void) __hal_serial_mem_read64(hldev, &bar0->dtx_control); - - xge_os_mdelay(100); /* Sleep for 500 msec */ -#else - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) -#endif - { - /* - * With some switches the link state change interrupt does not - * occur even though the xgxs reset is done as per SPN-006. So, - * poll the adapter status register and check if the link state - * is ok. - */ - adp_status = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_status); - if (!(adp_status & (XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT | - XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT))) - { - xge_debug_device(XGE_TRACE, "%s", - "enable device causing link state change ind.."); - (void) __hal_device_handle_link_state_change(hldev); - } - } - - if (hldev->config.stats_refresh_time_sec != - XGE_HAL_STATS_REFRESH_DISABLE) - __hal_stats_enable(&hldev->stats); - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_disable - Disable Xframe adapter. - * @hldev: Device handle. - * - * Disable this device. To gracefully reset the adapter, the host should: - * - * - call xge_hal_device_disable(); - * - * - call xge_hal_device_intr_disable(); - * - * - close all opened channels and clean up outstanding resources; - * - * - do some work (error recovery, change mtu, reset, etc); - * - * - call xge_hal_device_enable(); - * - * - open channels, replenish RxDs, etc. - * - * - call xge_hal_device_intr_enable(). - * - * Note: Disabling the device does _not_ include disabling of interrupts. - * After disabling the device stops receiving new frames but those frames - * that were already in the pipe will keep coming for some few milliseconds. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT - Failed to restore the device to - * a "quiescent" state. - * - * See also: xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_device_disable(xge_hal_device_t *hldev) -{ - xge_hal_status_e status = XGE_HAL_OK; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - xge_debug_device(XGE_TRACE, "%s", "turn off laser, cleanup hardware"); - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 = val64 & (~XGE_HAL_ADAPTER_CNTL_EN); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - - if (__hal_device_wait_quiescent(hldev, &val64) != XGE_HAL_OK) { - status = XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT; - } - - if (__hal_device_register_poll(hldev, &bar0->adapter_status, 1, - XGE_HAL_ADAPTER_STATUS_RC_PRC_QUIESCENT, - XGE_HAL_DEVICE_QUIESCENT_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - xge_debug_device(XGE_TRACE, "%s", "PRC is not QUIESCENT!"); - status = XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT; - } - - if (hldev->config.stats_refresh_time_sec != - XGE_HAL_STATS_REFRESH_DISABLE) - __hal_stats_disable(&hldev->stats); -#ifdef XGE_DEBUG_ASSERT - else - xge_assert(!hldev->stats.is_enabled); -#endif - -#ifndef XGE_HAL_DONT_DISABLE_BUS_MASTER_ON_STOP - __hal_device_bus_master_disable(hldev); -#endif - - return status; -} - -/** - * xge_hal_device_reset - Reset device. - * @hldev: HAL device handle. - * - * Soft-reset the device, reset the device stats except reset_cnt. - * - * After reset is done, will try to re-initialize HW. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_DEVICE_NOT_INITIALIZED - Device is not initialized. - * XGE_HAL_ERR_RESET_FAILED - Reset failed. - * - * See also: xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_device_reset(xge_hal_device_t *hldev) -{ - xge_hal_status_e status; - - /* increment the soft reset counter */ - u32 reset_cnt = hldev->stats.sw_dev_info_stats.soft_reset_cnt; - - xge_debug_device(XGE_TRACE, "%s (%d)", "resetting the device", reset_cnt); - - if (!hldev->is_initialized) - return XGE_HAL_ERR_DEVICE_NOT_INITIALIZED; - - /* actual "soft" reset of the adapter */ - status = __hal_device_reset(hldev); - - /* reset all stats including saved */ - __hal_stats_soft_reset(hldev, 1); - - /* increment reset counter */ - hldev->stats.sw_dev_info_stats.soft_reset_cnt = reset_cnt + 1; - - /* re-initialize rxufca_intr_thres */ - hldev->rxufca_intr_thres = hldev->config.rxufca_intr_thres; - - hldev->reset_needed_after_close = 0; - - return status; -} - -/** - * xge_hal_device_status - Check whether Xframe hardware is ready for - * operation. - * @hldev: HAL device handle. - * @hw_status: Xframe status register. Returned by HAL. - * - * Check whether Xframe hardware is ready for operation. - * The checking includes TDMA, RDMA, PFC, PIC, MC_DRAM, and the rest - * hardware functional blocks. - * - * Returns: XGE_HAL_OK if the device is ready for operation. Otherwise - * returns XGE_HAL_FAIL. Also, fills in adapter status (in @hw_status). - * - * See also: xge_hal_status_e{}. - * Usage: See ex_open{}. - */ -xge_hal_status_e -xge_hal_device_status(xge_hal_device_t *hldev, u64 *hw_status) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 tmp64; - - tmp64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_status); - - *hw_status = tmp64; - - if (!(tmp64 & XGE_HAL_ADAPTER_STATUS_TDMA_READY)) { - xge_debug_device(XGE_TRACE, "%s", "TDMA is not ready!"); - return XGE_HAL_FAIL; - } - if (!(tmp64 & XGE_HAL_ADAPTER_STATUS_RDMA_READY)) { - xge_debug_device(XGE_TRACE, "%s", "RDMA is not ready!"); - return XGE_HAL_FAIL; - } - if (!(tmp64 & XGE_HAL_ADAPTER_STATUS_PFC_READY)) { - xge_debug_device(XGE_TRACE, "%s", "PFC is not ready!"); - return XGE_HAL_FAIL; - } - if (!(tmp64 & XGE_HAL_ADAPTER_STATUS_TMAC_BUF_EMPTY)) { - xge_debug_device(XGE_TRACE, "%s", "TMAC BUF is not empty!"); - return XGE_HAL_FAIL; - } - if (!(tmp64 & XGE_HAL_ADAPTER_STATUS_PIC_QUIESCENT)) { - xge_debug_device(XGE_TRACE, "%s", "PIC is not QUIESCENT!"); - return XGE_HAL_FAIL; - } - if (!(tmp64 & XGE_HAL_ADAPTER_STATUS_MC_DRAM_READY)) { - xge_debug_device(XGE_TRACE, "%s", "MC_DRAM is not ready!"); - return XGE_HAL_FAIL; - } - if (!(tmp64 & XGE_HAL_ADAPTER_STATUS_MC_QUEUES_READY)) { - xge_debug_device(XGE_TRACE, "%s", "MC_QUEUES is not ready!"); - return XGE_HAL_FAIL; - } - if (!(tmp64 & XGE_HAL_ADAPTER_STATUS_M_PLL_LOCK)) { - xge_debug_device(XGE_TRACE, "%s", "M_PLL is not locked!"); - return XGE_HAL_FAIL; - } -#ifndef XGE_HAL_HERC_EMULATION - /* - * Andrew: in PCI 33 mode, the P_PLL is not used, and therefore, - * the P_PLL_LOCK bit in the adapter_status register will - * not be asserted. - */ - if (!(tmp64 & XGE_HAL_ADAPTER_STATUS_P_PLL_LOCK) && - xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC && - hldev->pci_mode != XGE_HAL_PCI_33MHZ_MODE) { - xge_debug_device(XGE_TRACE, "%s", "P_PLL is not locked!"); - return XGE_HAL_FAIL; - } -#endif - - return XGE_HAL_OK; -} - -void -__hal_device_msi_intr_endis(xge_hal_device_t *hldev, int flag) -{ - u16 msi_control_reg; - - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, - msi_control), &msi_control_reg); - - if (flag) - msi_control_reg |= 0x1; - else - msi_control_reg &= ~0x1; - - xge_os_pci_write16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, - msi_control), msi_control_reg); -} - -void -__hal_device_msix_intr_endis(xge_hal_device_t *hldev, - xge_hal_channel_t *channel, int flag) -{ - u64 val64; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->xmsi_mask_reg); - - if (flag) - val64 &= ~(1LL << ( 63 - channel->msix_idx )); - else - val64 |= (1LL << ( 63 - channel->msix_idx )); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->xmsi_mask_reg); -} - -/** - * xge_hal_device_intr_enable - Enable Xframe interrupts. - * @hldev: HAL device handle. - * @op: One of the xge_hal_device_intr_e enumerated values specifying - * the type(s) of interrupts to enable. - * - * Enable Xframe interrupts. The function is to be executed the last in - * Xframe initialization sequence. - * - * See also: xge_hal_device_intr_disable() - */ -void -xge_hal_device_intr_enable(xge_hal_device_t *hldev) -{ - xge_list_t *item; - u64 val64; - - /* PRC initialization and configuration */ - xge_list_for_each(item, &hldev->ring_channels) { - xge_hal_channel_h channel; - channel = xge_container_of(item, xge_hal_channel_t, item); - __hal_ring_prc_enable(channel); - } - - /* enable traffic only interrupts */ - if (hldev->config.intr_mode != XGE_HAL_INTR_MODE_IRQLINE) { - /* - * make sure all interrupts going to be disabled if MSI - * is enabled. - */ - __hal_device_intr_mgmt(hldev, XGE_HAL_ALL_INTRS, 0); - } else { - /* - * Enable the Tx traffic interrupts only if the TTI feature is - * enabled. - */ - val64 = 0; - if (hldev->tti_enabled) - val64 = XGE_HAL_TX_TRAFFIC_INTR; - - if (!hldev->config.bimodal_interrupts) - val64 |= XGE_HAL_RX_TRAFFIC_INTR; - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) - val64 |= XGE_HAL_RX_TRAFFIC_INTR; - - val64 |=XGE_HAL_TX_PIC_INTR | - XGE_HAL_MC_INTR | - XGE_HAL_TX_DMA_INTR | - (hldev->config.sched_timer_us != - XGE_HAL_SCHED_TIMER_DISABLED ? XGE_HAL_SCHED_INTR : 0); - __hal_device_intr_mgmt(hldev, val64, 1); - } - - /* - * Enable MSI-X interrupts - */ - if (hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSIX) { - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - /* - * To enable MSI-X, MSI also needs to be enabled, - * due to a bug in the herc NIC. - */ - __hal_device_msi_intr_endis(hldev, 1); - } - - - /* Enable the MSI-X interrupt for each configured channel */ - xge_list_for_each(item, &hldev->fifo_channels) { - xge_hal_channel_t *channel; - - channel = xge_container_of(item, - xge_hal_channel_t, item); - - /* 0 vector is reserved for alarms */ - if (!channel->msix_idx) - continue; - - __hal_device_msix_intr_endis(hldev, channel, 1); - } - - xge_list_for_each(item, &hldev->ring_channels) { - xge_hal_channel_t *channel; - - channel = xge_container_of(item, - xge_hal_channel_t, item); - - /* 0 vector is reserved for alarms */ - if (!channel->msix_idx) - continue; - - __hal_device_msix_intr_endis(hldev, channel, 1); - } - } - - xge_debug_device(XGE_TRACE, "%s", "interrupts are enabled"); -} - - -/** - * xge_hal_device_intr_disable - Disable Xframe interrupts. - * @hldev: HAL device handle. - * @op: One of the xge_hal_device_intr_e enumerated values specifying - * the type(s) of interrupts to disable. - * - * Disable Xframe interrupts. - * - * See also: xge_hal_device_intr_enable() - */ -void -xge_hal_device_intr_disable(xge_hal_device_t *hldev) -{ - xge_list_t *item; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - if (hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSIX) { - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - /* - * To disable MSI-X, MSI also needs to be disabled, - * due to a bug in the herc NIC. - */ - __hal_device_msi_intr_endis(hldev, 0); - } - - /* Disable the MSI-X interrupt for each configured channel */ - xge_list_for_each(item, &hldev->fifo_channels) { - xge_hal_channel_t *channel; - - channel = xge_container_of(item, - xge_hal_channel_t, item); - - /* 0 vector is reserved for alarms */ - if (!channel->msix_idx) - continue; - - __hal_device_msix_intr_endis(hldev, channel, 0); - - } - - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, 0xFFFFFFFFFFFFFFFFULL, - &bar0->tx_traffic_mask); - - xge_list_for_each(item, &hldev->ring_channels) { - xge_hal_channel_t *channel; - - channel = xge_container_of(item, - xge_hal_channel_t, item); - - /* 0 vector is reserved for alarms */ - if (!channel->msix_idx) - continue; - - __hal_device_msix_intr_endis(hldev, channel, 0); - } - - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, 0xFFFFFFFFFFFFFFFFULL, - &bar0->rx_traffic_mask); - } - - /* - * Disable traffic only interrupts. - * Tx traffic interrupts are used only if the TTI feature is - * enabled. - */ - val64 = 0; - if (hldev->tti_enabled) - val64 = XGE_HAL_TX_TRAFFIC_INTR; - - val64 |= XGE_HAL_RX_TRAFFIC_INTR | - XGE_HAL_TX_PIC_INTR | - XGE_HAL_MC_INTR | - (hldev->config.sched_timer_us != XGE_HAL_SCHED_TIMER_DISABLED ? - XGE_HAL_SCHED_INTR : 0); - __hal_device_intr_mgmt(hldev, val64, 0); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0xFFFFFFFFFFFFFFFFULL, - &bar0->general_int_mask); - - - /* disable all configured PRCs */ - xge_list_for_each(item, &hldev->ring_channels) { - xge_hal_channel_h channel; - channel = xge_container_of(item, xge_hal_channel_t, item); - __hal_ring_prc_disable(channel); - } - - xge_debug_device(XGE_TRACE, "%s", "interrupts are disabled"); -} - - -/** - * xge_hal_device_mcast_enable - Enable Xframe multicast addresses. - * @hldev: HAL device handle. - * - * Enable Xframe multicast addresses. - * Returns: XGE_HAL_OK on success. - * XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING - Failed to enable mcast - * feature within the time(timeout). - * - * See also: xge_hal_device_mcast_disable(), xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_device_mcast_enable(xge_hal_device_t *hldev) -{ - u64 val64; - xge_hal_pci_bar0_t *bar0; - int mc_offset = XGE_HAL_MAC_MC_ALL_MC_ADDR_OFFSET; - - if (hldev == NULL) - return XGE_HAL_ERR_INVALID_DEVICE; - - if (hldev->mcast_refcnt) - return XGE_HAL_OK; - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) - mc_offset = XGE_HAL_MAC_MC_ALL_MC_ADDR_OFFSET_HERC; - - hldev->mcast_refcnt = 1; - - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - /* Enable all Multicast addresses */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_ADDR_DATA0_MEM_ADDR(0x010203040506ULL), - &bar0->rmac_addr_data0_mem); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_ADDR_DATA1_MEM_MASK(0xfeffffffffffULL), - &bar0->rmac_addr_data1_mem); - val64 = XGE_HAL_RMAC_ADDR_CMD_MEM_WE | - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD | - XGE_HAL_RMAC_ADDR_CMD_MEM_OFFSET(mc_offset); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rmac_addr_cmd_mem); - - if (__hal_device_register_poll(hldev, - &bar0->rmac_addr_cmd_mem, 0, - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_CMD_EXECUTING, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - /* upper layer may require to repeat */ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_mcast_disable - Disable Xframe multicast addresses. - * @hldev: HAL device handle. - * - * Disable Xframe multicast addresses. - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING - Failed to disable mcast - * feature within the time(timeout). - * - * See also: xge_hal_device_mcast_enable(), xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_device_mcast_disable(xge_hal_device_t *hldev) -{ - u64 val64; - xge_hal_pci_bar0_t *bar0; - int mc_offset = XGE_HAL_MAC_MC_ALL_MC_ADDR_OFFSET; - - if (hldev == NULL) - return XGE_HAL_ERR_INVALID_DEVICE; - - if (hldev->mcast_refcnt == 0) - return XGE_HAL_OK; - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) - mc_offset = XGE_HAL_MAC_MC_ALL_MC_ADDR_OFFSET_HERC; - - hldev->mcast_refcnt = 0; - - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - /* Disable all Multicast addresses */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_ADDR_DATA0_MEM_ADDR(0xffffffffffffULL), - &bar0->rmac_addr_data0_mem); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_ADDR_DATA1_MEM_MASK(0), - &bar0->rmac_addr_data1_mem); - - val64 = XGE_HAL_RMAC_ADDR_CMD_MEM_WE | - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD | - XGE_HAL_RMAC_ADDR_CMD_MEM_OFFSET(mc_offset); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rmac_addr_cmd_mem); - - if (__hal_device_register_poll(hldev, - &bar0->rmac_addr_cmd_mem, 0, - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_CMD_EXECUTING, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - /* upper layer may require to repeat */ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_promisc_enable - Enable promiscuous mode. - * @hldev: HAL device handle. - * - * Enable promiscuous mode of Xframe operation. - * - * See also: xge_hal_device_promisc_disable(). - */ -void -xge_hal_device_promisc_enable(xge_hal_device_t *hldev) -{ - u64 val64; - xge_hal_pci_bar0_t *bar0; - - xge_assert(hldev); - - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - if (!hldev->is_promisc) { - /* Put the NIC into promiscuous mode */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mac_cfg); - val64 |= XGE_HAL_MAC_CFG_RMAC_PROM_ENABLE; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_CFG_KEY(0x4C0D), - &bar0->rmac_cfg_key); - - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, - (u32)(val64 >> 32), - &bar0->mac_cfg); - - hldev->is_promisc = 1; - xge_debug_device(XGE_TRACE, - "mac_cfg 0x"XGE_OS_LLXFMT": promisc enabled", - (unsigned long long)val64); - } -} - -/** - * xge_hal_device_promisc_disable - Disable promiscuous mode. - * @hldev: HAL device handle. - * - * Disable promiscuous mode of Xframe operation. - * - * See also: xge_hal_device_promisc_enable(). - */ -void -xge_hal_device_promisc_disable(xge_hal_device_t *hldev) -{ - u64 val64; - xge_hal_pci_bar0_t *bar0; - - xge_assert(hldev); - - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - if (hldev->is_promisc) { - /* Remove the NIC from promiscuous mode */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mac_cfg); - val64 &= ~XGE_HAL_MAC_CFG_RMAC_PROM_ENABLE; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_CFG_KEY(0x4C0D), - &bar0->rmac_cfg_key); - - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, - (u32)(val64 >> 32), - &bar0->mac_cfg); - - hldev->is_promisc = 0; - xge_debug_device(XGE_TRACE, - "mac_cfg 0x"XGE_OS_LLXFMT": promisc disabled", - (unsigned long long)val64); - } -} - -/** - * xge_hal_device_macaddr_get - Get MAC addresses. - * @hldev: HAL device handle. - * @index: MAC address index, in the range from 0 to - * XGE_HAL_MAX_MAC_ADDRESSES. - * @macaddr: MAC address. Returned by HAL. - * - * Retrieve one of the stored MAC addresses by reading non-volatile - * memory on the chip. - * - * Up to %XGE_HAL_MAX_MAC_ADDRESSES addresses is supported. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING - Failed to retrieve the mac - * address within the time(timeout). - * XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES - Invalid MAC address index. - * - * See also: xge_hal_device_macaddr_set(), xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_device_macaddr_get(xge_hal_device_t *hldev, int index, - macaddr_t *macaddr) -{ - xge_hal_pci_bar0_t *bar0; - u64 val64; - int i; - - if (hldev == NULL) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - if ( index >= XGE_HAL_MAX_MAC_ADDRESSES ) { - return XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES; - } - -#ifdef XGE_HAL_HERC_EMULATION - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0,0x0000010000000000, - &bar0->rmac_addr_data0_mem); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0,0x0000000000000000, - &bar0->rmac_addr_data1_mem); - val64 = XGE_HAL_RMAC_ADDR_CMD_MEM_RD | - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD | - XGE_HAL_RMAC_ADDR_CMD_MEM_OFFSET((index)); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rmac_addr_cmd_mem); - - /* poll until done */ - __hal_device_register_poll(hldev, - &bar0->rmac_addr_cmd_mem, 0, - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS); - -#endif - - val64 = ( XGE_HAL_RMAC_ADDR_CMD_MEM_RD | - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD | - XGE_HAL_RMAC_ADDR_CMD_MEM_OFFSET((index)) ); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rmac_addr_cmd_mem); - - if (__hal_device_register_poll(hldev, &bar0->rmac_addr_cmd_mem, 0, - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_CMD_EXECUTING, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - /* upper layer may require to repeat */ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rmac_addr_data0_mem); - for (i=0; i < XGE_HAL_ETH_ALEN; i++) { - (*macaddr)[i] = (u8)(val64 >> ((64 - 8) - (i * 8))); - } - -#ifdef XGE_HAL_HERC_EMULATION - for (i=0; i < XGE_HAL_ETH_ALEN; i++) { - (*macaddr)[i] = (u8)0; - } - (*macaddr)[1] = (u8)1; - -#endif - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_macaddr_set - Set MAC address. - * @hldev: HAL device handle. - * @index: MAC address index, in the range from 0 to - * XGE_HAL_MAX_MAC_ADDRESSES. - * @macaddr: New MAC address to configure. - * - * Configure one of the available MAC address "slots". - * - * Up to %XGE_HAL_MAX_MAC_ADDRESSES addresses is supported. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING - Failed to set the new mac - * address within the time(timeout). - * XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES - Invalid MAC address index. - * - * See also: xge_hal_device_macaddr_get(), xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_device_macaddr_set(xge_hal_device_t *hldev, int index, - macaddr_t macaddr) -{ - xge_hal_pci_bar0_t *bar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64, temp64; - int i; - - if ( index >= XGE_HAL_MAX_MAC_ADDRESSES ) - return XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES; - - temp64 = 0; - for (i=0; i < XGE_HAL_ETH_ALEN; i++) { - temp64 |= macaddr[i]; - temp64 <<= 8; - } - temp64 >>= 8; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_ADDR_DATA0_MEM_ADDR(temp64), - &bar0->rmac_addr_data0_mem); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_ADDR_DATA1_MEM_MASK(0ULL), - &bar0->rmac_addr_data1_mem); - - val64 = ( XGE_HAL_RMAC_ADDR_CMD_MEM_WE | - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD | - XGE_HAL_RMAC_ADDR_CMD_MEM_OFFSET((index)) ); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rmac_addr_cmd_mem); - - if (__hal_device_register_poll(hldev, &bar0->rmac_addr_cmd_mem, 0, - XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_CMD_EXECUTING, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - /* upper layer may require to repeat */ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_macaddr_clear - Set MAC address. - * @hldev: HAL device handle. - * @index: MAC address index, in the range from 0 to - * XGE_HAL_MAX_MAC_ADDRESSES. - * - * Clear one of the available MAC address "slots". - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING - Failed to set the new mac - * address within the time(timeout). - * XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES - Invalid MAC address index. - * - * See also: xge_hal_device_macaddr_set(), xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_device_macaddr_clear(xge_hal_device_t *hldev, int index) -{ - xge_hal_status_e status; - u8 macaddr[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; - - status = xge_hal_device_macaddr_set(hldev, index, macaddr); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, "%s", - "Not able to set the mac addr"); - return status; - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_macaddr_find - Finds index in the rmac table. - * @hldev: HAL device handle. - * @wanted: Wanted MAC address. - * - * See also: xge_hal_device_macaddr_set(). - */ -int -xge_hal_device_macaddr_find(xge_hal_device_t *hldev, macaddr_t wanted) -{ - int i; - - if (hldev == NULL) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - for (i=1; iconfig.mtu != new_mtu) { - if (hldev->reset_needed_after_close || - !hldev->mtu_first_time_set) { - status = xge_hal_device_reset(hldev); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_TRACE, "%s", - "fatal: can not reset the device"); - return status; - } - } - /* store the new MTU in device, reset will use it */ - hldev->config.mtu = new_mtu; - xge_debug_device(XGE_TRACE, "new MTU %d applied", - new_mtu); - } - - if (!hldev->mtu_first_time_set) - hldev->mtu_first_time_set = 1; - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_initialize - Initialize Xframe device. - * @hldev: HAL device handle. - * @attr: pointer to xge_hal_device_attr_t structure - * @device_config: Configuration to be _applied_ to the device, - * For the Xframe configuration "knobs" please - * refer to xge_hal_device_config_t and Xframe - * User Guide. - * - * Initialize Xframe device. Note that all the arguments of this public API - * are 'IN', including @hldev. Upper-layer driver (ULD) cooperates with - * OS to find new Xframe device, locate its PCI and memory spaces. - * - * When done, the ULD allocates sizeof(xge_hal_device_t) bytes for HAL - * to enable the latter to perform Xframe hardware initialization. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_DRIVER_NOT_INITIALIZED - Driver is not initialized. - * XGE_HAL_ERR_BAD_DEVICE_CONFIG - Device configuration params are not - * valid. - * XGE_HAL_ERR_OUT_OF_MEMORY - Memory allocation failed. - * XGE_HAL_ERR_BAD_SUBSYSTEM_ID - Device subsystem id is invalid. - * XGE_HAL_ERR_INVALID_MAC_ADDRESS - Device mac address in not valid. - * XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING - Failed to retrieve the mac - * address within the time(timeout) or TTI/RTI initialization failed. - * XGE_HAL_ERR_SWAPPER_CTRL - Failed to configure swapper control. - * XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT -Device is not queiscent. - * - * See also: xge_hal_device_terminate(), xge_hal_status_e{} - * xge_hal_device_attr_t{}. - */ -xge_hal_status_e -xge_hal_device_initialize(xge_hal_device_t *hldev, xge_hal_device_attr_t *attr, - xge_hal_device_config_t *device_config) -{ - int i; - xge_hal_status_e status; - xge_hal_channel_t *channel; - u16 subsys_device; - u16 subsys_vendor; - int total_dram_size, ring_auto_dram_cfg, left_dram_size; - int total_dram_size_max = 0; - - xge_debug_device(XGE_TRACE, "device 0x"XGE_OS_LLXFMT" is initializing", - (unsigned long long)(ulong_t)hldev); - - /* sanity check */ - if (g_xge_hal_driver == NULL || - !g_xge_hal_driver->is_initialized) { - return XGE_HAL_ERR_DRIVER_NOT_INITIALIZED; - } - - xge_os_memzero(hldev, sizeof(xge_hal_device_t)); - - /* - * validate a common part of Xframe-I/II configuration - * (and run check_card() later, once PCI inited - see below) - */ - status = __hal_device_config_check_common(device_config); - if (status != XGE_HAL_OK) - return status; - - /* apply config */ - xge_os_memcpy(&hldev->config, device_config, - sizeof(xge_hal_device_config_t)); - - /* save original attr */ - xge_os_memcpy(&hldev->orig_attr, attr, - sizeof(xge_hal_device_attr_t)); - - /* initialize rxufca_intr_thres */ - hldev->rxufca_intr_thres = hldev->config.rxufca_intr_thres; - - hldev->regh0 = attr->regh0; - hldev->regh1 = attr->regh1; - hldev->regh2 = attr->regh2; - hldev->isrbar0 = hldev->bar0 = attr->bar0; - hldev->bar1 = attr->bar1; - hldev->bar2 = attr->bar2; - hldev->pdev = attr->pdev; - hldev->irqh = attr->irqh; - hldev->cfgh = attr->cfgh; - - /* set initial bimodal timer for bimodal adaptive schema */ - hldev->bimodal_timer_val_us = hldev->config.bimodal_timer_lo_us; - - hldev->queueh = xge_queue_create(hldev->pdev, hldev->irqh, - g_xge_hal_driver->config.queue_size_initial, - g_xge_hal_driver->config.queue_size_max, - __hal_device_event_queued, hldev); - if (hldev->queueh == NULL) - return XGE_HAL_ERR_OUT_OF_MEMORY; - - hldev->magic = XGE_HAL_MAGIC; - - xge_assert(hldev->regh0); - xge_assert(hldev->regh1); - xge_assert(hldev->bar0); - xge_assert(hldev->bar1); - xge_assert(hldev->pdev); - xge_assert(hldev->irqh); - xge_assert(hldev->cfgh); - - /* initialize some PCI/PCI-X fields of this PCI device. */ - __hal_device_pci_init(hldev); - - /* - * initlialize lists to properly handling a potential - * terminate request - */ - xge_list_init(&hldev->free_channels); - xge_list_init(&hldev->fifo_channels); - xge_list_init(&hldev->ring_channels); - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) { - /* fixups for xena */ - hldev->config.rth_en = 0; - hldev->config.rth_spdm_en = 0; - hldev->config.rts_mac_en = 0; - total_dram_size_max = XGE_HAL_MAX_RING_QUEUE_SIZE_XENA; - - status = __hal_device_config_check_xena(device_config); - if (status != XGE_HAL_OK) { - xge_hal_device_terminate(hldev); - return status; - } - if (hldev->config.bimodal_interrupts == 1) { - xge_hal_device_terminate(hldev); - return XGE_HAL_BADCFG_BIMODAL_XENA_NOT_ALLOWED; - } else if (hldev->config.bimodal_interrupts == - XGE_HAL_DEFAULT_USE_HARDCODE) - hldev->config.bimodal_interrupts = 0; - } else if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - /* fixups for herc */ - total_dram_size_max = XGE_HAL_MAX_RING_QUEUE_SIZE_HERC; - status = __hal_device_config_check_herc(device_config); - if (status != XGE_HAL_OK) { - xge_hal_device_terminate(hldev); - return status; - } - if (hldev->config.bimodal_interrupts == - XGE_HAL_DEFAULT_USE_HARDCODE) - hldev->config.bimodal_interrupts = 1; - } else { - xge_debug_device(XGE_ERR, - "detected unknown device_id 0x%x", hldev->device_id); - xge_hal_device_terminate(hldev); - return XGE_HAL_ERR_BAD_DEVICE_ID; - } - - /* allocate and initialize FIFO types of channels according to - * configuration */ - for (i = 0; i < XGE_HAL_MAX_FIFO_NUM; i++) { - if (!device_config->fifo.queue[i].configured) - continue; - - channel = __hal_channel_allocate(hldev, i, - XGE_HAL_CHANNEL_TYPE_FIFO); - if (channel == NULL) { - xge_debug_device(XGE_ERR, - "fifo: __hal_channel_allocate failed"); - xge_hal_device_terminate(hldev); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - /* add new channel to the device */ - xge_list_insert(&channel->item, &hldev->free_channels); - } - - /* - * automatic DRAM adjustment - */ - total_dram_size = 0; - ring_auto_dram_cfg = 0; - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - if (!device_config->ring.queue[i].configured) - continue; - if (device_config->ring.queue[i].dram_size_mb == - XGE_HAL_DEFAULT_USE_HARDCODE) { - ring_auto_dram_cfg++; - continue; - } - total_dram_size += device_config->ring.queue[i].dram_size_mb; - } - left_dram_size = total_dram_size_max - total_dram_size; - if (left_dram_size < 0 || - (ring_auto_dram_cfg && left_dram_size / ring_auto_dram_cfg == 0)) { - xge_debug_device(XGE_ERR, - "ring config: exceeded DRAM size %d MB", - total_dram_size_max); - xge_hal_device_terminate(hldev); - return XGE_HAL_BADCFG_RING_QUEUE_SIZE; - } - - /* - * allocate and initialize RING types of channels according to - * configuration - */ - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - if (!device_config->ring.queue[i].configured) - continue; - - if (device_config->ring.queue[i].dram_size_mb == - XGE_HAL_DEFAULT_USE_HARDCODE) { - hldev->config.ring.queue[i].dram_size_mb = - device_config->ring.queue[i].dram_size_mb = - left_dram_size / ring_auto_dram_cfg; - } - - channel = __hal_channel_allocate(hldev, i, - XGE_HAL_CHANNEL_TYPE_RING); - if (channel == NULL) { - xge_debug_device(XGE_ERR, - "ring: __hal_channel_allocate failed"); - xge_hal_device_terminate(hldev); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - /* add new channel to the device */ - xge_list_insert(&channel->item, &hldev->free_channels); - } - - /* get subsystem IDs */ - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, subsystem_id), - &subsys_device); - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, subsystem_vendor_id), - &subsys_vendor); - xge_debug_device(XGE_TRACE, - "subsystem_id %04x:%04x", - subsys_vendor, subsys_device); - - /* reset device initially */ - (void) __hal_device_reset(hldev); - - /* set host endian before, to assure proper action */ - status = __hal_device_set_swapper(hldev); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, - "__hal_device_set_swapper failed"); - xge_hal_device_terminate(hldev); - (void) __hal_device_reset(hldev); - return status; - } - -#ifndef XGE_HAL_HERC_EMULATION - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) - __hal_device_xena_fix_mac(hldev); -#endif - - /* MAC address initialization. - * For now only one mac address will be read and used. */ - status = xge_hal_device_macaddr_get(hldev, 0, &hldev->macaddr[0]); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, - "xge_hal_device_macaddr_get failed"); - xge_hal_device_terminate(hldev); - return status; - } - - if (hldev->macaddr[0][0] == 0xFF && - hldev->macaddr[0][1] == 0xFF && - hldev->macaddr[0][2] == 0xFF && - hldev->macaddr[0][3] == 0xFF && - hldev->macaddr[0][4] == 0xFF && - hldev->macaddr[0][5] == 0xFF) { - xge_debug_device(XGE_ERR, - "xge_hal_device_macaddr_get returns all FFs"); - xge_hal_device_terminate(hldev); - return XGE_HAL_ERR_INVALID_MAC_ADDRESS; - } - - xge_debug_device(XGE_TRACE, - "default macaddr: 0x%02x-%02x-%02x-%02x-%02x-%02x", - hldev->macaddr[0][0], hldev->macaddr[0][1], - hldev->macaddr[0][2], hldev->macaddr[0][3], - hldev->macaddr[0][4], hldev->macaddr[0][5]); - - status = __hal_stats_initialize(&hldev->stats, hldev); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, - "__hal_stats_initialize failed"); - xge_hal_device_terminate(hldev); - return status; - } - - status = __hal_device_hw_initialize(hldev); - if (status != XGE_HAL_OK) { - xge_debug_device(XGE_ERR, - "__hal_device_hw_initialize failed"); - xge_hal_device_terminate(hldev); - return status; - } - hldev->dump_buf=(char*)xge_os_malloc(hldev->pdev, XGE_HAL_DUMP_BUF_SIZE); - if (hldev->dump_buf == NULL) { - xge_debug_device(XGE_ERR, - "__hal_device_hw_initialize failed"); - xge_hal_device_terminate(hldev); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - - /* Xena-only: need to serialize fifo posts across all device fifos */ -#if defined(XGE_HAL_TX_MULTI_POST) - xge_os_spin_lock_init(&hldev->xena_post_lock, hldev->pdev); -#elif defined(XGE_HAL_TX_MULTI_POST_IRQ) - xge_os_spin_lock_init_irq(&hldev->xena_post_lock, hldev->irqh); -#endif - /* Getting VPD data */ - __hal_device_get_vpd_data(hldev); - - hldev->is_initialized = 1; - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_terminating - Mark the device as 'terminating'. - * @devh: HAL device handle. - * - * Mark the device as 'terminating', going to terminate. Can be used - * to serialize termination with other running processes/contexts. - * - * See also: xge_hal_device_terminate(). - */ -void -xge_hal_device_terminating(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_list_t *item; - xge_hal_channel_t *channel; -#if defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - unsigned long flags=0; -#endif - - /* - * go through each opened tx channel and aquire - * lock, so it will serialize with HAL termination flag - */ - xge_list_for_each(item, &hldev->fifo_channels) { - channel = xge_container_of(item, xge_hal_channel_t, item); -#if defined(XGE_HAL_TX_MULTI_RESERVE) - xge_os_spin_lock(&channel->reserve_lock); -#elif defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - xge_os_spin_lock_irq(&channel->reserve_lock, flags); -#endif - - channel->terminating = 1; - -#if defined(XGE_HAL_TX_MULTI_RESERVE) - xge_os_spin_unlock(&channel->reserve_lock); -#elif defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - xge_os_spin_unlock_irq(&channel->reserve_lock, flags); -#endif - } - - hldev->terminating = 1; -} - -/** - * xge_hal_device_terminate - Terminate Xframe device. - * @hldev: HAL device handle. - * - * Terminate HAL device. - * - * See also: xge_hal_device_initialize(). - */ -void -xge_hal_device_terminate(xge_hal_device_t *hldev) -{ - xge_assert(g_xge_hal_driver != NULL); - xge_assert(hldev != NULL); - xge_assert(hldev->magic == XGE_HAL_MAGIC); - - xge_queue_flush(hldev->queueh); - - hldev->terminating = 1; - hldev->is_initialized = 0; - hldev->in_poll = 0; - hldev->magic = XGE_HAL_DEAD; - -#if defined(XGE_HAL_TX_MULTI_POST) - xge_os_spin_lock_destroy(&hldev->xena_post_lock, hldev->pdev); -#elif defined(XGE_HAL_TX_MULTI_POST_IRQ) - xge_os_spin_lock_destroy_irq(&hldev->xena_post_lock, hldev->pdev); -#endif - - xge_debug_device(XGE_TRACE, "device "XGE_OS_LLXFMT" is terminating", - (unsigned long long)(ulong_t)hldev); - - xge_assert(xge_list_is_empty(&hldev->fifo_channels)); - xge_assert(xge_list_is_empty(&hldev->ring_channels)); - - if (hldev->stats.is_initialized) { - __hal_stats_terminate(&hldev->stats); - } - - /* close if open and free all channels */ - while (!xge_list_is_empty(&hldev->free_channels)) { - xge_hal_channel_t *channel = (xge_hal_channel_t*) - hldev->free_channels.next; - - xge_assert(!channel->is_open); - xge_list_remove(&channel->item); - __hal_channel_free(channel); - } - - if (hldev->queueh) { - xge_queue_destroy(hldev->queueh); - } - - if (hldev->spdm_table) { - xge_os_free(hldev->pdev, - hldev->spdm_table[0], - (sizeof(xge_hal_spdm_entry_t) * - hldev->spdm_max_entries)); - xge_os_free(hldev->pdev, - hldev->spdm_table, - (sizeof(xge_hal_spdm_entry_t *) * - hldev->spdm_max_entries)); - xge_os_spin_lock_destroy(&hldev->spdm_lock, hldev->pdev); - hldev->spdm_table = NULL; - } - - if (hldev->dump_buf) { - xge_os_free(hldev->pdev, hldev->dump_buf, - XGE_HAL_DUMP_BUF_SIZE); - hldev->dump_buf = NULL; - } - - if (hldev->device_id != 0) { - int j, pcisize; - - pcisize = (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC)? - XGE_HAL_PCISIZE_HERC : XGE_HAL_PCISIZE_XENA; - for (j = 0; j < pcisize; j++) { - xge_os_pci_write32(hldev->pdev, hldev->cfgh, j * 4, - *((u32*)&hldev->pci_config_space_bios + j)); - } - } -} -/** - * __hal_device_get_vpd_data - Getting vpd_data. - * - * @hldev: HAL device handle. - * - * Getting product name and serial number from vpd capabilites structure - * - */ -void -__hal_device_get_vpd_data(xge_hal_device_t *hldev) -{ - u8 * vpd_data; - u8 data; - int index = 0, count, fail = 0; - u8 vpd_addr = XGE_HAL_CARD_XENA_VPD_ADDR; - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) - vpd_addr = XGE_HAL_CARD_HERC_VPD_ADDR; - - xge_os_strcpy((char *) hldev->vpd_data.product_name, - "10 Gigabit Ethernet Adapter"); - xge_os_strcpy((char *) hldev->vpd_data.serial_num, "not available"); - - vpd_data = ( u8*) xge_os_malloc(hldev->pdev, XGE_HAL_VPD_BUFFER_SIZE + 16); - if ( vpd_data == NULL ) - return; - - for (index = 0; index < XGE_HAL_VPD_BUFFER_SIZE; index +=4 ) { - xge_os_pci_write8(hldev->pdev, hldev->cfgh, (vpd_addr + 2), (u8)index); - xge_os_pci_read8(hldev->pdev, hldev->cfgh,(vpd_addr + 2), &data); - xge_os_pci_write8(hldev->pdev, hldev->cfgh, (vpd_addr + 3), 0); - for (count = 0; count < 5; count++ ) { - xge_os_mdelay(2); - xge_os_pci_read8(hldev->pdev, hldev->cfgh,(vpd_addr + 3), &data); - if (data == XGE_HAL_VPD_READ_COMPLETE) - break; - } - - if (count >= 5) { - xge_os_printf("ERR, Reading VPD data failed"); - fail = 1; - break; - } - - xge_os_pci_read32(hldev->pdev, hldev->cfgh,(vpd_addr + 4), - (u32 *)&vpd_data[index]); - } - - if(!fail) { - - /* read serial number of adapter */ - for (count = 0; count < XGE_HAL_VPD_BUFFER_SIZE; count++) { - if ((vpd_data[count] == 'S') && - (vpd_data[count + 1] == 'N') && - (vpd_data[count + 2] < XGE_HAL_VPD_LENGTH)) { - memset(hldev->vpd_data.serial_num, 0, XGE_HAL_VPD_LENGTH); - memcpy(hldev->vpd_data.serial_num, &vpd_data[count + 3], - vpd_data[count + 2]); - break; - } - } - - if (vpd_data[1] < XGE_HAL_VPD_LENGTH) { - memset(hldev->vpd_data.product_name, 0, vpd_data[1]); - memcpy(hldev->vpd_data.product_name, &vpd_data[3], vpd_data[1]); - } - - } - - xge_os_free(hldev->pdev, vpd_data, XGE_HAL_VPD_BUFFER_SIZE + 16); -} - - -/** - * xge_hal_device_handle_tcode - Handle transfer code. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @t_code: One of the enumerated (and documented in the Xframe user guide) - * "transfer codes". - * - * Handle descriptor's transfer code. The latter comes with each completed - * descriptor, see xge_hal_fifo_dtr_next_completed() and - * xge_hal_ring_dtr_next_completed(). - * Transfer codes are enumerated in xgehal-fifo.h and xgehal-ring.h. - * - * Returns: one of the xge_hal_status_e{} enumerated types. - * XGE_HAL_OK - for success. - * XGE_HAL_ERR_CRITICAL - when encounters critical error. - */ -xge_hal_status_e -xge_hal_device_handle_tcode (xge_hal_channel_h channelh, - xge_hal_dtr_h dtrh, u8 t_code) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - xge_hal_device_t *hldev = (xge_hal_device_t *)channel->devh; - - if (t_code > 15) { - xge_os_printf("invalid t_code %d", t_code); - return XGE_HAL_OK; - } - - if (channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) { - hldev->stats.sw_dev_err_stats.txd_t_code_err_cnt[t_code]++; - -#if defined(XGE_HAL_DEBUG_BAD_TCODE) - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)dtrh; - xge_os_printf(""XGE_OS_LLXFMT":"XGE_OS_LLXFMT":" - XGE_OS_LLXFMT":"XGE_OS_LLXFMT, - txdp->control_1, txdp->control_2, txdp->buffer_pointer, - txdp->host_control); -#endif - - /* handle link "down" immediately without going through - * xge_hal_device_poll() routine. */ - if (t_code == XGE_HAL_TXD_T_CODE_LOSS_OF_LINK) { - /* link is down */ - if (hldev->link_state != XGE_HAL_LINK_DOWN) { - xge_hal_pci_bar0_t *bar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - hldev->link_state = XGE_HAL_LINK_DOWN; - - val64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->adapter_control); - - /* turn off LED */ - val64 = val64 & (~XGE_HAL_ADAPTER_LED_ON); - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, val64, - &bar0->adapter_control); - - g_xge_hal_driver->uld_callbacks.link_down( - hldev->upper_layer_info); - } - } else if (t_code == XGE_HAL_TXD_T_CODE_ABORT_BUFFER || - t_code == XGE_HAL_TXD_T_CODE_ABORT_DTOR) { - __hal_device_handle_targetabort(hldev); - return XGE_HAL_ERR_CRITICAL; - } - return XGE_HAL_ERR_PKT_DROP; - } else if (channel->type == XGE_HAL_CHANNEL_TYPE_RING) { - hldev->stats.sw_dev_err_stats.rxd_t_code_err_cnt[t_code]++; - -#if defined(XGE_HAL_DEBUG_BAD_TCODE) - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)dtrh; - xge_os_printf(""XGE_OS_LLXFMT":"XGE_OS_LLXFMT":"XGE_OS_LLXFMT - ":"XGE_OS_LLXFMT, rxdp->control_1, - rxdp->control_2, rxdp->buffer0_ptr, - rxdp->host_control); -#endif - if (t_code == XGE_HAL_RXD_T_CODE_BAD_ECC) { - hldev->stats.sw_dev_err_stats.ecc_err_cnt++; - __hal_device_handle_eccerr(hldev, "rxd_t_code", - (u64)t_code); - return XGE_HAL_ERR_CRITICAL; - } else if (t_code == XGE_HAL_RXD_T_CODE_PARITY || - t_code == XGE_HAL_RXD_T_CODE_PARITY_ABORT) { - hldev->stats.sw_dev_err_stats.parity_err_cnt++; - __hal_device_handle_parityerr(hldev, "rxd_t_code", - (u64)t_code); - return XGE_HAL_ERR_CRITICAL; - /* do not drop if detected unknown IPv6 extension */ - } else if (t_code != XGE_HAL_RXD_T_CODE_UNKNOWN_PROTO) { - return XGE_HAL_ERR_PKT_DROP; - } - } - return XGE_HAL_OK; -} - -/** - * xge_hal_device_link_state - Get link state. - * @devh: HAL device handle. - * @ls: Link state, see xge_hal_device_link_state_e{}. - * - * Get link state. - * Returns: XGE_HAL_OK. - * See also: xge_hal_device_link_state_e{}. - */ -xge_hal_status_e xge_hal_device_link_state(xge_hal_device_h devh, - xge_hal_device_link_state_e *ls) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - xge_assert(ls != NULL); - *ls = hldev->link_state; - return XGE_HAL_OK; -} - -/** - * xge_hal_device_sched_timer - Configure scheduled device interrupt. - * @devh: HAL device handle. - * @interval_us: Time interval, in miscoseconds. - * Unlike transmit and receive interrupts, - * the scheduled interrupt is generated independently of - * traffic, but purely based on time. - * @one_shot: 1 - generate scheduled interrupt only once. - * 0 - generate scheduled interrupt periodically at the specified - * @interval_us interval. - * - * (Re-)configure scheduled interrupt. Can be called at runtime to change - * the setting, generate one-shot interrupts based on the resource and/or - * traffic conditions, other purposes. - * See also: xge_hal_device_config_t{}. - */ -void xge_hal_device_sched_timer(xge_hal_device_h devh, int interval_us, - int one_shot) -{ - u64 val64; - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = - (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - unsigned int interval = hldev->config.pci_freq_mherz * interval_us; - - interval = __hal_fix_time_ival_herc(hldev, interval); - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->scheduled_int_ctrl); - if (interval) { - val64 &= XGE_HAL_SCHED_INT_PERIOD_MASK; - val64 |= XGE_HAL_SCHED_INT_PERIOD(interval); - if (one_shot) { - val64 |= XGE_HAL_SCHED_INT_CTRL_ONE_SHOT; - } - val64 |= XGE_HAL_SCHED_INT_CTRL_TIMER_EN; - } else { - val64 &= ~XGE_HAL_SCHED_INT_CTRL_TIMER_EN; - } - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->scheduled_int_ctrl); - - xge_debug_device(XGE_TRACE, "sched_timer 0x"XGE_OS_LLXFMT": %s", - (unsigned long long)val64, - interval ? "enabled" : "disabled"); -} - -/** - * xge_hal_device_check_id - Verify device ID. - * @devh: HAL device handle. - * - * Verify device ID. - * Returns: one of the xge_hal_card_e{} enumerated types. - * See also: xge_hal_card_e{}. - */ -xge_hal_card_e -xge_hal_device_check_id(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - switch (hldev->device_id) { - case XGE_PCI_DEVICE_ID_XENA_1: - case XGE_PCI_DEVICE_ID_XENA_2: - return XGE_HAL_CARD_XENA; - case XGE_PCI_DEVICE_ID_HERC_1: - case XGE_PCI_DEVICE_ID_HERC_2: - return XGE_HAL_CARD_HERC; - case XGE_PCI_DEVICE_ID_TITAN_1: - case XGE_PCI_DEVICE_ID_TITAN_2: - return XGE_HAL_CARD_TITAN; - default: - return XGE_HAL_CARD_UNKNOWN; - } -} - -/** - * xge_hal_device_pci_info_get - Get PCI bus informations such as width, - * frequency, and mode from previously stored values. - * @devh: HAL device handle. - * @pci_mode: pointer to a variable of enumerated type - * xge_hal_pci_mode_e{}. - * @bus_frequency: pointer to a variable of enumerated type - * xge_hal_pci_bus_frequency_e{}. - * @bus_width: pointer to a variable of enumerated type - * xge_hal_pci_bus_width_e{}. - * - * Get pci mode, frequency, and PCI bus width. - * Returns: one of the xge_hal_status_e{} enumerated types. - * XGE_HAL_OK - for success. - * XGE_HAL_ERR_INVALID_DEVICE - for invalid device handle. - * See Also: xge_hal_pci_mode_e, xge_hal_pci_mode_e, xge_hal_pci_width_e. - */ -xge_hal_status_e -xge_hal_device_pci_info_get(xge_hal_device_h devh, xge_hal_pci_mode_e *pci_mode, - xge_hal_pci_bus_frequency_e *bus_frequency, - xge_hal_pci_bus_width_e *bus_width) -{ - xge_hal_status_e rc_status; - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - if (!hldev || !hldev->is_initialized || hldev->magic != XGE_HAL_MAGIC) { - rc_status = XGE_HAL_ERR_INVALID_DEVICE; - xge_debug_device(XGE_ERR, - "xge_hal_device_pci_info_get error, rc %d for device %p", - rc_status, hldev); - - return rc_status; - } - - *pci_mode = hldev->pci_mode; - *bus_frequency = hldev->bus_frequency; - *bus_width = hldev->bus_width; - rc_status = XGE_HAL_OK; - return rc_status; -} - -/** - * xge_hal_reinitialize_hw - * @hldev: private member of the device structure. - * - * This function will soft reset the NIC and re-initalize all the - * I/O registers to the values they had after it's inital initialization - * through the probe function. - */ -int xge_hal_reinitialize_hw(xge_hal_device_t * hldev) -{ - (void) xge_hal_device_reset(hldev); - if (__hal_device_hw_initialize(hldev) != XGE_HAL_OK) { - xge_hal_device_terminate(hldev); - (void) __hal_device_reset(hldev); - return 1; - } - return 0; -} - - -/* - * __hal_read_spdm_entry_line - * @hldev: pointer to xge_hal_device_t structure - * @spdm_line: spdm line in the spdm entry to be read. - * @spdm_entry: spdm entry of the spdm_line in the SPDM table. - * @spdm_line_val: Contains the value stored in the spdm line. - * - * SPDM table contains upto a maximum of 256 spdm entries. - * Each spdm entry contains 8 lines and each line stores 8 bytes. - * This function reads the spdm line(addressed by @spdm_line) - * of the spdm entry(addressed by @spdm_entry) in - * the SPDM table. - */ -xge_hal_status_e -__hal_read_spdm_entry_line(xge_hal_device_t *hldev, u8 spdm_line, - u16 spdm_entry, u64 *spdm_line_val) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - val64 = XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_STROBE | - XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_LINE_SEL(spdm_line) | - XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_OFFSET(spdm_entry); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_spdm_mem_ctrl); - - /* poll until done */ - if (__hal_device_register_poll(hldev, - &bar0->rts_rth_spdm_mem_ctrl, 0, - XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_STROBE, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - *spdm_line_val = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->rts_rth_spdm_mem_data); - return XGE_HAL_OK; -} - - -/* - * __hal_get_free_spdm_entry - * @hldev: pointer to xge_hal_device_t structure - * @spdm_entry: Contains an index to the unused spdm entry in the SPDM table. - * - * This function returns an index of unused spdm entry in the SPDM - * table. - */ -static xge_hal_status_e -__hal_get_free_spdm_entry(xge_hal_device_t *hldev, u16 *spdm_entry) -{ - xge_hal_status_e status; - u64 spdm_line_val=0; - - /* - * Search in the local SPDM table for a free slot. - */ - *spdm_entry = 0; - for(; *spdm_entry < hldev->spdm_max_entries; (*spdm_entry)++) { - if (hldev->spdm_table[*spdm_entry]->in_use) { - break; - } - } - - if (*spdm_entry >= hldev->spdm_max_entries) { - return XGE_HAL_ERR_SPDM_TABLE_FULL; - } - - /* - * Make sure that the corresponding spdm entry in the SPDM - * table is free. - * Seventh line of the spdm entry contains information about - * whether the entry is free or not. - */ - if ((status = __hal_read_spdm_entry_line(hldev, 7, *spdm_entry, - &spdm_line_val)) != XGE_HAL_OK) { - return status; - } - - /* BIT(63) in spdm_line 7 corresponds to entry_enable bit */ - if ((spdm_line_val & BIT(63))) { - /* - * Log a warning - */ - xge_debug_device(XGE_ERR, "Local SPDM table is not " - "consistent with the actual one for the spdm " - "entry %d", *spdm_entry); - return XGE_HAL_ERR_SPDM_TABLE_DATA_INCONSISTENT; - } - - return XGE_HAL_OK; -} - - -/* - * __hal_calc_jhash - Calculate Jenkins hash. - * @msg: Jenkins hash algorithm key. - * @length: Length of the key. - * @golden_ratio: Jenkins hash golden ratio. - * @init_value: Jenkins hash initial value. - * - * This function implements the Jenkins based algorithm used for the - * calculation of the RTH hash. - * Returns: Jenkins hash value. - * - */ -static u32 -__hal_calc_jhash(u8 *msg, u32 length, u32 golden_ratio, u32 init_value) -{ - - register u32 a,b,c,len; - - /* - * Set up the internal state - */ - len = length; - a = b = golden_ratio; /* the golden ratio; an arbitrary value */ - c = init_value; /* the previous hash value */ - - /* handle most of the key */ - while (len >= 12) - { - a += (msg[0] + ((u32)msg[1]<<8) + ((u32)msg[2]<<16) - + ((u32)msg[3]<<24)); - b += (msg[4] + ((u32)msg[5]<<8) + ((u32)msg[6]<<16) - + ((u32)msg[7]<<24)); - c += (msg[8] + ((u32)msg[9]<<8) + ((u32)msg[10]<<16) - + ((u32)msg[11]<<24)); - mix(a,b,c); - msg += 12; len -= 12; - } - - /* handle the last 11 bytes */ - c += length; - switch(len) /* all the case statements fall through */ - { - case 11: c+= ((u32)msg[10]<<24); - break; - case 10: c+= ((u32)msg[9]<<16); - break; - case 9 : c+= ((u32)msg[8]<<8); - break; - /* the first byte of c is reserved for the length */ - case 8 : b+= ((u32)msg[7]<<24); - break; - case 7 : b+= ((u32)msg[6]<<16); - break; - case 6 : b+= ((u32)msg[5]<<8); - break; - case 5 : b+= msg[4]; - break; - case 4 : a+= ((u32)msg[3]<<24); - break; - case 3 : a+= ((u32)msg[2]<<16); - break; - case 2 : a+= ((u32)msg[1]<<8); - break; - case 1 : a+= msg[0]; - break; - /* case 0: nothing left to add */ - } - - mix(a,b,c); - - /* report the result */ - return c; -} - - -/** - * xge_hal_spdm_entry_add - Add a new entry to the SPDM table. - * @devh: HAL device handle. - * @src_ip: Source ip address(IPv4/IPv6). - * @dst_ip: Destination ip address(IPv4/IPv6). - * @l4_sp: L4 source port. - * @l4_dp: L4 destination port. - * @is_tcp: Set to 1, if the protocol is TCP. - * 0, if the protocol is UDP. - * @is_ipv4: Set to 1, if the protocol is IPv4. - * 0, if the protocol is IPv6. - * @tgt_queue: Target queue to route the receive packet. - * - * This function add a new entry to the SPDM table. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_SPDM_NOT_ENABLED - SPDM support is not enabled. - * XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING - Failed to add a new entry with in - * the time(timeout). - * XGE_HAL_ERR_SPDM_TABLE_FULL - SPDM table is full. - * XGE_HAL_ERR_SPDM_INVALID_ENTRY - Invalid SPDM entry. - * - * See also: xge_hal_spdm_entry_remove{}. - */ -xge_hal_status_e -xge_hal_spdm_entry_add(xge_hal_device_h devh, xge_hal_ipaddr_t *src_ip, - xge_hal_ipaddr_t *dst_ip, u16 l4_sp, u16 l4_dp, - u8 is_tcp, u8 is_ipv4, u8 tgt_queue) -{ - - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u32 jhash_value; - u32 jhash_init_val; - u32 jhash_golden_ratio; - u64 val64; - int off; - u16 spdm_entry; - u8 msg[XGE_HAL_JHASH_MSG_LEN]; - int ipaddr_len; - xge_hal_status_e status; - - - if (!hldev->config.rth_spdm_en) { - return XGE_HAL_ERR_SPDM_NOT_ENABLED; - } - - if ((tgt_queue < XGE_HAL_MIN_RING_NUM) || - (tgt_queue > XGE_HAL_MAX_RING_NUM)) { - return XGE_HAL_ERR_SPDM_INVALID_ENTRY; - } - - - /* - * Calculate the jenkins hash. - */ - /* - * Create the Jenkins hash algorithm key. - * key = {L3SA, L3DA, L4SP, L4DP}, if SPDM is configured to - * use L4 information. Otherwize key = {L3SA, L3DA}. - */ - - if (is_ipv4) { - ipaddr_len = 4; // In bytes - } else { - ipaddr_len = 16; - } - - /* - * Jenkins hash algorithm expects the key in the big endian - * format. Since key is the byte array, memcpy won't work in the - * case of little endian. So, the current code extracts each - * byte starting from MSB and store it in the key. - */ - if (is_ipv4) { - for (off = 0; off < ipaddr_len; off++) { - u32 mask = vBIT32(0xff,(off*8),8); - int shift = 32-(off+1)*8; - msg[off] = (u8)((src_ip->ipv4.addr & mask) >> shift); - msg[off+ipaddr_len] = - (u8)((dst_ip->ipv4.addr & mask) >> shift); - } - } else { - for (off = 0; off < ipaddr_len; off++) { - int loc = off % 8; - u64 mask = vBIT(0xff,(loc*8),8); - int shift = 64-(loc+1)*8; - - msg[off] = (u8)((src_ip->ipv6.addr[off/8] & mask) - >> shift); - msg[off+ipaddr_len] = (u8)((dst_ip->ipv6.addr[off/8] - & mask) >> shift); - } - } - - off = (2*ipaddr_len); - - if (hldev->config.rth_spdm_use_l4) { - msg[off] = (u8)((l4_sp & 0xff00) >> 8); - msg[off + 1] = (u8)(l4_sp & 0xff); - msg[off + 2] = (u8)((l4_dp & 0xff00) >> 8); - msg[off + 3] = (u8)(l4_dp & 0xff); - off += 4; - } - - /* - * Calculate jenkins hash for this configuration - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, - &bar0->rts_rth_jhash_cfg); - jhash_golden_ratio = (u32)(val64 >> 32); - jhash_init_val = (u32)(val64 & 0xffffffff); - - jhash_value = __hal_calc_jhash(msg, off, - jhash_golden_ratio, - jhash_init_val); - - xge_os_spin_lock(&hldev->spdm_lock); - - /* - * Locate a free slot in the SPDM table. To avoid a seach in the - * actual SPDM table, which is very expensive in terms of time, - * we are maintaining a local copy of the table and the search for - * the free entry is performed in the local table. - */ - if ((status = __hal_get_free_spdm_entry(hldev,&spdm_entry)) - != XGE_HAL_OK) { - xge_os_spin_unlock(&hldev->spdm_lock); - return status; - } - - /* - * Add this entry to the SPDM table - */ - status = __hal_spdm_entry_add(hldev, src_ip, dst_ip, l4_sp, l4_dp, - is_tcp, is_ipv4, tgt_queue, - jhash_value, /* calculated jhash */ - spdm_entry); - - xge_os_spin_unlock(&hldev->spdm_lock); - - return status; -} - -/** - * xge_hal_spdm_entry_remove - Remove an entry from the SPDM table. - * @devh: HAL device handle. - * @src_ip: Source ip address(IPv4/IPv6). - * @dst_ip: Destination ip address(IPv4/IPv6). - * @l4_sp: L4 source port. - * @l4_dp: L4 destination port. - * @is_tcp: Set to 1, if the protocol is TCP. - * 0, if the protocol os UDP. - * @is_ipv4: Set to 1, if the protocol is IPv4. - * 0, if the protocol is IPv6. - * - * This function remove an entry from the SPDM table. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_SPDM_NOT_ENABLED - SPDM support is not enabled. - * XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING - Failed to remove an entry with in - * the time(timeout). - * XGE_HAL_ERR_SPDM_ENTRY_NOT_FOUND - Unable to locate the entry in the SPDM - * table. - * - * See also: xge_hal_spdm_entry_add{}. - */ -xge_hal_status_e -xge_hal_spdm_entry_remove(xge_hal_device_h devh, xge_hal_ipaddr_t *src_ip, - xge_hal_ipaddr_t *dst_ip, u16 l4_sp, u16 l4_dp, - u8 is_tcp, u8 is_ipv4) -{ - - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - u16 spdm_entry; - xge_hal_status_e status; - u64 spdm_line_arr[8]; - u8 line_no; - u8 spdm_is_tcp; - u8 spdm_is_ipv4; - u16 spdm_l4_sp; - u16 spdm_l4_dp; - - if (!hldev->config.rth_spdm_en) { - return XGE_HAL_ERR_SPDM_NOT_ENABLED; - } - - xge_os_spin_lock(&hldev->spdm_lock); - - /* - * Poll the rxpic_int_reg register until spdm ready bit is set or - * timeout happens. - */ - if (__hal_device_register_poll(hldev, &bar0->rxpic_int_reg, 1, - XGE_HAL_RX_PIC_INT_REG_SPDM_READY, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - - /* upper layer may require to repeat */ - xge_os_spin_unlock(&hldev->spdm_lock); - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - /* - * Clear the SPDM READY bit. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rxpic_int_reg); - val64 &= ~XGE_HAL_RX_PIC_INT_REG_SPDM_READY; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rxpic_int_reg); - - /* - * Search in the local SPDM table to get the index of the - * corresponding entry in the SPDM table. - */ - spdm_entry = 0; - for (;spdm_entry < hldev->spdm_max_entries; spdm_entry++) { - if ((!hldev->spdm_table[spdm_entry]->in_use) || - (hldev->spdm_table[spdm_entry]->is_tcp != is_tcp) || - (hldev->spdm_table[spdm_entry]->l4_sp != l4_sp) || - (hldev->spdm_table[spdm_entry]->l4_dp != l4_dp) || - (hldev->spdm_table[spdm_entry]->is_ipv4 != is_ipv4)) { - continue; - } - - /* - * Compare the src/dst IP addresses of source and target - */ - if (is_ipv4) { - if ((hldev->spdm_table[spdm_entry]->src_ip.ipv4.addr - != src_ip->ipv4.addr) || - (hldev->spdm_table[spdm_entry]->dst_ip.ipv4.addr - != dst_ip->ipv4.addr)) { - continue; - } - } else { - if ((hldev->spdm_table[spdm_entry]->src_ip.ipv6.addr[0] - != src_ip->ipv6.addr[0]) || - (hldev->spdm_table[spdm_entry]->src_ip.ipv6.addr[1] - != src_ip->ipv6.addr[1]) || - (hldev->spdm_table[spdm_entry]->dst_ip.ipv6.addr[0] - != dst_ip->ipv6.addr[0]) || - (hldev->spdm_table[spdm_entry]->dst_ip.ipv6.addr[1] - != dst_ip->ipv6.addr[1])) { - continue; - } - } - break; - } - - if (spdm_entry >= hldev->spdm_max_entries) { - xge_os_spin_unlock(&hldev->spdm_lock); - return XGE_HAL_ERR_SPDM_ENTRY_NOT_FOUND; - } - - /* - * Retrieve the corresponding entry from the SPDM table and - * make sure that the data is consistent. - */ - for(line_no = 0; line_no < 8; line_no++) { - - /* - * SPDM line 2,3,4 are valid only for IPv6 entry. - * SPDM line 5 & 6 are reserved. We don't have to - * read these entries in the above cases. - */ - if (((is_ipv4) && - ((line_no == 2)||(line_no == 3)||(line_no == 4))) || - (line_no == 5) || - (line_no == 6)) { - continue; - } - - if ((status = __hal_read_spdm_entry_line( - hldev, - line_no, - spdm_entry, - &spdm_line_arr[line_no])) - != XGE_HAL_OK) { - xge_os_spin_unlock(&hldev->spdm_lock); - return status; - } - } - - /* - * Seventh line of the spdm entry contains the entry_enable - * bit. Make sure that the entry_enable bit of this spdm entry - * is set. - * To remove an entry from the SPDM table, reset this - * bit. - */ - if (!(spdm_line_arr[7] & BIT(63))) { - /* - * Log a warning - */ - xge_debug_device(XGE_ERR, "Local SPDM table is not " - "consistent with the actual one for the spdm " - "entry %d ", spdm_entry); - goto err_exit; - } - - /* - * Retreive the L4 SP/DP, src/dst ip addresses from the SPDM - * table and do a comparision. - */ - spdm_is_tcp = (u8)((spdm_line_arr[0] & BIT(59)) >> 4); - spdm_is_ipv4 = (u8)(spdm_line_arr[0] & BIT(63)); - spdm_l4_sp = (u16)(spdm_line_arr[0] >> 48); - spdm_l4_dp = (u16)((spdm_line_arr[0] >> 32) & 0xffff); - - - if ((spdm_is_tcp != is_tcp) || - (spdm_is_ipv4 != is_ipv4) || - (spdm_l4_sp != l4_sp) || - (spdm_l4_dp != l4_dp)) { - /* - * Log a warning - */ - xge_debug_device(XGE_ERR, "Local SPDM table is not " - "consistent with the actual one for the spdm " - "entry %d ", spdm_entry); - goto err_exit; - } - - if (is_ipv4) { - /* Upper 32 bits of spdm_line(64 bit) contains the - * src IPv4 address. Lower 32 bits of spdm_line - * contains the destination IPv4 address. - */ - u32 temp_src_ip = (u32)(spdm_line_arr[1] >> 32); - u32 temp_dst_ip = (u32)(spdm_line_arr[1] & 0xffffffff); - - if ((temp_src_ip != src_ip->ipv4.addr) || - (temp_dst_ip != dst_ip->ipv4.addr)) { - xge_debug_device(XGE_ERR, "Local SPDM table is not " - "consistent with the actual one for the spdm " - "entry %d ", spdm_entry); - goto err_exit; - } - - } else { - /* - * SPDM line 1 & 2 contains the src IPv6 address. - * SPDM line 3 & 4 contains the dst IPv6 address. - */ - if ((spdm_line_arr[1] != src_ip->ipv6.addr[0]) || - (spdm_line_arr[2] != src_ip->ipv6.addr[1]) || - (spdm_line_arr[3] != dst_ip->ipv6.addr[0]) || - (spdm_line_arr[4] != dst_ip->ipv6.addr[1])) { - - /* - * Log a warning - */ - xge_debug_device(XGE_ERR, "Local SPDM table is not " - "consistent with the actual one for the spdm " - "entry %d ", spdm_entry); - goto err_exit; - } - } - - /* - * Reset the entry_enable bit to zero - */ - spdm_line_arr[7] &= ~BIT(63); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - spdm_line_arr[7], - (void *)((char *)hldev->spdm_mem_base + - (spdm_entry * 64) + (7 * 8))); - - /* - * Wait for the operation to be completed. - */ - if (__hal_device_register_poll(hldev, - &bar0->rxpic_int_reg, 1, - XGE_HAL_RX_PIC_INT_REG_SPDM_READY, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - xge_os_spin_unlock(&hldev->spdm_lock); - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - /* - * Make the corresponding spdm entry in the local SPDM table - * available for future use. - */ - hldev->spdm_table[spdm_entry]->in_use = 0; - xge_os_spin_unlock(&hldev->spdm_lock); - - return XGE_HAL_OK; - -err_exit: - xge_os_spin_unlock(&hldev->spdm_lock); - return XGE_HAL_ERR_SPDM_TABLE_DATA_INCONSISTENT; -} - -/* - * __hal_device_rti_set - * @ring: The post_qid of the ring. - * @channel: HAL channel of the ring. - * - * This function stores the RTI value associated for the MSI and - * also unmasks this particular RTI in the rti_mask register. - */ -static void __hal_device_rti_set(int ring_qid, xge_hal_channel_t *channel) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)channel->devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - if (hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSI || - hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSIX) - channel->rti = (u8)ring_qid; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rx_traffic_mask); - val64 &= ~BIT(ring_qid); - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, val64, - &bar0->rx_traffic_mask); -} - -/* - * __hal_device_tti_set - * @ring: The post_qid of the FIFO. - * @channel: HAL channel the FIFO. - * - * This function stores the TTI value associated for the MSI and - * also unmasks this particular TTI in the tti_mask register. - */ -static void __hal_device_tti_set(int fifo_qid, xge_hal_channel_t *channel) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)channel->devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - if (hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSI || - hldev->config.intr_mode == XGE_HAL_INTR_MODE_MSIX) - channel->tti = (u8)fifo_qid; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->tx_traffic_mask); - val64 &= ~BIT(fifo_qid); - xge_os_pio_mem_write64(hldev->pdev, - hldev->regh0, val64, - &bar0->tx_traffic_mask); -} - -/** - * xge_hal_channel_msi_set - Associate a RTI with a ring or TTI with a - * FIFO for a given MSI. - * @channelh: HAL channel handle. - * @msi: MSI Number associated with the channel. - * @msi_msg: The MSI message associated with the MSI number above. - * - * This API will associate a given channel (either Ring or FIFO) with the - * given MSI number. It will alo program the Tx_Mat/Rx_Mat tables in the - * hardware to indicate this association to the hardware. - */ -xge_hal_status_e -xge_hal_channel_msi_set(xge_hal_channel_h channelh, int msi, u32 msi_msg) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - xge_hal_device_t *hldev = (xge_hal_device_t*)channel->devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - channel->msi_msg = msi_msg; - if (channel->type == XGE_HAL_CHANNEL_TYPE_RING) { - int ring = channel->post_qid; - xge_debug_osdep(XGE_TRACE, "MSI Data: 0x%4x, Ring: %d," - " MSI: %d", channel->msi_msg, ring, msi); - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rx_mat); - val64 |= XGE_HAL_SET_RX_MAT(ring, msi); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rx_mat); - __hal_device_rti_set(ring, channel); - } else { - int fifo = channel->post_qid; - xge_debug_osdep(XGE_TRACE, "MSI Data: 0x%4x, Fifo: %d," - " MSI: %d", channel->msi_msg, fifo, msi); - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->tx_mat[0]); - val64 |= XGE_HAL_SET_TX_MAT(fifo, msi); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->tx_mat[0]); - __hal_device_tti_set(fifo, channel); - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_mask_msix - Begin IRQ processing. - * @hldev: HAL device handle. - * @msi_id: MSI ID - * - * The function masks the msix interrupt for the given msi_id - * - * Note: - * - * Returns: 0, - * Otherwise, XGE_HAL_ERR_WRONG_IRQ if the msix index is out of range - * status. - * See also: - */ -xge_hal_status_e -xge_hal_mask_msix(xge_hal_device_h devh, int msi_id) -{ - xge_hal_status_e status = XGE_HAL_OK; - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - u32 *bar2 = (u32 *)hldev->bar2; - u32 val32; - - xge_assert(msi_id < XGE_HAL_MAX_MSIX_MESSAGES); - - val32 = xge_os_pio_mem_read32(hldev->pdev, hldev->regh2, &bar2[msi_id*4+3]); - val32 |= 1; - xge_os_pio_mem_write32(hldev->pdev, hldev->regh2, val32, &bar2[msi_id*4+3]); - return status; -} - -/** - * xge_hal_mask_msix - Begin IRQ processing. - * @hldev: HAL device handle. - * @msi_id: MSI ID - * - * The function masks the msix interrupt for the given msi_id - * - * Note: - * - * Returns: 0, - * Otherwise, XGE_HAL_ERR_WRONG_IRQ if the msix index is out of range - * status. - * See also: - */ -xge_hal_status_e -xge_hal_unmask_msix(xge_hal_device_h devh, int msi_id) -{ - xge_hal_status_e status = XGE_HAL_OK; - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - u32 *bar2 = (u32 *)hldev->bar2; - u32 val32; - - xge_assert(msi_id < XGE_HAL_MAX_MSIX_MESSAGES); - - val32 = xge_os_pio_mem_read32(hldev->pdev, hldev->regh2, &bar2[msi_id*4+3]); - val32 &= ~1; - xge_os_pio_mem_write32(hldev->pdev, hldev->regh2, val32, &bar2[msi_id*4+3]); - return status; -} - -/* - * __hal_set_msix_vals - * @devh: HAL device handle. - * @msix_value: 32bit MSI-X value transferred across PCI to @msix_address. - * Filled in by this function. - * @msix_address: 32bit MSI-X DMA address. - * Filled in by this function. - * @msix_idx: index that corresponds to the (@msix_value, @msix_address) - * entry in the table of MSI-X (value, address) pairs. - * - * This function will program the hardware associating the given - * address/value cobination to the specified msi number. - */ -static void __hal_set_msix_vals (xge_hal_device_h devh, - u32 *msix_value, - u64 *msix_addr, - int msix_idx) -{ - int cnt = 0; - - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - val64 = XGE_HAL_XMSI_NO(msix_idx) | XGE_HAL_XMSI_STROBE; - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, - (u32)(val64 >> 32), &bar0->xmsi_access); - __hal_pio_mem_write32_lower(hldev->pdev, hldev->regh0, - (u32)(val64), &bar0->xmsi_access); - do { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->xmsi_access); - if (val64 & XGE_HAL_XMSI_STROBE) - break; - cnt++; - xge_os_mdelay(20); - } while(cnt < 5); - *msix_value = (u32)(xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->xmsi_data)); - *msix_addr = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->xmsi_address); -} - -/** - * xge_hal_channel_msix_set - Associate MSI-X with a channel. - * @channelh: HAL channel handle. - * @msix_idx: index that corresponds to a particular (@msix_value, - * @msix_address) entry in the MSI-X table. - * - * This API associates a given channel (either Ring or FIFO) with the - * given MSI-X number. It programs the Xframe's Tx_Mat/Rx_Mat tables - * to indicate this association. - */ -xge_hal_status_e -xge_hal_channel_msix_set(xge_hal_channel_h channelh, int msix_idx) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - xge_hal_device_t *hldev = (xge_hal_device_t*)channel->devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - if (channel->type == XGE_HAL_CHANNEL_TYPE_RING) { - /* Currently Ring and RTI is one on one. */ - int ring = channel->post_qid; - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rx_mat); - val64 |= XGE_HAL_SET_RX_MAT(ring, msix_idx); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rx_mat); - __hal_device_rti_set(ring, channel); - hldev->config.fifo.queue[channel->post_qid].intr_vector = - msix_idx; - } else if (channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) { - int fifo = channel->post_qid; - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->tx_mat[0]); - val64 |= XGE_HAL_SET_TX_MAT(fifo, msix_idx); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->tx_mat[0]); - __hal_device_tti_set(fifo, channel); - hldev->config.ring.queue[channel->post_qid].intr_vector = - msix_idx; - } - channel->msix_idx = msix_idx; - __hal_set_msix_vals(hldev, &channel->msix_data, - &channel->msix_address, - channel->msix_idx); - - return XGE_HAL_OK; -} - -#if defined(XGE_HAL_CONFIG_LRO) -/** - * xge_hal_lro_terminate - Terminate lro resources. - * @lro_scale: Amount of lro memory. - * @hldev: Hal device structure. - * - */ -void -xge_hal_lro_terminate(u32 lro_scale, - xge_hal_device_t *hldev) -{ -} - -/** - * xge_hal_lro_init - Initiate lro resources. - * @lro_scale: Amount of lro memory. - * @hldev: Hal device structure. - * Note: For time being I am using only one LRO per device. Later on size - * will be increased. - */ - -xge_hal_status_e -xge_hal_lro_init(u32 lro_scale, - xge_hal_device_t *hldev) -{ - int i; - - if (hldev->config.lro_sg_size == XGE_HAL_DEFAULT_USE_HARDCODE) - hldev->config.lro_sg_size = XGE_HAL_LRO_DEFAULT_SG_SIZE; - - if (hldev->config.lro_frm_len == XGE_HAL_DEFAULT_USE_HARDCODE) - hldev->config.lro_frm_len = XGE_HAL_LRO_DEFAULT_FRM_LEN; - - for (i=0; i < XGE_HAL_MAX_RING_NUM; i++) - { - xge_os_memzero(hldev->lro_desc[i].lro_pool, - sizeof(lro_t) * XGE_HAL_LRO_MAX_BUCKETS); - - hldev->lro_desc[i].lro_next_idx = 0; - hldev->lro_desc[i].lro_recent = NULL; - } - - return XGE_HAL_OK; -} -#endif - - -/** - * xge_hal_device_poll - HAL device "polling" entry point. - * @devh: HAL device. - * - * HAL "polling" entry point. Note that this is part of HAL public API. - * Upper-Layer driver _must_ periodically poll HAL via - * xge_hal_device_poll(). - * - * HAL uses caller's execution context to serially process accumulated - * slow-path events, such as link state changes and hardware error - * indications. - * - * The rate of polling could be somewhere between 500us to 10ms, - * depending on requirements (e.g., the requirement to support fail-over - * could mean that 500us or even 100us polling interval need to be used). - * - * The need and motivation for external polling includes - * - * - remove the error-checking "burden" from the HAL interrupt handler - * (see xge_hal_device_handle_irq()); - * - * - remove the potential source of portability issues by _not_ - * implementing separate polling thread within HAL itself. - * - * See also: xge_hal_event_e{}, xge_hal_driver_config_t{}. - * Usage: See ex_slow_path{}. - */ -void -xge_hal_device_poll(xge_hal_device_h devh) -{ - unsigned char item_buf[sizeof(xge_queue_item_t) + - XGE_DEFAULT_EVENT_MAX_DATA_SIZE]; - xge_queue_item_t *item = (xge_queue_item_t *)(void *)item_buf; - xge_queue_status_e qstatus; - xge_hal_status_e hstatus; - int i = 0; - int queue_has_critical_event = 0; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - xge_os_memzero(item_buf, (sizeof(xge_queue_item_t) + - XGE_DEFAULT_EVENT_MAX_DATA_SIZE)); - -_again: - if (!hldev->is_initialized || - hldev->terminating || - hldev->magic != XGE_HAL_MAGIC) - return; - - if(hldev->stats.sw_dev_err_stats.xpak_counter.tick_period < 72000) - { - /* - * Wait for an Hour - */ - hldev->stats.sw_dev_err_stats.xpak_counter.tick_period++; - } else { - /* - * Logging Error messages in the excess temperature, - * Bias current, laser output for three cycle - */ - __hal_updt_stats_xpak(hldev); - hldev->stats.sw_dev_err_stats.xpak_counter.tick_period = 0; - } - - if (!queue_has_critical_event) - queue_has_critical_event = - __queue_get_reset_critical(hldev->queueh); - - hldev->in_poll = 1; - while (i++ < XGE_HAL_DRIVER_QUEUE_CONSUME_MAX || queue_has_critical_event) { - - qstatus = xge_queue_consume(hldev->queueh, - XGE_DEFAULT_EVENT_MAX_DATA_SIZE, - item); - if (qstatus == XGE_QUEUE_IS_EMPTY) - break; - - xge_debug_queue(XGE_TRACE, - "queueh 0x"XGE_OS_LLXFMT" consumed event: %d ctxt 0x" - XGE_OS_LLXFMT, (u64)(ulong_t)hldev->queueh, item->event_type, - (u64)(ulong_t)item->context); - - if (!hldev->is_initialized || - hldev->magic != XGE_HAL_MAGIC) { - hldev->in_poll = 0; - return; - } - - switch (item->event_type) { - case XGE_HAL_EVENT_LINK_IS_UP: { - if (!queue_has_critical_event && - g_xge_hal_driver->uld_callbacks.link_up) { - g_xge_hal_driver->uld_callbacks.link_up( - hldev->upper_layer_info); - hldev->link_state = XGE_HAL_LINK_UP; - } - } break; - case XGE_HAL_EVENT_LINK_IS_DOWN: { - if (!queue_has_critical_event && - g_xge_hal_driver->uld_callbacks.link_down) { - g_xge_hal_driver->uld_callbacks.link_down( - hldev->upper_layer_info); - hldev->link_state = XGE_HAL_LINK_DOWN; - } - } break; - case XGE_HAL_EVENT_SERR: - case XGE_HAL_EVENT_ECCERR: - case XGE_HAL_EVENT_PARITYERR: - case XGE_HAL_EVENT_TARGETABORT: - case XGE_HAL_EVENT_SLOT_FREEZE: { - void *item_data = xge_queue_item_data(item); - xge_hal_event_e event_type = item->event_type; - u64 val64 = *((u64*)item_data); - - if (event_type != XGE_HAL_EVENT_SLOT_FREEZE) - if (xge_hal_device_is_slot_freeze(hldev)) - event_type = XGE_HAL_EVENT_SLOT_FREEZE; - if (g_xge_hal_driver->uld_callbacks.crit_err) { - g_xge_hal_driver->uld_callbacks.crit_err( - hldev->upper_layer_info, - event_type, - val64); - /* handle one critical event per poll cycle */ - hldev->in_poll = 0; - return; - } - } break; - default: { - xge_debug_queue(XGE_TRACE, - "got non-HAL event %d", - item->event_type); - } break; - } - - /* broadcast this event */ - if (g_xge_hal_driver->uld_callbacks.event) - g_xge_hal_driver->uld_callbacks.event(item); - } - - if (g_xge_hal_driver->uld_callbacks.before_device_poll) { - if (g_xge_hal_driver->uld_callbacks.before_device_poll( - hldev) != 0) { - hldev->in_poll = 0; - return; - } - } - - hstatus = __hal_device_poll(hldev); - if (g_xge_hal_driver->uld_callbacks.after_device_poll) - g_xge_hal_driver->uld_callbacks.after_device_poll(hldev); - - /* - * handle critical error right away: - * - walk the device queue again - * - drop non-critical events, if any - * - look for the 1st critical - */ - if (hstatus == XGE_HAL_ERR_CRITICAL) { - queue_has_critical_event = 1; - goto _again; - } - - hldev->in_poll = 0; -} - -/** - * xge_hal_rts_rth_init - Set enhanced mode for RTS hashing. - * @hldev: HAL device handle. - * - * This function is used to set the adapter to enhanced mode. - * - * See also: xge_hal_rts_rth_clr(), xge_hal_rts_rth_set(). - */ -void -xge_hal_rts_rth_init(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - /* - * Set the receive traffic steering mode from default(classic) - * to enhanced. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_ctrl); - val64 |= XGE_HAL_RTS_CTRL_ENHANCED_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rts_ctrl); -} - -/** - * xge_hal_rts_rth_clr - Clear RTS hashing. - * @hldev: HAL device handle. - * - * This function is used to clear all RTS hashing related stuff. - * It brings the adapter out from enhanced mode to classic mode. - * It also clears RTS_RTH_CFG register i.e clears hash type, function etc. - * - * See also: xge_hal_rts_rth_set(), xge_hal_rts_rth_itable_set(). - */ -void -xge_hal_rts_rth_clr(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - /* - * Set the receive traffic steering mode from default(classic) - * to enhanced. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_ctrl); - val64 &= ~XGE_HAL_RTS_CTRL_ENHANCED_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rts_ctrl); - val64 = 0; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_cfg); -} - -/** - * xge_hal_rts_rth_set - Set/configure RTS hashing. - * @hldev: HAL device handle. - * @def_q: default queue - * @hash_type: hash type i.e TcpIpV4, TcpIpV6 etc. - * @bucket_size: no of least significant bits to be used for hashing. - * - * Used to set/configure all RTS hashing related stuff. - * - set the steering mode to enhanced. - * - set hash function i.e algo selection. - * - set the default queue. - * - * See also: xge_hal_rts_rth_clr(), xge_hal_rts_rth_itable_set(). - */ -void -xge_hal_rts_rth_set(xge_hal_device_t *hldev, u8 def_q, u64 hash_type, - u16 bucket_size) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - val64 = XGE_HAL_RTS_DEFAULT_Q(def_q); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_default_q); - - val64 = hash_type; - val64 |= XGE_HAL_RTS_RTH_EN; - val64 |= XGE_HAL_RTS_RTH_BUCKET_SIZE(bucket_size); - val64 |= XGE_HAL_RTS_RTH_ALG_SEL_MS; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_cfg); -} - -/** - * xge_hal_rts_rth_start - Start RTS hashing. - * @hldev: HAL device handle. - * - * Used to Start RTS hashing . - * - * See also: xge_hal_rts_rth_clr(), xge_hal_rts_rth_itable_set(), xge_hal_rts_rth_start. - */ -void -xge_hal_rts_rth_start(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_rth_cfg); - val64 |= XGE_HAL_RTS_RTH_EN; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_cfg); -} - -/** - * xge_hal_rts_rth_stop - Stop the RTS hashing. - * @hldev: HAL device handle. - * - * Used to Staop RTS hashing . - * - * See also: xge_hal_rts_rth_clr(), xge_hal_rts_rth_itable_set(), xge_hal_rts_rth_start. - */ -void -xge_hal_rts_rth_stop(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_rth_cfg); - val64 &= ~XGE_HAL_RTS_RTH_EN; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_cfg); -} - -/** - * xge_hal_rts_rth_itable_set - Set/configure indirection table (IT). - * @hldev: HAL device handle. - * @itable: Pointer to the indirection table - * @itable_size: no of least significant bits to be used for hashing - * - * Used to set/configure indirection table. - * It enables the required no of entries in the IT. - * It adds entries to the IT. - * - * See also: xge_hal_rts_rth_clr(), xge_hal_rts_rth_set(). - */ -xge_hal_status_e -xge_hal_rts_rth_itable_set(xge_hal_device_t *hldev, u8 *itable, u32 itable_size) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - u32 idx; - - for (idx = 0; idx < itable_size; idx++) { - val64 = XGE_HAL_RTS_RTH_MAP_MEM_DATA_ENTRY_EN | - XGE_HAL_RTS_RTH_MAP_MEM_DATA(itable[idx]); - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_map_mem_data); - - /* execute */ - val64 = (XGE_HAL_RTS_RTH_MAP_MEM_CTRL_WE | - XGE_HAL_RTS_RTH_MAP_MEM_CTRL_STROBE | - XGE_HAL_RTS_RTH_MAP_MEM_CTRL_OFFSET(idx)); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_map_mem_ctrl); - - /* poll until done */ - if (__hal_device_register_poll(hldev, - &bar0->rts_rth_map_mem_ctrl, 0, - XGE_HAL_RTS_RTH_MAP_MEM_CTRL_STROBE, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK) { - /* upper layer may require to repeat */ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - } - - return XGE_HAL_OK; -} - - -/** - * xge_hal_device_rts_rth_key_set - Configure 40byte secret for hash calc. - * - * @hldev: HAL device handle. - * @KeySize: Number of 64-bit words - * @Key: upto 40-byte array of 8-bit values - * This function configures the 40-byte secret which is used for hash - * calculation. - * - * See also: xge_hal_rts_rth_clr(), xge_hal_rts_rth_set(). - */ -void -xge_hal_device_rts_rth_key_set(xge_hal_device_t *hldev, u8 KeySize, u8 *Key) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *) hldev->bar0; - u64 val64; - u32 entry, nreg, i; - - entry = 0; - nreg = 0; - - while( KeySize ) { - val64 = 0; - for ( i = 0; i < 8 ; i++) { - /* Prepare 64-bit word for 'nreg' containing 8 keys. */ - if (i) - val64 <<= 8; - val64 |= Key[entry++]; - } - - KeySize--; - - /* temp64 = XGE_HAL_RTH_HASH_MASK_n(val64, (n<<3), (n<<3)+7);*/ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_hash_mask[nreg++]); - } - - while( nreg < 5 ) { - /* Clear the rest if key is less than 40 bytes */ - val64 = 0; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_rth_hash_mask[nreg++]); - } -} - - -/** - * xge_hal_device_is_closed - Device is closed - * - * @devh: HAL device handle. - */ -int -xge_hal_device_is_closed(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - if (xge_list_is_empty(&hldev->fifo_channels) && - xge_list_is_empty(&hldev->ring_channels)) - return 1; - - return 0; -} - -xge_hal_status_e -xge_hal_device_rts_section_enable(xge_hal_device_h devh, int index) -{ - u64 val64; - int section; - int max_addr = XGE_HAL_MAX_MAC_ADDRESSES; - - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) - max_addr = XGE_HAL_MAX_MAC_ADDRESSES_HERC; - - if ( index >= max_addr ) - return XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES; - - /* - * Calculate the section value - */ - section = index / 32; - - xge_debug_device(XGE_TRACE, "the Section value is %d ", section); - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_mac_cfg); - switch(section) - { - case 0: - val64 |= XGE_HAL_RTS_MAC_SECT0_EN; - break; - case 1: - val64 |= XGE_HAL_RTS_MAC_SECT1_EN; - break; - case 2: - val64 |= XGE_HAL_RTS_MAC_SECT2_EN; - break; - case 3: - val64 |= XGE_HAL_RTS_MAC_SECT3_EN; - break; - case 4: - val64 |= XGE_HAL_RTS_MAC_SECT4_EN; - break; - case 5: - val64 |= XGE_HAL_RTS_MAC_SECT5_EN; - break; - case 6: - val64 |= XGE_HAL_RTS_MAC_SECT6_EN; - break; - case 7: - val64 |= XGE_HAL_RTS_MAC_SECT7_EN; - break; - default: - xge_debug_device(XGE_ERR, "Invalid Section value %d " - , section); - } - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rts_mac_cfg); - return XGE_HAL_OK; -} - - -/** - * xge_hal_fix_rldram_ecc_error - * @hldev: private member of the device structure. - * - * SXE-02-010. This function will turn OFF the ECC error reporting for the - * interface bet'n external Micron RLDRAM II device and memory controller. - * The error would have been reported in RLD_ECC_DB_ERR_L and RLD_ECC_DB_ERR_U - * fields of MC_ERR_REG register. Issue reported by HP-Unix folks during the - * qualification of Herc. - */ -xge_hal_status_e -xge_hal_fix_rldram_ecc_error(xge_hal_device_t * hldev) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - // Enter Test Mode. - val64 = XGE_HAL_MC_RLDRAM_TEST_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_ctrl); - - // Enable fg/bg tests. - val64 = 0x0100000000000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_driver); - - // Enable RLDRAM configuration. - val64 = 0x0000000000017B00ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_mrs); - - // Enable RLDRAM queues. - val64 = 0x0000000001017B00ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_mrs); - - // Setup test ranges - val64 = 0x00000000001E0100ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_add); - - val64 = 0x00000100001F0100ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_add_bkg); - // Start Reads. - val64 = 0x0001000000010000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_ctrl); - - if (__hal_device_register_poll(hldev, &bar0->mc_rldram_test_ctrl, 1, - XGE_HAL_MC_RLDRAM_TEST_DONE, - XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS) != XGE_HAL_OK){ - return XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING; - } - - // Exit test mode - val64 = 0x0000000000000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_ctrl); - - return XGE_HAL_OK; -} Property changes on: head/sys/dev/nxge/xgehal/xgehal-device.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-ring.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-ring.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-ring.c (nonexistent) @@ -1,663 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) -static ptrdiff_t -__hal_ring_item_dma_offset(xge_hal_mempool_h mempoolh, - void *item) -{ - int memblock_idx; - void *memblock; - - /* get owner memblock index */ - memblock_idx = __hal_ring_block_memblock_idx(item); - - /* get owner memblock by memblock index */ - memblock = __hal_mempool_memblock(mempoolh, memblock_idx); - - return (char*)item - (char*)memblock; -} -#endif - -static dma_addr_t -__hal_ring_item_dma_addr(xge_hal_mempool_h mempoolh, void *item, - pci_dma_h *dma_handle) -{ - int memblock_idx; - void *memblock; - xge_hal_mempool_dma_t *memblock_dma_object; - ptrdiff_t dma_item_offset; - - /* get owner memblock index */ - memblock_idx = __hal_ring_block_memblock_idx((xge_hal_ring_block_t *) item); - - /* get owner memblock by memblock index */ - memblock = __hal_mempool_memblock((xge_hal_mempool_t *) mempoolh, - memblock_idx); - - /* get memblock DMA object by memblock index */ - memblock_dma_object = - __hal_mempool_memblock_dma((xge_hal_mempool_t *) mempoolh, - memblock_idx); - - /* calculate offset in the memblock of this item */ - dma_item_offset = (char*)item - (char*)memblock; - - *dma_handle = memblock_dma_object->handle; - - return memblock_dma_object->addr + dma_item_offset; -} - -static void -__hal_ring_rxdblock_link(xge_hal_mempool_h mempoolh, - xge_hal_ring_t *ring, int from, int to) -{ - xge_hal_ring_block_t *to_item, *from_item; - dma_addr_t to_dma, from_dma; - pci_dma_h to_dma_handle, from_dma_handle; - - /* get "from" RxD block */ - from_item = (xge_hal_ring_block_t *) - __hal_mempool_item((xge_hal_mempool_t *) mempoolh, from); - xge_assert(from_item); - - /* get "to" RxD block */ - to_item = (xge_hal_ring_block_t *) - __hal_mempool_item((xge_hal_mempool_t *) mempoolh, to); - xge_assert(to_item); - - /* return address of the beginning of previous RxD block */ - to_dma = __hal_ring_item_dma_addr(mempoolh, to_item, &to_dma_handle); - - /* set next pointer for this RxD block to point on - * previous item's DMA start address */ - __hal_ring_block_next_pointer_set(from_item, to_dma); - - /* return "from" RxD block's DMA start address */ - from_dma = - __hal_ring_item_dma_addr(mempoolh, from_item, &from_dma_handle); - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - /* we must sync "from" RxD block, so hardware will see it */ - xge_os_dma_sync(ring->channel.pdev, - from_dma_handle, - from_dma + XGE_HAL_RING_NEXT_BLOCK_POINTER_OFFSET, - __hal_ring_item_dma_offset(mempoolh, from_item) + - XGE_HAL_RING_NEXT_BLOCK_POINTER_OFFSET, - sizeof(u64), - XGE_OS_DMA_DIR_TODEVICE); -#endif - - xge_debug_ring(XGE_TRACE, "block%d:0x"XGE_OS_LLXFMT" => block%d:0x"XGE_OS_LLXFMT, - from, (unsigned long long)from_dma, to, - (unsigned long long)to_dma); -} - -static xge_hal_status_e -__hal_ring_mempool_item_alloc(xge_hal_mempool_h mempoolh, - void *memblock, - int memblock_index, - xge_hal_mempool_dma_t *dma_object, - void *item, - int index, - int is_last, - void *userdata) -{ - int i; - xge_hal_ring_t *ring = (xge_hal_ring_t *)userdata; - - xge_assert(item); - xge_assert(ring); - - - /* format rxds array */ - for (i=ring->rxds_per_block-1; i>=0; i--) { - void *rxdblock_priv; - xge_hal_ring_rxd_priv_t *rxd_priv; - xge_hal_ring_rxd_1_t *rxdp; - int reserve_index = index * ring->rxds_per_block + i; - int memblock_item_idx; - - ring->reserved_rxds_arr[reserve_index] = (char *)item + - (ring->rxds_per_block - 1 - i) * ring->rxd_size; - - /* Note: memblock_item_idx is index of the item within - * the memblock. For instance, in case of three RxD-blocks - * per memblock this value can be 0,1 or 2. */ - rxdblock_priv = - __hal_mempool_item_priv((xge_hal_mempool_t *) mempoolh, - memblock_index, item, - &memblock_item_idx); - rxdp = (xge_hal_ring_rxd_1_t *) - ring->reserved_rxds_arr[reserve_index]; - rxd_priv = (xge_hal_ring_rxd_priv_t *) (void *) - ((char*)rxdblock_priv + ring->rxd_priv_size * i); - - /* pre-format per-RxD Ring's private */ - rxd_priv->dma_offset = (char*)rxdp - (char*)memblock; - rxd_priv->dma_addr = dma_object->addr + rxd_priv->dma_offset; - rxd_priv->dma_handle = dma_object->handle; -#ifdef XGE_DEBUG_ASSERT - rxd_priv->dma_object = dma_object; -#endif - - /* pre-format Host_Control */ -#if defined(XGE_HAL_USE_5B_MODE) - if (ring->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) { - xge_hal_ring_rxd_5_t *rxdp_5 = (xge_hal_ring_rxd_5_t *)rxdp; -#if defined(XGE_OS_PLATFORM_64BIT) - xge_assert(memblock_index <= 0xFFFF); - xge_assert(i <= 0xFFFF); - /* store memblock's index */ - rxdp_5->host_control = (u32)memblock_index << 16; - /* store index of memblock's private */ - rxdp_5->host_control |= (u32)(memblock_item_idx * - ring->rxds_per_block + i); -#else - /* 32-bit case */ - rxdp_5->host_control = (u32)rxd_priv; -#endif - } else { - /* 1b and 3b modes */ - rxdp->host_control = (u64)(ulong_t)rxd_priv; - } -#else - /* 1b and 3b modes */ - rxdp->host_control = (u64)(ulong_t)rxd_priv; -#endif - } - - __hal_ring_block_memblock_idx_set((xge_hal_ring_block_t *) item, memblock_index); - - if (is_last) { - /* link last one with first one */ - __hal_ring_rxdblock_link(mempoolh, ring, 0, index); - } - - if (index > 0 ) { - /* link this RxD block with previous one */ - __hal_ring_rxdblock_link(mempoolh, ring, index, index-1); - } - - return XGE_HAL_OK; -} - - xge_hal_status_e -__hal_ring_initial_replenish(xge_hal_channel_t *channel, - xge_hal_channel_reopen_e reopen) -{ - xge_hal_dtr_h dtr = NULL; - - while (xge_hal_channel_dtr_count(channel) > 0) { - xge_hal_status_e status; - - status = xge_hal_ring_dtr_reserve(channel, &dtr); - xge_assert(status == XGE_HAL_OK); - - if (channel->dtr_init) { - status = channel->dtr_init(channel, - dtr, channel->reserve_length, - channel->userdata, - reopen); - if (status != XGE_HAL_OK) { - xge_hal_ring_dtr_free(channel, dtr); - xge_hal_channel_abort(channel, - XGE_HAL_CHANNEL_OC_NORMAL); - return status; - } - } - - xge_hal_ring_dtr_post(channel, dtr); - } - - return XGE_HAL_OK; -} - -xge_hal_status_e -__hal_ring_open(xge_hal_channel_h channelh, xge_hal_channel_attr_t *attr) -{ - xge_hal_status_e status; - xge_hal_device_t *hldev; - xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; - xge_hal_ring_queue_t *queue; - - - /* Note: at this point we have channel.devh and channel.pdev - * pre-set only! */ - - hldev = (xge_hal_device_t *)ring->channel.devh; - ring->config = &hldev->config.ring; - queue = &ring->config->queue[attr->post_qid]; - ring->indicate_max_pkts = queue->indicate_max_pkts; - ring->buffer_mode = queue->buffer_mode; - - xge_assert(queue->configured); - -#if defined(XGE_HAL_RX_MULTI_RESERVE) - xge_os_spin_lock_init(&ring->channel.reserve_lock, hldev->pdev); -#elif defined(XGE_HAL_RX_MULTI_RESERVE_IRQ) - xge_os_spin_lock_init_irq(&ring->channel.reserve_lock, hldev->irqh); -#endif -#if defined(XGE_HAL_RX_MULTI_POST) - xge_os_spin_lock_init(&ring->channel.post_lock, hldev->pdev); -#elif defined(XGE_HAL_RX_MULTI_POST_IRQ) - xge_os_spin_lock_init_irq(&ring->channel.post_lock, hldev->irqh); -#endif - - ring->rxd_size = XGE_HAL_RING_RXD_SIZEOF(queue->buffer_mode); - ring->rxd_priv_size = - sizeof(xge_hal_ring_rxd_priv_t) + attr->per_dtr_space; - - /* how many RxDs can fit into one block. Depends on configured - * buffer_mode. */ - ring->rxds_per_block = XGE_HAL_RING_RXDS_PER_BLOCK(queue->buffer_mode); - - /* calculate actual RxD block private size */ - ring->rxdblock_priv_size = ring->rxd_priv_size * ring->rxds_per_block; - - ring->reserved_rxds_arr = (void **) xge_os_malloc(ring->channel.pdev, - sizeof(void*) * queue->max * ring->rxds_per_block); - - if (ring->reserved_rxds_arr == NULL) { - __hal_ring_close(channelh); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - ring->mempool = __hal_mempool_create( - hldev->pdev, - ring->config->memblock_size, - XGE_HAL_RING_RXDBLOCK_SIZE, - ring->rxdblock_priv_size, - queue->initial, queue->max, - __hal_ring_mempool_item_alloc, - NULL, /* nothing to free */ - ring); - if (ring->mempool == NULL) { - __hal_ring_close(channelh); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - status = __hal_channel_initialize(channelh, - attr, - ring->reserved_rxds_arr, - queue->initial * ring->rxds_per_block, - queue->max * ring->rxds_per_block, - 0 /* no threshold for ring! */); - if (status != XGE_HAL_OK) { - __hal_ring_close(channelh); - return status; - } - - /* sanity check that everything formatted ok */ - xge_assert(ring->reserved_rxds_arr[0] == - (char *)ring->mempool->items_arr[0] + - (ring->rxds_per_block * ring->rxd_size - ring->rxd_size)); - - /* Note: - * Specifying dtr_init callback means two things: - * 1) dtrs need to be initialized by ULD at channel-open time; - * 2) dtrs need to be posted at channel-open time - * (that's what the initial_replenish() below does) - * Currently we don't have a case when the 1) is done without the 2). - */ - if (ring->channel.dtr_init) { - if ((status = __hal_ring_initial_replenish ( - (xge_hal_channel_t *) channelh, - XGE_HAL_CHANNEL_OC_NORMAL) ) - != XGE_HAL_OK) { - __hal_ring_close(channelh); - return status; - } - } - - /* initial replenish will increment the counter in its post() routine, - * we have to reset it */ - ring->channel.usage_cnt = 0; - - return XGE_HAL_OK; -} - -void -__hal_ring_close(xge_hal_channel_h channelh) -{ - xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; - xge_hal_ring_queue_t *queue; -#if defined(XGE_HAL_RX_MULTI_RESERVE)||defined(XGE_HAL_RX_MULTI_RESERVE_IRQ)||\ - defined(XGE_HAL_RX_MULTI_POST) || defined(XGE_HAL_RX_MULTI_POST_IRQ) - xge_hal_device_t *hldev = (xge_hal_device_t *)ring->channel.devh; -#endif - - xge_assert(ring->channel.pdev); - - queue = &ring->config->queue[ring->channel.post_qid]; - - if (ring->mempool) { - __hal_mempool_destroy(ring->mempool); - } - - if (ring->reserved_rxds_arr) { - xge_os_free(ring->channel.pdev, - ring->reserved_rxds_arr, - sizeof(void*) * queue->max * ring->rxds_per_block); - } - - __hal_channel_terminate(channelh); - -#if defined(XGE_HAL_RX_MULTI_RESERVE) - xge_os_spin_lock_destroy(&ring->channel.reserve_lock, hldev->pdev); -#elif defined(XGE_HAL_RX_MULTI_RESERVE_IRQ) - xge_os_spin_lock_destroy_irq(&ring->channel.reserve_lock, hldev->pdev); -#endif -#if defined(XGE_HAL_RX_MULTI_POST) - xge_os_spin_lock_destroy(&ring->channel.post_lock, hldev->pdev); -#elif defined(XGE_HAL_RX_MULTI_POST_IRQ) - xge_os_spin_lock_destroy_irq(&ring->channel.post_lock, hldev->pdev); -#endif -} - -void -__hal_ring_prc_enable(xge_hal_channel_h channelh) -{ - xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; - xge_hal_device_t *hldev = (xge_hal_device_t *)ring->channel.devh; - xge_hal_pci_bar0_t *bar0; - u64 val64; - void *first_block; - int block_num; - xge_hal_ring_queue_t *queue; - pci_dma_h dma_handle; - - xge_assert(ring); - xge_assert(ring->channel.pdev); - bar0 = (xge_hal_pci_bar0_t *) (void *) - ((xge_hal_device_t *)ring->channel.devh)->bar0; - - queue = &ring->config->queue[ring->channel.post_qid]; - xge_assert(queue->buffer_mode == 1 || - queue->buffer_mode == 3 || - queue->buffer_mode == 5); - - /* last block in fact becomes first. This is just the way it - * is filled up and linked by item_alloc() */ - - block_num = queue->initial; - first_block = __hal_mempool_item(ring->mempool, block_num - 1); - val64 = __hal_ring_item_dma_addr(ring->mempool, - first_block, &dma_handle); - xge_os_pio_mem_write64(ring->channel.pdev, ring->channel.regh0, - val64, &bar0->prc_rxd0_n[ring->channel.post_qid]); - - xge_debug_ring(XGE_TRACE, "ring%d PRC DMA addr 0x"XGE_OS_LLXFMT" initialized", - ring->channel.post_qid, (unsigned long long)val64); - - val64 = xge_os_pio_mem_read64(ring->channel.pdev, - ring->channel.regh0, &bar0->prc_ctrl_n[ring->channel.post_qid]); - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC && - !queue->rth_en) { - val64 |= XGE_HAL_PRC_CTRL_RTH_DISABLE; - } - val64 |= XGE_HAL_PRC_CTRL_RC_ENABLED; - - val64 |= vBIT((queue->buffer_mode >> 1),14,2);/* 1,3 or 5 => 0,1 or 2 */ - val64 &= ~XGE_HAL_PRC_CTRL_RXD_BACKOFF_INTERVAL(0xFFFFFF); - val64 |= XGE_HAL_PRC_CTRL_RXD_BACKOFF_INTERVAL( - (hldev->config.pci_freq_mherz * queue->backoff_interval_us)); - - /* Beware: no snoop by the bridge if (no_snoop_bits) */ - val64 |= XGE_HAL_PRC_CTRL_NO_SNOOP(queue->no_snoop_bits); - - /* Herc: always use group_reads */ - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) - val64 |= XGE_HAL_PRC_CTRL_GROUP_READS; - - if (hldev->config.bimodal_interrupts) - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) - val64 |= XGE_HAL_PRC_CTRL_BIMODAL_INTERRUPT; - - xge_os_pio_mem_write64(ring->channel.pdev, ring->channel.regh0, - val64, &bar0->prc_ctrl_n[ring->channel.post_qid]); - - /* Configure Receive Protocol Assist */ - val64 = xge_os_pio_mem_read64(ring->channel.pdev, - ring->channel.regh0, &bar0->rx_pa_cfg); - val64 |= XGE_HAL_RX_PA_CFG_SCATTER_MODE(ring->config->scatter_mode); - val64 |= (XGE_HAL_RX_PA_CFG_IGNORE_SNAP_OUI | XGE_HAL_RX_PA_CFG_IGNORE_LLC_CTRL); - /* Clean STRIP_VLAN_TAG bit and set as config from upper layer */ - val64 &= ~XGE_HAL_RX_PA_CFG_STRIP_VLAN_TAG_MODE(1); - val64 |= XGE_HAL_RX_PA_CFG_STRIP_VLAN_TAG_MODE(ring->config->strip_vlan_tag); - - xge_os_pio_mem_write64(ring->channel.pdev, ring->channel.regh0, - val64, &bar0->rx_pa_cfg); - - xge_debug_ring(XGE_TRACE, "ring%d enabled in buffer_mode %d", - ring->channel.post_qid, queue->buffer_mode); -} - -void -__hal_ring_prc_disable(xge_hal_channel_h channelh) -{ - xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; - xge_hal_pci_bar0_t *bar0; - u64 val64; - - xge_assert(ring); - xge_assert(ring->channel.pdev); - bar0 = (xge_hal_pci_bar0_t *) (void *) - ((xge_hal_device_t *)ring->channel.devh)->bar0; - - val64 = xge_os_pio_mem_read64(ring->channel.pdev, - ring->channel.regh0, - &bar0->prc_ctrl_n[ring->channel.post_qid]); - val64 &= ~((u64) XGE_HAL_PRC_CTRL_RC_ENABLED); - xge_os_pio_mem_write64(ring->channel.pdev, ring->channel.regh0, - val64, &bar0->prc_ctrl_n[ring->channel.post_qid]); -} - -void -__hal_ring_hw_initialize(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64 val64; - int i, j; - - /* Rx DMA intialization. */ - - val64 = 0; - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - if (!hldev->config.ring.queue[i].configured) - continue; - val64 |= vBIT(hldev->config.ring.queue[i].priority, - (5 + (i * 8)), 3); - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rx_queue_priority); - xge_debug_ring(XGE_TRACE, "Rings priority configured to 0x"XGE_OS_LLXFMT, - (unsigned long long)val64); - - /* Configuring ring queues according to per-ring configuration */ - val64 = 0; - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - if (!hldev->config.ring.queue[i].configured) - continue; - val64 |= vBIT(hldev->config.ring.queue[i].dram_size_mb,(i*8),8); - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rx_queue_cfg); - xge_debug_ring(XGE_TRACE, "DRAM configured to 0x"XGE_OS_LLXFMT, - (unsigned long long)val64); - - if (!hldev->config.rts_qos_en && - !hldev->config.rts_port_en && - !hldev->config.rts_mac_en) { - - /* - * Activate default (QoS-based) Rx steering - */ - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rts_qos_steering); - for (j = 0; j < 8 /* QoS max */; j++) - { - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) - { - if (!hldev->config.ring.queue[i].configured) - continue; - if (!hldev->config.ring.queue[i].rth_en) - val64 |= (BIT(i) >> (j*8)); - } - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->rts_qos_steering); - xge_debug_ring(XGE_TRACE, "QoS steering configured to 0x"XGE_OS_LLXFMT, - (unsigned long long)val64); - - } - - /* Note: If a queue does not exist, it should be assigned a maximum - * length of zero. Otherwise, packet loss could occur. - * P. 4-4 User guide. - * - * All configured rings will be properly set at device open time - * by utilizing device_mtu_set() API call. */ - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - if (hldev->config.ring.queue[i].configured) - continue; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0ULL, - &bar0->rts_frm_len_n[i]); - } - -#ifdef XGE_HAL_HERC_EMULATION - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - ((u8 *)bar0 + 0x2e60)); /* mc_rldram_mrs_herc */ - val64 |= 0x0000000000010000; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - ((u8 *)bar0 + 0x2e60)); - - val64 |= 0x003a000000000000; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - ((u8 *)bar0 + 0x2e40)); /* mc_rldram_ref_herc */ - xge_os_mdelay(2000); -#endif - - /* now enabling MC-RLDRAM after setting MC_QUEUE sizes */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mc_rldram_mrs); - val64 |= XGE_HAL_MC_RLDRAM_QUEUE_SIZE_ENABLE | - XGE_HAL_MC_RLDRAM_MRS_ENABLE; - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, (u32)(val64>>32), - &bar0->mc_rldram_mrs); - xge_os_wmb(); - __hal_pio_mem_write32_lower(hldev->pdev, hldev->regh0, (u32)val64, - &bar0->mc_rldram_mrs); - - /* RLDRAM initialization procedure require 500us to complete */ - xge_os_mdelay(1); - - /* Temporary fixes for Herc RLDRAM */ - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - val64 = XGE_HAL_MC_RLDRAM_SET_REF_PERIOD(0x0279); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_ref_per_herc); - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mc_rldram_mrs_herc); - xge_debug_ring(XGE_TRACE, "default mc_rldram_mrs_herc 0x"XGE_OS_LLXFMT, - (unsigned long long)val64); - - val64 = 0x0003570003010300ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_mrs_herc); - - xge_os_mdelay(1); - } - - /* - * Assign MSI-X vectors - */ - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - xge_list_t *item; - xge_hal_channel_t *channel = NULL; - - if (!hldev->config.ring.queue[i].configured || - !hldev->config.ring.queue[i].intr_vector || - hldev->config.intr_mode != XGE_HAL_INTR_MODE_MSIX) - continue; - - /* find channel */ - xge_list_for_each(item, &hldev->free_channels) { - xge_hal_channel_t *tmp; - tmp = xge_container_of(item, xge_hal_channel_t, - item); - if (tmp->type == XGE_HAL_CHANNEL_TYPE_RING && - tmp->post_qid == i) { - channel = tmp; - break; - } - } - - if (channel) { - xge_hal_channel_msix_set(channel, - hldev->config.ring.queue[i].intr_vector); - } - } - - xge_debug_ring(XGE_TRACE, "%s", "ring channels initialized"); -} - -void -__hal_ring_mtu_set(xge_hal_device_h devh, int new_frmlen) -{ - int i; - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - for (i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - if (!hldev->config.ring.queue[i].configured) - continue; - if (hldev->config.ring.queue[i].max_frm_len != - XGE_HAL_RING_USE_MTU) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_MAC_RTS_FRM_LEN_SET( - hldev->config.ring.queue[i].max_frm_len), - &bar0->rts_frm_len_n[i]); - } else { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_MAC_RTS_FRM_LEN_SET(new_frmlen), - &bar0->rts_frm_len_n[i]); - } - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - XGE_HAL_RMAC_MAX_PYLD_LEN(new_frmlen), - &bar0->rmac_max_pyld_len); -} Property changes on: head/sys/dev/nxge/xgehal/xgehal-ring.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-stats.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-stats.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-stats.c (nonexistent) @@ -1,1013 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include - -/* - * __hal_stats_initialize - * @stats: xge_hal_stats_t structure that contains, in particular, - * Xframe hw stat counters. - * @devh: HAL device handle. - * - * Initialize per-device statistics object. - * See also: xge_hal_stats_getinfo(), xge_hal_status_e{}. - */ -xge_hal_status_e -__hal_stats_initialize (xge_hal_stats_t *stats, xge_hal_device_h devh) -{ - int dma_flags; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - xge_assert(!stats->is_initialized); - - dma_flags = XGE_OS_DMA_CACHELINE_ALIGNED; -#ifdef XGE_HAL_DMA_STATS_CONSISTENT - dma_flags |= XGE_OS_DMA_CONSISTENT; -#else - dma_flags |= XGE_OS_DMA_STREAMING; -#endif - if (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN) { - stats->hw_info = - (xge_hal_stats_hw_info_t *) xge_os_dma_malloc( - hldev->pdev, - sizeof(xge_hal_stats_hw_info_t), - dma_flags, - &stats->hw_info_dmah, - &stats->hw_info_dma_acch); - - if (stats->hw_info == NULL) { - xge_debug_stats(XGE_ERR, "%s", "can not DMA alloc"); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - xge_os_memzero(stats->hw_info, - sizeof(xge_hal_stats_hw_info_t)); - xge_os_memzero(&stats->hw_info_saved, - sizeof(xge_hal_stats_hw_info_t)); - xge_os_memzero(&stats->hw_info_latest, - sizeof(xge_hal_stats_hw_info_t)); - - - - stats->dma_addr = xge_os_dma_map(hldev->pdev, - stats->hw_info_dmah, - stats->hw_info, - sizeof(xge_hal_stats_hw_info_t), - XGE_OS_DMA_DIR_FROMDEVICE, - XGE_OS_DMA_CACHELINE_ALIGNED | -#ifdef XGE_HAL_DMA_STATS_CONSISTENT - XGE_OS_DMA_CONSISTENT -#else - XGE_OS_DMA_STREAMING -#endif - ); - if (stats->dma_addr == XGE_OS_INVALID_DMA_ADDR) { - xge_debug_stats(XGE_ERR, - "can not map vaddr 0x"XGE_OS_LLXFMT" to DMA", - (unsigned long long)(ulong_t)stats->hw_info); - xge_os_dma_free(hldev->pdev, - stats->hw_info, - sizeof(xge_hal_stats_hw_info_t), - &stats->hw_info_dma_acch, - &stats->hw_info_dmah); - return XGE_HAL_ERR_OUT_OF_MAPPING; - } - } - else { - stats->pcim_info_saved = - (xge_hal_stats_pcim_info_t *)xge_os_malloc( - hldev->pdev, sizeof(xge_hal_stats_pcim_info_t)); - if (stats->pcim_info_saved == NULL) { - xge_debug_stats(XGE_ERR, "%s", "can not alloc"); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - stats->pcim_info_latest = - (xge_hal_stats_pcim_info_t *)xge_os_malloc( - hldev->pdev, sizeof(xge_hal_stats_pcim_info_t)); - if (stats->pcim_info_latest == NULL) { - xge_os_free(hldev->pdev, stats->pcim_info_saved, - sizeof(xge_hal_stats_pcim_info_t)); - xge_debug_stats(XGE_ERR, "%s", "can not alloc"); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - stats->pcim_info = - (xge_hal_stats_pcim_info_t *) xge_os_dma_malloc( - hldev->pdev, - sizeof(xge_hal_stats_pcim_info_t), - dma_flags, - &stats->hw_info_dmah, - &stats->hw_info_dma_acch); - - if (stats->pcim_info == NULL) { - xge_os_free(hldev->pdev, stats->pcim_info_saved, - sizeof(xge_hal_stats_pcim_info_t)); - xge_os_free(hldev->pdev, stats->pcim_info_latest, - sizeof(xge_hal_stats_pcim_info_t)); - xge_debug_stats(XGE_ERR, "%s", "can not DMA alloc"); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - - xge_os_memzero(stats->pcim_info, - sizeof(xge_hal_stats_pcim_info_t)); - xge_os_memzero(stats->pcim_info_saved, - sizeof(xge_hal_stats_pcim_info_t)); - xge_os_memzero(stats->pcim_info_latest, - sizeof(xge_hal_stats_pcim_info_t)); - - - - stats->dma_addr = xge_os_dma_map(hldev->pdev, - stats->hw_info_dmah, - stats->pcim_info, - sizeof(xge_hal_stats_pcim_info_t), - XGE_OS_DMA_DIR_FROMDEVICE, - XGE_OS_DMA_CACHELINE_ALIGNED | -#ifdef XGE_HAL_DMA_STATS_CONSISTENT - XGE_OS_DMA_CONSISTENT -#else - XGE_OS_DMA_STREAMING -#endif - ); - if (stats->dma_addr == XGE_OS_INVALID_DMA_ADDR) { - xge_debug_stats(XGE_ERR, - "can not map vaddr 0x"XGE_OS_LLXFMT" to DMA", - (unsigned long long)(ulong_t)stats->hw_info); - - xge_os_dma_free(hldev->pdev, - stats->pcim_info, - sizeof(xge_hal_stats_pcim_info_t), - &stats->hw_info_dma_acch, - &stats->hw_info_dmah); - - xge_os_free(hldev->pdev, stats->pcim_info_saved, - sizeof(xge_hal_stats_pcim_info_t)); - - xge_os_free(hldev->pdev, stats->pcim_info_latest, - sizeof(xge_hal_stats_pcim_info_t)); - - return XGE_HAL_ERR_OUT_OF_MAPPING; - } - } - stats->devh = devh; - xge_os_memzero(&stats->sw_dev_info_stats, - sizeof(xge_hal_stats_device_info_t)); - - stats->is_initialized = 1; - - return XGE_HAL_OK; -} - -static void -__hal_stats_save (xge_hal_stats_t *stats) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)stats->devh; - - if (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN) { - xge_hal_stats_hw_info_t *latest; - - (void) xge_hal_stats_hw(stats->devh, &latest); - - xge_os_memcpy(&stats->hw_info_saved, stats->hw_info, - sizeof(xge_hal_stats_hw_info_t)); - } else { - xge_hal_stats_pcim_info_t *latest; - - (void) xge_hal_stats_pcim(stats->devh, &latest); - - xge_os_memcpy(stats->pcim_info_saved, stats->pcim_info, - sizeof(xge_hal_stats_pcim_info_t)); - } -} - -/* - * __hal_stats_disable - * @stats: xge_hal_stats_t structure that contains, in particular, - * Xframe hw stat counters. - * - * Ask device to stop collecting stats. - * See also: xge_hal_stats_getinfo(). - */ -void -__hal_stats_disable (xge_hal_stats_t *stats) -{ - xge_hal_device_t *hldev; - xge_hal_pci_bar0_t *bar0; - u64 val64; - - xge_assert(stats->hw_info); - - hldev = (xge_hal_device_t*)stats->devh; - xge_assert(hldev); - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->stat_cfg); - val64 &= ~XGE_HAL_STAT_CFG_STAT_EN; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->stat_cfg); - /* flush the write */ - (void)xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->stat_cfg); - - xge_debug_stats(XGE_TRACE, "stats disabled at 0x"XGE_OS_LLXFMT, - (unsigned long long)stats->dma_addr); - - stats->is_enabled = 0; -} - -/* - * __hal_stats_terminate - * @stats: xge_hal_stats_t structure that contains, in particular, - * Xframe hw stat counters. - * Terminate per-device statistics object. - */ -void -__hal_stats_terminate (xge_hal_stats_t *stats) -{ - xge_hal_device_t *hldev; - - xge_assert(stats->hw_info); - - hldev = (xge_hal_device_t*)stats->devh; - xge_assert(hldev); - xge_assert(stats->is_initialized); - if (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN) { - xge_os_dma_unmap(hldev->pdev, - stats->hw_info_dmah, - stats->dma_addr, - sizeof(xge_hal_stats_hw_info_t), - XGE_OS_DMA_DIR_FROMDEVICE); - - xge_os_dma_free(hldev->pdev, - stats->hw_info, - sizeof(xge_hal_stats_hw_info_t), - &stats->hw_info_dma_acch, - &stats->hw_info_dmah); - } else { - xge_os_dma_unmap(hldev->pdev, - stats->hw_info_dmah, - stats->dma_addr, - sizeof(xge_hal_stats_pcim_info_t), - XGE_OS_DMA_DIR_FROMDEVICE); - - xge_os_dma_free(hldev->pdev, - stats->pcim_info, - sizeof(xge_hal_stats_pcim_info_t), - &stats->hw_info_dma_acch, - &stats->hw_info_dmah); - - xge_os_free(hldev->pdev, stats->pcim_info_saved, - sizeof(xge_hal_stats_pcim_info_t)); - - xge_os_free(hldev->pdev, stats->pcim_info_latest, - sizeof(xge_hal_stats_pcim_info_t)); - - } - - stats->is_initialized = 0; - stats->is_enabled = 0; -} - - - -/* - * __hal_stats_enable - * @stats: xge_hal_stats_t structure that contains, in particular, - * Xframe hw stat counters. - * - * Ask device to start collecting stats. - * See also: xge_hal_stats_getinfo(). - */ -void -__hal_stats_enable (xge_hal_stats_t *stats) -{ - xge_hal_device_t *hldev; - xge_hal_pci_bar0_t *bar0; - u64 val64; - unsigned int refresh_time_pci_clocks; - - xge_assert(stats->hw_info); - - hldev = (xge_hal_device_t*)stats->devh; - xge_assert(hldev); - - bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - - /* enable statistics - * For Titan stat_addr offset == 0x09d8, and stat_cfg offset == 0x09d0 - */ - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - stats->dma_addr, &bar0->stat_addr); - - refresh_time_pci_clocks = XGE_HAL_XENA_PER_SEC * - hldev->config.stats_refresh_time_sec; - refresh_time_pci_clocks = - __hal_fix_time_ival_herc(hldev, - refresh_time_pci_clocks); - -#ifdef XGE_HAL_HERC_EMULATION - /* - * The clocks in the emulator are running ~1000 times slower - * than real world, so the stats transfer will occur ~1000 - * times less frequent. STAT_CFG.STAT_TRSF_PERIOD should be - * set to 0x20C for Hercules emulation (stats transferred - * every 0.5 sec). - */ - - val64 = (0x20C | XGE_HAL_STAT_CFG_STAT_RO | - XGE_HAL_STAT_CFG_STAT_EN); -#else - val64 = XGE_HAL_SET_UPDT_PERIOD(refresh_time_pci_clocks) | - XGE_HAL_STAT_CFG_STAT_RO | - XGE_HAL_STAT_CFG_STAT_EN; -#endif - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->stat_cfg); - - xge_debug_stats(XGE_TRACE, "stats enabled at 0x"XGE_OS_LLXFMT, - (unsigned long long)stats->dma_addr); - - stats->is_enabled = 1; -} - -/* - * __hal_stats_pcim_update_latest - Update hw ER stats counters, based on the - * real hardware maintained counters and the stored "reset" values. - */ -static void -__hal_stats_pcim_update_latest(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - int i; - -#define set_latest_stat_link_cnt(_link, _p) \ - hldev->stats.pcim_info_latest->link_info[_link]._p = \ - ((hldev->stats.pcim_info->link_info[_link]._p >= \ - hldev->stats.pcim_info_saved->link_info[_link]._p) ? \ - hldev->stats.pcim_info->link_info[_link]._p - \ - hldev->stats.pcim_info_saved->link_info[_link]._p : \ - ((-1) - hldev->stats.pcim_info_saved->link_info[_link]._p) + \ - hldev->stats.pcim_info->link_info[_link]._p) - - -#define set_latest_stat_aggr_cnt(_aggr, _p) \ - hldev->stats.pcim_info_latest->aggr_info[_aggr]._p = \ - ((hldev->stats.pcim_info->aggr_info[_aggr]._p >= \ - hldev->stats.pcim_info_saved->aggr_info[_aggr]._p) ? \ - hldev->stats.pcim_info->aggr_info[_aggr]._p - \ - hldev->stats.pcim_info_saved->aggr_info[_aggr]._p : \ - ((-1) - hldev->stats.pcim_info_saved->aggr_info[_aggr]._p) + \ - hldev->stats.pcim_info->aggr_info[_aggr]._p) - - - for (i = 0; i < XGE_HAL_MAC_LINKS; i++) { - set_latest_stat_link_cnt(i, tx_frms); - set_latest_stat_link_cnt(i, tx_ttl_eth_octets); - set_latest_stat_link_cnt(i, tx_data_octets); - set_latest_stat_link_cnt(i, tx_mcst_frms); - set_latest_stat_link_cnt(i, tx_bcst_frms); - set_latest_stat_link_cnt(i, tx_ucst_frms); - set_latest_stat_link_cnt(i, tx_tagged_frms); - set_latest_stat_link_cnt(i, tx_vld_ip); - set_latest_stat_link_cnt(i, tx_vld_ip_octets); - set_latest_stat_link_cnt(i, tx_icmp); - set_latest_stat_link_cnt(i, tx_tcp); - set_latest_stat_link_cnt(i, tx_rst_tcp); - set_latest_stat_link_cnt(i, tx_udp); - set_latest_stat_link_cnt(i, tx_unknown_protocol); - set_latest_stat_link_cnt(i, tx_parse_error); - set_latest_stat_link_cnt(i, tx_pause_ctrl_frms); - set_latest_stat_link_cnt(i, tx_lacpdu_frms); - set_latest_stat_link_cnt(i, tx_marker_pdu_frms); - set_latest_stat_link_cnt(i, tx_marker_resp_pdu_frms); - set_latest_stat_link_cnt(i, tx_drop_ip); - set_latest_stat_link_cnt(i, tx_xgmii_char1_match); - set_latest_stat_link_cnt(i, tx_xgmii_char2_match); - set_latest_stat_link_cnt(i, tx_xgmii_column1_match); - set_latest_stat_link_cnt(i, tx_xgmii_column2_match); - set_latest_stat_link_cnt(i, tx_drop_frms); - set_latest_stat_link_cnt(i, tx_any_err_frms); - set_latest_stat_link_cnt(i, rx_ttl_frms); - set_latest_stat_link_cnt(i, rx_vld_frms); - set_latest_stat_link_cnt(i, rx_offld_frms); - set_latest_stat_link_cnt(i, rx_ttl_eth_octets); - set_latest_stat_link_cnt(i, rx_data_octets); - set_latest_stat_link_cnt(i, rx_offld_octets); - set_latest_stat_link_cnt(i, rx_vld_mcst_frms); - set_latest_stat_link_cnt(i, rx_vld_bcst_frms); - set_latest_stat_link_cnt(i, rx_accepted_ucst_frms); - set_latest_stat_link_cnt(i, rx_accepted_nucst_frms); - set_latest_stat_link_cnt(i, rx_tagged_frms); - set_latest_stat_link_cnt(i, rx_long_frms); - set_latest_stat_link_cnt(i, rx_usized_frms); - set_latest_stat_link_cnt(i, rx_osized_frms); - set_latest_stat_link_cnt(i, rx_frag_frms); - set_latest_stat_link_cnt(i, rx_jabber_frms); - set_latest_stat_link_cnt(i, rx_ttl_64_frms); - set_latest_stat_link_cnt(i, rx_ttl_65_127_frms); - set_latest_stat_link_cnt(i, rx_ttl_128_255_frms); - set_latest_stat_link_cnt(i, rx_ttl_256_511_frms); - set_latest_stat_link_cnt(i, rx_ttl_512_1023_frms); - set_latest_stat_link_cnt(i, rx_ttl_1024_1518_frms); - set_latest_stat_link_cnt(i, rx_ttl_1519_4095_frms); - set_latest_stat_link_cnt(i, rx_ttl_40956_8191_frms); - set_latest_stat_link_cnt(i, rx_ttl_8192_max_frms); - set_latest_stat_link_cnt(i, rx_ttl_gt_max_frms); - set_latest_stat_link_cnt(i, rx_ip); - set_latest_stat_link_cnt(i, rx_ip_octets); - set_latest_stat_link_cnt(i, rx_hdr_err_ip); - set_latest_stat_link_cnt(i, rx_icmp); - set_latest_stat_link_cnt(i, rx_tcp); - set_latest_stat_link_cnt(i, rx_udp); - set_latest_stat_link_cnt(i, rx_err_tcp); - set_latest_stat_link_cnt(i, rx_pause_cnt); - set_latest_stat_link_cnt(i, rx_pause_ctrl_frms); - set_latest_stat_link_cnt(i, rx_unsup_ctrl_frms); - set_latest_stat_link_cnt(i, rx_in_rng_len_err_frms); - set_latest_stat_link_cnt(i, rx_out_rng_len_err_frms); - set_latest_stat_link_cnt(i, rx_drop_frms); - set_latest_stat_link_cnt(i, rx_discarded_frms); - set_latest_stat_link_cnt(i, rx_drop_ip); - set_latest_stat_link_cnt(i, rx_err_drp_udp); - set_latest_stat_link_cnt(i, rx_lacpdu_frms); - set_latest_stat_link_cnt(i, rx_marker_pdu_frms); - set_latest_stat_link_cnt(i, rx_marker_resp_pdu_frms); - set_latest_stat_link_cnt(i, rx_unknown_pdu_frms); - set_latest_stat_link_cnt(i, rx_illegal_pdu_frms); - set_latest_stat_link_cnt(i, rx_fcs_discard); - set_latest_stat_link_cnt(i, rx_len_discard); - set_latest_stat_link_cnt(i, rx_pf_discard); - set_latest_stat_link_cnt(i, rx_trash_discard); - set_latest_stat_link_cnt(i, rx_rts_discard); - set_latest_stat_link_cnt(i, rx_wol_discard); - set_latest_stat_link_cnt(i, rx_red_discard); - set_latest_stat_link_cnt(i, rx_ingm_full_discard); - set_latest_stat_link_cnt(i, rx_xgmii_data_err_cnt); - set_latest_stat_link_cnt(i, rx_xgmii_ctrl_err_cnt); - set_latest_stat_link_cnt(i, rx_xgmii_err_sym); - set_latest_stat_link_cnt(i, rx_xgmii_char1_match); - set_latest_stat_link_cnt(i, rx_xgmii_char2_match); - set_latest_stat_link_cnt(i, rx_xgmii_column1_match); - set_latest_stat_link_cnt(i, rx_xgmii_column2_match); - set_latest_stat_link_cnt(i, rx_local_fault); - set_latest_stat_link_cnt(i, rx_remote_fault); - set_latest_stat_link_cnt(i, rx_queue_full); - } - - for (i = 0; i < XGE_HAL_MAC_AGGREGATORS; i++) { - set_latest_stat_aggr_cnt(i, tx_frms); - set_latest_stat_aggr_cnt(i, tx_mcst_frms); - set_latest_stat_aggr_cnt(i, tx_bcst_frms); - set_latest_stat_aggr_cnt(i, tx_discarded_frms); - set_latest_stat_aggr_cnt(i, tx_errored_frms); - set_latest_stat_aggr_cnt(i, rx_frms); - set_latest_stat_aggr_cnt(i, rx_data_octets); - set_latest_stat_aggr_cnt(i, rx_mcst_frms); - set_latest_stat_aggr_cnt(i, rx_bcst_frms); - set_latest_stat_aggr_cnt(i, rx_discarded_frms); - set_latest_stat_aggr_cnt(i, rx_errored_frms); - set_latest_stat_aggr_cnt(i, rx_unknown_protocol_frms); - } - return; -} - -/* - * __hal_stats_update_latest - Update hw stats counters, based on the real - * hardware maintained counters and the stored "reset" values. - */ -static void -__hal_stats_update_latest(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - -#define set_latest_stat_cnt(_dev, _p) \ - hldev->stats.hw_info_latest._p = \ - ((hldev->stats.hw_info->_p >= hldev->stats.hw_info_saved._p) ? \ - hldev->stats.hw_info->_p - hldev->stats.hw_info_saved._p : \ - ((-1) - hldev->stats.hw_info_saved._p) + hldev->stats.hw_info->_p) - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_TITAN) { - __hal_stats_pcim_update_latest(devh); - return; - } - - /* Tx MAC statistics counters. */ - set_latest_stat_cnt(hldev, tmac_frms); - set_latest_stat_cnt(hldev, tmac_data_octets); - set_latest_stat_cnt(hldev, tmac_drop_frms); - set_latest_stat_cnt(hldev, tmac_mcst_frms); - set_latest_stat_cnt(hldev, tmac_bcst_frms); - set_latest_stat_cnt(hldev, tmac_pause_ctrl_frms); - set_latest_stat_cnt(hldev, tmac_ttl_octets); - set_latest_stat_cnt(hldev, tmac_ucst_frms); - set_latest_stat_cnt(hldev, tmac_nucst_frms); - set_latest_stat_cnt(hldev, tmac_any_err_frms); - set_latest_stat_cnt(hldev, tmac_ttl_less_fb_octets); - set_latest_stat_cnt(hldev, tmac_vld_ip_octets); - set_latest_stat_cnt(hldev, tmac_vld_ip); - set_latest_stat_cnt(hldev, tmac_drop_ip); - set_latest_stat_cnt(hldev, tmac_icmp); - set_latest_stat_cnt(hldev, tmac_rst_tcp); - set_latest_stat_cnt(hldev, tmac_tcp); - set_latest_stat_cnt(hldev, tmac_udp); - set_latest_stat_cnt(hldev, reserved_0); - - /* Rx MAC Statistics counters. */ - set_latest_stat_cnt(hldev, rmac_vld_frms); - set_latest_stat_cnt(hldev, rmac_data_octets); - set_latest_stat_cnt(hldev, rmac_fcs_err_frms); - set_latest_stat_cnt(hldev, rmac_drop_frms); - set_latest_stat_cnt(hldev, rmac_vld_mcst_frms); - set_latest_stat_cnt(hldev, rmac_vld_bcst_frms); - set_latest_stat_cnt(hldev, rmac_in_rng_len_err_frms); - set_latest_stat_cnt(hldev, rmac_out_rng_len_err_frms); - set_latest_stat_cnt(hldev, rmac_long_frms); - set_latest_stat_cnt(hldev, rmac_pause_ctrl_frms); - set_latest_stat_cnt(hldev, rmac_unsup_ctrl_frms); - set_latest_stat_cnt(hldev, rmac_ttl_octets); - set_latest_stat_cnt(hldev, rmac_accepted_ucst_frms); - set_latest_stat_cnt(hldev, rmac_accepted_nucst_frms); - set_latest_stat_cnt(hldev, rmac_discarded_frms); - set_latest_stat_cnt(hldev, rmac_drop_events); - set_latest_stat_cnt(hldev, reserved_1); - set_latest_stat_cnt(hldev, rmac_ttl_less_fb_octets); - set_latest_stat_cnt(hldev, rmac_ttl_frms); - set_latest_stat_cnt(hldev, reserved_2); - set_latest_stat_cnt(hldev, reserved_3); - set_latest_stat_cnt(hldev, rmac_usized_frms); - set_latest_stat_cnt(hldev, rmac_osized_frms); - set_latest_stat_cnt(hldev, rmac_frag_frms); - set_latest_stat_cnt(hldev, rmac_jabber_frms); - set_latest_stat_cnt(hldev, reserved_4); - set_latest_stat_cnt(hldev, rmac_ttl_64_frms); - set_latest_stat_cnt(hldev, rmac_ttl_65_127_frms); - set_latest_stat_cnt(hldev, reserved_5); - set_latest_stat_cnt(hldev, rmac_ttl_128_255_frms); - set_latest_stat_cnt(hldev, rmac_ttl_256_511_frms); - set_latest_stat_cnt(hldev, reserved_6); - set_latest_stat_cnt(hldev, rmac_ttl_512_1023_frms); - set_latest_stat_cnt(hldev, rmac_ttl_1024_1518_frms); - set_latest_stat_cnt(hldev, reserved_7); - set_latest_stat_cnt(hldev, rmac_ip); - set_latest_stat_cnt(hldev, rmac_ip_octets); - set_latest_stat_cnt(hldev, rmac_hdr_err_ip); - set_latest_stat_cnt(hldev, rmac_drop_ip); - set_latest_stat_cnt(hldev, rmac_icmp); - set_latest_stat_cnt(hldev, reserved_8); - set_latest_stat_cnt(hldev, rmac_tcp); - set_latest_stat_cnt(hldev, rmac_udp); - set_latest_stat_cnt(hldev, rmac_err_drp_udp); - set_latest_stat_cnt(hldev, rmac_xgmii_err_sym); - set_latest_stat_cnt(hldev, rmac_frms_q0); - set_latest_stat_cnt(hldev, rmac_frms_q1); - set_latest_stat_cnt(hldev, rmac_frms_q2); - set_latest_stat_cnt(hldev, rmac_frms_q3); - set_latest_stat_cnt(hldev, rmac_frms_q4); - set_latest_stat_cnt(hldev, rmac_frms_q5); - set_latest_stat_cnt(hldev, rmac_frms_q6); - set_latest_stat_cnt(hldev, rmac_frms_q7); - set_latest_stat_cnt(hldev, rmac_full_q0); - set_latest_stat_cnt(hldev, rmac_full_q1); - set_latest_stat_cnt(hldev, rmac_full_q2); - set_latest_stat_cnt(hldev, rmac_full_q3); - set_latest_stat_cnt(hldev, rmac_full_q4); - set_latest_stat_cnt(hldev, rmac_full_q5); - set_latest_stat_cnt(hldev, rmac_full_q6); - set_latest_stat_cnt(hldev, rmac_full_q7); - set_latest_stat_cnt(hldev, rmac_pause_cnt); - set_latest_stat_cnt(hldev, reserved_9); - set_latest_stat_cnt(hldev, rmac_xgmii_data_err_cnt); - set_latest_stat_cnt(hldev, rmac_xgmii_ctrl_err_cnt); - set_latest_stat_cnt(hldev, rmac_accepted_ip); - set_latest_stat_cnt(hldev, rmac_err_tcp); - - /* PCI/PCI-X Read transaction statistics. */ - set_latest_stat_cnt(hldev, rd_req_cnt); - set_latest_stat_cnt(hldev, new_rd_req_cnt); - set_latest_stat_cnt(hldev, new_rd_req_rtry_cnt); - set_latest_stat_cnt(hldev, rd_rtry_cnt); - set_latest_stat_cnt(hldev, wr_rtry_rd_ack_cnt); - - /* PCI/PCI-X write transaction statistics. */ - set_latest_stat_cnt(hldev, wr_req_cnt); - set_latest_stat_cnt(hldev, new_wr_req_cnt); - set_latest_stat_cnt(hldev, new_wr_req_rtry_cnt); - set_latest_stat_cnt(hldev, wr_rtry_cnt); - set_latest_stat_cnt(hldev, wr_disc_cnt); - set_latest_stat_cnt(hldev, rd_rtry_wr_ack_cnt); - - /* DMA Transaction statistics. */ - set_latest_stat_cnt(hldev, txp_wr_cnt); - set_latest_stat_cnt(hldev, txd_rd_cnt); - set_latest_stat_cnt(hldev, txd_wr_cnt); - set_latest_stat_cnt(hldev, rxd_rd_cnt); - set_latest_stat_cnt(hldev, rxd_wr_cnt); - set_latest_stat_cnt(hldev, txf_rd_cnt); - set_latest_stat_cnt(hldev, rxf_wr_cnt); - - /* Enhanced Herc statistics */ - set_latest_stat_cnt(hldev, tmac_frms_oflow); - set_latest_stat_cnt(hldev, tmac_data_octets_oflow); - set_latest_stat_cnt(hldev, tmac_mcst_frms_oflow); - set_latest_stat_cnt(hldev, tmac_bcst_frms_oflow); - set_latest_stat_cnt(hldev, tmac_ttl_octets_oflow); - set_latest_stat_cnt(hldev, tmac_ucst_frms_oflow); - set_latest_stat_cnt(hldev, tmac_nucst_frms_oflow); - set_latest_stat_cnt(hldev, tmac_any_err_frms_oflow); - set_latest_stat_cnt(hldev, tmac_vlan_frms); - set_latest_stat_cnt(hldev, tmac_vld_ip_oflow); - set_latest_stat_cnt(hldev, tmac_drop_ip_oflow); - set_latest_stat_cnt(hldev, tmac_icmp_oflow); - set_latest_stat_cnt(hldev, tmac_rst_tcp_oflow); - set_latest_stat_cnt(hldev, tmac_udp_oflow); - set_latest_stat_cnt(hldev, tpa_unknown_protocol); - set_latest_stat_cnt(hldev, tpa_parse_failure); - set_latest_stat_cnt(hldev, rmac_vld_frms_oflow); - set_latest_stat_cnt(hldev, rmac_data_octets_oflow); - set_latest_stat_cnt(hldev, rmac_vld_mcst_frms_oflow); - set_latest_stat_cnt(hldev, rmac_vld_bcst_frms_oflow); - set_latest_stat_cnt(hldev, rmac_ttl_octets_oflow); - set_latest_stat_cnt(hldev, rmac_accepted_ucst_frms_oflow); - set_latest_stat_cnt(hldev, rmac_accepted_nucst_frms_oflow); - set_latest_stat_cnt(hldev, rmac_discarded_frms_oflow); - set_latest_stat_cnt(hldev, rmac_drop_events_oflow); - set_latest_stat_cnt(hldev, rmac_usized_frms_oflow); - set_latest_stat_cnt(hldev, rmac_osized_frms_oflow); - set_latest_stat_cnt(hldev, rmac_frag_frms_oflow); - set_latest_stat_cnt(hldev, rmac_jabber_frms_oflow); - set_latest_stat_cnt(hldev, rmac_ip_oflow); - set_latest_stat_cnt(hldev, rmac_drop_ip_oflow); - set_latest_stat_cnt(hldev, rmac_icmp_oflow); - set_latest_stat_cnt(hldev, rmac_udp_oflow); - set_latest_stat_cnt(hldev, rmac_err_drp_udp_oflow); - set_latest_stat_cnt(hldev, rmac_pause_cnt_oflow); - set_latest_stat_cnt(hldev, rmac_ttl_1519_4095_frms); - set_latest_stat_cnt(hldev, rmac_ttl_4096_8191_frms); - set_latest_stat_cnt(hldev, rmac_ttl_8192_max_frms); - set_latest_stat_cnt(hldev, rmac_ttl_gt_max_frms); - set_latest_stat_cnt(hldev, rmac_osized_alt_frms); - set_latest_stat_cnt(hldev, rmac_jabber_alt_frms); - set_latest_stat_cnt(hldev, rmac_gt_max_alt_frms); - set_latest_stat_cnt(hldev, rmac_vlan_frms); - set_latest_stat_cnt(hldev, rmac_fcs_discard); - set_latest_stat_cnt(hldev, rmac_len_discard); - set_latest_stat_cnt(hldev, rmac_da_discard); - set_latest_stat_cnt(hldev, rmac_pf_discard); - set_latest_stat_cnt(hldev, rmac_rts_discard); - set_latest_stat_cnt(hldev, rmac_red_discard); - set_latest_stat_cnt(hldev, rmac_ingm_full_discard); - set_latest_stat_cnt(hldev, rmac_accepted_ip_oflow); - set_latest_stat_cnt(hldev, link_fault_cnt); -} - -/** - * xge_hal_stats_hw - Get HW device statistics. - * @devh: HAL device handle. - * @hw_info: Xframe statistic counters. See xge_hal_stats_hw_info_t. - * Returned by HAL. - * - * Get device and HAL statistics. The latter is part of the in-host statistics - * that HAL maintains for _that_ device. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not - * currently available. - * - * See also: xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_stats_hw(xge_hal_device_h devh, xge_hal_stats_hw_info_t **hw_info) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - xge_assert(xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN) - - if (!hldev->stats.is_initialized || - !hldev->stats.is_enabled) { - *hw_info = NULL; - return XGE_HAL_INF_STATS_IS_NOT_READY; - } - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_STATS_STREAMING) - xge_os_dma_sync(hldev->pdev, - hldev->stats.hw_info_dmah, - hldev->stats.dma_addr, - 0, - sizeof(xge_hal_stats_hw_info_t), - XGE_OS_DMA_DIR_FROMDEVICE); -#endif - - /* - * update hw counters, taking into account - * the "reset" or "saved" - * values - */ - __hal_stats_update_latest(devh); - - /* - * statistics HW bug fixups for Xena and Herc - */ - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA || - xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - u64 mcst, bcst; - xge_hal_stats_hw_info_t *hwsta = &hldev->stats.hw_info_latest; - - mcst = ((u64)hwsta->rmac_vld_mcst_frms_oflow << 32) | - hwsta->rmac_vld_mcst_frms; - - bcst = ((u64)hwsta->rmac_vld_bcst_frms_oflow << 32) | - hwsta->rmac_vld_bcst_frms; - - mcst -= bcst; - - hwsta->rmac_vld_mcst_frms_oflow = (u32)(mcst >> 32); - hwsta->rmac_vld_mcst_frms = (u32)mcst; - } - - *hw_info = &hldev->stats.hw_info_latest; - - return XGE_HAL_OK; -} - -/** - * xge_hal_stats_pcim - Get HW device statistics. - * @devh: HAL device handle. - * @hw_info: Xframe statistic counters. See xge_hal_stats_pcim_info_t. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not - * currently available. - * - * See also: xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_stats_pcim(xge_hal_device_h devh, xge_hal_stats_pcim_info_t **hw_info) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - xge_assert(xge_hal_device_check_id(hldev) == XGE_HAL_CARD_TITAN) - - if (!hldev->stats.is_initialized || - !hldev->stats.is_enabled) { - *hw_info = NULL; - return XGE_HAL_INF_STATS_IS_NOT_READY; - } - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_STATS_STREAMING) - xge_os_dma_sync(hldev->pdev, - hldev->stats.hw_info_dmah, - hldev->stats.dma_addr, - 0, - sizeof(xge_hal_stats_pcim_info_t), - XGE_OS_DMA_DIR_FROMDEVICE); -#endif - - /* - * update hw counters, taking into account - * the "reset" or "saved" - * values - */ - __hal_stats_pcim_update_latest(devh); - - *hw_info = hldev->stats.pcim_info_latest; - - return XGE_HAL_OK; -} - -/** - * xge_hal_stats_device - Get HAL statistics. - * @devh: HAL device handle. - * @hw_info: Xframe statistic counters. See xge_hal_stats_hw_info_t. - * Returned by HAL. - * @device_info: HAL statistics. See xge_hal_stats_device_info_t. - * Returned by HAL. - * - * Get device and HAL statistics. The latter is part of the in-host statistics - * that HAL maintains for _that_ device. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not - * currently available. - * - * See also: xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_stats_device(xge_hal_device_h devh, - xge_hal_stats_device_info_t **device_info) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - if (!hldev->stats.is_initialized || - !hldev->stats.is_enabled) { - *device_info = NULL; - return XGE_HAL_INF_STATS_IS_NOT_READY; - } - - hldev->stats.sw_dev_info_stats.traffic_intr_cnt = - hldev->stats.sw_dev_info_stats.total_intr_cnt - - hldev->stats.sw_dev_info_stats.not_traffic_intr_cnt; - - *device_info = &hldev->stats.sw_dev_info_stats; - - return XGE_HAL_OK; -} - -/** - * xge_hal_stats_channel - Get channel statistics. - * @channelh: Channel handle. - * @channel_info: HAL channel statistic counters. - * See xge_hal_stats_channel_info_t{}. Returned by HAL. - * - * Retrieve statistics of a particular HAL channel. This includes, for instance, - * number of completions per interrupt, number of traffic interrupts, etc. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not - * currently available. - * - * See also: xge_hal_status_e{}. - */ -xge_hal_status_e -xge_hal_stats_channel(xge_hal_channel_h channelh, - xge_hal_stats_channel_info_t **channel_info) -{ - xge_hal_stats_hw_info_t *latest; - xge_hal_channel_t *channel; - xge_hal_device_t *hldev; - - channel = (xge_hal_channel_t *)channelh; - if ((channel == NULL) || (channel->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - hldev = (xge_hal_device_t *)channel->devh; - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (!hldev->stats.is_initialized || - !hldev->stats.is_enabled || - !channel->is_open) { - *channel_info = NULL; - return XGE_HAL_INF_STATS_IS_NOT_READY; - } - - hldev->stats.sw_dev_info_stats.traffic_intr_cnt = - hldev->stats.sw_dev_info_stats.total_intr_cnt - - hldev->stats.sw_dev_info_stats.not_traffic_intr_cnt; - - if (hldev->stats.sw_dev_info_stats.traffic_intr_cnt) { - int rxcnt = hldev->stats.sw_dev_info_stats.rx_traffic_intr_cnt; - int txcnt = hldev->stats.sw_dev_info_stats.tx_traffic_intr_cnt; - if (channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) { - if (!txcnt) - txcnt = 1; - channel->stats.avg_compl_per_intr_cnt = - channel->stats.total_compl_cnt / txcnt; - } else if (channel->type == XGE_HAL_CHANNEL_TYPE_RING && - !hldev->config.bimodal_interrupts) { - if (!rxcnt) - rxcnt = 1; - channel->stats.avg_compl_per_intr_cnt = - channel->stats.total_compl_cnt / rxcnt; - } - if (channel->stats.avg_compl_per_intr_cnt == 0) { - /* to not confuse user */ - channel->stats.avg_compl_per_intr_cnt = 1; - } - } - - (void) xge_hal_stats_hw(hldev, &latest); - - if (channel->stats.total_posts) { - channel->stats.avg_buffers_per_post = - channel->stats.total_buffers / - channel->stats.total_posts; -#ifdef XGE_OS_PLATFORM_64BIT - if (channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) { - channel->stats.avg_post_size = - (u32)(latest->tmac_ttl_less_fb_octets / - channel->stats.total_posts); - } -#endif - } - -#ifdef XGE_OS_PLATFORM_64BIT - if (channel->stats.total_buffers && - channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) { - channel->stats.avg_buffer_size = - (u32)(latest->tmac_ttl_less_fb_octets / - channel->stats.total_buffers); - } -#endif - - *channel_info = &channel->stats; - return XGE_HAL_OK; -} - -/** - * xge_hal_stats_reset - Reset (zero-out) device statistics - * @devh: HAL device handle. - * - * Reset all device statistics. - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not - * currently available. - * - * See also: xge_hal_status_e{}, xge_hal_stats_channel_info_t{}, - * xge_hal_stats_sw_err_t{}, xge_hal_stats_device_info_t{}. - */ -xge_hal_status_e -xge_hal_stats_reset(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - if (!hldev->stats.is_initialized || - !hldev->stats.is_enabled) { - return XGE_HAL_INF_STATS_IS_NOT_READY; - } - - /* save hw stats to calculate the after-reset values */ - __hal_stats_save(&hldev->stats); - - /* zero-out driver-maintained stats, don't reset the saved */ - __hal_stats_soft_reset(hldev, 0); - - return XGE_HAL_OK; -} - -/* - * __hal_stats_soft_reset - Reset software-maintained statistics. - */ -void -__hal_stats_soft_reset (xge_hal_device_h devh, int reset_all) -{ - xge_list_t *item; - xge_hal_channel_t *channel; - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - - if (reset_all) { - if (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN) { - xge_os_memzero(&hldev->stats.hw_info_saved, - sizeof(xge_hal_stats_hw_info_t)); - xge_os_memzero(&hldev->stats.hw_info_latest, - sizeof(xge_hal_stats_hw_info_t)); - } else { - xge_os_memzero(&hldev->stats.pcim_info_saved, - sizeof(xge_hal_stats_pcim_info_t)); - xge_os_memzero(&hldev->stats.pcim_info_latest, - sizeof(xge_hal_stats_pcim_info_t)); - } - } - - /* Reset the "soft" error and informational statistics */ - xge_os_memzero(&hldev->stats.sw_dev_err_stats, - sizeof(xge_hal_stats_sw_err_t)); - xge_os_memzero(&hldev->stats.sw_dev_info_stats, - sizeof(xge_hal_stats_device_info_t)); - - /* for each Rx channel */ - xge_list_for_each(item, &hldev->ring_channels) { - channel = xge_container_of(item, xge_hal_channel_t, item); - xge_os_memzero(&channel->stats, - sizeof(xge_hal_stats_channel_info_t)); - } - - /* for each Tx channel */ - xge_list_for_each(item, &hldev->fifo_channels) { - channel = xge_container_of(item, xge_hal_channel_t, item); - xge_os_memzero(&channel->stats, - sizeof(xge_hal_stats_channel_info_t)); - } -} - Property changes on: head/sys/dev/nxge/xgehal/xgehal-stats.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-driver.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-driver.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-driver.c (nonexistent) @@ -1,294 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include - -static xge_hal_driver_t g_driver; -xge_hal_driver_t *g_xge_hal_driver = NULL; -char *g_xge_hal_log = NULL; - -#ifdef XGE_OS_MEMORY_CHECK -xge_os_malloc_t g_malloc_arr[XGE_OS_MALLOC_CNT_MAX]; -int g_malloc_cnt = 0; -#endif - -/* - * Runtime tracing support - */ -static unsigned long g_module_mask_default = 0; -unsigned long *g_module_mask = &g_module_mask_default; -static int g_level_default = 0; -int *g_level = &g_level_default; - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR -static xge_os_tracebuf_t g_tracebuf; -char *dmesg, *dmesg_start; - -/** - * xge_hal_driver_tracebuf_dump - Dump the trace buffer. - * - * Dump the trace buffer contents. - */ -void -xge_hal_driver_tracebuf_dump(void) -{ - int i; - int off = 0; - - if (g_xge_os_tracebuf == NULL) { - return; - } - - xge_os_printf("################ Trace dump Begin ###############"); - if (g_xge_os_tracebuf->wrapped_once) { - for (i = 0; i < g_xge_os_tracebuf->size - - g_xge_os_tracebuf->offset; i += off) { - if (*(dmesg_start + i)) - xge_os_printf(dmesg_start + i); - off = xge_os_strlen(dmesg_start + i) + 1; - } - } - for (i = 0; i < g_xge_os_tracebuf->offset; i += off) { - if (*(dmesg + i)) - xge_os_printf(dmesg + i); - off = xge_os_strlen(dmesg + i) + 1; - } - xge_os_printf("################ Trace dump End ###############"); -} - -xge_hal_status_e -xge_hal_driver_tracebuf_read(int bufsize, char *retbuf, int *retsize) -{ - int i; - int off = 0, retbuf_off = 0; - - *retsize = 0; - *retbuf = 0; - - if (g_xge_os_tracebuf == NULL) { - return XGE_HAL_FAIL; - } - - if (g_xge_os_tracebuf->wrapped_once) { - for (i = 0; i < g_xge_os_tracebuf->size - - g_xge_os_tracebuf->offset; i += off) { - if (*(dmesg_start + i)) { - xge_os_sprintf(retbuf + retbuf_off, "%s\n", dmesg_start + i); - retbuf_off += xge_os_strlen(dmesg_start + i) + 1; - if (retbuf_off > bufsize) - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - off = xge_os_strlen(dmesg_start + i) + 1; - } - } - for (i = 0; i < g_xge_os_tracebuf->offset; i += off) { - if (*(dmesg + i)) { - xge_os_sprintf(retbuf + retbuf_off, "%s\n", dmesg + i); - retbuf_off += xge_os_strlen(dmesg + i) + 1; - if (retbuf_off > bufsize) - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - off = xge_os_strlen(dmesg + i) + 1; - } - - *retsize = retbuf_off; - *(retbuf + retbuf_off + 1) = 0; - - return XGE_HAL_OK; -} -#endif -xge_os_tracebuf_t *g_xge_os_tracebuf = NULL; - -#ifdef XGE_HAL_DEBUG_BAR0_OFFSET -void -xge_hal_driver_bar0_offset_check(void) -{ - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, adapter_status) == - 0x108); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, tx_traffic_int) == - 0x08E0); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, dtx_control) == - 0x09E8); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, tx_fifo_partition_0) == - 0x1108); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, pcc_enable) == - 0x1170); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, prc_rxd0_n[0]) == - 0x1930); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, rti_command_mem) == - 0x19B8); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, mac_cfg) == - 0x2100); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, rmac_addr_cmd_mem) == - 0x2128); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, mac_link_util) == - 0x2170); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, mc_pause_thresh_q0q3) == - 0x2918); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, pcc_err_reg) == - 0x1040); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, rxdma_int_status) == - 0x1800); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, mac_tmac_err_reg) == - 0x2010); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, mc_err_reg) == - 0x2810); - xge_assert(xge_offsetof(xge_hal_pci_bar0_t, xgxs_int_status) == - 0x3000); -} -#endif - -/** - * xge_hal_driver_initialize - Initialize HAL. - * @config: HAL configuration, see xge_hal_driver_config_t{}. - * @uld_callbacks: Upper-layer driver callbacks, e.g. link-up. - * - * HAL initialization entry point. Not to confuse with device initialization - * (note that HAL "contains" zero or more Xframe devices). - * - * Returns: XGE_HAL_OK - success; - * XGE_HAL_ERR_BAD_DRIVER_CONFIG - Driver configuration params invalid. - * - * See also: xge_hal_device_initialize(), xge_hal_status_e{}, - * xge_hal_uld_cbs_t{}. - */ -xge_hal_status_e -xge_hal_driver_initialize(xge_hal_driver_config_t *config, - xge_hal_uld_cbs_t *uld_callbacks) -{ - xge_hal_status_e status; - - g_xge_hal_driver = &g_driver; - - xge_hal_driver_debug_module_mask_set(XGE_DEBUG_MODULE_MASK_DEF); - xge_hal_driver_debug_level_set(XGE_DEBUG_LEVEL_DEF); - -#ifdef XGE_HAL_DEBUG_BAR0_OFFSET - xge_hal_driver_bar0_offset_check(); -#endif - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR - if (config->tracebuf_size == 0) - /* - * Trace buffer implementation is not lock protected. - * The only harm to expect is memcpy() to go beyond of - * allowed boundaries. To make it safe (driver-wise), - * we pre-allocate needed number of extra bytes. - */ - config->tracebuf_size = XGE_HAL_DEF_CIRCULAR_ARR + - XGE_OS_TRACE_MSGBUF_MAX; -#endif - - status = __hal_driver_config_check(config); - if (status != XGE_HAL_OK) - return status; - - xge_os_memzero(g_xge_hal_driver, sizeof(xge_hal_driver_t)); - - /* apply config */ - xge_os_memcpy(&g_xge_hal_driver->config, config, - sizeof(xge_hal_driver_config_t)); - - /* apply ULD callbacks */ - xge_os_memcpy(&g_xge_hal_driver->uld_callbacks, uld_callbacks, - sizeof(xge_hal_uld_cbs_t)); - - g_xge_hal_driver->is_initialized = 1; - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR - g_tracebuf.size = config->tracebuf_size; - g_tracebuf.data = (char *)xge_os_malloc(NULL, g_tracebuf.size); - if (g_tracebuf.data == NULL) { - xge_os_printf("cannot allocate trace buffer!"); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - /* timestamps disabled by default */ - g_tracebuf.timestamp = config->tracebuf_timestamp_en; - if (g_tracebuf.timestamp) { - xge_os_timestamp(g_tracebuf.msg); - g_tracebuf.msgbuf_max = XGE_OS_TRACE_MSGBUF_MAX - - xge_os_strlen(g_tracebuf.msg); - } else - g_tracebuf.msgbuf_max = XGE_OS_TRACE_MSGBUF_MAX; - g_tracebuf.offset = 0; - *g_tracebuf.msg = 0; - xge_os_memzero(g_tracebuf.data, g_tracebuf.size); - g_xge_os_tracebuf = &g_tracebuf; - dmesg = g_tracebuf.data; - *dmesg = 0; -#endif - return XGE_HAL_OK; -} - -/** - * xge_hal_driver_terminate - Terminate HAL. - * - * HAL termination entry point. - * - * See also: xge_hal_device_terminate(). - */ -void -xge_hal_driver_terminate(void) -{ - g_xge_hal_driver->is_initialized = 0; - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR - if (g_tracebuf.size) { - xge_os_free(NULL, g_tracebuf.data, g_tracebuf.size); - } -#endif - - g_xge_hal_driver = NULL; - -#ifdef XGE_OS_MEMORY_CHECK - { - int i, leaks=0; - xge_os_printf("OSPAL: max g_malloc_cnt %d", g_malloc_cnt); - for (i=0; i - -/** - * xge_queue_item_data - Get item's data. - * @item: Queue item. - * - * Returns: item data(variable size). Note that xge_queue_t - * contains items comprized of a fixed xge_queue_item_t "header" - * and a variable size data. This function returns the variable - * user-defined portion of the queue item. - */ -void* xge_queue_item_data(xge_queue_item_t *item) -{ - return (char *)item + sizeof(xge_queue_item_t); -} - -/* - * __queue_consume - (Lockless) dequeue an item from the specified queue. - * - * @queue: Event queue. - * See xge_queue_consume(). - */ -static xge_queue_status_e -__queue_consume(xge_queue_t *queue, int data_max_size, xge_queue_item_t *item) -{ - int real_size; - xge_queue_item_t *elem; - - if (xge_list_is_empty(&queue->list_head)) - return XGE_QUEUE_IS_EMPTY; - - elem = (xge_queue_item_t *)queue->list_head.next; - if (elem->data_size > data_max_size) - return XGE_QUEUE_NOT_ENOUGH_SPACE; - - xge_list_remove(&elem->item); - real_size = elem->data_size + sizeof(xge_queue_item_t); - if (queue->head_ptr == elem) { - queue->head_ptr = (char *)queue->head_ptr + real_size; - xge_debug_queue(XGE_TRACE, - "event_type: %d removing from the head: " - "0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT - ":0x"XGE_OS_LLXFMT" elem 0x"XGE_OS_LLXFMT" length %d", - elem->event_type, - (u64)(ulong_t)queue->start_ptr, - (u64)(ulong_t)queue->head_ptr, - (u64)(ulong_t)queue->tail_ptr, - (u64)(ulong_t)queue->end_ptr, - (u64)(ulong_t)elem, - real_size); - } else if ((char *)queue->tail_ptr - real_size == (char*)elem) { - queue->tail_ptr = (char *)queue->tail_ptr - real_size; - xge_debug_queue(XGE_TRACE, - "event_type: %d removing from the tail: " - "0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT - ":0x"XGE_OS_LLXFMT" elem 0x"XGE_OS_LLXFMT" length %d", - elem->event_type, - (u64)(ulong_t)queue->start_ptr, - (u64)(ulong_t)queue->head_ptr, - (u64)(ulong_t)queue->tail_ptr, - (u64)(ulong_t)queue->end_ptr, - (u64)(ulong_t)elem, - real_size); - } else { - xge_debug_queue(XGE_TRACE, - "event_type: %d removing from the list: " - "0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT - ":0x"XGE_OS_LLXFMT" elem 0x"XGE_OS_LLXFMT" length %d", - elem->event_type, - (u64)(ulong_t)queue->start_ptr, - (u64)(ulong_t)queue->head_ptr, - (u64)(ulong_t)queue->tail_ptr, - (u64)(ulong_t)queue->end_ptr, - (u64)(ulong_t)elem, - real_size); - } - xge_assert(queue->tail_ptr >= queue->head_ptr); - xge_assert(queue->tail_ptr >= queue->start_ptr && - queue->tail_ptr <= queue->end_ptr); - xge_assert(queue->head_ptr >= queue->start_ptr && - queue->head_ptr < queue->end_ptr); - xge_os_memcpy(item, elem, sizeof(xge_queue_item_t)); - xge_os_memcpy(xge_queue_item_data(item), xge_queue_item_data(elem), - elem->data_size); - - if (xge_list_is_empty(&queue->list_head)) { - /* reset buffer pointers just to be clean */ - queue->head_ptr = queue->tail_ptr = queue->start_ptr; - } - return XGE_QUEUE_OK; -} - -/** - * xge_queue_produce - Enqueue an item (see xge_queue_item_t{}) - * into the specified queue. - * @queueh: Queue handle. - * @event_type: Event type. One of the enumerated event types - * that both consumer and producer "understand". - * For an example, please refer to xge_hal_event_e. - * @context: Opaque (void*) "context", for instance event producer object. - * @is_critical: For critical event, e.g. ECC. - * @data_size: Size of the @data. - * @data: User data of variable @data_size that is _copied_ into - * the new queue item (see xge_queue_item_t{}). Upon return - * from the call the @data memory can be re-used or released. - * - * Enqueue a new item. - * - * Returns: XGE_QUEUE_OK - success. - * XGE_QUEUE_IS_FULL - Queue is full. - * XGE_QUEUE_OUT_OF_MEMORY - Memory allocation failed. - * - * See also: xge_queue_item_t{}, xge_queue_consume(). - */ -xge_queue_status_e -xge_queue_produce(xge_queue_h queueh, int event_type, void *context, - int is_critical, const int data_size, void *data) -{ - xge_queue_t *queue = (xge_queue_t *)queueh; - int real_size = data_size + sizeof(xge_queue_item_t); - xge_queue_item_t *elem; - unsigned long flags = 0; - - xge_assert(real_size <= XGE_QUEUE_BUF_SIZE); - - xge_os_spin_lock_irq(&queue->lock, flags); - - if (is_critical && !queue->has_critical_event) { - unsigned char item_buf[sizeof(xge_queue_item_t) + - XGE_DEFAULT_EVENT_MAX_DATA_SIZE]; - xge_queue_item_t *item = (xge_queue_item_t *)(void *)item_buf; - xge_os_memzero(item_buf, (sizeof(xge_queue_item_t) + - XGE_DEFAULT_EVENT_MAX_DATA_SIZE)); - - while (__queue_consume(queue, - XGE_DEFAULT_EVENT_MAX_DATA_SIZE, - item) != XGE_QUEUE_IS_EMPTY) - ; /* do nothing */ - } - -try_again: - if ((char *)queue->tail_ptr + real_size <= (char *)queue->end_ptr) { - elem = (xge_queue_item_t *) queue->tail_ptr; - queue->tail_ptr = (void *)((char *)queue->tail_ptr + real_size); - xge_debug_queue(XGE_TRACE, - "event_type: %d adding to the tail: " - "0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT - ":0x"XGE_OS_LLXFMT" elem 0x"XGE_OS_LLXFMT" length %d", - event_type, - (u64)(ulong_t)queue->start_ptr, - (u64)(ulong_t)queue->head_ptr, - (u64)(ulong_t)queue->tail_ptr, - (u64)(ulong_t)queue->end_ptr, - (u64)(ulong_t)elem, - real_size); - } else if ((char *)queue->head_ptr - real_size >= - (char *)queue->start_ptr) { - elem = (xge_queue_item_t *) ((char *)queue->head_ptr - real_size); - queue->head_ptr = elem; - xge_debug_queue(XGE_TRACE, - "event_type: %d adding to the head: " - "0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT":0x"XGE_OS_LLXFMT - ":0x"XGE_OS_LLXFMT" length %d", - event_type, - (u64)(ulong_t)queue->start_ptr, - (u64)(ulong_t)queue->head_ptr, - (u64)(ulong_t)queue->tail_ptr, - (u64)(ulong_t)queue->end_ptr, - real_size); - } else { - xge_queue_status_e status; - - if (queue->pages_current >= queue->pages_max) { - xge_os_spin_unlock_irq(&queue->lock, flags); - return XGE_QUEUE_IS_FULL; - } - - if (queue->has_critical_event) { - xge_os_spin_unlock_irq(&queue->lock, flags); - return XGE_QUEUE_IS_FULL; - } - - /* grow */ - status = __io_queue_grow(queueh); - if (status != XGE_QUEUE_OK) { - xge_os_spin_unlock_irq(&queue->lock, flags); - return status; - } - - goto try_again; - } - xge_assert(queue->tail_ptr >= queue->head_ptr); - xge_assert(queue->tail_ptr >= queue->start_ptr && - queue->tail_ptr <= queue->end_ptr); - xge_assert(queue->head_ptr >= queue->start_ptr && - queue->head_ptr < queue->end_ptr); - elem->data_size = data_size; - elem->event_type = (xge_hal_event_e) event_type; - elem->is_critical = is_critical; - if (is_critical) - queue->has_critical_event = 1; - elem->context = context; - xge_os_memcpy(xge_queue_item_data(elem), data, data_size); - xge_list_insert_before(&elem->item, &queue->list_head); - xge_os_spin_unlock_irq(&queue->lock, flags); - - /* no lock taken! */ - queue->queued_func(queue->queued_data, event_type); - - return XGE_QUEUE_OK; -} - - -/** - * xge_queue_create - Create protected first-in-first-out queue. - * @pdev: PCI device handle. - * @irqh: PCI device IRQ handle. - * @pages_initial: Number of pages to be initially allocated at the - * time of queue creation. - * @pages_max: Max number of pages that can be allocated in the queue. - * @queued: Optional callback function to be called each time a new item is - * added to the queue. - * @queued_data: Argument to the callback function. - * - * Create protected (fifo) queue. - * - * Returns: Pointer to xge_queue_t structure, - * NULL - on failure. - * - * See also: xge_queue_item_t{}, xge_queue_destroy(). - */ -xge_queue_h -xge_queue_create(pci_dev_h pdev, pci_irq_h irqh, int pages_initial, - int pages_max, xge_queued_f queued, void *queued_data) -{ - xge_queue_t *queue; - - if ((queue = (xge_queue_t *) xge_os_malloc(pdev, sizeof(xge_queue_t))) == NULL) - return NULL; - - queue->queued_func = queued; - queue->queued_data = queued_data; - queue->pdev = pdev; - queue->irqh = irqh; - queue->pages_current = pages_initial; - queue->start_ptr = xge_os_malloc(pdev, queue->pages_current * - XGE_QUEUE_BUF_SIZE); - if (queue->start_ptr == NULL) { - xge_os_free(pdev, queue, sizeof(xge_queue_t)); - return NULL; - } - queue->head_ptr = queue->tail_ptr = queue->start_ptr; - queue->end_ptr = (char *)queue->start_ptr + - queue->pages_current * XGE_QUEUE_BUF_SIZE; - xge_os_spin_lock_init_irq(&queue->lock, irqh); - queue->pages_initial = pages_initial; - queue->pages_max = pages_max; - xge_list_init(&queue->list_head); - - return queue; -} - -/** - * xge_queue_destroy - Destroy xge_queue_t object. - * @queueh: Queue handle. - * - * Destroy the specified xge_queue_t object. - * - * See also: xge_queue_item_t{}, xge_queue_create(). - */ -void xge_queue_destroy(xge_queue_h queueh) -{ - xge_queue_t *queue = (xge_queue_t *)queueh; - xge_os_spin_lock_destroy_irq(&queue->lock, queue->irqh); - if (!xge_list_is_empty(&queue->list_head)) { - xge_debug_queue(XGE_ERR, "destroying non-empty queue 0x" - XGE_OS_LLXFMT, (u64)(ulong_t)queue); - } - xge_os_free(queue->pdev, queue->start_ptr, queue->pages_current * - XGE_QUEUE_BUF_SIZE); - - xge_os_free(queue->pdev, queue, sizeof(xge_queue_t)); -} - -/* - * __io_queue_grow - Dynamically increases the size of the queue. - * @queueh: Queue handle. - * - * This function is called in the case of no slot avaialble in the queue - * to accomodate the newly received event. - * Note that queue cannot grow beyond the max size specified for the - * queue. - * - * Returns XGE_QUEUE_OK: On success. - * XGE_QUEUE_OUT_OF_MEMORY : No memory is available. - */ -xge_queue_status_e -__io_queue_grow(xge_queue_h queueh) -{ - xge_queue_t *queue = (xge_queue_t *)queueh; - void *newbuf, *oldbuf; - xge_list_t *item; - xge_queue_item_t *elem; - - xge_debug_queue(XGE_TRACE, "queue 0x"XGE_OS_LLXFMT":%d is growing", - (u64)(ulong_t)queue, queue->pages_current); - - newbuf = xge_os_malloc(queue->pdev, - (queue->pages_current + 1) * XGE_QUEUE_BUF_SIZE); - if (newbuf == NULL) - return XGE_QUEUE_OUT_OF_MEMORY; - - xge_os_memcpy(newbuf, queue->start_ptr, - queue->pages_current * XGE_QUEUE_BUF_SIZE); - oldbuf = queue->start_ptr; - - /* adjust queue sizes */ - queue->start_ptr = newbuf; - queue->end_ptr = (char *)newbuf + - (queue->pages_current + 1) * XGE_QUEUE_BUF_SIZE; - queue->tail_ptr = (char *)newbuf + ((char *)queue->tail_ptr - - (char *)oldbuf); - queue->head_ptr = (char *)newbuf + ((char *)queue->head_ptr - - (char *)oldbuf); - xge_assert(!xge_list_is_empty(&queue->list_head)); - queue->list_head.next = (xge_list_t *) (void *)((char *)newbuf + - ((char *)queue->list_head.next - (char *)oldbuf)); - queue->list_head.prev = (xge_list_t *) (void *)((char *)newbuf + - ((char *)queue->list_head.prev - (char *)oldbuf)); - /* adjust queue list */ - xge_list_for_each(item, &queue->list_head) { - elem = xge_container_of(item, xge_queue_item_t, item); - if (elem->item.next != &queue->list_head) { - elem->item.next = - (xge_list_t*)(void *)((char *)newbuf + - ((char *)elem->item.next - (char *)oldbuf)); - } - if (elem->item.prev != &queue->list_head) { - elem->item.prev = - (xge_list_t*) (void *)((char *)newbuf + - ((char *)elem->item.prev - (char *)oldbuf)); - } - } - xge_os_free(queue->pdev, oldbuf, - queue->pages_current * XGE_QUEUE_BUF_SIZE); - queue->pages_current++; - - return XGE_QUEUE_OK; -} - -/** - * xge_queue_consume - Dequeue an item from the specified queue. - * @queueh: Queue handle. - * @data_max_size: Maximum expected size of the item. - * @item: Memory area into which the item is _copied_ upon return - * from the function. - * - * Dequeue an item from the queue. The caller is required to provide - * enough space for the item. - * - * Returns: XGE_QUEUE_OK - success. - * XGE_QUEUE_IS_EMPTY - Queue is empty. - * XGE_QUEUE_NOT_ENOUGH_SPACE - Requested item size(@data_max_size) - * is too small to accomodate an item from the queue. - * - * See also: xge_queue_item_t{}, xge_queue_produce(). - */ -xge_queue_status_e -xge_queue_consume(xge_queue_h queueh, int data_max_size, xge_queue_item_t *item) -{ - xge_queue_t *queue = (xge_queue_t *)queueh; - unsigned long flags = 0; - xge_queue_status_e status; - - xge_os_spin_lock_irq(&queue->lock, flags); - status = __queue_consume(queue, data_max_size, item); - xge_os_spin_unlock_irq(&queue->lock, flags); - - return status; -} - - -/** - * xge_queue_flush - Flush, or empty, the queue. - * @queueh: Queue handle. - * - * Flush the queue, i.e. make it empty by consuming all events - * without invoking the event processing logic (callbacks, etc.) - */ -void xge_queue_flush(xge_queue_h queueh) -{ - unsigned char item_buf[sizeof(xge_queue_item_t) + - XGE_DEFAULT_EVENT_MAX_DATA_SIZE]; - xge_queue_item_t *item = (xge_queue_item_t *)(void *)item_buf; - xge_os_memzero(item_buf, (sizeof(xge_queue_item_t) + - XGE_DEFAULT_EVENT_MAX_DATA_SIZE)); - - /* flush queue by consuming all enqueued items */ - while (xge_queue_consume(queueh, - XGE_DEFAULT_EVENT_MAX_DATA_SIZE, - item) != XGE_QUEUE_IS_EMPTY) { - /* do nothing */ - xge_debug_queue(XGE_TRACE, "item "XGE_OS_LLXFMT"(%d) flushed", - item, item->event_type); - } - (void) __queue_get_reset_critical (queueh); -} - -/* - * __queue_get_reset_critical - Check for critical events in the queue, - * @qh: Queue handle. - * - * Check for critical event(s) in the queue, and reset the - * "has-critical-event" flag upon return. - * Returns: 1 - if the queue contains atleast one critical event. - * 0 - If there are no critical events in the queue. - */ -int __queue_get_reset_critical (xge_queue_h qh) { - xge_queue_t* queue = (xge_queue_t*)qh; - int c = queue->has_critical_event; - - queue->has_critical_event = 0; - return c; -} Property changes on: head/sys/dev/nxge/xgehal/xge-queue.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-device-fp.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-device-fp.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-device-fp.c (nonexistent) @@ -1,1426 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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$ - */ - -#ifdef XGE_DEBUG_FP -#include -#endif - -#include -#include - -/** - * xge_hal_device_bar0 - Get BAR0 mapped address. - * @hldev: HAL device handle. - * - * Returns: BAR0 address of the specified device. - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE char * -xge_hal_device_bar0(xge_hal_device_t *hldev) -{ - return hldev->bar0; -} - -/** - * xge_hal_device_isrbar0 - Get BAR0 mapped address. - * @hldev: HAL device handle. - * - * Returns: BAR0 address of the specified device. - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE char * -xge_hal_device_isrbar0(xge_hal_device_t *hldev) -{ - return hldev->isrbar0; -} - -/** - * xge_hal_device_bar1 - Get BAR1 mapped address. - * @hldev: HAL device handle. - * - * Returns: BAR1 address of the specified device. - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE char * -xge_hal_device_bar1(xge_hal_device_t *hldev) -{ - return hldev->bar1; -} - -/** - * xge_hal_device_bar0_set - Set BAR0 mapped address. - * @hldev: HAL device handle. - * @bar0: BAR0 mapped address. - * * Set BAR0 address in the HAL device object. - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_bar0_set(xge_hal_device_t *hldev, char *bar0) -{ - xge_assert(bar0); - hldev->bar0 = bar0; -} - -/** - * xge_hal_device_isrbar0_set - Set BAR0 mapped address. - * @hldev: HAL device handle. - * @isrbar0: BAR0 mapped address. - * * Set BAR0 address in the HAL device object. - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_isrbar0_set(xge_hal_device_t *hldev, char *isrbar0) -{ - xge_assert(isrbar0); - hldev->isrbar0 = isrbar0; -} - -/** - * xge_hal_device_bar1_set - Set BAR1 mapped address. - * @hldev: HAL device handle. - * @channelh: Channel handle. - * @bar1: BAR1 mapped address. - * - * Set BAR1 address for the given channel. - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_bar1_set(xge_hal_device_t *hldev, xge_hal_channel_h channelh, - char *bar1) -{ - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - - xge_assert(bar1); - xge_assert(fifo); - - /* Initializing the BAR1 address as the start of - * the FIFO queue pointer and as a location of FIFO control - * word. */ - fifo->hw_pair = - (xge_hal_fifo_hw_pair_t *) (bar1 + - (fifo->channel.post_qid * XGE_HAL_FIFO_HW_PAIR_OFFSET)); - hldev->bar1 = bar1; -} - - -/** - * xge_hal_device_rev - Get Device revision number. - * @hldev: HAL device handle. - * - * Returns: Device revision number - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE int -xge_hal_device_rev(xge_hal_device_t *hldev) -{ - return hldev->revision; -} - - -/** - * xge_hal_device_begin_irq - Begin IRQ processing. - * @hldev: HAL device handle. - * @reason: "Reason" for the interrupt, the value of Xframe's - * general_int_status register. - * - * The function performs two actions, It first checks whether (shared IRQ) the - * interrupt was raised by the device. Next, it masks the device interrupts. - * - * Note: - * xge_hal_device_begin_irq() does not flush MMIO writes through the - * bridge. Therefore, two back-to-back interrupts are potentially possible. - * It is the responsibility of the ULD to make sure that only one - * xge_hal_device_continue_irq() runs at a time. - * - * Returns: 0, if the interrupt is not "ours" (note that in this case the - * device remain enabled). - * Otherwise, xge_hal_device_begin_irq() returns 64bit general adapter - * status. - * See also: xge_hal_device_handle_irq() - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_begin_irq(xge_hal_device_t *hldev, u64 *reason) -{ - u64 val64; - xge_hal_pci_bar0_t *isrbar0 = (xge_hal_pci_bar0_t *)hldev->isrbar0; - - hldev->stats.sw_dev_info_stats.total_intr_cnt++; - - val64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &isrbar0->general_int_status); - if (xge_os_unlikely(!val64)) { - /* not Xframe interrupt */ - hldev->stats.sw_dev_info_stats.not_xge_intr_cnt++; - *reason = 0; - return XGE_HAL_ERR_WRONG_IRQ; - } - - if (xge_os_unlikely(val64 == XGE_HAL_ALL_FOXES)) { - u64 adapter_status = - xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &isrbar0->adapter_status); - if (adapter_status == XGE_HAL_ALL_FOXES) { - (void) xge_queue_produce(hldev->queueh, - XGE_HAL_EVENT_SLOT_FREEZE, - hldev, - 1, /* critical: slot freeze */ - sizeof(u64), - (void*)&adapter_status); - *reason = 0; - return XGE_HAL_ERR_CRITICAL; - } - } - - *reason = val64; - - /* separate fast path, i.e. no errors */ - if (val64 & XGE_HAL_GEN_INTR_RXTRAFFIC) { - hldev->stats.sw_dev_info_stats.rx_traffic_intr_cnt++; - return XGE_HAL_OK; - } - if (val64 & XGE_HAL_GEN_INTR_TXTRAFFIC) { - hldev->stats.sw_dev_info_stats.tx_traffic_intr_cnt++; - return XGE_HAL_OK; - } - - hldev->stats.sw_dev_info_stats.not_traffic_intr_cnt++; - if (xge_os_unlikely(val64 & XGE_HAL_GEN_INTR_TXPIC)) { - xge_hal_status_e status; - hldev->stats.sw_dev_info_stats.txpic_intr_cnt++; - status = __hal_device_handle_txpic(hldev, val64); - if (status != XGE_HAL_OK) { - return status; - } - } - - if (xge_os_unlikely(val64 & XGE_HAL_GEN_INTR_TXDMA)) { - xge_hal_status_e status; - hldev->stats.sw_dev_info_stats.txdma_intr_cnt++; - status = __hal_device_handle_txdma(hldev, val64); - if (status != XGE_HAL_OK) { - return status; - } - } - - if (xge_os_unlikely(val64 & XGE_HAL_GEN_INTR_TXMAC)) { - xge_hal_status_e status; - hldev->stats.sw_dev_info_stats.txmac_intr_cnt++; - status = __hal_device_handle_txmac(hldev, val64); - if (status != XGE_HAL_OK) { - return status; - } - } - - if (xge_os_unlikely(val64 & XGE_HAL_GEN_INTR_TXXGXS)) { - xge_hal_status_e status; - hldev->stats.sw_dev_info_stats.txxgxs_intr_cnt++; - status = __hal_device_handle_txxgxs(hldev, val64); - if (status != XGE_HAL_OK) { - return status; - } - } - - if (xge_os_unlikely(val64 & XGE_HAL_GEN_INTR_RXPIC)) { - xge_hal_status_e status; - hldev->stats.sw_dev_info_stats.rxpic_intr_cnt++; - status = __hal_device_handle_rxpic(hldev, val64); - if (status != XGE_HAL_OK) { - return status; - } - } - - if (xge_os_unlikely(val64 & XGE_HAL_GEN_INTR_RXDMA)) { - xge_hal_status_e status; - hldev->stats.sw_dev_info_stats.rxdma_intr_cnt++; - status = __hal_device_handle_rxdma(hldev, val64); - if (status != XGE_HAL_OK) { - return status; - } - } - - if (xge_os_unlikely(val64 & XGE_HAL_GEN_INTR_RXMAC)) { - xge_hal_status_e status; - hldev->stats.sw_dev_info_stats.rxmac_intr_cnt++; - status = __hal_device_handle_rxmac(hldev, val64); - if (status != XGE_HAL_OK) { - return status; - } - } - - if (xge_os_unlikely(val64 & XGE_HAL_GEN_INTR_RXXGXS)) { - xge_hal_status_e status; - hldev->stats.sw_dev_info_stats.rxxgxs_intr_cnt++; - status = __hal_device_handle_rxxgxs(hldev, val64); - if (status != XGE_HAL_OK) { - return status; - } - } - - if (xge_os_unlikely(val64 & XGE_HAL_GEN_INTR_MC)) { - xge_hal_status_e status; - hldev->stats.sw_dev_info_stats.mc_intr_cnt++; - status = __hal_device_handle_mc(hldev, val64); - if (status != XGE_HAL_OK) { - return status; - } - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_clear_rx - Acknowledge (that is, clear) the - * condition that has caused the RX interrupt. - * @hldev: HAL device handle. - * - * Acknowledge (that is, clear) the condition that has caused - * the Rx interrupt. - * See also: xge_hal_device_begin_irq(), xge_hal_device_continue_irq(), - * xge_hal_device_clear_tx(), xge_hal_device_mask_rx(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_clear_rx(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *isrbar0 = (xge_hal_pci_bar0_t *)hldev->isrbar0; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0xFFFFFFFFFFFFFFFFULL, - &isrbar0->rx_traffic_int); -} - -/** - * xge_hal_device_clear_tx - Acknowledge (that is, clear) the - * condition that has caused the TX interrupt. - * @hldev: HAL device handle. - * - * Acknowledge (that is, clear) the condition that has caused - * the Tx interrupt. - * See also: xge_hal_device_begin_irq(), xge_hal_device_continue_irq(), - * xge_hal_device_clear_rx(), xge_hal_device_mask_tx(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_clear_tx(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *isrbar0 = (xge_hal_pci_bar0_t *)hldev->isrbar0; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0xFFFFFFFFFFFFFFFFULL, - &isrbar0->tx_traffic_int); -} - -/** - * xge_hal_device_poll_rx_channel - Poll Rx channel for completed - * descriptors and process the same. - * @channel: HAL channel. - * @got_rx: Buffer to return the flag set if receive interrupt is occured - * - * The function polls the Rx channel for the completed descriptors and calls - * the upper-layer driver (ULD) via supplied completion callback. - * - * Returns: XGE_HAL_OK, if the polling is completed successful. - * XGE_HAL_COMPLETIONS_REMAIN: There are still more completed - * descriptors available which are yet to be processed. - * - * See also: xge_hal_device_poll_tx_channel() - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_poll_rx_channel(xge_hal_channel_t *channel, int *got_rx) -{ - xge_hal_status_e ret = XGE_HAL_OK; - xge_hal_dtr_h first_dtrh; - xge_hal_device_t *hldev = (xge_hal_device_t *)channel->devh; - u8 t_code; - int got_bytes; - - /* for each opened rx channel */ - got_bytes = *got_rx = 0; - ((xge_hal_ring_t *)channel)->cmpl_cnt = 0; - channel->poll_bytes = 0; - if ((ret = xge_hal_ring_dtr_next_completed (channel, &first_dtrh, - &t_code)) == XGE_HAL_OK) { - if (channel->callback(channel, first_dtrh, - t_code, channel->userdata) != XGE_HAL_OK) { - (*got_rx) += ((xge_hal_ring_t *)channel)->cmpl_cnt + 1; - got_bytes += channel->poll_bytes + 1; - ret = XGE_HAL_COMPLETIONS_REMAIN; - } else { - (*got_rx) += ((xge_hal_ring_t *)channel)->cmpl_cnt + 1; - got_bytes += channel->poll_bytes + 1; - } - } - - if (*got_rx) { - hldev->irq_workload_rxd[channel->post_qid] += *got_rx; - hldev->irq_workload_rxcnt[channel->post_qid] ++; - } - hldev->irq_workload_rxlen[channel->post_qid] += got_bytes; - - return ret; -} - -/** - * xge_hal_device_poll_tx_channel - Poll Tx channel for completed - * descriptors and process the same. - * @channel: HAL channel. - * @got_tx: Buffer to return the flag set if transmit interrupt is occured - * - * The function polls the Tx channel for the completed descriptors and calls - * the upper-layer driver (ULD) via supplied completion callback. - * - * Returns: XGE_HAL_OK, if the polling is completed successful. - * XGE_HAL_COMPLETIONS_REMAIN: There are still more completed - * descriptors available which are yet to be processed. - * - * See also: xge_hal_device_poll_rx_channel(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_poll_tx_channel(xge_hal_channel_t *channel, int *got_tx) -{ - xge_hal_dtr_h first_dtrh; - xge_hal_device_t *hldev = (xge_hal_device_t *)channel->devh; - u8 t_code; - int got_bytes; - - /* for each opened tx channel */ - got_bytes = *got_tx = 0; - channel->poll_bytes = 0; - if (xge_hal_fifo_dtr_next_completed (channel, &first_dtrh, - &t_code) == XGE_HAL_OK) { - if (channel->callback(channel, first_dtrh, - t_code, channel->userdata) != XGE_HAL_OK) { - (*got_tx)++; - got_bytes += channel->poll_bytes + 1; - return XGE_HAL_COMPLETIONS_REMAIN; - } - (*got_tx)++; - got_bytes += channel->poll_bytes + 1; - } - - if (*got_tx) { - hldev->irq_workload_txd[channel->post_qid] += *got_tx; - hldev->irq_workload_txcnt[channel->post_qid] ++; - } - hldev->irq_workload_txlen[channel->post_qid] += got_bytes; - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_poll_rx_channels - Poll Rx channels for completed - * descriptors and process the same. - * @hldev: HAL device handle. - * @got_rx: Buffer to return flag set if receive is ready - * - * The function polls the Rx channels for the completed descriptors and calls - * the upper-layer driver (ULD) via supplied completion callback. - * - * Returns: XGE_HAL_OK, if the polling is completed successful. - * XGE_HAL_COMPLETIONS_REMAIN: There are still more completed - * descriptors available which are yet to be processed. - * - * See also: xge_hal_device_poll_tx_channels(), xge_hal_device_continue_irq(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_poll_rx_channels(xge_hal_device_t *hldev, int *got_rx) -{ - xge_list_t *item; - xge_hal_channel_t *channel; - - /* for each opened rx channel */ - xge_list_for_each(item, &hldev->ring_channels) { - if (hldev->terminating) - return XGE_HAL_OK; - channel = xge_container_of(item, xge_hal_channel_t, item); - (void) xge_hal_device_poll_rx_channel(channel, got_rx); - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_poll_tx_channels - Poll Tx channels for completed - * descriptors and process the same. - * @hldev: HAL device handle. - * @got_tx: Buffer to return flag set if transmit is ready - * - * The function polls the Tx channels for the completed descriptors and calls - * the upper-layer driver (ULD) via supplied completion callback. - * - * Returns: XGE_HAL_OK, if the polling is completed successful. - * XGE_HAL_COMPLETIONS_REMAIN: There are still more completed - * descriptors available which are yet to be processed. - * - * See also: xge_hal_device_poll_rx_channels(), xge_hal_device_continue_irq(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_poll_tx_channels(xge_hal_device_t *hldev, int *got_tx) -{ - xge_list_t *item; - xge_hal_channel_t *channel; - - /* for each opened tx channel */ - xge_list_for_each(item, &hldev->fifo_channels) { - if (hldev->terminating) - return XGE_HAL_OK; - channel = xge_container_of(item, xge_hal_channel_t, item); - (void) xge_hal_device_poll_tx_channel(channel, got_tx); - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_mask_tx - Mask Tx interrupts. - * @hldev: HAL device handle. - * - * Mask Tx device interrupts. - * - * See also: xge_hal_device_unmask_tx(), xge_hal_device_mask_rx(), - * xge_hal_device_clear_tx(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_mask_tx(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *isrbar0 = (xge_hal_pci_bar0_t *)hldev->isrbar0; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0xFFFFFFFFFFFFFFFFULL, - &isrbar0->tx_traffic_mask); -} - -/** - * xge_hal_device_mask_rx - Mask Rx interrupts. - * @hldev: HAL device handle. - * - * Mask Rx device interrupts. - * - * See also: xge_hal_device_unmask_rx(), xge_hal_device_mask_tx(), - * xge_hal_device_clear_rx(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_mask_rx(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *isrbar0 = (xge_hal_pci_bar0_t *)hldev->isrbar0; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0xFFFFFFFFFFFFFFFFULL, - &isrbar0->rx_traffic_mask); -} - -/** - * xge_hal_device_mask_all - Mask all device interrupts. - * @hldev: HAL device handle. - * - * Mask all device interrupts. - * - * See also: xge_hal_device_unmask_all() - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_mask_all(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *isrbar0 = (xge_hal_pci_bar0_t *)hldev->isrbar0; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0xFFFFFFFFFFFFFFFFULL, - &isrbar0->general_int_mask); -} - -/** - * xge_hal_device_unmask_tx - Unmask Tx interrupts. - * @hldev: HAL device handle. - * - * Unmask Tx device interrupts. - * - * See also: xge_hal_device_mask_tx(), xge_hal_device_clear_tx(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_unmask_tx(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *isrbar0 = (xge_hal_pci_bar0_t *)hldev->isrbar0; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0ULL, - &isrbar0->tx_traffic_mask); -} - -/** - * xge_hal_device_unmask_rx - Unmask Rx interrupts. - * @hldev: HAL device handle. - * - * Unmask Rx device interrupts. - * - * See also: xge_hal_device_mask_rx(), xge_hal_device_clear_rx(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_unmask_rx(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *isrbar0 = (xge_hal_pci_bar0_t *)hldev->isrbar0; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0ULL, - &isrbar0->rx_traffic_mask); -} - -/** - * xge_hal_device_unmask_all - Unmask all device interrupts. - * @hldev: HAL device handle. - * - * Unmask all device interrupts. - * - * See also: xge_hal_device_mask_all() - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_unmask_all(xge_hal_device_t *hldev) -{ - xge_hal_pci_bar0_t *isrbar0 = (xge_hal_pci_bar0_t *)hldev->isrbar0; - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - 0x0ULL, - &isrbar0->general_int_mask); -} - - -/** - * xge_hal_device_continue_irq - Continue handling IRQ: process all - * completed descriptors. - * @hldev: HAL device handle. - * - * Process completed descriptors and unmask the device interrupts. - * - * The xge_hal_device_continue_irq() walks all open channels - * and calls upper-layer driver (ULD) via supplied completion - * callback. Note that the completion callback is specified at channel open - * time, see xge_hal_channel_open(). - * - * Note that the xge_hal_device_continue_irq is part of the _fast_ path. - * To optimize the processing, the function does _not_ check for - * errors and alarms. - * - * The latter is done in a polling fashion, via xge_hal_device_poll(). - * - * Returns: XGE_HAL_OK. - * - * See also: xge_hal_device_handle_irq(), xge_hal_device_poll(), - * xge_hal_ring_dtr_next_completed(), - * xge_hal_fifo_dtr_next_completed(), xge_hal_channel_callback_f{}. - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_continue_irq(xge_hal_device_t *hldev) -{ - int got_rx = 1, got_tx = 1; - int isr_polling_cnt = hldev->config.isr_polling_cnt; - int count = 0; - - do - { - if (got_rx) - (void) xge_hal_device_poll_rx_channels(hldev, &got_rx); - if (got_tx && hldev->tti_enabled) - (void) xge_hal_device_poll_tx_channels(hldev, &got_tx); - - if (!got_rx && !got_tx) - break; - - count += (got_rx + got_tx); - }while (isr_polling_cnt--); - - if (!count) - hldev->stats.sw_dev_info_stats.not_traffic_intr_cnt++; - - return XGE_HAL_OK; -} - -/** - * xge_hal_device_handle_irq - Handle device IRQ. - * @hldev: HAL device handle. - * - * Perform the complete handling of the line interrupt. The function - * performs two calls. - * First it uses xge_hal_device_begin_irq() to check the reason for - * the interrupt and mask the device interrupts. - * Second, it calls xge_hal_device_continue_irq() to process all - * completed descriptors and re-enable the interrupts. - * - * Returns: XGE_HAL_OK - success; - * XGE_HAL_ERR_WRONG_IRQ - (shared) IRQ produced by other device. - * - * See also: xge_hal_device_begin_irq(), xge_hal_device_continue_irq(). - */ -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_handle_irq(xge_hal_device_t *hldev) -{ - u64 reason; - xge_hal_status_e status; - - xge_hal_device_mask_all(hldev); - - status = xge_hal_device_begin_irq(hldev, &reason); - if (status != XGE_HAL_OK) { - xge_hal_device_unmask_all(hldev); - return status; - } - - if (reason & XGE_HAL_GEN_INTR_RXTRAFFIC) { - xge_hal_device_clear_rx(hldev); - } - - status = xge_hal_device_continue_irq(hldev); - - xge_hal_device_clear_tx(hldev); - - xge_hal_device_unmask_all(hldev); - - return status; -} - -#if defined(XGE_HAL_CONFIG_LRO) - - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL int -__hal_lro_check_for_session_match(lro_t *lro, tcplro_t *tcp, iplro_t *ip) -{ - - /* Match Source address field */ - if ((lro->ip_hdr->saddr != ip->saddr)) - return XGE_HAL_FAIL; - - /* Match Destination address field */ - if ((lro->ip_hdr->daddr != ip->daddr)) - return XGE_HAL_FAIL; - - /* Match Source Port field */ - if ((lro->tcp_hdr->source != tcp->source)) - return XGE_HAL_FAIL; - - /* Match Destination Port field */ - if ((lro->tcp_hdr->dest != tcp->dest)) - return XGE_HAL_FAIL; - - return XGE_HAL_OK; -} - -/* - * __hal_tcp_seg_len: Find the tcp seg len. - * @ip: ip header. - * @tcp: tcp header. - * returns: Tcp seg length. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL u16 -__hal_tcp_seg_len(iplro_t *ip, tcplro_t *tcp) -{ - u16 ret; - - ret = (xge_os_ntohs(ip->tot_len) - - ((ip->version_ihl & 0x0F)<<2) - - ((tcp->doff_res)>>2)); - return (ret); -} - -/* - * __hal_ip_lro_capable: Finds whether ip is lro capable. - * @ip: ip header. - * @ext_info: descriptor info. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_ip_lro_capable(iplro_t *ip, - xge_hal_dtr_info_t *ext_info) -{ - -#ifdef XGE_LL_DEBUG_DUMP_PKT - { - u16 i; - u8 ch, *iph = (u8 *)ip; - - xge_debug_ring(XGE_TRACE, "Dump Ip:" ); - for (i =0; i < 40; i++) { - ch = ntohs(*((u8 *)(iph + i)) ); - printf("i:%d %02x, ",i,ch); - } - } -#endif - - if (ip->version_ihl != IP_FAST_PATH_HDR_MASK) { - xge_debug_ring(XGE_ERR, "iphdr !=45 :%d",ip->version_ihl); - return XGE_HAL_FAIL; - } - - if (ext_info->proto & XGE_HAL_FRAME_PROTO_IP_FRAGMENTED) { - xge_debug_ring(XGE_ERR, "IP fragmented"); - return XGE_HAL_FAIL; - } - - return XGE_HAL_OK; -} - -/* - * __hal_tcp_lro_capable: Finds whether tcp is lro capable. - * @ip: ip header. - * @tcp: tcp header. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_tcp_lro_capable(iplro_t *ip, tcplro_t *tcp, lro_t *lro, int *ts_off) -{ -#ifdef XGE_LL_DEBUG_DUMP_PKT - { - u8 ch; - u16 i; - - xge_debug_ring(XGE_TRACE, "Dump Tcp:" ); - for (i =0; i < 20; i++) { - ch = ntohs(*((u8 *)((u8 *)tcp + i)) ); - xge_os_printf("i:%d %02x, ",i,ch); - } - } -#endif - if ((TCP_FAST_PATH_HDR_MASK2 != tcp->ctrl) && - (TCP_FAST_PATH_HDR_MASK3 != tcp->ctrl)) - goto _exit_fail; - - *ts_off = -1; - if (TCP_FAST_PATH_HDR_MASK1 != tcp->doff_res) { - u16 tcp_hdr_len = tcp->doff_res >> 2; /* TCP header len */ - u16 off = 20; /* Start of tcp options */ - int i, diff; - - /* Does Packet can contain time stamp */ - if (tcp_hdr_len < 32) { - /* - * If the session is not opened, we can consider - * this packet for LRO - */ - if (lro == NULL) - return XGE_HAL_OK; - - goto _exit_fail; - } - - /* Ignore No-operation 0x1 */ - while (((u8 *)tcp)[off] == 0x1) - off++; - - /* Next option == Timestamp */ - if (((u8 *)tcp)[off] != 0x8) { - /* - * If the session ie not opened, we can consider - * this packet for LRO - */ - if (lro == NULL) - return XGE_HAL_OK; - - goto _exit_fail; - } - - *ts_off = off; - if (lro == NULL) - return XGE_HAL_OK; - - /* - * Now the session is opened. If the LRO frame doesn't - * have time stamp, we cannot consider current packet for - * LRO. - */ - if (lro->ts_off == -1) { - xge_debug_ring(XGE_ERR, "Pkt received with time stamp after session opened with no time stamp : %02x %02x", tcp->doff_res, tcp->ctrl); - return XGE_HAL_FAIL; - } - - /* - * If the difference is greater than three, then there are - * more options possible. - * else, there are two cases: - * case 1: remaining are padding bytes. - * case 2: remaining can contain options or padding - */ - off += ((u8 *)tcp)[off+1]; - diff = tcp_hdr_len - off; - if (diff > 3) { - /* - * Probably contains more options. - */ - xge_debug_ring(XGE_ERR, "tcphdr not fastpth : pkt received with tcp options in addition to time stamp after the session is opened %02x %02x ", tcp->doff_res, tcp->ctrl); - return XGE_HAL_FAIL; - } - - for (i = 0; i < diff; i++) { - u8 byte = ((u8 *)tcp)[off+i]; - - /* Ignore No-operation 0x1 */ - if ((byte == 0x0) || (byte == 0x1)) - continue; - xge_debug_ring(XGE_ERR, "tcphdr not fastpth : pkt received with tcp options in addition to time stamp after the session is opened %02x %02x ", tcp->doff_res, tcp->ctrl); - return XGE_HAL_FAIL; - } - - /* - * Update the time stamp of LRO frame. - */ - xge_os_memcpy(((char *)lro->tcp_hdr + lro->ts_off + 2), - (char *)((char *)tcp + (*ts_off) + 2), 8); - } - - return XGE_HAL_OK; - -_exit_fail: - xge_debug_ring(XGE_TRACE, "tcphdr not fastpth %02x %02x", tcp->doff_res, tcp->ctrl); - return XGE_HAL_FAIL; - -} - -/* - * __hal_lro_capable: Finds whether frame is lro capable. - * @buffer: Ethernet frame. - * @ip: ip frame. - * @tcp: tcp frame. - * @ext_info: Descriptor info. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_lro_capable( u8 *buffer, - iplro_t **ip, - tcplro_t **tcp, - xge_hal_dtr_info_t *ext_info) -{ - u8 ip_off, ip_length; - - if (!(ext_info->proto & XGE_HAL_FRAME_PROTO_TCP)) { - xge_debug_ring(XGE_ERR, "Cant do lro %d", ext_info->proto); - return XGE_HAL_FAIL; - } - - if ( !*ip ) - { -#ifdef XGE_LL_DEBUG_DUMP_PKT - { - u8 ch; - u16 i; - - xge_os_printf("Dump Eth:" ); - for (i =0; i < 60; i++) { - ch = ntohs(*((u8 *)(buffer + i)) ); - xge_os_printf("i:%d %02x, ",i,ch); - } - } -#endif - - switch (ext_info->frame) { - case XGE_HAL_FRAME_TYPE_DIX: - ip_off = XGE_HAL_HEADER_ETHERNET_II_802_3_SIZE; - break; - case XGE_HAL_FRAME_TYPE_LLC: - ip_off = (XGE_HAL_HEADER_ETHERNET_II_802_3_SIZE + - XGE_HAL_HEADER_802_2_SIZE); - break; - case XGE_HAL_FRAME_TYPE_SNAP: - ip_off = (XGE_HAL_HEADER_ETHERNET_II_802_3_SIZE + - XGE_HAL_HEADER_SNAP_SIZE); - break; - default: // XGE_HAL_FRAME_TYPE_IPX, etc. - return XGE_HAL_FAIL; - } - - - if (ext_info->proto & XGE_HAL_FRAME_PROTO_VLAN_TAGGED) { - ip_off += XGE_HAL_HEADER_VLAN_SIZE; - } - - /* Grab ip, tcp headers */ - *ip = (iplro_t *)((char*)buffer + ip_off); - } /* !*ip */ - - ip_length = (u8)((*ip)->version_ihl & 0x0F); - ip_length = ip_length <<2; - *tcp = (tcplro_t *)((char *)*ip + ip_length); - - xge_debug_ring(XGE_TRACE, "ip_length:%d ip:"XGE_OS_LLXFMT - " tcp:"XGE_OS_LLXFMT"", (int)ip_length, - (unsigned long long)(ulong_t)*ip, (unsigned long long)(ulong_t)*tcp); - - return XGE_HAL_OK; - -} - - -/* - * __hal_open_lro_session: Open a new LRO session. - * @buffer: Ethernet frame. - * @ip: ip header. - * @tcp: tcp header. - * @lro: lro pointer - * @ext_info: Descriptor info. - * @hldev: Hal context. - * @ring_lro: LRO descriptor per rx ring. - * @slot: Bucket no. - * @tcp_seg_len: Length of tcp segment. - * @ts_off: time stamp offset in the packet. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_open_lro_session (u8 *buffer, iplro_t *ip, tcplro_t *tcp, lro_t **lro, - xge_hal_device_t *hldev, xge_hal_lro_desc_t *ring_lro, int slot, - u32 tcp_seg_len, int ts_off) -{ - - lro_t *lro_new = &ring_lro->lro_pool[slot]; - - lro_new->in_use = 1; - lro_new->ll_hdr = buffer; - lro_new->ip_hdr = ip; - lro_new->tcp_hdr = tcp; - lro_new->tcp_next_seq_num = tcp_seg_len + xge_os_ntohl( - tcp->seq); - lro_new->tcp_seq_num = tcp->seq; - lro_new->tcp_ack_num = tcp->ack_seq; - lro_new->sg_num = 1; - lro_new->total_length = xge_os_ntohs(ip->tot_len); - lro_new->frags_len = 0; - lro_new->ts_off = ts_off; - - hldev->stats.sw_dev_info_stats.tot_frms_lroised++; - hldev->stats.sw_dev_info_stats.tot_lro_sessions++; - - *lro = ring_lro->lro_recent = lro_new; - return; -} -/* - * __hal_lro_get_free_slot: Get a free LRO bucket. - * @ring_lro: LRO descriptor per ring. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL int -__hal_lro_get_free_slot (xge_hal_lro_desc_t *ring_lro) -{ - int i; - - for (i = 0; i < XGE_HAL_LRO_MAX_BUCKETS; i++) { - lro_t *lro_temp = &ring_lro->lro_pool[i]; - - if (!lro_temp->in_use) - return i; - } - return -1; -} - -/* - * __hal_get_lro_session: Gets matching LRO session or creates one. - * @eth_hdr: Ethernet header. - * @ip: ip header. - * @tcp: tcp header. - * @lro: lro pointer - * @ext_info: Descriptor info. - * @hldev: Hal context. - * @ring_lro: LRO descriptor per rx ring - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_get_lro_session (u8 *eth_hdr, - iplro_t *ip, - tcplro_t *tcp, - lro_t **lro, - xge_hal_dtr_info_t *ext_info, - xge_hal_device_t *hldev, - xge_hal_lro_desc_t *ring_lro, - lro_t **lro_end3 /* Valid only when ret=END_3 */) -{ - lro_t *lro_match; - int i, free_slot = -1; - u32 tcp_seg_len; - int ts_off = -1; - - *lro = lro_match = NULL; - /* - * Compare the incoming frame with the lro session left from the - * previous call. There is a good chance that this incoming frame - * matches the lro session. - */ - if (ring_lro->lro_recent && ring_lro->lro_recent->in_use) { - if (__hal_lro_check_for_session_match(ring_lro->lro_recent, - tcp, ip) - == XGE_HAL_OK) - lro_match = ring_lro->lro_recent; - } - - if (!lro_match) { - /* - * Search in the pool of LROs for the session that matches - * the incoming frame. - */ - for (i = 0; i < XGE_HAL_LRO_MAX_BUCKETS; i++) { - lro_t *lro_temp = &ring_lro->lro_pool[i]; - - if (!lro_temp->in_use) { - if (free_slot == -1) - free_slot = i; - continue; - } - - if (__hal_lro_check_for_session_match(lro_temp, tcp, - ip) == XGE_HAL_OK) { - lro_match = lro_temp; - break; - } - } - } - - - if (lro_match) { - /* - * Matching LRO Session found - */ - *lro = lro_match; - - if (lro_match->tcp_next_seq_num != xge_os_ntohl(tcp->seq)) { - xge_debug_ring(XGE_ERR, "**retransmit **" - "found***"); - hldev->stats.sw_dev_info_stats.lro_out_of_seq_pkt_cnt++; - return XGE_HAL_INF_LRO_END_2; - } - - if (XGE_HAL_OK != __hal_ip_lro_capable(ip, ext_info)) - { - return XGE_HAL_INF_LRO_END_2; - } - - if (XGE_HAL_OK != __hal_tcp_lro_capable(ip, tcp, lro_match, - &ts_off)) { - /* - * Close the current session and open a new - * LRO session with this packet, - * provided it has tcp payload - */ - tcp_seg_len = __hal_tcp_seg_len(ip, tcp); - if (tcp_seg_len == 0) - { - return XGE_HAL_INF_LRO_END_2; - } - - /* Get a free bucket */ - free_slot = __hal_lro_get_free_slot(ring_lro); - if (free_slot == -1) - { - return XGE_HAL_INF_LRO_END_2; - } - - /* - * Open a new LRO session - */ - __hal_open_lro_session (eth_hdr, ip, tcp, lro_end3, - hldev, ring_lro, free_slot, tcp_seg_len, - ts_off); - - return XGE_HAL_INF_LRO_END_3; - } - - /* - * The frame is good, in-sequence, can be LRO-ed; - * take its (latest) ACK - unless it is a dupack. - * Note: to be exact need to check window size as well.. - */ - if (lro_match->tcp_ack_num == tcp->ack_seq && - lro_match->tcp_seq_num == tcp->seq) { - hldev->stats.sw_dev_info_stats.lro_dup_pkt_cnt++; - return XGE_HAL_INF_LRO_END_2; - } - - lro_match->tcp_seq_num = tcp->seq; - lro_match->tcp_ack_num = tcp->ack_seq; - lro_match->frags_len += __hal_tcp_seg_len(ip, tcp); - - ring_lro->lro_recent = lro_match; - - return XGE_HAL_INF_LRO_CONT; - } - - /* ********** New Session ***************/ - if (free_slot == -1) - return XGE_HAL_INF_LRO_UNCAPABLE; - - if (XGE_HAL_FAIL == __hal_ip_lro_capable(ip, ext_info)) - return XGE_HAL_INF_LRO_UNCAPABLE; - - if (XGE_HAL_FAIL == __hal_tcp_lro_capable(ip, tcp, NULL, &ts_off)) - return XGE_HAL_INF_LRO_UNCAPABLE; - - xge_debug_ring(XGE_TRACE, "Creating lro session."); - - /* - * Open a LRO session, provided the packet contains payload. - */ - tcp_seg_len = __hal_tcp_seg_len(ip, tcp); - if (tcp_seg_len == 0) - return XGE_HAL_INF_LRO_UNCAPABLE; - - __hal_open_lro_session (eth_hdr, ip, tcp, lro, hldev, ring_lro, free_slot, - tcp_seg_len, ts_off); - - return XGE_HAL_INF_LRO_BEGIN; -} - -/* - * __hal_lro_under_optimal_thresh: Finds whether combined session is optimal. - * @ip: ip header. - * @tcp: tcp header. - * @lro: lro pointer - * @hldev: Hal context. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_lro_under_optimal_thresh (iplro_t *ip, - tcplro_t *tcp, - lro_t *lro, - xge_hal_device_t *hldev) -{ - if (!lro) return XGE_HAL_FAIL; - - if ((lro->total_length + __hal_tcp_seg_len(ip, tcp) ) > - hldev->config.lro_frm_len) { - xge_debug_ring(XGE_TRACE, "Max LRO frame len exceeded:" - "max length %d ", hldev->config.lro_frm_len); - hldev->stats.sw_dev_info_stats.lro_frm_len_exceed_cnt++; - return XGE_HAL_FAIL; - } - - if (lro->sg_num == hldev->config.lro_sg_size) { - xge_debug_ring(XGE_TRACE, "Max sg count exceeded:" - "max sg %d ", hldev->config.lro_sg_size); - hldev->stats.sw_dev_info_stats.lro_sg_exceed_cnt++; - return XGE_HAL_FAIL; - } - - return XGE_HAL_OK; -} - -/* - * __hal_collapse_ip_hdr: Collapses ip header. - * @ip: ip header. - * @tcp: tcp header. - * @lro: lro pointer - * @hldev: Hal context. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_collapse_ip_hdr ( iplro_t *ip, - tcplro_t *tcp, - lro_t *lro, - xge_hal_device_t *hldev) -{ - - lro->total_length += __hal_tcp_seg_len(ip, tcp); - - /* May be we have to handle time stamps or more options */ - - return XGE_HAL_OK; - -} - -/* - * __hal_collapse_tcp_hdr: Collapses tcp header. - * @ip: ip header. - * @tcp: tcp header. - * @lro: lro pointer - * @hldev: Hal context. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_collapse_tcp_hdr ( iplro_t *ip, - tcplro_t *tcp, - lro_t *lro, - xge_hal_device_t *hldev) -{ - lro->tcp_next_seq_num += __hal_tcp_seg_len(ip, tcp); - return XGE_HAL_OK; - -} - -/* - * __hal_append_lro: Appends new frame to existing LRO session. - * @ip: ip header. - * @tcp: IN tcp header, OUT tcp payload. - * @seg_len: tcp payload length. - * @lro: lro pointer - * @hldev: Hal context. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_append_lro(iplro_t *ip, - tcplro_t **tcp, - u32 *seg_len, - lro_t *lro, - xge_hal_device_t *hldev) -{ - (void) __hal_collapse_ip_hdr(ip, *tcp, lro, hldev); - (void) __hal_collapse_tcp_hdr(ip, *tcp, lro, hldev); - // Update mbuf chain will be done in ll driver. - // xge_hal_accumulate_large_rx on success of appending new frame to - // lro will return to ll driver tcpdata pointer, and tcp payload length. - // along with return code lro frame appended. - - lro->sg_num++; - *seg_len = __hal_tcp_seg_len(ip, *tcp); - *tcp = (tcplro_t *)((char *)*tcp + (((*tcp)->doff_res)>>2)); - - return XGE_HAL_OK; - -} - -/** - * __xge_hal_accumulate_large_rx: LRO a given frame - * frames - * @ring: rx ring number - * @eth_hdr: ethernet header. - * @ip_hdr: ip header (optional) - * @tcp: tcp header. - * @seglen: packet length. - * @p_lro: lro pointer. - * @ext_info: descriptor info, see xge_hal_dtr_info_t{}. - * @hldev: HAL device. - * @lro_end3: for lro_end3 output - * - * LRO the newly received frame, i.e. attach it (if possible) to the - * already accumulated (i.e., already LRO-ed) received frames (if any), - * to form one super-sized frame for the subsequent processing - * by the stack. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -xge_hal_lro_process_rx(int ring, u8 *eth_hdr, u8 *ip_hdr, tcplro_t **tcp, - u32 *seglen, lro_t **p_lro, - xge_hal_dtr_info_t *ext_info, xge_hal_device_t *hldev, - lro_t **lro_end3) -{ - iplro_t *ip = (iplro_t *)ip_hdr; - xge_hal_status_e ret; - lro_t *lro; - - xge_debug_ring(XGE_TRACE, "Entered accumu lro. "); - if (XGE_HAL_OK != __hal_lro_capable(eth_hdr, &ip, (tcplro_t **)tcp, - ext_info)) - return XGE_HAL_INF_LRO_UNCAPABLE; - - /* - * This function shall get matching LRO or else - * create one and return it - */ - ret = __hal_get_lro_session(eth_hdr, ip, (tcplro_t *)*tcp, - p_lro, ext_info, hldev, &hldev->lro_desc[ring], - lro_end3); - xge_debug_ring(XGE_TRACE, "ret from get_lro:%d ",ret); - lro = *p_lro; - if (XGE_HAL_INF_LRO_CONT == ret) { - if (XGE_HAL_OK == __hal_lro_under_optimal_thresh(ip, - (tcplro_t *)*tcp, lro, hldev)) { - (void) __hal_append_lro(ip,(tcplro_t **) tcp, seglen, - lro, hldev); - hldev->stats.sw_dev_info_stats.tot_frms_lroised++; - - if (lro->sg_num >= hldev->config.lro_sg_size) { - hldev->stats.sw_dev_info_stats.lro_sg_exceed_cnt++; - ret = XGE_HAL_INF_LRO_END_1; - } - - } else ret = XGE_HAL_INF_LRO_END_2; - } - - /* - * Since its time to flush, - * update ip header so that it can be sent up - */ - if ((ret == XGE_HAL_INF_LRO_END_1) || - (ret == XGE_HAL_INF_LRO_END_2) || - (ret == XGE_HAL_INF_LRO_END_3)) { - lro->ip_hdr->tot_len = xge_os_htons((*p_lro)->total_length); - lro->ip_hdr->check = xge_os_htons(0); - lro->ip_hdr->check = XGE_LL_IP_FAST_CSUM(((u8 *)(lro->ip_hdr)), - (lro->ip_hdr->version_ihl & 0x0F)); - lro->tcp_hdr->ack_seq = lro->tcp_ack_num; - } - - return (ret); -} - -/** - * xge_hal_accumulate_large_rx: LRO a given frame - * frames - * @buffer: Ethernet frame. - * @tcp: tcp header. - * @seglen: packet length. - * @p_lro: lro pointer. - * @ext_info: descriptor info, see xge_hal_dtr_info_t{}. - * @hldev: HAL device. - * @lro_end3: for lro_end3 output - * - * LRO the newly received frame, i.e. attach it (if possible) to the - * already accumulated (i.e., already LRO-ed) received frames (if any), - * to form one super-sized frame for the subsequent processing - * by the stack. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -xge_hal_accumulate_large_rx(u8 *buffer, tcplro_t **tcp, u32 *seglen, -lro_t **p_lro, xge_hal_dtr_info_t *ext_info, xge_hal_device_t *hldev, -lro_t **lro_end3) -{ - int ring = 0; - return xge_hal_lro_process_rx(ring, buffer, NULL, tcp, seglen, p_lro, - ext_info, hldev, lro_end3); -} - -/** - * xge_hal_lro_close_session: Close LRO session - * @lro: LRO Session. - * @hldev: HAL Context. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -xge_hal_lro_close_session (lro_t *lro) -{ - lro->in_use = 0; -} - -/** - * xge_hal_lro_next_session: Returns next LRO session in the list or NULL - * if none exists. - * @hldev: HAL Context. - * @ring: rx ring number. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL lro_t * -xge_hal_lro_next_session (xge_hal_device_t *hldev, int ring) -{ -xge_hal_lro_desc_t *ring_lro = &hldev->lro_desc[ring]; - int i; - int start_idx = ring_lro->lro_next_idx; - - for(i = start_idx; i < XGE_HAL_LRO_MAX_BUCKETS; i++) { - lro_t *lro = &ring_lro->lro_pool[i]; - - if (!lro->in_use) - continue; - - lro->ip_hdr->tot_len = xge_os_htons(lro->total_length); - lro->ip_hdr->check = xge_os_htons(0); - lro->ip_hdr->check = XGE_LL_IP_FAST_CSUM(((u8 *)(lro->ip_hdr)), - (lro->ip_hdr->version_ihl & 0x0F)); - ring_lro->lro_next_idx = i + 1; - return lro; - } - - ring_lro->lro_next_idx = 0; - return NULL; - -} - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL lro_t * -xge_hal_lro_get_next_session(xge_hal_device_t *hldev) -{ - int ring = 0; /* assume default ring=0 */ - return xge_hal_lro_next_session(hldev, ring); -} -#endif Property changes on: head/sys/dev/nxge/xgehal/xgehal-device-fp.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-fifo.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-fifo.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-fifo.c (nonexistent) @@ -1,562 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include - -static xge_hal_status_e -__hal_fifo_mempool_item_alloc(xge_hal_mempool_h mempoolh, - void *memblock, - int memblock_index, - xge_hal_mempool_dma_t *dma_object, - void *item, - int index, - int is_last, - void *userdata) -{ - int memblock_item_idx; - xge_hal_fifo_txdl_priv_t *txdl_priv; - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)item; - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)userdata; - - xge_assert(item); - txdl_priv = (xge_hal_fifo_txdl_priv_t *) \ - __hal_mempool_item_priv((xge_hal_mempool_t *) mempoolh, - memblock_index, - item, - &memblock_item_idx); - xge_assert(txdl_priv); - - /* pre-format HAL's TxDL's private */ - txdl_priv->dma_offset = (char*)item - (char*)memblock; - txdl_priv->dma_addr = dma_object->addr + txdl_priv->dma_offset; - txdl_priv->dma_handle = dma_object->handle; - txdl_priv->memblock = memblock; - txdl_priv->first_txdp = (xge_hal_fifo_txd_t *)item; - txdl_priv->next_txdl_priv = NULL; - txdl_priv->dang_txdl = NULL; - txdl_priv->dang_frags = 0; - txdl_priv->alloc_frags = 0; - -#ifdef XGE_DEBUG_ASSERT - txdl_priv->dma_object = dma_object; -#endif - txdp->host_control = (u64)(ulong_t)txdl_priv; - -#ifdef XGE_HAL_ALIGN_XMIT - txdl_priv->align_vaddr = NULL; - txdl_priv->align_dma_addr = (dma_addr_t)0; - -#ifndef XGE_HAL_ALIGN_XMIT_ALLOC_RT - { - xge_hal_status_e status; - if (fifo->config->alignment_size) { - status =__hal_fifo_dtr_align_alloc_map(fifo, txdp); - if (status != XGE_HAL_OK) { - xge_debug_mm(XGE_ERR, - "align buffer[%d] %d bytes, status %d", - index, - fifo->align_size, - status); - return status; - } - } - } -#endif -#endif - - if (fifo->channel.dtr_init) { - fifo->channel.dtr_init(fifo, (xge_hal_dtr_h)txdp, index, - fifo->channel.userdata, XGE_HAL_CHANNEL_OC_NORMAL); - } - - return XGE_HAL_OK; -} - - -static xge_hal_status_e -__hal_fifo_mempool_item_free(xge_hal_mempool_h mempoolh, - void *memblock, - int memblock_index, - xge_hal_mempool_dma_t *dma_object, - void *item, - int index, - int is_last, - void *userdata) -{ - int memblock_item_idx; - xge_hal_fifo_txdl_priv_t *txdl_priv; -#ifdef XGE_HAL_ALIGN_XMIT - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)userdata; -#endif - - xge_assert(item); - - txdl_priv = (xge_hal_fifo_txdl_priv_t *) \ - __hal_mempool_item_priv((xge_hal_mempool_t *) mempoolh, - memblock_index, - item, - &memblock_item_idx); - xge_assert(txdl_priv); - -#ifdef XGE_HAL_ALIGN_XMIT - if (fifo->config->alignment_size) { - if (txdl_priv->align_dma_addr != 0) { - xge_os_dma_unmap(fifo->channel.pdev, - txdl_priv->align_dma_handle, - txdl_priv->align_dma_addr, - fifo->align_size, - XGE_OS_DMA_DIR_TODEVICE); - - txdl_priv->align_dma_addr = 0; - } - - if (txdl_priv->align_vaddr != NULL) { - xge_os_dma_free(fifo->channel.pdev, - txdl_priv->align_vaddr, - fifo->align_size, - &txdl_priv->align_dma_acch, - &txdl_priv->align_dma_handle); - - txdl_priv->align_vaddr = NULL; - } - } -#endif - - return XGE_HAL_OK; -} - -xge_hal_status_e -__hal_fifo_open(xge_hal_channel_h channelh, xge_hal_channel_attr_t *attr) -{ - xge_hal_device_t *hldev; - xge_hal_status_e status; - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - xge_hal_fifo_queue_t *queue; - int i, txdl_size, max_arr_index, mid_point; - xge_hal_dtr_h dtrh; - - hldev = (xge_hal_device_t *)fifo->channel.devh; - fifo->config = &hldev->config.fifo; - queue = &fifo->config->queue[attr->post_qid]; - -#if defined(XGE_HAL_TX_MULTI_RESERVE) - xge_os_spin_lock_init(&fifo->channel.reserve_lock, hldev->pdev); -#elif defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - xge_os_spin_lock_init_irq(&fifo->channel.reserve_lock, hldev->irqh); -#endif -#if defined(XGE_HAL_TX_MULTI_POST) - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) { - fifo->post_lock_ptr = &hldev->xena_post_lock; - } else { - xge_os_spin_lock_init(&fifo->channel.post_lock, hldev->pdev); - fifo->post_lock_ptr = &fifo->channel.post_lock; - } -#elif defined(XGE_HAL_TX_MULTI_POST_IRQ) - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) { - fifo->post_lock_ptr = &hldev->xena_post_lock; - } else { - xge_os_spin_lock_init_irq(&fifo->channel.post_lock, - hldev->irqh); - fifo->post_lock_ptr = &fifo->channel.post_lock; - } -#endif - - fifo->align_size = - fifo->config->alignment_size * fifo->config->max_aligned_frags; - - /* Initializing the BAR1 address as the start of - * the FIFO queue pointer and as a location of FIFO control - * word. */ - fifo->hw_pair = - (xge_hal_fifo_hw_pair_t *) (void *)(hldev->bar1 + - (attr->post_qid * XGE_HAL_FIFO_HW_PAIR_OFFSET)); - - /* apply "interrupts per txdl" attribute */ - fifo->interrupt_type = XGE_HAL_TXD_INT_TYPE_UTILZ; - if (queue->intr) { - fifo->interrupt_type = XGE_HAL_TXD_INT_TYPE_PER_LIST; - } - fifo->no_snoop_bits = - (int)(XGE_HAL_TX_FIFO_NO_SNOOP(queue->no_snoop_bits)); - - /* - * FIFO memory management strategy: - * - * TxDL splitted into three independent parts: - * - set of TxD's - * - TxD HAL private part - * - upper layer private part - * - * Adaptative memory allocation used. i.e. Memory allocated on - * demand with the size which will fit into one memory block. - * One memory block may contain more than one TxDL. In simple case - * memory block size can be equal to CPU page size. On more - * sophisticated OS's memory block can be contigious across - * several pages. - * - * During "reserve" operations more memory can be allocated on demand - * for example due to FIFO full condition. - * - * Pool of memory memblocks never shrinks except __hal_fifo_close - * routine which will essentially stop channel and free the resources. - */ - - /* TxDL common private size == TxDL private + ULD private */ - fifo->priv_size = sizeof(xge_hal_fifo_txdl_priv_t) + - attr->per_dtr_space; - fifo->priv_size = ((fifo->priv_size + __xge_os_cacheline_size -1) / - __xge_os_cacheline_size) * - __xge_os_cacheline_size; - - /* recompute txdl size to be cacheline aligned */ - fifo->txdl_size = fifo->config->max_frags * sizeof(xge_hal_fifo_txd_t); - txdl_size = ((fifo->txdl_size + __xge_os_cacheline_size - 1) / - __xge_os_cacheline_size) * __xge_os_cacheline_size; - - if (fifo->txdl_size != txdl_size) - xge_debug_fifo(XGE_ERR, "cacheline > 128 ( ?? ): %d, %d, %d, %d", - fifo->config->max_frags, fifo->txdl_size, txdl_size, - __xge_os_cacheline_size); - - fifo->txdl_size = txdl_size; - - /* since dtr_init() callback will be called from item_alloc(), - * the same way channels userdata might be used prior to - * channel_initialize() */ - fifo->channel.dtr_init = attr->dtr_init; - fifo->channel.userdata = attr->userdata; - fifo->txdl_per_memblock = fifo->config->memblock_size / - fifo->txdl_size; - - fifo->mempool = __hal_mempool_create(hldev->pdev, - fifo->config->memblock_size, - fifo->txdl_size, - fifo->priv_size, - queue->initial, - queue->max, - __hal_fifo_mempool_item_alloc, - __hal_fifo_mempool_item_free, - fifo); - if (fifo->mempool == NULL) { - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - status = __hal_channel_initialize(channelh, attr, - (void **) __hal_mempool_items_arr(fifo->mempool), - queue->initial, queue->max, - fifo->config->reserve_threshold); - if (status != XGE_HAL_OK) { - __hal_fifo_close(channelh); - return status; - } - xge_debug_fifo(XGE_TRACE, - "DTR reserve_length:%d reserve_top:%d\n" - "max_frags:%d reserve_threshold:%d\n" - "memblock_size:%d alignment_size:%d max_aligned_frags:%d", - fifo->channel.reserve_length, fifo->channel.reserve_top, - fifo->config->max_frags, fifo->config->reserve_threshold, - fifo->config->memblock_size, fifo->config->alignment_size, - fifo->config->max_aligned_frags); - -#ifdef XGE_DEBUG_ASSERT - for ( i = 0; i < fifo->channel.reserve_length; i++) { - xge_debug_fifo(XGE_TRACE, "DTR before reversing index:%d" - " handle:%p", i, fifo->channel.reserve_arr[i]); - } -#endif - - xge_assert(fifo->channel.reserve_length); - /* reverse the FIFO dtr array */ - max_arr_index = fifo->channel.reserve_length - 1; - max_arr_index -=fifo->channel.reserve_top; - xge_assert(max_arr_index); - mid_point = (fifo->channel.reserve_length - fifo->channel.reserve_top)/2; - for (i = 0; i < mid_point; i++) { - dtrh = fifo->channel.reserve_arr[i]; - fifo->channel.reserve_arr[i] = - fifo->channel.reserve_arr[max_arr_index - i]; - fifo->channel.reserve_arr[max_arr_index - i] = dtrh; - } - -#ifdef XGE_DEBUG_ASSERT - for ( i = 0; i < fifo->channel.reserve_length; i++) { - xge_debug_fifo(XGE_TRACE, "DTR after reversing index:%d" - " handle:%p", i, fifo->channel.reserve_arr[i]); - } -#endif - - return XGE_HAL_OK; -} - -void -__hal_fifo_close(xge_hal_channel_h channelh) -{ - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - xge_hal_device_t *hldev = (xge_hal_device_t *)fifo->channel.devh; - - if (fifo->mempool) { - __hal_mempool_destroy(fifo->mempool); - } - - __hal_channel_terminate(channelh); - -#if defined(XGE_HAL_TX_MULTI_RESERVE) - xge_os_spin_lock_destroy(&fifo->channel.reserve_lock, hldev->pdev); -#elif defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - xge_os_spin_lock_destroy_irq(&fifo->channel.reserve_lock, hldev->pdev); -#endif - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { -#if defined(XGE_HAL_TX_MULTI_POST) - xge_os_spin_lock_destroy(&fifo->channel.post_lock, hldev->pdev); -#elif defined(XGE_HAL_TX_MULTI_POST_IRQ) - xge_os_spin_lock_destroy_irq(&fifo->channel.post_lock, - hldev->pdev); -#endif - } -} - -void -__hal_fifo_hw_initialize(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t *)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)(void *)hldev->bar0; - u64* tx_fifo_partitions[4]; - u64* tx_fifo_wrr[5]; - u64 tx_fifo_wrr_value[5]; - u64 val64, part0; - int i; - - /* Tx DMA Initialization */ - - tx_fifo_partitions[0] = &bar0->tx_fifo_partition_0; - tx_fifo_partitions[1] = &bar0->tx_fifo_partition_1; - tx_fifo_partitions[2] = &bar0->tx_fifo_partition_2; - tx_fifo_partitions[3] = &bar0->tx_fifo_partition_3; - - tx_fifo_wrr[0] = &bar0->tx_w_round_robin_0; - tx_fifo_wrr[1] = &bar0->tx_w_round_robin_1; - tx_fifo_wrr[2] = &bar0->tx_w_round_robin_2; - tx_fifo_wrr[3] = &bar0->tx_w_round_robin_3; - tx_fifo_wrr[4] = &bar0->tx_w_round_robin_4; - - tx_fifo_wrr_value[0] = XGE_HAL_FIFO_WRR_0; - tx_fifo_wrr_value[1] = XGE_HAL_FIFO_WRR_1; - tx_fifo_wrr_value[2] = XGE_HAL_FIFO_WRR_2; - tx_fifo_wrr_value[3] = XGE_HAL_FIFO_WRR_3; - tx_fifo_wrr_value[4] = XGE_HAL_FIFO_WRR_4; - - /* Note: WRR calendar must be configured before the transmit - * FIFOs are enabled! page 6-77 user guide */ - - if (!hldev->config.rts_qos_en) { - /* all zeroes for Round-Robin */ - for (i = 0; i < XGE_HAL_FIFO_MAX_WRR; i++) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0, - tx_fifo_wrr[i]); - } - - /* reset all of them but '0' */ - for (i=1; i < XGE_HAL_FIFO_MAX_PARTITION; i++) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, 0ULL, - tx_fifo_partitions[i]); - } - } else { /* Change the default settings */ - - for (i = 0; i < XGE_HAL_FIFO_MAX_WRR; i++) { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - tx_fifo_wrr_value[i], tx_fifo_wrr[i]); - } - } - - /* configure only configured FIFOs */ - val64 = 0; part0 = 0; - for (i = 0; i < XGE_HAL_MAX_FIFO_NUM; i++) { - int reg_half = i % 2; - int reg_num = i / 2; - - if (hldev->config.fifo.queue[i].configured) { - int priority = hldev->config.fifo.queue[i].priority; - val64 |= - vBIT((hldev->config.fifo.queue[i].max-1), - (((reg_half) * 32) + 19), - 13) | vBIT(priority, (((reg_half)*32) + 5), 3); - } - - /* NOTE: do write operation for each second u64 half - * or force for first one if configured number - * is even */ - if (reg_half) { - if (reg_num == 0) { - /* skip partition '0', must write it once at - * the end */ - part0 = val64; - } else { - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, tx_fifo_partitions[reg_num]); - xge_debug_fifo(XGE_TRACE, - "fifo partition_%d at: " - "0x"XGE_OS_LLXFMT" is: 0x"XGE_OS_LLXFMT, - reg_num, (unsigned long long)(ulong_t) - tx_fifo_partitions[reg_num], - (unsigned long long)val64); - } - val64 = 0; - } - } - - part0 |= BIT(0); /* to enable the FIFO partition. */ - __hal_pio_mem_write32_lower(hldev->pdev, hldev->regh0, (u32)part0, - tx_fifo_partitions[0]); - xge_os_wmb(); - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, (u32)(part0>>32), - tx_fifo_partitions[0]); - xge_debug_fifo(XGE_TRACE, "fifo partition_0 at: " - "0x"XGE_OS_LLXFMT" is: 0x"XGE_OS_LLXFMT, - (unsigned long long)(ulong_t) - tx_fifo_partitions[0], - (unsigned long long) part0); - - /* - * Initialization of Tx_PA_CONFIG register to ignore packet - * integrity checking. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->tx_pa_cfg); - val64 |= XGE_HAL_TX_PA_CFG_IGNORE_FRM_ERR | - XGE_HAL_TX_PA_CFG_IGNORE_SNAP_OUI | - XGE_HAL_TX_PA_CFG_IGNORE_LLC_CTRL | - XGE_HAL_TX_PA_CFG_IGNORE_L2_ERR; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->tx_pa_cfg); - - /* - * Assign MSI-X vectors - */ - for (i = 0; i < XGE_HAL_MAX_FIFO_NUM; i++) { - xge_list_t *item; - xge_hal_channel_t *channel = NULL; - - if (!hldev->config.fifo.queue[i].configured || - !hldev->config.fifo.queue[i].intr_vector || - hldev->config.intr_mode != XGE_HAL_INTR_MODE_MSIX) - continue; - - /* find channel */ - xge_list_for_each(item, &hldev->free_channels) { - xge_hal_channel_t *tmp; - tmp = xge_container_of(item, xge_hal_channel_t, - item); - if (tmp->type == XGE_HAL_CHANNEL_TYPE_FIFO && - tmp->post_qid == i) { - channel = tmp; - break; - } - } - - if (channel) { - xge_hal_channel_msix_set(channel, - hldev->config.fifo.queue[i].intr_vector); - } - } - - xge_debug_fifo(XGE_TRACE, "%s", "fifo channels initialized"); -} - -#ifdef XGE_HAL_ALIGN_XMIT -void -__hal_fifo_dtr_align_free_unmap(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - xge_hal_fifo_txdl_priv_t *txdl_priv; - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)dtrh; - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - - txdl_priv = __hal_fifo_txdl_priv(txdp); - - if (txdl_priv->align_dma_addr != 0) { - xge_os_dma_unmap(fifo->channel.pdev, - txdl_priv->align_dma_handle, - txdl_priv->align_dma_addr, - fifo->align_size, - XGE_OS_DMA_DIR_TODEVICE); - - txdl_priv->align_dma_addr = 0; - } - - if (txdl_priv->align_vaddr != NULL) { - xge_os_dma_free(fifo->channel.pdev, - txdl_priv->align_vaddr, - fifo->align_size, - &txdl_priv->align_dma_acch, - &txdl_priv->align_dma_handle); - - - txdl_priv->align_vaddr = NULL; - } - } - -xge_hal_status_e -__hal_fifo_dtr_align_alloc_map(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - xge_hal_fifo_txdl_priv_t *txdl_priv; - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)dtrh; - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - - xge_assert(txdp); - - txdl_priv = __hal_fifo_txdl_priv(txdp); - - /* allocate alignment DMA-buffer */ - txdl_priv->align_vaddr = (char *)xge_os_dma_malloc(fifo->channel.pdev, - fifo->align_size, - XGE_OS_DMA_CACHELINE_ALIGNED | - XGE_OS_DMA_STREAMING, - &txdl_priv->align_dma_handle, - &txdl_priv->align_dma_acch); - if (txdl_priv->align_vaddr == NULL) { - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - /* map it */ - txdl_priv->align_dma_addr = xge_os_dma_map(fifo->channel.pdev, - txdl_priv->align_dma_handle, txdl_priv->align_vaddr, - fifo->align_size, - XGE_OS_DMA_DIR_TODEVICE, XGE_OS_DMA_STREAMING); - - if (txdl_priv->align_dma_addr == XGE_OS_INVALID_DMA_ADDR) { - __hal_fifo_dtr_align_free_unmap(channelh, dtrh); - return XGE_HAL_ERR_OUT_OF_MAPPING; - } - - return XGE_HAL_OK; -} -#endif - - Property changes on: head/sys/dev/nxge/xgehal/xgehal-fifo.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-mgmt.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-mgmt.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-mgmt.c (nonexistent) @@ -1,1766 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include -#include - -/** - * xge_hal_mgmt_about - Retrieve about info. - * @devh: HAL device handle. - * @about_info: Filled in by HAL. See xge_hal_mgmt_about_info_t{}. - * @size: Size of the @about_info buffer. HAL will return error if the - * size is smaller than sizeof(xge_hal_mgmt_about_info_t). - * - * Retrieve information such as PCI device and vendor IDs, board - * revision number, HAL version number, etc. - * - * Returns: XGE_HAL_OK - success; - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * XGE_HAL_FAIL - Failed to retrieve the information. - * - * See also: xge_hal_mgmt_about_info_t{}. - */ -xge_hal_status_e -xge_hal_mgmt_about(xge_hal_device_h devh, xge_hal_mgmt_about_info_t *about_info, - int size) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (size != sizeof(xge_hal_mgmt_about_info_t)) { - return XGE_HAL_ERR_VERSION_CONFLICT; - } - - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, vendor_id), - &about_info->vendor); - - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, device_id), - &about_info->device); - - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, subsystem_vendor_id), - &about_info->subsys_vendor); - - xge_os_pci_read16(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, subsystem_id), - &about_info->subsys_device); - - xge_os_pci_read8(hldev->pdev, hldev->cfgh, - xge_offsetof(xge_hal_pci_config_le_t, revision), - &about_info->board_rev); - - xge_os_strcpy(about_info->vendor_name, XGE_DRIVER_VENDOR); - xge_os_strcpy(about_info->chip_name, XGE_CHIP_FAMILY); - xge_os_strcpy(about_info->media, XGE_SUPPORTED_MEDIA_0); - - xge_os_strcpy(about_info->hal_major, XGE_HAL_VERSION_MAJOR); - xge_os_strcpy(about_info->hal_minor, XGE_HAL_VERSION_MINOR); - xge_os_strcpy(about_info->hal_fix, XGE_HAL_VERSION_FIX); - xge_os_strcpy(about_info->hal_build, XGE_HAL_VERSION_BUILD); - - xge_os_strcpy(about_info->ll_major, XGELL_VERSION_MAJOR); - xge_os_strcpy(about_info->ll_minor, XGELL_VERSION_MINOR); - xge_os_strcpy(about_info->ll_fix, XGELL_VERSION_FIX); - xge_os_strcpy(about_info->ll_build, XGELL_VERSION_BUILD); - - about_info->transponder_temperature = - xge_hal_read_xfp_current_temp(devh); - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_reg_read - Read Xframe register. - * @devh: HAL device handle. - * @bar_id: 0 - for BAR0, 1- for BAR1. - * @offset: Register offset in the Base Address Register (BAR) space. - * @value: Register value. Returned by HAL. - * Read Xframe register. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not - * valid. - * XGE_HAL_ERR_INVALID_BAR_ID - BAR id is not valid. - * - * See also: xge_hal_aux_bar0_read(), xge_hal_aux_bar1_read(). - */ -xge_hal_status_e -xge_hal_mgmt_reg_read(xge_hal_device_h devh, int bar_id, unsigned int offset, - u64 *value) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (bar_id == 0) { - if (offset > sizeof(xge_hal_pci_bar0_t)-8) { - return XGE_HAL_ERR_INVALID_OFFSET; - } - *value = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - (void *)(hldev->bar0 + offset)); - } else if (bar_id == 1 && - (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA || - xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC)) { - int i; - for (i=0; ipdev, hldev->regh1, - (void *)(hldev->bar1 + offset)); - } else if (bar_id == 1) { - /* FIXME: check TITAN BAR1 offsets */ - } else { - return XGE_HAL_ERR_INVALID_BAR_ID; - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_reg_write - Write Xframe register. - * @devh: HAL device handle. - * @bar_id: 0 - for BAR0, 1- for BAR1. - * @offset: Register offset in the Base Address Register (BAR) space. - * @value: Register value. - * - * Write Xframe register. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not - * valid. - * XGE_HAL_ERR_INVALID_BAR_ID - BAR id is not valid. - * - * See also: xge_hal_aux_bar0_write(). - */ -xge_hal_status_e -xge_hal_mgmt_reg_write(xge_hal_device_h devh, int bar_id, unsigned int offset, - u64 value) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (bar_id == 0) { - if (offset > sizeof(xge_hal_pci_bar0_t)-8) { - return XGE_HAL_ERR_INVALID_OFFSET; - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, value, - (void *)(hldev->bar0 + offset)); - } else if (bar_id == 1 && - (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA || - xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC)) { - int i; - for (i=0; ipdev, hldev->regh1, value, - (void *)(hldev->bar1 + offset)); - } else if (bar_id == 1) { - /* FIXME: check TITAN BAR1 offsets */ - } else { - return XGE_HAL_ERR_INVALID_BAR_ID; - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_hw_stats - Get Xframe hardware statistics. - * @devh: HAL device handle. - * @hw_stats: Hardware statistics. Returned by HAL. - * See xge_hal_stats_hw_info_t{}. - * @size: Size of the @hw_stats buffer. HAL will return an error - * if the size is smaller than sizeof(xge_hal_stats_hw_info_t). - * Get Xframe hardware statistics. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_mgmt_sw_stats(). - */ -xge_hal_status_e -xge_hal_mgmt_hw_stats(xge_hal_device_h devh, xge_hal_mgmt_hw_stats_t *hw_stats, - int size) -{ - xge_hal_status_e status; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_stats_hw_info_t *hw_info; - - xge_assert(xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN); - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (size != sizeof(xge_hal_stats_hw_info_t)) { - return XGE_HAL_ERR_VERSION_CONFLICT; - } - - if ((status = xge_hal_stats_hw (devh, &hw_info)) != XGE_HAL_OK) { - return status; - } - - xge_os_memcpy(hw_stats, hw_info, sizeof(xge_hal_stats_hw_info_t)); - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_hw_stats_off - TBD. - * @devh: HAL device handle. - * @off: TBD - * @size: TBD - * @out: TBD - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_mgmt_sw_stats(). - */ -xge_hal_status_e -xge_hal_mgmt_hw_stats_off(xge_hal_device_h devh, int off, int size, char *out) -{ - xge_hal_status_e status; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_stats_hw_info_t *hw_info; - - xge_assert(xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN); - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (off > sizeof(xge_hal_stats_hw_info_t)-4 || - size > 8) { - return XGE_HAL_ERR_INVALID_OFFSET; - } - - if ((status = xge_hal_stats_hw (devh, &hw_info)) != XGE_HAL_OK) { - return status; - } - - xge_os_memcpy(out, (char*)hw_info + off, size); - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_pcim_stats - Get Titan hardware statistics. - * @devh: HAL device handle. - * @pcim_stats: PCIM statistics. Returned by HAL. - * See xge_hal_stats_hw_info_t{}. - * @size: Size of the @hw_stats buffer. HAL will return an error - * if the size is smaller than sizeof(xge_hal_stats_hw_info_t). - * Get Xframe hardware statistics. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_mgmt_sw_stats(). - */ -xge_hal_status_e -xge_hal_mgmt_pcim_stats(xge_hal_device_h devh, - xge_hal_mgmt_pcim_stats_t *pcim_stats, int size) -{ - xge_hal_status_e status; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_stats_pcim_info_t *pcim_info; - - xge_assert(xge_hal_device_check_id(hldev) == XGE_HAL_CARD_TITAN); - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (size != sizeof(xge_hal_stats_pcim_info_t)) { - return XGE_HAL_ERR_VERSION_CONFLICT; - } - - if ((status = xge_hal_stats_pcim (devh, &pcim_info)) != XGE_HAL_OK) { - return status; - } - - xge_os_memcpy(pcim_stats, pcim_info, - sizeof(xge_hal_stats_pcim_info_t)); - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_pcim_stats_off - TBD. - * @devh: HAL device handle. - * @off: TBD - * @size: TBD - * @out: TBD - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_mgmt_sw_stats(). - */ -xge_hal_status_e -xge_hal_mgmt_pcim_stats_off(xge_hal_device_h devh, int off, int size, - char *out) -{ - xge_hal_status_e status; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_stats_pcim_info_t *pcim_info; - - xge_assert(xge_hal_device_check_id(hldev) == XGE_HAL_CARD_TITAN); - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (off > sizeof(xge_hal_stats_pcim_info_t)-8 || - size > 8) { - return XGE_HAL_ERR_INVALID_OFFSET; - } - - if ((status = xge_hal_stats_pcim (devh, &pcim_info)) != XGE_HAL_OK) { - return status; - } - - xge_os_memcpy(out, (char*)pcim_info + off, size); - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_sw_stats - Get per-device software statistics. - * @devh: HAL device handle. - * @sw_stats: Hardware statistics. Returned by HAL. - * See xge_hal_stats_sw_err_t{}. - * @size: Size of the @sw_stats buffer. HAL will return an error - * if the size is smaller than sizeof(xge_hal_stats_sw_err_t). - * Get device software statistics, including ECC and Parity error - * counters, etc. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_stats_sw_err_t{}, xge_hal_mgmt_hw_stats(). - */ -xge_hal_status_e -xge_hal_mgmt_sw_stats(xge_hal_device_h devh, xge_hal_mgmt_sw_stats_t *sw_stats, - int size) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (size != sizeof(xge_hal_stats_sw_err_t)) { - return XGE_HAL_ERR_VERSION_CONFLICT; - } - - if (!hldev->stats.is_initialized || - !hldev->stats.is_enabled) { - return XGE_HAL_INF_STATS_IS_NOT_READY; - } - - /* Updating xpak stats value */ - __hal_updt_stats_xpak(hldev); - - xge_os_memcpy(sw_stats, &hldev->stats.sw_dev_err_stats, - sizeof(xge_hal_stats_sw_err_t)); - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_device_stats - Get HAL device statistics. - * @devh: HAL device handle. - * @device_stats: HAL device "soft" statistics. Maintained by HAL itself. - * (as opposed to xge_hal_mgmt_hw_stats() - those are - * maintained by the Xframe hardware). - * Returned by HAL. - * See xge_hal_stats_device_info_t{}. - * @size: Size of the @device_stats buffer. HAL will return an error - * if the size is smaller than sizeof(xge_hal_stats_device_info_t). - * - * Get HAL (layer) statistic counters. - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not - * currently available. - * - */ -xge_hal_status_e -xge_hal_mgmt_device_stats(xge_hal_device_h devh, - xge_hal_mgmt_device_stats_t *device_stats, int size) -{ - xge_hal_status_e status; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_stats_device_info_t *device_info; - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (size != sizeof(xge_hal_stats_device_info_t)) { - return XGE_HAL_ERR_VERSION_CONFLICT; - } - - if ((status = xge_hal_stats_device (devh, &device_info)) != - XGE_HAL_OK) { - return status; - } - - xge_os_memcpy(device_stats, device_info, - sizeof(xge_hal_stats_device_info_t)); - - return XGE_HAL_OK; -} - -/* - * __hal_update_ring_bump - Update the ring bump counter for the - * particular channel. - * @hldev: HAL device handle. - * @queue: the queue who's data is to be collected. - * @chinfo: pointer to the statistics structure of the given channel. - * Usage: See xge_hal_aux_stats_hal_read{} - */ - -static void -__hal_update_ring_bump(xge_hal_device_t *hldev, int queue, - xge_hal_stats_channel_info_t *chinfo) -{ - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 rbc = 0; - int reg = (queue / 4); - void * addr; - - addr = (reg == 1)? (&bar0->ring_bump_counter2) : - (&bar0->ring_bump_counter1); - rbc = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, addr); - chinfo->ring_bump_cnt = XGE_HAL_RING_BUMP_CNT(queue, rbc); -} - -/** - * xge_hal_mgmt_channel_stats - Get HAL channel statistics. - * @channelh: HAL channel handle. - * @channel_stats: HAL channel statistics. Maintained by HAL itself - * (as opposed to xge_hal_mgmt_hw_stats() - those are - * maintained by the Xframe hardware). - * Returned by HAL. - * See xge_hal_stats_channel_info_t{}. - * @size: Size of the @channel_stats buffer. HAL will return an error - * if the size is smaller than sizeof(xge_hal_mgmt_channel_stats_t). - * - * Get HAL per-channel statistic counters. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not - * currently available. - * - */ -xge_hal_status_e -xge_hal_mgmt_channel_stats(xge_hal_channel_h channelh, - xge_hal_mgmt_channel_stats_t *channel_stats, int size) -{ - xge_hal_status_e status; - xge_hal_stats_channel_info_t *channel_info; - xge_hal_channel_t *channel = (xge_hal_channel_t* ) channelh; - - if (size != sizeof(xge_hal_stats_channel_info_t)) { - return XGE_HAL_ERR_VERSION_CONFLICT; - } - - if ((status = xge_hal_stats_channel (channelh, &channel_info)) != - XGE_HAL_OK) { - return status; - } - - if (xge_hal_device_check_id(channel->devh) == XGE_HAL_CARD_HERC) { - __hal_update_ring_bump( (xge_hal_device_t *) channel->devh, channel->post_qid, channel_info); - } - - xge_os_memcpy(channel_stats, channel_info, - sizeof(xge_hal_stats_channel_info_t)); - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_pcireg_read - Read PCI configuration at a specified - * offset. - * @devh: HAL device handle. - * @offset: Offset in the 256 byte PCI configuration space. - * @value_bits: 8, 16, or 32 (bits) to read. - * @value: Value returned by HAL. - * - * Read PCI configuration, given device and offset in the PCI space. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not - * valid. - * XGE_HAL_ERR_INVALID_VALUE_BIT_SIZE - Invalid bits size. Valid - * values(8/16/32). - * - */ -xge_hal_status_e -xge_hal_mgmt_pcireg_read(xge_hal_device_h devh, unsigned int offset, - int value_bits, u32 *value) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (offset > sizeof(xge_hal_pci_config_t)-value_bits/8) { - return XGE_HAL_ERR_INVALID_OFFSET; - } - - if (value_bits == 8) { - xge_os_pci_read8(hldev->pdev, hldev->cfgh, offset, (u8*)value); - } else if (value_bits == 16) { - xge_os_pci_read16(hldev->pdev, hldev->cfgh, offset, - (u16*)value); - } else if (value_bits == 32) { - xge_os_pci_read32(hldev->pdev, hldev->cfgh, offset, value); - } else { - return XGE_HAL_ERR_INVALID_VALUE_BIT_SIZE; - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_device_config - Retrieve device configuration. - * @devh: HAL device handle. - * @dev_config: Device configuration, see xge_hal_device_config_t{}. - * @size: Size of the @dev_config buffer. HAL will return an error - * if the size is smaller than sizeof(xge_hal_mgmt_device_config_t). - * - * Get device configuration. Permits to retrieve at run-time configuration - * values that were used to initialize and configure the device. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_device_config_t{}, xge_hal_mgmt_driver_config(). - */ -xge_hal_status_e -xge_hal_mgmt_device_config(xge_hal_device_h devh, - xge_hal_mgmt_device_config_t *dev_config, int size) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (size != sizeof(xge_hal_mgmt_device_config_t)) { - return XGE_HAL_ERR_VERSION_CONFLICT; - } - - xge_os_memcpy(dev_config, &hldev->config, - sizeof(xge_hal_device_config_t)); - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_driver_config - Retrieve driver configuration. - * @drv_config: Device configuration, see xge_hal_driver_config_t{}. - * @size: Size of the @dev_config buffer. HAL will return an error - * if the size is smaller than sizeof(xge_hal_mgmt_driver_config_t). - * - * Get driver configuration. Permits to retrieve at run-time configuration - * values that were used to configure the device at load-time. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_DRIVER_NOT_INITIALIZED - HAL is not initialized. - * XGE_HAL_ERR_VERSION_CONFLICT - Version is not maching. - * - * See also: xge_hal_driver_config_t{}, xge_hal_mgmt_device_config(). - */ -xge_hal_status_e -xge_hal_mgmt_driver_config(xge_hal_mgmt_driver_config_t *drv_config, int size) -{ - - if (g_xge_hal_driver == NULL) { - return XGE_HAL_ERR_DRIVER_NOT_INITIALIZED; - } - - if (size != sizeof(xge_hal_mgmt_driver_config_t)) { - return XGE_HAL_ERR_VERSION_CONFLICT; - } - - xge_os_memcpy(drv_config, &g_xge_hal_driver->config, - sizeof(xge_hal_mgmt_driver_config_t)); - - return XGE_HAL_OK; -} - -/** - * xge_hal_mgmt_pci_config - Retrieve PCI configuration. - * @devh: HAL device handle. - * @pci_config: 256 byte long buffer for PCI configuration space. - * @size: Size of the @ buffer. HAL will return an error - * if the size is smaller than sizeof(xge_hal_mgmt_pci_config_t). - * - * Get PCI configuration. Permits to retrieve at run-time configuration - * values that were used to configure the device at load-time. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - */ -xge_hal_status_e -xge_hal_mgmt_pci_config(xge_hal_device_h devh, - xge_hal_mgmt_pci_config_t *pci_config, int size) -{ - int i; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - if ((hldev == NULL) || (hldev->magic != XGE_HAL_MAGIC)) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - if (size != sizeof(xge_hal_mgmt_pci_config_t)) { - return XGE_HAL_ERR_VERSION_CONFLICT; - } - - /* refresh PCI config space */ - for (i = 0; i < 0x68/4+1; i++) { - xge_os_pci_read32(hldev->pdev, hldev->cfgh, i*4, - (u32*)&hldev->pci_config_space + i); - } - - xge_os_memcpy(pci_config, &hldev->pci_config_space, - sizeof(xge_hal_mgmt_pci_config_t)); - - return XGE_HAL_OK; -} - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR -/** - * xge_hal_mgmt_trace_read - Read trace buffer contents. - * @buffer: Buffer to store the trace buffer contents. - * @buf_size: Size of the buffer. - * @offset: Offset in the internal trace buffer to read data. - * @read_length: Size of the valid data in the buffer. - * - * Read HAL trace buffer contents starting from the offset - * upto the size of the buffer or till EOF is reached. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_EOF_TRACE_BUF - No more data in the trace buffer. - * - */ -xge_hal_status_e -xge_hal_mgmt_trace_read (char *buffer, - unsigned buf_size, - unsigned *offset, - unsigned *read_length) -{ - int data_offset; - int start_offset; - - if ((g_xge_os_tracebuf == NULL) || - (g_xge_os_tracebuf->offset == g_xge_os_tracebuf->size - 2)) { - return XGE_HAL_EOF_TRACE_BUF; - } - - data_offset = g_xge_os_tracebuf->offset + 1; - - if (*offset >= (unsigned)xge_os_strlen(g_xge_os_tracebuf->data + - data_offset)) { - - return XGE_HAL_EOF_TRACE_BUF; - } - - xge_os_memzero(buffer, buf_size); - - start_offset = data_offset + *offset; - *read_length = xge_os_strlen(g_xge_os_tracebuf->data + - start_offset); - - if (*read_length >= buf_size) { - *read_length = buf_size - 1; - } - - xge_os_memcpy(buffer, g_xge_os_tracebuf->data + start_offset, - *read_length); - - *offset += *read_length; - (*read_length) ++; - - return XGE_HAL_OK; -} - -#endif - -/** - * xge_hal_restore_link_led - Restore link LED to its original state. - * @devh: HAL device handle. - */ -void -xge_hal_restore_link_led(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - /* - * If the current link state is UP, switch on LED else make it - * off. - */ - - /* - * For Xena 3 and lower revision cards, adapter control needs to be - * used for making LED ON/OFF. - */ - if ((xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) && - (xge_hal_device_rev(hldev) <= 3)) { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - if (hldev->link_state == XGE_HAL_LINK_UP) { - val64 |= XGE_HAL_ADAPTER_LED_ON; - } else { - val64 &= ~XGE_HAL_ADAPTER_LED_ON; - } - - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - return; - } - - /* - * Use beacon control register to control the LED. - * LED link output corresponds to bit 8 of the beacon control - * register. Note that, in the case of Xena, beacon control register - * represents the gpio control register. In the case of Herc, LED - * handling is done by beacon control register as opposed to gpio - * control register in Xena. Beacon control is used only to toggle - * and the value written into it does not depend on the link state. - * It is upto the ULD to toggle the LED even number of times which - * brings the LED to it's original state. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->beacon_control); - val64 |= 0x0000800000000000ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->beacon_control); -} - -/** - * xge_hal_flick_link_led - Flick (blink) link LED. - * @devh: HAL device handle. - * - * Depending on the card revision flicker the link LED by using the - * beacon control or the adapter_control register. - */ -void -xge_hal_flick_link_led(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64 = 0; - - /* - * For Xena 3 and lower revision cards, adapter control needs to be - * used for making LED ON/OFF. - */ - if ((xge_hal_device_check_id(hldev) == XGE_HAL_CARD_XENA) && - (xge_hal_device_rev(hldev) <= 3)) { - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 ^= XGE_HAL_ADAPTER_LED_ON; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - return; - } - - /* - * Use beacon control register to control the Link LED. - * Note that, in the case of Xena, beacon control register represents - * the gpio control register. In the case of Herc, LED handling is - * done by beacon control register as opposed to gpio control register - * in Xena. - */ - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->beacon_control); - val64 ^= XGE_HAL_GPIO_CTRL_GPIO_0; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->beacon_control); -} - -/** - * xge_hal_read_eeprom - Read 4 bytes of data from user given offset. - * @devh: HAL device handle. - * @off: offset at which the data must be written - * @data: output parameter where the data is stored. - * - * Read 4 bytes of data from the user given offset and return the - * read data. - * Note: will allow to read only part of the EEPROM visible through the - * I2C bus. - * Returns: -1 on failure, 0 on success. - */ -xge_hal_status_e -xge_hal_read_eeprom(xge_hal_device_h devh, int off, u32* data) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_status_e ret = XGE_HAL_FAIL; - u32 exit_cnt = 0; - u64 val64; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - - val64 = XGE_HAL_I2C_CONTROL_DEV_ID(XGE_DEV_ID) | - XGE_HAL_I2C_CONTROL_ADDR(off) | - XGE_HAL_I2C_CONTROL_BYTE_CNT(0x3) | - XGE_HAL_I2C_CONTROL_READ | XGE_HAL_I2C_CONTROL_CNTL_START; - - __hal_serial_mem_write64(hldev, val64, &bar0->i2c_control); - - while (exit_cnt < 5) { - val64 = __hal_serial_mem_read64(hldev, &bar0->i2c_control); - if (XGE_HAL_I2C_CONTROL_CNTL_END(val64)) { - *data = XGE_HAL_I2C_CONTROL_GET_DATA(val64); - ret = XGE_HAL_OK; - break; - } - exit_cnt++; - } - - return ret; -} - -/* - * xge_hal_write_eeprom - actually writes the relevant part of the data - value. - * @devh: HAL device handle. - * @off: offset at which the data must be written - * @data : The data that is to be written - * @cnt : Number of bytes of the data that are actually to be written into - * the Eeprom. (max of 3) - * - * Actually writes the relevant part of the data value into the Eeprom - * through the I2C bus. - * Return value: - * 0 on success, -1 on failure. - */ - -xge_hal_status_e -xge_hal_write_eeprom(xge_hal_device_h devh, int off, u32 data, int cnt) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_status_e ret = XGE_HAL_FAIL; - u32 exit_cnt = 0; - u64 val64; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - - val64 = XGE_HAL_I2C_CONTROL_DEV_ID(XGE_DEV_ID) | - XGE_HAL_I2C_CONTROL_ADDR(off) | - XGE_HAL_I2C_CONTROL_BYTE_CNT(cnt) | - XGE_HAL_I2C_CONTROL_SET_DATA(data) | - XGE_HAL_I2C_CONTROL_CNTL_START; - __hal_serial_mem_write64(hldev, val64, &bar0->i2c_control); - - while (exit_cnt < 5) { - val64 = __hal_serial_mem_read64(hldev, &bar0->i2c_control); - if (XGE_HAL_I2C_CONTROL_CNTL_END(val64)) { - if (!(val64 & XGE_HAL_I2C_CONTROL_NACK)) - ret = XGE_HAL_OK; - break; - } - exit_cnt++; - } - - return ret; -} - -/* - * xge_hal_register_test - reads and writes into all clock domains. - * @hldev : private member of the device structure. - * xge_nic structure. - * @data : variable that returns the result of each of the test conducted b - * by the driver. - * - * Read and write into all clock domains. The NIC has 3 clock domains, - * see that registers in all the three regions are accessible. - * Return value: - * 0 on success. - */ -xge_hal_status_e -xge_hal_register_test(xge_hal_device_h devh, u64 *data) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64 = 0; - int fail = 0; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->pif_rd_swapper_fb); - if (val64 != 0x123456789abcdefULL) { - fail = 1; - xge_debug_osdep(XGE_TRACE, "Read Test level 1 fails"); - } - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rmac_pause_cfg); - if (val64 != 0xc000ffff00000000ULL) { - fail = 1; - xge_debug_osdep(XGE_TRACE, "Read Test level 2 fails"); - } - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rx_queue_cfg); - if (val64 != 0x0808080808080808ULL) { - fail = 1; - xge_debug_osdep(XGE_TRACE, "Read Test level 3 fails"); - } - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->xgxs_efifo_cfg); - if (val64 != 0x000000001923141EULL) { - fail = 1; - xge_debug_osdep(XGE_TRACE, "Read Test level 4 fails"); - } - - val64 = 0x5A5A5A5A5A5A5A5AULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->xmsi_data); - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->xmsi_data); - if (val64 != 0x5A5A5A5A5A5A5A5AULL) { - fail = 1; - xge_debug_osdep(XGE_ERR, "Write Test level 1 fails"); - } - - val64 = 0xA5A5A5A5A5A5A5A5ULL; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->xmsi_data); - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->xmsi_data); - if (val64 != 0xA5A5A5A5A5A5A5A5ULL) { - fail = 1; - xge_debug_osdep(XGE_ERR, "Write Test level 2 fails"); - } - - *data = fail; - return XGE_HAL_OK; -} - -/* - * xge_hal_rldram_test - offline test for access to the RldRam chip on - the NIC - * @devh: HAL device handle. - * @data: variable that returns the result of each of the test - * conducted by the driver. - * - * This is one of the offline test that tests the read and write - * access to the RldRam chip on the NIC. - * Return value: - * 0 on success. - */ -xge_hal_status_e -xge_hal_rldram_test(xge_hal_device_h devh, u64 *data) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - int cnt, iteration = 0, test_pass = 0; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_control); - val64 &= ~XGE_HAL_ADAPTER_ECC_EN; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->adapter_control); - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mc_rldram_test_ctrl); - val64 |= XGE_HAL_MC_RLDRAM_TEST_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_ctrl); - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mc_rldram_mrs); - val64 |= XGE_HAL_MC_RLDRAM_QUEUE_SIZE_ENABLE; - __hal_serial_mem_write64(hldev, val64, &bar0->i2c_control); - - val64 |= XGE_HAL_MC_RLDRAM_MRS_ENABLE; - __hal_serial_mem_write64(hldev, val64, &bar0->i2c_control); - - while (iteration < 2) { - val64 = 0x55555555aaaa0000ULL; - if (iteration == 1) { - val64 ^= 0xFFFFFFFFFFFF0000ULL; - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_d0); - - val64 = 0xaaaa5a5555550000ULL; - if (iteration == 1) { - val64 ^= 0xFFFFFFFFFFFF0000ULL; - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_d1); - - val64 = 0x55aaaaaaaa5a0000ULL; - if (iteration == 1) { - val64 ^= 0xFFFFFFFFFFFF0000ULL; - } - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_d2); - - val64 = (u64) (0x0000003fffff0000ULL); - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_add); - - - val64 = XGE_HAL_MC_RLDRAM_TEST_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_ctrl); - - val64 |= - XGE_HAL_MC_RLDRAM_TEST_MODE | XGE_HAL_MC_RLDRAM_TEST_WRITE | - XGE_HAL_MC_RLDRAM_TEST_GO; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_ctrl); - - for (cnt = 0; cnt < 5; cnt++) { - val64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->mc_rldram_test_ctrl); - if (val64 & XGE_HAL_MC_RLDRAM_TEST_DONE) - break; - xge_os_mdelay(200); - } - - if (cnt == 5) - break; - - val64 = XGE_HAL_MC_RLDRAM_TEST_MODE; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_ctrl); - - val64 |= XGE_HAL_MC_RLDRAM_TEST_MODE | - XGE_HAL_MC_RLDRAM_TEST_GO; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, val64, - &bar0->mc_rldram_test_ctrl); - - for (cnt = 0; cnt < 5; cnt++) { - val64 = xge_os_pio_mem_read64(hldev->pdev, - hldev->regh0, &bar0->mc_rldram_test_ctrl); - if (val64 & XGE_HAL_MC_RLDRAM_TEST_DONE) - break; - xge_os_mdelay(500); - } - - if (cnt == 5) - break; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mc_rldram_test_ctrl); - if (val64 & XGE_HAL_MC_RLDRAM_TEST_PASS) - test_pass = 1; - - iteration++; - } - - if (!test_pass) - *data = 1; - else - *data = 0; - - return XGE_HAL_OK; -} - -/* - * xge_hal_pma_loopback - Enable or disable PMA loopback - * @devh: HAL device handle. - * @enable:Boolean set to 1 to enable and 0 to disable. - * - * Enable or disable PMA loopback. - * Return value: - * 0 on success. - */ -xge_hal_status_e -xge_hal_pma_loopback( xge_hal_device_h devh, int enable ) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - u16 data; - - /* - * This code if for MAC loopbak - * Should be enabled through another parameter - */ -#if 0 - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->mac_cfg); - if ( enable ) - { - val64 |= ( XGE_HAL_MAC_CFG_TMAC_LOOPBACK | XGE_HAL_MAC_CFG_RMAC_PROM_ENABLE ); - } - __hal_pio_mem_write32_upper(hldev->pdev, hldev->regh0, - (u32)(val64 >> 32), (char*)&bar0->mac_cfg); - xge_os_mdelay(1); -#endif - - val64 = XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(1) | - XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_CTRL(0) | - XGE_HAL_MDIO_CONTROL_MMD_OP(XGE_HAL_MDIO_OP_ADDRESS); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 |= XGE_HAL_MDIO_CONTROL_MMD_CTRL(XGE_HAL_MDIO_CTRL_START); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 = XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(1) | - XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_CTRL(0) | - XGE_HAL_MDIO_CONTROL_MMD_OP(XGE_HAL_MDIO_OP_READ); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 |= XGE_HAL_MDIO_CONTROL_MMD_CTRL(XGE_HAL_MDIO_CTRL_START); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 = __hal_serial_mem_read64(hldev, &bar0->mdio_control); - - data = (u16)XGE_HAL_MDIO_CONTROL_MMD_DATA_GET(val64); - -#define _HAL_LOOPBK_PMA 1 - - if( enable ) - data |= 1; - else - data &= 0xfe; - - val64 = XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(1) | - XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_CTRL(0) | - XGE_HAL_MDIO_CONTROL_MMD_OP(XGE_HAL_MDIO_OP_ADDRESS); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 |= XGE_HAL_MDIO_CONTROL_MMD_CTRL(XGE_HAL_MDIO_CTRL_START); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 = XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(1) | - XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_DATA(data) | - XGE_HAL_MDIO_CONTROL_MMD_CTRL(0x0) | - XGE_HAL_MDIO_CONTROL_MMD_OP(XGE_HAL_MDIO_OP_WRITE); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 |= XGE_HAL_MDIO_CONTROL_MMD_CTRL(XGE_HAL_MDIO_CTRL_START); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 = XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(1) | - XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_CTRL(0x0) | - XGE_HAL_MDIO_CONTROL_MMD_OP(XGE_HAL_MDIO_OP_READ); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 |= XGE_HAL_MDIO_CONTROL_MMD_CTRL(XGE_HAL_MDIO_CTRL_START); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - return XGE_HAL_OK; -} - -u16 -xge_hal_mdio_read( xge_hal_device_h devh, u32 mmd_type, u64 addr ) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64 = 0x0; - u16 rval16 = 0x0; - u8 i = 0; - - /* address transaction */ - val64 = XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(addr) | - XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(mmd_type) | - XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_OP(XGE_HAL_MDIO_OP_ADDRESS); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 |= XGE_HAL_MDIO_CONTROL_MMD_CTRL(XGE_HAL_MDIO_CTRL_START); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - do - { - val64 = __hal_serial_mem_read64(hldev, &bar0->mdio_control); - if (i++ > 10) - { - break; - } - }while((val64 & XGE_HAL_MDIO_CONTROL_MMD_CTRL(0xF)) != XGE_HAL_MDIO_CONTROL_MMD_CTRL(1)); - - /* Data transaction */ - val64 = XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(addr) | - XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(mmd_type) | - XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_OP(XGE_HAL_MDIO_OP_READ); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 |= XGE_HAL_MDIO_CONTROL_MMD_CTRL(XGE_HAL_MDIO_CTRL_START); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - i = 0; - - do - { - val64 = __hal_serial_mem_read64(hldev, &bar0->mdio_control); - if (i++ > 10) - { - break; - } - }while((val64 & XGE_HAL_MDIO_CONTROL_MMD_CTRL(0xF)) != XGE_HAL_MDIO_CONTROL_MMD_CTRL(1)); - - rval16 = (u16)XGE_HAL_MDIO_CONTROL_MMD_DATA_GET(val64); - - return rval16; -} - -xge_hal_status_e -xge_hal_mdio_write( xge_hal_device_h devh, u32 mmd_type, u64 addr, u32 value ) -{ - u64 val64 = 0x0; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u8 i = 0; - /* address transaction */ - - val64 = XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(addr) | - XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(mmd_type) | - XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_OP(XGE_HAL_MDIO_OP_ADDRESS); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 |= XGE_HAL_MDIO_CONTROL_MMD_CTRL(XGE_HAL_MDIO_CTRL_START); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - do - { - val64 = __hal_serial_mem_read64(hldev, &bar0->mdio_control); - if (i++ > 10) - { - break; - } - } while((val64 & XGE_HAL_MDIO_CONTROL_MMD_CTRL(0xF)) != - XGE_HAL_MDIO_CONTROL_MMD_CTRL(1)); - - /* Data transaction */ - - val64 = 0x0; - - val64 = XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(addr) | - XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(mmd_type) | - XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(0) | - XGE_HAL_MDIO_CONTROL_MMD_DATA(value) | - XGE_HAL_MDIO_CONTROL_MMD_OP(XGE_HAL_MDIO_OP_WRITE); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - val64 |= XGE_HAL_MDIO_CONTROL_MMD_CTRL(XGE_HAL_MDIO_CTRL_START); - __hal_serial_mem_write64(hldev, val64, &bar0->mdio_control); - - i = 0; - - do - { - val64 = __hal_serial_mem_read64(hldev, &bar0->mdio_control); - if (i++ > 10) - { - break; - } - }while((val64 & XGE_HAL_MDIO_CONTROL_MMD_CTRL(0xF)) != XGE_HAL_MDIO_CONTROL_MMD_CTRL(1)); - - return XGE_HAL_OK; -} - -/* - * xge_hal_eeprom_test - to verify that EEprom in the xena can be - programmed. - * @devh: HAL device handle. - * @data:variable that returns the result of each of the test conducted by - * the driver. - * - * Verify that EEPROM in the xena can be programmed using I2C_CONTROL - * register. - * Return value: - * 0 on success. - */ -xge_hal_status_e -xge_hal_eeprom_test(xge_hal_device_h devh, u64 *data) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - int fail = 0; - u32 ret_data = 0; - - /* Test Write Error at offset 0 */ - if (!xge_hal_write_eeprom(hldev, 0, 0, 3)) - fail = 1; - - /* Test Write at offset 4f0 */ - if (xge_hal_write_eeprom(hldev, 0x4F0, 0x01234567, 3)) - fail = 1; - if (xge_hal_read_eeprom(hldev, 0x4F0, &ret_data)) - fail = 1; - - if (ret_data != 0x01234567) - fail = 1; - - /* Reset the EEPROM data go FFFF */ - (void) xge_hal_write_eeprom(hldev, 0x4F0, 0xFFFFFFFF, 3); - - /* Test Write Request Error at offset 0x7c */ - if (!xge_hal_write_eeprom(hldev, 0x07C, 0, 3)) - fail = 1; - - /* Test Write Request at offset 0x7fc */ - if (xge_hal_write_eeprom(hldev, 0x7FC, 0x01234567, 3)) - fail = 1; - if (xge_hal_read_eeprom(hldev, 0x7FC, &ret_data)) - fail = 1; - - if (ret_data != 0x01234567) - fail = 1; - - /* Reset the EEPROM data go FFFF */ - (void) xge_hal_write_eeprom(hldev, 0x7FC, 0xFFFFFFFF, 3); - - /* Test Write Error at offset 0x80 */ - if (!xge_hal_write_eeprom(hldev, 0x080, 0, 3)) - fail = 1; - - /* Test Write Error at offset 0xfc */ - if (!xge_hal_write_eeprom(hldev, 0x0FC, 0, 3)) - fail = 1; - - /* Test Write Error at offset 0x100 */ - if (!xge_hal_write_eeprom(hldev, 0x100, 0, 3)) - fail = 1; - - /* Test Write Error at offset 4ec */ - if (!xge_hal_write_eeprom(hldev, 0x4EC, 0, 3)) - fail = 1; - - *data = fail; - return XGE_HAL_OK; -} - -/* - * xge_hal_bist_test - invokes the MemBist test of the card . - * @devh: HAL device handle. - * xge_nic structure. - * @data:variable that returns the result of each of the test conducted by - * the driver. - * - * This invokes the MemBist test of the card. We give around - * 2 secs time for the Test to complete. If it's still not complete - * within this peiod, we consider that the test failed. - * Return value: - * 0 on success and -1 on failure. - */ -xge_hal_status_e -xge_hal_bist_test(xge_hal_device_h devh, u64 *data) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - u8 bist = 0; - int cnt = 0; - xge_hal_status_e ret = XGE_HAL_FAIL; - - xge_os_pci_read8(hldev->pdev, hldev->cfgh, 0x0f, &bist); - bist |= 0x40; - xge_os_pci_write8(hldev->pdev, hldev->cfgh, 0x0f, bist); - - while (cnt < 20) { - xge_os_pci_read8(hldev->pdev, hldev->cfgh, 0x0f, &bist); - if (!(bist & 0x40)) { - *data = (bist & 0x0f); - ret = XGE_HAL_OK; - break; - } - xge_os_mdelay(100); - cnt++; - } - - return ret; -} - -/* - * xge_hal_link_test - verifies the link state of the nic - * @devh: HAL device handle. - * @data: variable that returns the result of each of the test conducted by - * the driver. - * - * Verify the link state of the NIC and updates the input - * argument 'data' appropriately. - * Return value: - * 0 on success. - */ -xge_hal_status_e -xge_hal_link_test(xge_hal_device_h devh, u64 *data) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->adapter_status); - if (val64 & XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT) - *data = 1; - - return XGE_HAL_OK; -} - - -/** - * xge_hal_getpause_data -Pause frame frame generation and reception. - * @devh: HAL device handle. - * @tx : A field to return the pause generation capability of the NIC. - * @rx : A field to return the pause reception capability of the NIC. - * - * Returns the Pause frame generation and reception capability of the NIC. - * Return value: - * void - */ -void xge_hal_getpause_data(xge_hal_device_h devh, int *tx, int *rx) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rmac_pause_cfg); - if (val64 & XGE_HAL_RMAC_PAUSE_GEN_EN) - *tx = 1; - if (val64 & XGE_HAL_RMAC_PAUSE_RCV_EN) - *rx = 1; -} - -/** - * xge_hal_setpause_data - set/reset pause frame generation. - * @devh: HAL device handle. - * @tx: A field that indicates the pause generation capability to be - * set on the NIC. - * @rx: A field that indicates the pause reception capability to be - * set on the NIC. - * - * It can be used to set or reset Pause frame generation or reception - * support of the NIC. - * Return value: - * int, returns 0 on Success - */ - -int xge_hal_setpause_data(xge_hal_device_h devh, int tx, int rx) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_pci_bar0_t *bar0 = (xge_hal_pci_bar0_t *)hldev->bar0; - u64 val64; - - val64 = xge_os_pio_mem_read64(hldev->pdev, hldev->regh0, - &bar0->rmac_pause_cfg); - if (tx) - val64 |= XGE_HAL_RMAC_PAUSE_GEN_EN; - else - val64 &= ~XGE_HAL_RMAC_PAUSE_GEN_EN; - if (rx) - val64 |= XGE_HAL_RMAC_PAUSE_RCV_EN; - else - val64 &= ~XGE_HAL_RMAC_PAUSE_RCV_EN; - xge_os_pio_mem_write64(hldev->pdev, hldev->regh0, - val64, &bar0->rmac_pause_cfg); - return 0; -} - -/** - * xge_hal_read_xfp_current_temp - - * @hldev: HAL device handle. - * - * This routine only gets the temperature for XFP modules. Also, updating of the - * NVRAM can sometimes fail and so the reading we might get may not be uptodate. - */ -u32 xge_hal_read_xfp_current_temp(xge_hal_device_h hldev) -{ - u16 val_1, val_2, i = 0; - u32 actual; - - /* First update the NVRAM table of XFP. */ - - (void) xge_hal_mdio_write(hldev, XGE_HAL_MDIO_MMD_PMA_DEV_ADDR, 0x8000, 0x3); - - - /* Now wait for the transfer to complete */ - do - { - xge_os_mdelay( 50 ); // wait 50 milliseonds - - val_1 = xge_hal_mdio_read(hldev, XGE_HAL_MDIO_MMD_PMA_DEV_ADDR, 0x8000); - - if ( i++ > 10 ) - { - // waited 500 ms which should be plenty of time. - break; - } - }while (( val_1 & 0x000C ) != 0x0004); - - /* Now NVRAM table of XFP should be updated, so read the temp */ - val_1 = (u8) xge_hal_mdio_read(hldev, XGE_HAL_MDIO_MMD_PMA_DEV_ADDR, 0x8067); - val_2 = (u8) xge_hal_mdio_read(hldev, XGE_HAL_MDIO_MMD_PMA_DEV_ADDR, 0x8068); - - actual = ((val_1 << 8) | val_2); - - if (actual >= 32768) - actual = actual- 65536; - actual = actual/256; - - return actual; -} - -/** - * __hal_chk_xpak_counter - check the Xpak error count and log the msg. - * @hldev: pointer to xge_hal_device_t structure - * @type: xpak stats error type - * @value: xpak stats value - * - * It is used to log the error message based on the xpak stats value - * Return value: - * None - */ - -void __hal_chk_xpak_counter(xge_hal_device_t *hldev, int type, u32 value) -{ - /* - * If the value is high for three consecutive cylce, - * log a error message - */ - if(value == 3) - { - switch(type) - { - case 1: - hldev->stats.sw_dev_err_stats.xpak_counter. - excess_temp = 0; - - /* - * Notify the ULD on Excess Xpak temperature alarm msg - */ - if (g_xge_hal_driver->uld_callbacks.xpak_alarm_log) { - g_xge_hal_driver->uld_callbacks.xpak_alarm_log( - hldev->upper_layer_info, - XGE_HAL_XPAK_ALARM_EXCESS_TEMP); - } - break; - case 2: - hldev->stats.sw_dev_err_stats.xpak_counter. - excess_bias_current = 0; - - /* - * Notify the ULD on Excess xpak bias current alarm msg - */ - if (g_xge_hal_driver->uld_callbacks.xpak_alarm_log) { - g_xge_hal_driver->uld_callbacks.xpak_alarm_log( - hldev->upper_layer_info, - XGE_HAL_XPAK_ALARM_EXCESS_BIAS_CURRENT); - } - break; - case 3: - hldev->stats.sw_dev_err_stats.xpak_counter. - excess_laser_output = 0; - - /* - * Notify the ULD on Excess Xpak Laser o/p power - * alarm msg - */ - if (g_xge_hal_driver->uld_callbacks.xpak_alarm_log) { - g_xge_hal_driver->uld_callbacks.xpak_alarm_log( - hldev->upper_layer_info, - XGE_HAL_XPAK_ALARM_EXCESS_LASER_OUTPUT); - } - break; - default: - xge_debug_osdep(XGE_TRACE, "Incorrect XPAK Alarm " - "type "); - } - } - -} - -/** - * __hal_updt_stats_xpak - update the Xpak error count. - * @hldev: pointer to xge_hal_device_t structure - * - * It is used to update the xpak stats value - * Return value: - * None - */ -void __hal_updt_stats_xpak(xge_hal_device_t *hldev) -{ - u16 val_1; - u64 addr; - - /* Check the communication with the MDIO slave */ - addr = 0x0000; - val_1 = 0x0; - val_1 = xge_hal_mdio_read(hldev, XGE_HAL_MDIO_MMD_PMA_DEV_ADDR, addr); - if((val_1 == 0xFFFF) || (val_1 == 0x0000)) - { - xge_debug_osdep(XGE_TRACE, "ERR: MDIO slave access failed - " - "Returned %x", val_1); - return; - } - - /* Check for the expected value of 2040 at PMA address 0x0000 */ - if(val_1 != 0x2040) - { - xge_debug_osdep(XGE_TRACE, "Incorrect value at PMA address 0x0000 - "); - xge_debug_osdep(XGE_TRACE, "Returned: %llx- Expected: 0x2040", - (unsigned long long)(unsigned long)val_1); - return; - } - - /* Loading the DOM register to MDIO register */ - addr = 0xA100; - (void) xge_hal_mdio_write(hldev, XGE_HAL_MDIO_MMD_PMA_DEV_ADDR, addr, 0x0); - val_1 = xge_hal_mdio_read(hldev, XGE_HAL_MDIO_MMD_PMA_DEV_ADDR, addr); - - /* - * Reading the Alarm flags - */ - addr = 0xA070; - val_1 = 0x0; - val_1 = xge_hal_mdio_read(hldev, XGE_HAL_MDIO_MMD_PMA_DEV_ADDR, addr); - if(CHECKBIT(val_1, 0x7)) - { - hldev->stats.sw_dev_err_stats.stats_xpak. - alarm_transceiver_temp_high++; - hldev->stats.sw_dev_err_stats.xpak_counter.excess_temp++; - __hal_chk_xpak_counter(hldev, 0x1, - hldev->stats.sw_dev_err_stats.xpak_counter.excess_temp); - } else { - hldev->stats.sw_dev_err_stats.xpak_counter.excess_temp = 0; - } - if(CHECKBIT(val_1, 0x6)) - hldev->stats.sw_dev_err_stats.stats_xpak. - alarm_transceiver_temp_low++; - - if(CHECKBIT(val_1, 0x3)) - { - hldev->stats.sw_dev_err_stats.stats_xpak. - alarm_laser_bias_current_high++; - hldev->stats.sw_dev_err_stats.xpak_counter. - excess_bias_current++; - __hal_chk_xpak_counter(hldev, 0x2, - hldev->stats.sw_dev_err_stats.xpak_counter. - excess_bias_current); - } else { - hldev->stats.sw_dev_err_stats.xpak_counter. - excess_bias_current = 0; - } - if(CHECKBIT(val_1, 0x2)) - hldev->stats.sw_dev_err_stats.stats_xpak. - alarm_laser_bias_current_low++; - - if(CHECKBIT(val_1, 0x1)) - { - hldev->stats.sw_dev_err_stats.stats_xpak. - alarm_laser_output_power_high++; - hldev->stats.sw_dev_err_stats.xpak_counter. - excess_laser_output++; - __hal_chk_xpak_counter(hldev, 0x3, - hldev->stats.sw_dev_err_stats.xpak_counter. - excess_laser_output); - } else { - hldev->stats.sw_dev_err_stats.xpak_counter. - excess_laser_output = 0; - } - if(CHECKBIT(val_1, 0x0)) - hldev->stats.sw_dev_err_stats.stats_xpak. - alarm_laser_output_power_low++; - - /* - * Reading the warning flags - */ - addr = 0xA074; - val_1 = 0x0; - val_1 = xge_hal_mdio_read(hldev, XGE_HAL_MDIO_MMD_PMA_DEV_ADDR, addr); - if(CHECKBIT(val_1, 0x7)) - hldev->stats.sw_dev_err_stats.stats_xpak. - warn_transceiver_temp_high++; - if(CHECKBIT(val_1, 0x6)) - hldev->stats.sw_dev_err_stats.stats_xpak. - warn_transceiver_temp_low++; - if(CHECKBIT(val_1, 0x3)) - hldev->stats.sw_dev_err_stats.stats_xpak. - warn_laser_bias_current_high++; - if(CHECKBIT(val_1, 0x2)) - hldev->stats.sw_dev_err_stats.stats_xpak. - warn_laser_bias_current_low++; - if(CHECKBIT(val_1, 0x1)) - hldev->stats.sw_dev_err_stats.stats_xpak. - warn_laser_output_power_high++; - if(CHECKBIT(val_1, 0x0)) - hldev->stats.sw_dev_err_stats.stats_xpak. - warn_laser_output_power_low++; -} Property changes on: head/sys/dev/nxge/xgehal/xgehal-mgmt.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-ring-fp.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-ring-fp.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-ring-fp.c (nonexistent) @@ -1,846 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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$ - */ - -#ifdef XGE_DEBUG_FP -#include -#endif - -__HAL_STATIC_RING __HAL_INLINE_RING xge_hal_ring_rxd_priv_t* -__hal_ring_rxd_priv(xge_hal_ring_t *ring, xge_hal_dtr_h dtrh) -{ - - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)dtrh; - xge_hal_ring_rxd_priv_t *rxd_priv; - - xge_assert(rxdp); - -#if defined(XGE_HAL_USE_5B_MODE) - xge_assert(ring); - if (ring->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) { - xge_hal_ring_rxd_5_t *rxdp_5 = (xge_hal_ring_rxd_5_t *)dtrh; -#if defined (XGE_OS_PLATFORM_64BIT) - int memblock_idx = rxdp_5->host_control >> 16; - int i = rxdp_5->host_control & 0xFFFF; - rxd_priv = (xge_hal_ring_rxd_priv_t *) - ((char*)ring->mempool->memblocks_priv_arr[memblock_idx] + ring->rxd_priv_size * i); -#else - /* 32-bit case */ - rxd_priv = (xge_hal_ring_rxd_priv_t *)rxdp_5->host_control; -#endif - } else -#endif - { - rxd_priv = (xge_hal_ring_rxd_priv_t *) - (ulong_t)rxdp->host_control; - } - - xge_assert(rxd_priv); - xge_assert(rxd_priv->dma_object); - - xge_assert(rxd_priv->dma_object->handle == rxd_priv->dma_handle); - - xge_assert(rxd_priv->dma_object->addr + rxd_priv->dma_offset == - rxd_priv->dma_addr); - - return rxd_priv; -} - -__HAL_STATIC_RING __HAL_INLINE_RING int -__hal_ring_block_memblock_idx(xge_hal_ring_block_t *block) -{ - return (int)*((u64 *)(void *)((char *)block + - XGE_HAL_RING_MEMBLOCK_IDX_OFFSET)); -} - -__HAL_STATIC_RING __HAL_INLINE_RING void -__hal_ring_block_memblock_idx_set(xge_hal_ring_block_t*block, int memblock_idx) -{ - *((u64 *)(void *)((char *)block + - XGE_HAL_RING_MEMBLOCK_IDX_OFFSET)) = - memblock_idx; -} - - -__HAL_STATIC_RING __HAL_INLINE_RING dma_addr_t -__hal_ring_block_next_pointer(xge_hal_ring_block_t *block) -{ - return (dma_addr_t)*((u64 *)(void *)((char *)block + - XGE_HAL_RING_NEXT_BLOCK_POINTER_OFFSET)); -} - -__HAL_STATIC_RING __HAL_INLINE_RING void -__hal_ring_block_next_pointer_set(xge_hal_ring_block_t *block, - dma_addr_t dma_next) -{ - *((u64 *)(void *)((char *)block + - XGE_HAL_RING_NEXT_BLOCK_POINTER_OFFSET)) = dma_next; -} - -/** - * xge_hal_ring_dtr_private - Get ULD private per-descriptor data. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * - * Returns: private ULD info associated with the descriptor. - * ULD requests per-descriptor space via xge_hal_channel_open(). - * - * See also: xge_hal_fifo_dtr_private(). - * Usage: See ex_rx_compl{}. - */ -__HAL_STATIC_RING __HAL_INLINE_RING void* -xge_hal_ring_dtr_private(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - return (char *)__hal_ring_rxd_priv((xge_hal_ring_t *) channelh, dtrh) + - sizeof(xge_hal_ring_rxd_priv_t); -} - -/** - * xge_hal_ring_dtr_reserve - Reserve ring descriptor. - * @channelh: Channel handle. - * @dtrh: Reserved descriptor. On success HAL fills this "out" parameter - * with a valid handle. - * - * Reserve Rx descriptor for the subsequent filling-in (by upper layer - * driver (ULD)) and posting on the corresponding channel (@channelh) - * via xge_hal_ring_dtr_post(). - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_OUT_OF_DESCRIPTORS - Currently no descriptors available. - * - * See also: xge_hal_fifo_dtr_reserve(), xge_hal_ring_dtr_free(), - * xge_hal_fifo_dtr_reserve_sp(), xge_hal_status_e{}. - * Usage: See ex_post_all_rx{}. - */ -__HAL_STATIC_RING __HAL_INLINE_RING xge_hal_status_e -xge_hal_ring_dtr_reserve(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh) -{ - xge_hal_status_e status; -#if defined(XGE_HAL_RX_MULTI_RESERVE_IRQ) - unsigned long flags; -#endif - -#if defined(XGE_HAL_RX_MULTI_RESERVE) - xge_os_spin_lock(&((xge_hal_channel_t*)channelh)->reserve_lock); -#elif defined(XGE_HAL_RX_MULTI_RESERVE_IRQ) - xge_os_spin_lock_irq(&((xge_hal_channel_t*)channelh)->reserve_lock, - flags); -#endif - - status = __hal_channel_dtr_alloc(channelh, dtrh); - -#if defined(XGE_HAL_RX_MULTI_RESERVE) - xge_os_spin_unlock(&((xge_hal_channel_t*)channelh)->reserve_lock); -#elif defined(XGE_HAL_RX_MULTI_RESERVE_IRQ) - xge_os_spin_unlock_irq(&((xge_hal_channel_t*)channelh)->reserve_lock, - flags); -#endif - - if (status == XGE_HAL_OK) { - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)*dtrh; - - /* instead of memset: reset this RxD */ - rxdp->control_1 = rxdp->control_2 = 0; - -#if defined(XGE_OS_MEMORY_CHECK) - __hal_ring_rxd_priv((xge_hal_ring_t *) channelh, rxdp)->allocated = 1; -#endif - } - - return status; -} - -/** - * xge_hal_ring_dtr_info_get - Get extended information associated with - * a completed receive descriptor for 1b mode. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @ext_info: See xge_hal_dtr_info_t{}. Returned by HAL. - * - * Retrieve extended information associated with a completed receive descriptor. - * - * See also: xge_hal_dtr_info_t{}, xge_hal_ring_dtr_1b_get(), - * xge_hal_ring_dtr_5b_get(). - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_info_get(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - xge_hal_dtr_info_t *ext_info) -{ - /* cast to 1-buffer mode RxD: the code below relies on the fact - * that control_1 and control_2 are formatted the same way.. */ - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)dtrh; - - ext_info->l3_cksum = XGE_HAL_RXD_GET_L3_CKSUM(rxdp->control_1); - ext_info->l4_cksum = XGE_HAL_RXD_GET_L4_CKSUM(rxdp->control_1); - ext_info->frame = XGE_HAL_RXD_GET_FRAME_TYPE(rxdp->control_1); - ext_info->proto = XGE_HAL_RXD_GET_FRAME_PROTO(rxdp->control_1); - ext_info->vlan = XGE_HAL_RXD_GET_VLAN_TAG(rxdp->control_2); - - /* Herc only, a few extra cycles imposed on Xena and/or - * when RTH is not enabled. - * Alternatively, could check - * xge_hal_device_check_id(), hldev->config.rth_en, queue->rth_en */ - ext_info->rth_it_hit = XGE_HAL_RXD_GET_RTH_IT_HIT(rxdp->control_1); - ext_info->rth_spdm_hit = - XGE_HAL_RXD_GET_RTH_SPDM_HIT(rxdp->control_1); - ext_info->rth_hash_type = - XGE_HAL_RXD_GET_RTH_HASH_TYPE(rxdp->control_1); - ext_info->rth_value = XGE_HAL_RXD_1_GET_RTH_VALUE(rxdp->control_2); -} - -/** - * xge_hal_ring_dtr_info_nb_get - Get extended information associated - * with a completed receive descriptor for 3b or 5b - * modes. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @ext_info: See xge_hal_dtr_info_t{}. Returned by HAL. - * - * Retrieve extended information associated with a completed receive descriptor. - * - * See also: xge_hal_dtr_info_t{}, xge_hal_ring_dtr_1b_get(), - * xge_hal_ring_dtr_5b_get(). - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_info_nb_get(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - xge_hal_dtr_info_t *ext_info) -{ - /* cast to 1-buffer mode RxD: the code below relies on the fact - * that control_1 and control_2 are formatted the same way.. */ - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)dtrh; - - ext_info->l3_cksum = XGE_HAL_RXD_GET_L3_CKSUM(rxdp->control_1); - ext_info->l4_cksum = XGE_HAL_RXD_GET_L4_CKSUM(rxdp->control_1); - ext_info->frame = XGE_HAL_RXD_GET_FRAME_TYPE(rxdp->control_1); - ext_info->proto = XGE_HAL_RXD_GET_FRAME_PROTO(rxdp->control_1); - ext_info->vlan = XGE_HAL_RXD_GET_VLAN_TAG(rxdp->control_2); - /* Herc only, a few extra cycles imposed on Xena and/or - * when RTH is not enabled. Same comment as above. */ - ext_info->rth_it_hit = XGE_HAL_RXD_GET_RTH_IT_HIT(rxdp->control_1); - ext_info->rth_spdm_hit = - XGE_HAL_RXD_GET_RTH_SPDM_HIT(rxdp->control_1); - ext_info->rth_hash_type = - XGE_HAL_RXD_GET_RTH_HASH_TYPE(rxdp->control_1); - ext_info->rth_value = (u32)rxdp->buffer0_ptr; -} - -/** - * xge_hal_ring_dtr_1b_set - Prepare 1-buffer-mode descriptor. - * @dtrh: Descriptor handle. - * @dma_pointer: DMA address of a single receive buffer this descriptor - * should carry. Note that by the time - * xge_hal_ring_dtr_1b_set - * is called, the receive buffer should be already mapped - * to the corresponding Xframe device. - * @size: Size of the receive @dma_pointer buffer. - * - * Prepare 1-buffer-mode Rx descriptor for posting - * (via xge_hal_ring_dtr_post()). - * - * This inline helper-function does not return any parameters and always - * succeeds. - * - * See also: xge_hal_ring_dtr_3b_set(), xge_hal_ring_dtr_5b_set(). - * Usage: See ex_post_all_rx{}. - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_1b_set(xge_hal_dtr_h dtrh, dma_addr_t dma_pointer, int size) -{ - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)dtrh; - rxdp->buffer0_ptr = dma_pointer; - rxdp->control_2 &= (~XGE_HAL_RXD_1_MASK_BUFFER0_SIZE); - rxdp->control_2 |= XGE_HAL_RXD_1_SET_BUFFER0_SIZE(size); - - xge_debug_ring(XGE_TRACE, "xge_hal_ring_dtr_1b_set: rxdp %p control_2 %p buffer0_ptr %p", - (xge_hal_ring_rxd_1_t *)dtrh, - rxdp->control_2, - rxdp->buffer0_ptr); -} - -/** - * xge_hal_ring_dtr_1b_get - Get data from the completed 1-buf - * descriptor. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @dma_pointer: DMA address of a single receive buffer _this_ descriptor - * carries. Returned by HAL. - * @pkt_length: Length (in bytes) of the data in the buffer pointed by - * @dma_pointer. Returned by HAL. - * - * Retrieve protocol data from the completed 1-buffer-mode Rx descriptor. - * This inline helper-function uses completed descriptor to populate receive - * buffer pointer and other "out" parameters. The function always succeeds. - * - * See also: xge_hal_ring_dtr_3b_get(), xge_hal_ring_dtr_5b_get(). - * Usage: See ex_rx_compl{}. - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_1b_get(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - dma_addr_t *dma_pointer, int *pkt_length) -{ - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)dtrh; - - *pkt_length = XGE_HAL_RXD_1_GET_BUFFER0_SIZE(rxdp->control_2); - *dma_pointer = rxdp->buffer0_ptr; - - ((xge_hal_channel_t *)channelh)->poll_bytes += *pkt_length; -} - -/** - * xge_hal_ring_dtr_3b_set - Prepare 3-buffer-mode descriptor. - * @dtrh: Descriptor handle. - * @dma_pointers: Array of DMA addresses. Contains exactly 3 receive buffers - * _this_ descriptor should carry. - * Note that by the time xge_hal_ring_dtr_3b_set - * is called, the receive buffers should be mapped - * to the corresponding Xframe device. - * @sizes: Array of receive buffer sizes. Contains 3 sizes: one size per - * buffer from @dma_pointers. - * - * Prepare 3-buffer-mode Rx descriptor for posting (via - * xge_hal_ring_dtr_post()). - * This inline helper-function does not return any parameters and always - * succeeds. - * - * See also: xge_hal_ring_dtr_1b_set(), xge_hal_ring_dtr_5b_set(). - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_3b_set(xge_hal_dtr_h dtrh, dma_addr_t dma_pointers[], - int sizes[]) -{ - xge_hal_ring_rxd_3_t *rxdp = (xge_hal_ring_rxd_3_t *)dtrh; - rxdp->buffer0_ptr = dma_pointers[0]; - rxdp->control_2 &= (~XGE_HAL_RXD_3_MASK_BUFFER0_SIZE); - rxdp->control_2 |= XGE_HAL_RXD_3_SET_BUFFER0_SIZE(sizes[0]); - rxdp->buffer1_ptr = dma_pointers[1]; - rxdp->control_2 &= (~XGE_HAL_RXD_3_MASK_BUFFER1_SIZE); - rxdp->control_2 |= XGE_HAL_RXD_3_SET_BUFFER1_SIZE(sizes[1]); - rxdp->buffer2_ptr = dma_pointers[2]; - rxdp->control_2 &= (~XGE_HAL_RXD_3_MASK_BUFFER2_SIZE); - rxdp->control_2 |= XGE_HAL_RXD_3_SET_BUFFER2_SIZE(sizes[2]); -} - -/** - * xge_hal_ring_dtr_3b_get - Get data from the completed 3-buf - * descriptor. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @dma_pointers: DMA addresses of the 3 receive buffers _this_ descriptor - * carries. The first two buffers contain ethernet and - * (IP + transport) headers. The 3rd buffer contains packet - * data. - * Returned by HAL. - * @sizes: Array of receive buffer sizes. Contains 3 sizes: one size per - * buffer from @dma_pointers. Returned by HAL. - * - * Retrieve protocol data from the completed 3-buffer-mode Rx descriptor. - * This inline helper-function uses completed descriptor to populate receive - * buffer pointer and other "out" parameters. The function always succeeds. - * - * See also: xge_hal_ring_dtr_3b_get(), xge_hal_ring_dtr_5b_get(). - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_3b_get(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - dma_addr_t dma_pointers[], int sizes[]) -{ - xge_hal_ring_rxd_3_t *rxdp = (xge_hal_ring_rxd_3_t *)dtrh; - - dma_pointers[0] = rxdp->buffer0_ptr; - sizes[0] = XGE_HAL_RXD_3_GET_BUFFER0_SIZE(rxdp->control_2); - - dma_pointers[1] = rxdp->buffer1_ptr; - sizes[1] = XGE_HAL_RXD_3_GET_BUFFER1_SIZE(rxdp->control_2); - - dma_pointers[2] = rxdp->buffer2_ptr; - sizes[2] = XGE_HAL_RXD_3_GET_BUFFER2_SIZE(rxdp->control_2); - - ((xge_hal_channel_t *)channelh)->poll_bytes += sizes[0] + sizes[1] + - sizes[2]; -} - -/** - * xge_hal_ring_dtr_5b_set - Prepare 5-buffer-mode descriptor. - * @dtrh: Descriptor handle. - * @dma_pointers: Array of DMA addresses. Contains exactly 5 receive buffers - * _this_ descriptor should carry. - * Note that by the time xge_hal_ring_dtr_5b_set - * is called, the receive buffers should be mapped - * to the corresponding Xframe device. - * @sizes: Array of receive buffer sizes. Contains 5 sizes: one size per - * buffer from @dma_pointers. - * - * Prepare 3-buffer-mode Rx descriptor for posting (via - * xge_hal_ring_dtr_post()). - * This inline helper-function does not return any parameters and always - * succeeds. - * - * See also: xge_hal_ring_dtr_1b_set(), xge_hal_ring_dtr_3b_set(). - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_5b_set(xge_hal_dtr_h dtrh, dma_addr_t dma_pointers[], - int sizes[]) -{ - xge_hal_ring_rxd_5_t *rxdp = (xge_hal_ring_rxd_5_t *)dtrh; - rxdp->buffer0_ptr = dma_pointers[0]; - rxdp->control_2 &= (~XGE_HAL_RXD_5_MASK_BUFFER0_SIZE); - rxdp->control_2 |= XGE_HAL_RXD_5_SET_BUFFER0_SIZE(sizes[0]); - rxdp->buffer1_ptr = dma_pointers[1]; - rxdp->control_2 &= (~XGE_HAL_RXD_5_MASK_BUFFER1_SIZE); - rxdp->control_2 |= XGE_HAL_RXD_5_SET_BUFFER1_SIZE(sizes[1]); - rxdp->buffer2_ptr = dma_pointers[2]; - rxdp->control_2 &= (~XGE_HAL_RXD_5_MASK_BUFFER2_SIZE); - rxdp->control_2 |= XGE_HAL_RXD_5_SET_BUFFER2_SIZE(sizes[2]); - rxdp->buffer3_ptr = dma_pointers[3]; - rxdp->control_3 &= (~XGE_HAL_RXD_5_MASK_BUFFER3_SIZE); - rxdp->control_3 |= XGE_HAL_RXD_5_SET_BUFFER3_SIZE(sizes[3]); - rxdp->buffer4_ptr = dma_pointers[4]; - rxdp->control_3 &= (~XGE_HAL_RXD_5_MASK_BUFFER4_SIZE); - rxdp->control_3 |= XGE_HAL_RXD_5_SET_BUFFER4_SIZE(sizes[4]); -} - -/** - * xge_hal_ring_dtr_5b_get - Get data from the completed 5-buf - * descriptor. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @dma_pointers: DMA addresses of the 5 receive buffers _this_ descriptor - * carries. The first 4 buffers contains L2 (ethernet) through - * L5 headers. The 5th buffer contain received (applicaion) - * data. Returned by HAL. - * @sizes: Array of receive buffer sizes. Contains 5 sizes: one size per - * buffer from @dma_pointers. Returned by HAL. - * - * Retrieve protocol data from the completed 5-buffer-mode Rx descriptor. - * This inline helper-function uses completed descriptor to populate receive - * buffer pointer and other "out" parameters. The function always succeeds. - * - * See also: xge_hal_ring_dtr_3b_get(), xge_hal_ring_dtr_5b_get(). - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_5b_get(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - dma_addr_t dma_pointers[], int sizes[]) -{ - xge_hal_ring_rxd_5_t *rxdp = (xge_hal_ring_rxd_5_t *)dtrh; - - dma_pointers[0] = rxdp->buffer0_ptr; - sizes[0] = XGE_HAL_RXD_5_GET_BUFFER0_SIZE(rxdp->control_2); - - dma_pointers[1] = rxdp->buffer1_ptr; - sizes[1] = XGE_HAL_RXD_5_GET_BUFFER1_SIZE(rxdp->control_2); - - dma_pointers[2] = rxdp->buffer2_ptr; - sizes[2] = XGE_HAL_RXD_5_GET_BUFFER2_SIZE(rxdp->control_2); - - dma_pointers[3] = rxdp->buffer3_ptr; - sizes[3] = XGE_HAL_RXD_5_GET_BUFFER3_SIZE(rxdp->control_3); - - dma_pointers[4] = rxdp->buffer4_ptr; - sizes[4] = XGE_HAL_RXD_5_GET_BUFFER4_SIZE(rxdp->control_3); - - ((xge_hal_channel_t *)channelh)->poll_bytes += sizes[0] + sizes[1] + - sizes[2] + sizes[3] + sizes[4]; -} - - -/** - * xge_hal_ring_dtr_pre_post - FIXME. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * - * TBD - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_pre_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)dtrh; -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - xge_hal_ring_rxd_priv_t *priv; - xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; -#endif -#if defined(XGE_HAL_RX_MULTI_POST_IRQ) - unsigned long flags; -#endif - - rxdp->control_2 |= XGE_HAL_RXD_NOT_COMPLETED; - -#ifdef XGE_DEBUG_ASSERT - /* make sure Xena overwrites the (illegal) t_code on completion */ - XGE_HAL_RXD_SET_T_CODE(rxdp->control_1, XGE_HAL_RXD_T_CODE_UNUSED_C); -#endif - - xge_debug_ring(XGE_TRACE, "xge_hal_ring_dtr_pre_post: rxd 0x"XGE_OS_LLXFMT" posted %d post_qid %d", - (unsigned long long)(ulong_t)dtrh, - ((xge_hal_ring_t *)channelh)->channel.post_index, - ((xge_hal_ring_t *)channelh)->channel.post_qid); - -#if defined(XGE_HAL_RX_MULTI_POST) - xge_os_spin_lock(&((xge_hal_channel_t*)channelh)->post_lock); -#elif defined(XGE_HAL_RX_MULTI_POST_IRQ) - xge_os_spin_lock_irq(&((xge_hal_channel_t*)channelh)->post_lock, - flags); -#endif - -#if defined(XGE_DEBUG_ASSERT) && defined(XGE_HAL_RING_ENFORCE_ORDER) - { - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - if (channel->post_index != 0) { - xge_hal_dtr_h prev_dtrh; - xge_hal_ring_rxd_priv_t *rxdp_priv; - - rxdp_priv = __hal_ring_rxd_priv((xge_hal_ring_t*)channel, rxdp); - prev_dtrh = channel->work_arr[channel->post_index - 1]; - - if (prev_dtrh != NULL && - (rxdp_priv->dma_offset & (~0xFFF)) != - rxdp_priv->dma_offset) { - xge_assert((char *)prev_dtrh + - ((xge_hal_ring_t*)channel)->rxd_size == dtrh); - } - } - } -#endif - - __hal_channel_dtr_post(channelh, dtrh); - -#if defined(XGE_HAL_RX_MULTI_POST) - xge_os_spin_unlock(&((xge_hal_channel_t*)channelh)->post_lock); -#elif defined(XGE_HAL_RX_MULTI_POST_IRQ) - xge_os_spin_unlock_irq(&((xge_hal_channel_t*)channelh)->post_lock, - flags); -#endif -} - - -/** - * xge_hal_ring_dtr_post_post - FIXME. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * - * TBD - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_post_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)dtrh; - xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - xge_hal_ring_rxd_priv_t *priv; -#endif - /* do POST */ - rxdp->control_1 |= XGE_HAL_RXD_POSTED_4_XFRAME; - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - priv = __hal_ring_rxd_priv(ring, rxdp); - xge_os_dma_sync(ring->channel.pdev, - priv->dma_handle, priv->dma_addr, - priv->dma_offset, ring->rxd_size, - XGE_OS_DMA_DIR_TODEVICE); -#endif - - xge_debug_ring(XGE_TRACE, "xge_hal_ring_dtr_post_post: rxdp %p control_1 %p", - (xge_hal_ring_rxd_1_t *)dtrh, - rxdp->control_1); - - if (ring->channel.usage_cnt > 0) - ring->channel.usage_cnt--; -} - -/** - * xge_hal_ring_dtr_post_post_wmb. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * - * Similar as xge_hal_ring_dtr_post_post, but in addition it does memory barrier. - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_post_post_wmb(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - xge_hal_ring_rxd_1_t *rxdp = (xge_hal_ring_rxd_1_t *)dtrh; - xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - xge_hal_ring_rxd_priv_t *priv; -#endif - /* Do memory barrier before changing the ownership */ - xge_os_wmb(); - - /* do POST */ - rxdp->control_1 |= XGE_HAL_RXD_POSTED_4_XFRAME; - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - priv = __hal_ring_rxd_priv(ring, rxdp); - xge_os_dma_sync(ring->channel.pdev, - priv->dma_handle, priv->dma_addr, - priv->dma_offset, ring->rxd_size, - XGE_OS_DMA_DIR_TODEVICE); -#endif - - if (ring->channel.usage_cnt > 0) - ring->channel.usage_cnt--; - - xge_debug_ring(XGE_TRACE, "xge_hal_ring_dtr_post_post_wmb: rxdp %p control_1 %p rxds_with_host %d", - (xge_hal_ring_rxd_1_t *)dtrh, - rxdp->control_1, ring->channel.usage_cnt); - -} - -/** - * xge_hal_ring_dtr_post - Post descriptor on the ring channel. - * @channelh: Channel handle. - * @dtrh: Descriptor obtained via xge_hal_ring_dtr_reserve(). - * - * Post descriptor on the 'ring' type channel. - * Prior to posting the descriptor should be filled in accordance with - * Host/Xframe interface specification for a given service (LL, etc.). - * - * See also: xge_hal_fifo_dtr_post_many(), xge_hal_fifo_dtr_post(). - * Usage: See ex_post_all_rx{}. - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - xge_hal_ring_dtr_pre_post(channelh, dtrh); - xge_hal_ring_dtr_post_post(channelh, dtrh); -} - -/** - * xge_hal_ring_dtr_next_completed - Get the _next_ completed - * descriptor. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. Returned by HAL. - * @t_code: Transfer code, as per Xframe User Guide, - * Receive Descriptor Format. Returned by HAL. - * - * Retrieve the _next_ completed descriptor. - * HAL uses channel callback (*xge_hal_channel_callback_f) to notifiy - * upper-layer driver (ULD) of new completed descriptors. After that - * the ULD can use xge_hal_ring_dtr_next_completed to retrieve the rest - * completions (the very first completion is passed by HAL via - * xge_hal_channel_callback_f). - * - * Implementation-wise, the upper-layer driver is free to call - * xge_hal_ring_dtr_next_completed either immediately from inside the - * channel callback, or in a deferred fashion and separate (from HAL) - * context. - * - * Non-zero @t_code means failure to fill-in receive buffer(s) - * of the descriptor. - * For instance, parity error detected during the data transfer. - * In this case Xframe will complete the descriptor and indicate - * for the host that the received data is not to be used. - * For details please refer to Xframe User Guide. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS - No completed descriptors - * are currently available for processing. - * - * See also: xge_hal_channel_callback_f{}, - * xge_hal_fifo_dtr_next_completed(), xge_hal_status_e{}. - * Usage: See ex_rx_compl{}. - */ -__HAL_STATIC_RING __HAL_INLINE_RING xge_hal_status_e -xge_hal_ring_dtr_next_completed(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh, - u8 *t_code) -{ - xge_hal_ring_rxd_1_t *rxdp; /* doesn't matter 1, 3 or 5... */ - xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - xge_hal_ring_rxd_priv_t *priv; -#endif - - __hal_channel_dtr_try_complete(ring, dtrh); - rxdp = (xge_hal_ring_rxd_1_t *)*dtrh; - if (rxdp == NULL) { - return XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS; - } - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - /* Note: 24 bytes at most means: - * - Control_3 in case of 5-buffer mode - * - Control_1 and Control_2 - * - * This is the only length needs to be invalidated - * type of channels.*/ - priv = __hal_ring_rxd_priv(ring, rxdp); - xge_os_dma_sync(ring->channel.pdev, - priv->dma_handle, priv->dma_addr, - priv->dma_offset, 24, - XGE_OS_DMA_DIR_FROMDEVICE); -#endif - - /* check whether it is not the end */ - if (!(rxdp->control_2 & XGE_HAL_RXD_NOT_COMPLETED) && - !(rxdp->control_1 & XGE_HAL_RXD_POSTED_4_XFRAME)) { -#ifndef XGE_HAL_IRQ_POLLING - if (++ring->cmpl_cnt > ring->indicate_max_pkts) { - /* reset it. since we don't want to return - * garbage to the ULD */ - *dtrh = 0; - return XGE_HAL_COMPLETIONS_REMAIN; - } -#endif - -#ifdef XGE_DEBUG_ASSERT -#if defined(XGE_HAL_USE_5B_MODE) -#if !defined(XGE_OS_PLATFORM_64BIT) - if (ring->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) { - xge_assert(((xge_hal_ring_rxd_5_t *) - rxdp)->host_control!=0); - } -#endif - -#else - xge_assert(rxdp->host_control!=0); -#endif -#endif - - __hal_channel_dtr_complete(ring); - - *t_code = (u8)XGE_HAL_RXD_GET_T_CODE(rxdp->control_1); - - /* see XGE_HAL_SET_RXD_T_CODE() above.. */ - xge_assert(*t_code != XGE_HAL_RXD_T_CODE_UNUSED_C); - - xge_debug_ring(XGE_TRACE, - "compl_index %d post_qid %d t_code %d rxd 0x"XGE_OS_LLXFMT, - ((xge_hal_channel_t*)ring)->compl_index, - ((xge_hal_channel_t*)ring)->post_qid, *t_code, - (unsigned long long)(ulong_t)rxdp); - - ring->channel.usage_cnt++; - if (ring->channel.stats.usage_max < ring->channel.usage_cnt) - ring->channel.stats.usage_max = ring->channel.usage_cnt; - - return XGE_HAL_OK; - } - - /* reset it. since we don't want to return - * garbage to the ULD */ - *dtrh = 0; - return XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS; -} - -/** - * xge_hal_ring_dtr_free - Free descriptor. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * - * Free the reserved descriptor. This operation is "symmetrical" to - * xge_hal_ring_dtr_reserve. The "free-ing" completes the descriptor's - * lifecycle. - * - * After free-ing (see xge_hal_ring_dtr_free()) the descriptor again can - * be: - * - * - reserved (xge_hal_ring_dtr_reserve); - * - * - posted (xge_hal_ring_dtr_post); - * - * - completed (xge_hal_ring_dtr_next_completed); - * - * - and recycled again (xge_hal_ring_dtr_free). - * - * For alternative state transitions and more details please refer to - * the design doc. - * - * See also: xge_hal_ring_dtr_reserve(), xge_hal_fifo_dtr_free(). - * Usage: See ex_rx_compl{}. - */ -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_free(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ -#if defined(XGE_HAL_RX_MULTI_FREE_IRQ) - unsigned long flags; -#endif - -#if defined(XGE_HAL_RX_MULTI_FREE) - xge_os_spin_lock(&((xge_hal_channel_t*)channelh)->free_lock); -#elif defined(XGE_HAL_RX_MULTI_FREE_IRQ) - xge_os_spin_lock_irq(&((xge_hal_channel_t*)channelh)->free_lock, - flags); -#endif - - __hal_channel_dtr_free(channelh, dtrh); -#if defined(XGE_OS_MEMORY_CHECK) - __hal_ring_rxd_priv((xge_hal_ring_t * ) channelh, dtrh)->allocated = 0; -#endif - -#if defined(XGE_HAL_RX_MULTI_FREE) - xge_os_spin_unlock(&((xge_hal_channel_t*)channelh)->free_lock); -#elif defined(XGE_HAL_RX_MULTI_FREE_IRQ) - xge_os_spin_unlock_irq(&((xge_hal_channel_t*)channelh)->free_lock, - flags); -#endif -} - -/** - * xge_hal_ring_is_next_dtr_completed - Check if the next dtr is completed - * @channelh: Channel handle. - * - * Checks if the _next_ completed descriptor is in host memory - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS - No completed descriptors - * are currently available for processing. - */ -__HAL_STATIC_RING __HAL_INLINE_RING xge_hal_status_e -xge_hal_ring_is_next_dtr_completed(xge_hal_channel_h channelh) -{ - xge_hal_ring_rxd_1_t *rxdp; /* doesn't matter 1, 3 or 5... */ - xge_hal_ring_t *ring = (xge_hal_ring_t *)channelh; - xge_hal_dtr_h dtrh; - - __hal_channel_dtr_try_complete(ring, &dtrh); - rxdp = (xge_hal_ring_rxd_1_t *)dtrh; - if (rxdp == NULL) { - return XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS; - } - - /* check whether it is not the end */ - if (!(rxdp->control_2 & XGE_HAL_RXD_NOT_COMPLETED) && - !(rxdp->control_1 & XGE_HAL_RXD_POSTED_4_XFRAME)) { - -#ifdef XGE_DEBUG_ASSERT -#if defined(XGE_HAL_USE_5B_MODE) -#if !defined(XGE_OS_PLATFORM_64BIT) - if (ring->buffer_mode == XGE_HAL_RING_QUEUE_BUFFER_MODE_5) { - xge_assert(((xge_hal_ring_rxd_5_t *) - rxdp)->host_control!=0); - } -#endif - -#else - xge_assert(rxdp->host_control!=0); -#endif -#endif - return XGE_HAL_OK; - } - - return XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS; -} Property changes on: head/sys/dev/nxge/xgehal/xgehal-ring-fp.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-config.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-config.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-config.c (nonexistent) @@ -1,755 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include - -/* - * __hal_tti_config_check - Check tti configuration - * @new_config: tti configuration information - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - */ -static xge_hal_status_e -__hal_tti_config_check (xge_hal_tti_config_t *new_config) -{ - if ((new_config->urange_a < XGE_HAL_MIN_TX_URANGE_A) || - (new_config->urange_a > XGE_HAL_MAX_TX_URANGE_A)) { - return XGE_HAL_BADCFG_TX_URANGE_A; - } - - if ((new_config->ufc_a < XGE_HAL_MIN_TX_UFC_A) || - (new_config->ufc_a > XGE_HAL_MAX_TX_UFC_A)) { - return XGE_HAL_BADCFG_TX_UFC_A; - } - - if ((new_config->urange_b < XGE_HAL_MIN_TX_URANGE_B) || - (new_config->urange_b > XGE_HAL_MAX_TX_URANGE_B)) { - return XGE_HAL_BADCFG_TX_URANGE_B; - } - - if ((new_config->ufc_b < XGE_HAL_MIN_TX_UFC_B) || - (new_config->ufc_b > XGE_HAL_MAX_TX_UFC_B)) { - return XGE_HAL_BADCFG_TX_UFC_B; - } - - if ((new_config->urange_c < XGE_HAL_MIN_TX_URANGE_C) || - (new_config->urange_c > XGE_HAL_MAX_TX_URANGE_C)) { - return XGE_HAL_BADCFG_TX_URANGE_C; - } - - if ((new_config->ufc_c < XGE_HAL_MIN_TX_UFC_C) || - (new_config->ufc_c > XGE_HAL_MAX_TX_UFC_C)) { - return XGE_HAL_BADCFG_TX_UFC_C; - } - - if ((new_config->ufc_d < XGE_HAL_MIN_TX_UFC_D) || - (new_config->ufc_d > XGE_HAL_MAX_TX_UFC_D)) { - return XGE_HAL_BADCFG_TX_UFC_D; - } - - if ((new_config->timer_val_us < XGE_HAL_MIN_TX_TIMER_VAL) || - (new_config->timer_val_us > XGE_HAL_MAX_TX_TIMER_VAL)) { - return XGE_HAL_BADCFG_TX_TIMER_VAL; - } - - if ((new_config->timer_ci_en < XGE_HAL_MIN_TX_TIMER_CI_EN) || - (new_config->timer_ci_en > XGE_HAL_MAX_TX_TIMER_CI_EN)) { - return XGE_HAL_BADCFG_TX_TIMER_CI_EN; - } - - if ((new_config->timer_ac_en < XGE_HAL_MIN_TX_TIMER_AC_EN) || - (new_config->timer_ac_en > XGE_HAL_MAX_TX_TIMER_AC_EN)) { - return XGE_HAL_BADCFG_TX_TIMER_AC_EN; - } - - return XGE_HAL_OK; -} - -/* - * __hal_rti_config_check - Check rti configuration - * @new_config: rti configuration information - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - */ -static xge_hal_status_e -__hal_rti_config_check (xge_hal_rti_config_t *new_config) -{ - if ((new_config->urange_a < XGE_HAL_MIN_RX_URANGE_A) || - (new_config->urange_a > XGE_HAL_MAX_RX_URANGE_A)) { - return XGE_HAL_BADCFG_RX_URANGE_A; - } - - if ((new_config->ufc_a < XGE_HAL_MIN_RX_UFC_A) || - (new_config->ufc_a > XGE_HAL_MAX_RX_UFC_A)) { - return XGE_HAL_BADCFG_RX_UFC_A; - } - - if ((new_config->urange_b < XGE_HAL_MIN_RX_URANGE_B) || - (new_config->urange_b > XGE_HAL_MAX_RX_URANGE_B)) { - return XGE_HAL_BADCFG_RX_URANGE_B; - } - - if ((new_config->ufc_b < XGE_HAL_MIN_RX_UFC_B) || - (new_config->ufc_b > XGE_HAL_MAX_RX_UFC_B)) { - return XGE_HAL_BADCFG_RX_UFC_B; - } - - if ((new_config->urange_c < XGE_HAL_MIN_RX_URANGE_C) || - (new_config->urange_c > XGE_HAL_MAX_RX_URANGE_C)) { - return XGE_HAL_BADCFG_RX_URANGE_C; - } - - if ((new_config->ufc_c < XGE_HAL_MIN_RX_UFC_C) || - (new_config->ufc_c > XGE_HAL_MAX_RX_UFC_C)) { - return XGE_HAL_BADCFG_RX_UFC_C; - } - - if ((new_config->ufc_d < XGE_HAL_MIN_RX_UFC_D) || - (new_config->ufc_d > XGE_HAL_MAX_RX_UFC_D)) { - return XGE_HAL_BADCFG_RX_UFC_D; - } - - if ((new_config->timer_val_us < XGE_HAL_MIN_RX_TIMER_VAL) || - (new_config->timer_val_us > XGE_HAL_MAX_RX_TIMER_VAL)) { - return XGE_HAL_BADCFG_RX_TIMER_VAL; - } - - if ((new_config->timer_ac_en < XGE_HAL_MIN_RX_TIMER_AC_EN) || - (new_config->timer_ac_en > XGE_HAL_MAX_RX_TIMER_AC_EN)) { - return XGE_HAL_BADCFG_RX_TIMER_AC_EN; - } - - return XGE_HAL_OK; -} - - -/* - * __hal_fifo_queue_check - Check fifo queue configuration - * @new_config: fifo queue configuration information - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - */ -static xge_hal_status_e -__hal_fifo_queue_check (xge_hal_fifo_config_t *new_config, - xge_hal_fifo_queue_t *new_queue) -{ - int i; - - if ((new_queue->initial < XGE_HAL_MIN_FIFO_QUEUE_LENGTH) || - (new_queue->initial > XGE_HAL_MAX_FIFO_QUEUE_LENGTH)) { - return XGE_HAL_BADCFG_FIFO_QUEUE_INITIAL_LENGTH; - } - - /* FIXME: queue "grow" feature is not supported. - * Use "initial" queue size as the "maximum"; - * Remove the next line when fixed. */ - new_queue->max = new_queue->initial; - - if ((new_queue->max < XGE_HAL_MIN_FIFO_QUEUE_LENGTH) || - (new_queue->max > XGE_HAL_MAX_FIFO_QUEUE_LENGTH)) { - return XGE_HAL_BADCFG_FIFO_QUEUE_MAX_LENGTH; - } - - if (new_queue->max < new_config->reserve_threshold) { - return XGE_HAL_BADCFG_FIFO_RESERVE_THRESHOLD; - } - - if ((new_queue->intr < XGE_HAL_MIN_FIFO_QUEUE_INTR) || - (new_queue->intr > XGE_HAL_MAX_FIFO_QUEUE_INTR)) { - return XGE_HAL_BADCFG_FIFO_QUEUE_INTR; - } - - if ((new_queue->intr_vector < XGE_HAL_MIN_FIFO_QUEUE_INTR_VECTOR) || - (new_queue->intr_vector > XGE_HAL_MAX_FIFO_QUEUE_INTR_VECTOR)) { - return XGE_HAL_BADCFG_FIFO_QUEUE_INTR_VECTOR; - } - - for(i = 0; i < XGE_HAL_MAX_FIFO_TTI_NUM; i++) { - /* - * Validate the tti configuration parameters only if - * the TTI feature is enabled. - */ - if (new_queue->tti[i].enabled) { - xge_hal_status_e status; - - if ((status = __hal_tti_config_check( - &new_queue->tti[i])) != XGE_HAL_OK) { - return status; - } - } - } - - return XGE_HAL_OK; -} - -/* - * __hal_ring_queue_check - Check ring queue configuration - * @new_config: ring queue configuration information - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - */ -static xge_hal_status_e -__hal_ring_queue_check (xge_hal_ring_queue_t *new_config) -{ - - if ((new_config->initial < XGE_HAL_MIN_RING_QUEUE_BLOCKS) || - (new_config->initial > XGE_HAL_MAX_RING_QUEUE_BLOCKS)) { - return XGE_HAL_BADCFG_RING_QUEUE_INITIAL_BLOCKS; - } - - /* FIXME: queue "grow" feature is not supported. - * Use "initial" queue size as the "maximum"; - * Remove the next line when fixed. */ - new_config->max = new_config->initial; - - if ((new_config->max < XGE_HAL_MIN_RING_QUEUE_BLOCKS) || - (new_config->max > XGE_HAL_MAX_RING_QUEUE_BLOCKS)) { - return XGE_HAL_BADCFG_RING_QUEUE_MAX_BLOCKS; - } - - if ((new_config->buffer_mode != XGE_HAL_RING_QUEUE_BUFFER_MODE_1) && - (new_config->buffer_mode != XGE_HAL_RING_QUEUE_BUFFER_MODE_3) && - (new_config->buffer_mode != XGE_HAL_RING_QUEUE_BUFFER_MODE_5)) { - return XGE_HAL_BADCFG_RING_QUEUE_BUFFER_MODE; - } - - /* - * Herc has less DRAM; the check is done later inside - * device_initialize() - */ - if (((new_config->dram_size_mb < XGE_HAL_MIN_RING_QUEUE_SIZE) || - (new_config->dram_size_mb > XGE_HAL_MAX_RING_QUEUE_SIZE_XENA)) && - new_config->dram_size_mb != XGE_HAL_DEFAULT_USE_HARDCODE) - return XGE_HAL_BADCFG_RING_QUEUE_SIZE; - - if ((new_config->backoff_interval_us < - XGE_HAL_MIN_BACKOFF_INTERVAL_US) || - (new_config->backoff_interval_us > - XGE_HAL_MAX_BACKOFF_INTERVAL_US)) { - return XGE_HAL_BADCFG_BACKOFF_INTERVAL_US; - } - - if ((new_config->max_frm_len < XGE_HAL_MIN_MAX_FRM_LEN) || - (new_config->max_frm_len > XGE_HAL_MAX_MAX_FRM_LEN)) { - return XGE_HAL_BADCFG_MAX_FRM_LEN; - } - - if ((new_config->priority < XGE_HAL_MIN_RING_PRIORITY) || - (new_config->priority > XGE_HAL_MAX_RING_PRIORITY)) { - return XGE_HAL_BADCFG_RING_PRIORITY; - } - - if ((new_config->rth_en < XGE_HAL_MIN_RING_RTH_EN) || - (new_config->rth_en > XGE_HAL_MAX_RING_RTH_EN)) { - return XGE_HAL_BADCFG_RING_RTH_EN; - } - - if ((new_config->rts_mac_en < XGE_HAL_MIN_RING_RTS_MAC_EN) || - (new_config->rts_mac_en > XGE_HAL_MAX_RING_RTS_MAC_EN)) { - return XGE_HAL_BADCFG_RING_RTS_MAC_EN; - } - - if ((new_config->rts_mac_en < XGE_HAL_MIN_RING_RTS_PORT_EN) || - (new_config->rts_mac_en > XGE_HAL_MAX_RING_RTS_PORT_EN)) { - return XGE_HAL_BADCFG_RING_RTS_PORT_EN; - } - - if ((new_config->intr_vector < XGE_HAL_MIN_RING_QUEUE_INTR_VECTOR) || - (new_config->intr_vector > XGE_HAL_MAX_RING_QUEUE_INTR_VECTOR)) { - return XGE_HAL_BADCFG_RING_QUEUE_INTR_VECTOR; - } - - if (new_config->indicate_max_pkts < - XGE_HAL_MIN_RING_INDICATE_MAX_PKTS || - new_config->indicate_max_pkts > - XGE_HAL_MAX_RING_INDICATE_MAX_PKTS) { - return XGE_HAL_BADCFG_RING_INDICATE_MAX_PKTS; - } - - return __hal_rti_config_check(&new_config->rti); -} - -/* - * __hal_mac_config_check - Check mac configuration - * @new_config: mac configuration information - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - */ -static xge_hal_status_e -__hal_mac_config_check (xge_hal_mac_config_t *new_config) -{ - if ((new_config->tmac_util_period < XGE_HAL_MIN_TMAC_UTIL_PERIOD) || - (new_config->tmac_util_period > XGE_HAL_MAX_TMAC_UTIL_PERIOD)) { - return XGE_HAL_BADCFG_TMAC_UTIL_PERIOD; - } - - if ((new_config->rmac_util_period < XGE_HAL_MIN_RMAC_UTIL_PERIOD) || - (new_config->rmac_util_period > XGE_HAL_MAX_RMAC_UTIL_PERIOD)) { - return XGE_HAL_BADCFG_RMAC_UTIL_PERIOD; - } - - if ((new_config->rmac_bcast_en < XGE_HAL_MIN_RMAC_BCAST_EN) || - (new_config->rmac_bcast_en > XGE_HAL_MAX_RMAC_BCAST_EN)) { - return XGE_HAL_BADCFG_RMAC_BCAST_EN; - } - - if ((new_config->rmac_pause_gen_en < XGE_HAL_MIN_RMAC_PAUSE_GEN_EN) || - (new_config->rmac_pause_gen_en>XGE_HAL_MAX_RMAC_PAUSE_GEN_EN)) { - return XGE_HAL_BADCFG_RMAC_PAUSE_GEN_EN; - } - - if ((new_config->rmac_pause_rcv_en < XGE_HAL_MIN_RMAC_PAUSE_RCV_EN) || - (new_config->rmac_pause_rcv_en>XGE_HAL_MAX_RMAC_PAUSE_RCV_EN)) { - return XGE_HAL_BADCFG_RMAC_PAUSE_RCV_EN; - } - - if ((new_config->rmac_pause_time < XGE_HAL_MIN_RMAC_HIGH_PTIME) || - (new_config->rmac_pause_time > XGE_HAL_MAX_RMAC_HIGH_PTIME)) { - return XGE_HAL_BADCFG_RMAC_HIGH_PTIME; - } - - if ((new_config->media < XGE_HAL_MIN_MEDIA) || - (new_config->media > XGE_HAL_MAX_MEDIA)) { - return XGE_HAL_BADCFG_MEDIA; - } - - if ((new_config->mc_pause_threshold_q0q3 < - XGE_HAL_MIN_MC_PAUSE_THRESHOLD_Q0Q3) || - (new_config->mc_pause_threshold_q0q3 > - XGE_HAL_MAX_MC_PAUSE_THRESHOLD_Q0Q3)) { - return XGE_HAL_BADCFG_MC_PAUSE_THRESHOLD_Q0Q3; - } - - if ((new_config->mc_pause_threshold_q4q7 < - XGE_HAL_MIN_MC_PAUSE_THRESHOLD_Q4Q7) || - (new_config->mc_pause_threshold_q4q7 > - XGE_HAL_MAX_MC_PAUSE_THRESHOLD_Q4Q7)) { - return XGE_HAL_BADCFG_MC_PAUSE_THRESHOLD_Q4Q7; - } - - return XGE_HAL_OK; -} - -/* - * __hal_fifo_config_check - Check fifo configuration - * @new_config: fifo configuration information - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - */ -static xge_hal_status_e -__hal_fifo_config_check (xge_hal_fifo_config_t *new_config) -{ - int i; - int total_fifo_length = 0; - - /* - * recompute max_frags to be multiple of 4, - * which means, multiple of 128 for TxDL - */ - new_config->max_frags = ((new_config->max_frags + 3) >> 2) << 2; - - if ((new_config->max_frags < XGE_HAL_MIN_FIFO_FRAGS) || - (new_config->max_frags > XGE_HAL_MAX_FIFO_FRAGS)) { - return XGE_HAL_BADCFG_FIFO_FRAGS; - } - - if ((new_config->reserve_threshold < - XGE_HAL_MIN_FIFO_RESERVE_THRESHOLD) || - (new_config->reserve_threshold > - XGE_HAL_MAX_FIFO_RESERVE_THRESHOLD)) { - return XGE_HAL_BADCFG_FIFO_RESERVE_THRESHOLD; - } - - if ((new_config->memblock_size < XGE_HAL_MIN_FIFO_MEMBLOCK_SIZE) || - (new_config->memblock_size > XGE_HAL_MAX_FIFO_MEMBLOCK_SIZE)) { - return XGE_HAL_BADCFG_FIFO_MEMBLOCK_SIZE; - } - - for(i = 0; i < XGE_HAL_MAX_FIFO_NUM; i++) { - xge_hal_status_e status; - - if (!new_config->queue[i].configured) - continue; - - if ((status = __hal_fifo_queue_check(new_config, - &new_config->queue[i])) != XGE_HAL_OK) { - return status; - } - - total_fifo_length += new_config->queue[i].max; - } - - if(total_fifo_length > XGE_HAL_MAX_FIFO_QUEUE_LENGTH){ - return XGE_HAL_BADCFG_FIFO_QUEUE_MAX_LENGTH; - } - - return XGE_HAL_OK; -} - -/* - * __hal_ring_config_check - Check ring configuration - * @new_config: Ring configuration information - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - */ -static xge_hal_status_e -__hal_ring_config_check (xge_hal_ring_config_t *new_config) -{ - int i; - - if ((new_config->memblock_size < XGE_HAL_MIN_RING_MEMBLOCK_SIZE) || - (new_config->memblock_size > XGE_HAL_MAX_RING_MEMBLOCK_SIZE)) { - return XGE_HAL_BADCFG_RING_MEMBLOCK_SIZE; - } - - for(i = 0; i < XGE_HAL_MAX_RING_NUM; i++) { - xge_hal_status_e status; - - if (!new_config->queue[i].configured) - continue; - - if ((status = __hal_ring_queue_check(&new_config->queue[i])) - != XGE_HAL_OK) { - return status; - } - } - - return XGE_HAL_OK; -} - - -/* - * __hal_device_config_check_common - Check device configuration. - * @new_config: Device configuration information - * - * Check part of configuration that is common to - * Xframe-I and Xframe-II. - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - * - * See also: __hal_device_config_check_xena(). - */ -xge_hal_status_e -__hal_device_config_check_common (xge_hal_device_config_t *new_config) -{ - xge_hal_status_e status; - - if ((new_config->mtu < XGE_HAL_MIN_MTU) || - (new_config->mtu > XGE_HAL_MAX_MTU)) { - return XGE_HAL_BADCFG_MAX_MTU; - } - - if ((new_config->bimodal_interrupts < XGE_HAL_BIMODAL_INTR_MIN) || - (new_config->bimodal_interrupts > XGE_HAL_BIMODAL_INTR_MAX)) { - return XGE_HAL_BADCFG_BIMODAL_INTR; - } - - if (new_config->bimodal_interrupts && - ((new_config->bimodal_timer_lo_us < XGE_HAL_BIMODAL_TIMER_LO_US_MIN) || - (new_config->bimodal_timer_lo_us > XGE_HAL_BIMODAL_TIMER_LO_US_MAX))) { - return XGE_HAL_BADCFG_BIMODAL_TIMER_LO_US; - } - - if (new_config->bimodal_interrupts && - ((new_config->bimodal_timer_hi_us < XGE_HAL_BIMODAL_TIMER_HI_US_MIN) || - (new_config->bimodal_timer_hi_us > XGE_HAL_BIMODAL_TIMER_HI_US_MAX))) { - return XGE_HAL_BADCFG_BIMODAL_TIMER_HI_US; - } - - if ((new_config->no_isr_events < XGE_HAL_NO_ISR_EVENTS_MIN) || - (new_config->no_isr_events > XGE_HAL_NO_ISR_EVENTS_MAX)) { - return XGE_HAL_BADCFG_NO_ISR_EVENTS; - } - - if ((new_config->isr_polling_cnt < XGE_HAL_MIN_ISR_POLLING_CNT) || - (new_config->isr_polling_cnt > XGE_HAL_MAX_ISR_POLLING_CNT)) { - return XGE_HAL_BADCFG_ISR_POLLING_CNT; - } - - if (new_config->latency_timer && - new_config->latency_timer != XGE_HAL_USE_BIOS_DEFAULT_LATENCY) { - if ((new_config->latency_timer < XGE_HAL_MIN_LATENCY_TIMER) || - (new_config->latency_timer > XGE_HAL_MAX_LATENCY_TIMER)) { - return XGE_HAL_BADCFG_LATENCY_TIMER; - } - } - - if (new_config->max_splits_trans != XGE_HAL_USE_BIOS_DEFAULT_SPLITS) { - if ((new_config->max_splits_trans < - XGE_HAL_ONE_SPLIT_TRANSACTION) || - (new_config->max_splits_trans > - XGE_HAL_THIRTYTWO_SPLIT_TRANSACTION)) - return XGE_HAL_BADCFG_MAX_SPLITS_TRANS; - } - - if (new_config->mmrb_count != XGE_HAL_DEFAULT_BIOS_MMRB_COUNT) - { - if ((new_config->mmrb_count < XGE_HAL_MIN_MMRB_COUNT) || - (new_config->mmrb_count > XGE_HAL_MAX_MMRB_COUNT)) { - return XGE_HAL_BADCFG_MMRB_COUNT; - } - } - - if ((new_config->shared_splits < XGE_HAL_MIN_SHARED_SPLITS) || - (new_config->shared_splits > XGE_HAL_MAX_SHARED_SPLITS)) { - return XGE_HAL_BADCFG_SHARED_SPLITS; - } - - if (new_config->stats_refresh_time_sec != - XGE_HAL_STATS_REFRESH_DISABLE) { - if ((new_config->stats_refresh_time_sec < - XGE_HAL_MIN_STATS_REFRESH_TIME) || - (new_config->stats_refresh_time_sec > - XGE_HAL_MAX_STATS_REFRESH_TIME)) { - return XGE_HAL_BADCFG_STATS_REFRESH_TIME; - } - } - - if ((new_config->intr_mode != XGE_HAL_INTR_MODE_IRQLINE) && - (new_config->intr_mode != XGE_HAL_INTR_MODE_MSI) && - (new_config->intr_mode != XGE_HAL_INTR_MODE_MSIX)) { - return XGE_HAL_BADCFG_INTR_MODE; - } - - if ((new_config->sched_timer_us < XGE_HAL_SCHED_TIMER_MIN) || - (new_config->sched_timer_us > XGE_HAL_SCHED_TIMER_MAX)) { - return XGE_HAL_BADCFG_SCHED_TIMER_US; - } - - if ((new_config->sched_timer_one_shot != - XGE_HAL_SCHED_TIMER_ON_SHOT_DISABLE) && - (new_config->sched_timer_one_shot != - XGE_HAL_SCHED_TIMER_ON_SHOT_ENABLE)) { - return XGE_HAL_BADCFG_SCHED_TIMER_ON_SHOT; - } - - /* - * Check adaptive schema parameters. Note that there are two - * configuration variables needs to be enabled in ULD: - * - * a) sched_timer_us should not be zero; - * b) rxufca_hi_lim should not be equal to rxufca_lo_lim. - * - * The code bellow checking for those conditions. - */ - if (new_config->sched_timer_us && - new_config->rxufca_hi_lim != new_config->rxufca_lo_lim) { - if ((new_config->rxufca_intr_thres < - XGE_HAL_RXUFCA_INTR_THRES_MIN) || - (new_config->rxufca_intr_thres > - XGE_HAL_RXUFCA_INTR_THRES_MAX)) { - return XGE_HAL_BADCFG_RXUFCA_INTR_THRES; - } - - if ((new_config->rxufca_hi_lim < XGE_HAL_RXUFCA_HI_LIM_MIN) || - (new_config->rxufca_hi_lim > XGE_HAL_RXUFCA_HI_LIM_MAX)) { - return XGE_HAL_BADCFG_RXUFCA_HI_LIM; - } - - if ((new_config->rxufca_lo_lim < XGE_HAL_RXUFCA_LO_LIM_MIN) || - (new_config->rxufca_lo_lim > XGE_HAL_RXUFCA_LO_LIM_MAX) || - (new_config->rxufca_lo_lim > new_config->rxufca_hi_lim)) { - return XGE_HAL_BADCFG_RXUFCA_LO_LIM; - } - - if ((new_config->rxufca_lbolt_period < - XGE_HAL_RXUFCA_LBOLT_PERIOD_MIN) || - (new_config->rxufca_lbolt_period > - XGE_HAL_RXUFCA_LBOLT_PERIOD_MAX)) { - return XGE_HAL_BADCFG_RXUFCA_LBOLT_PERIOD; - } - } - - if ((new_config->link_valid_cnt < XGE_HAL_LINK_VALID_CNT_MIN) || - (new_config->link_valid_cnt > XGE_HAL_LINK_VALID_CNT_MAX)) { - return XGE_HAL_BADCFG_LINK_VALID_CNT; - } - - if ((new_config->link_retry_cnt < XGE_HAL_LINK_RETRY_CNT_MIN) || - (new_config->link_retry_cnt > XGE_HAL_LINK_RETRY_CNT_MAX)) { - return XGE_HAL_BADCFG_LINK_RETRY_CNT; - } - - if (new_config->link_valid_cnt > new_config->link_retry_cnt) - return XGE_HAL_BADCFG_LINK_VALID_CNT; - - if (new_config->link_stability_period != XGE_HAL_DEFAULT_USE_HARDCODE) { - if ((new_config->link_stability_period < - XGE_HAL_MIN_LINK_STABILITY_PERIOD) || - (new_config->link_stability_period > - XGE_HAL_MAX_LINK_STABILITY_PERIOD)) { - return XGE_HAL_BADCFG_LINK_STABILITY_PERIOD; - } - } - - if (new_config->device_poll_millis != - XGE_HAL_DEFAULT_USE_HARDCODE) { - if ((new_config->device_poll_millis < - XGE_HAL_MIN_DEVICE_POLL_MILLIS) || - (new_config->device_poll_millis > - XGE_HAL_MAX_DEVICE_POLL_MILLIS)) { - return XGE_HAL_BADCFG_DEVICE_POLL_MILLIS; - } - } - - if ((new_config->rts_port_en < XGE_HAL_MIN_RING_RTS_PORT_EN) || - (new_config->rts_port_en > XGE_HAL_MAX_RING_RTS_PORT_EN)) { - return XGE_HAL_BADCFG_RTS_PORT_EN; - } - - if ((new_config->rts_qos_en < XGE_HAL_RTS_QOS_DISABLE) || - (new_config->rts_qos_en > XGE_HAL_RTS_QOS_ENABLE)) { - return XGE_HAL_BADCFG_RTS_QOS_EN; - } - -#if defined(XGE_HAL_CONFIG_LRO) - if (new_config->lro_sg_size != - XGE_HAL_DEFAULT_USE_HARDCODE) { - if ((new_config->lro_sg_size < XGE_HAL_LRO_MIN_SG_SIZE) || - (new_config->lro_sg_size > XGE_HAL_LRO_MAX_SG_SIZE)) { - return XGE_HAL_BADCFG_LRO_SG_SIZE; - } - } - - if (new_config->lro_frm_len != - XGE_HAL_DEFAULT_USE_HARDCODE) { - if ((new_config->lro_frm_len < XGE_HAL_LRO_MIN_FRM_LEN) || - (new_config->lro_frm_len > XGE_HAL_LRO_MAX_FRM_LEN)) { - return XGE_HAL_BADCFG_LRO_FRM_LEN; - } - } -#endif - - if ((status = __hal_ring_config_check(&new_config->ring)) - != XGE_HAL_OK) { - return status; - } - - if ((status = __hal_mac_config_check(&new_config->mac)) != - XGE_HAL_OK) { - return status; - } - - if ((status = __hal_fifo_config_check(&new_config->fifo)) != - XGE_HAL_OK) { - return status; - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_config_check_xena - Check Xframe-I configuration - * @new_config: Device configuration. - * - * Check part of configuration that is relevant only to Xframe-I. - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - * - * See also: __hal_device_config_check_common(). - */ -xge_hal_status_e -__hal_device_config_check_xena (xge_hal_device_config_t *new_config) -{ - if ((new_config->pci_freq_mherz != XGE_HAL_PCI_FREQ_MHERZ_33) && - (new_config->pci_freq_mherz != XGE_HAL_PCI_FREQ_MHERZ_66) && - (new_config->pci_freq_mherz != XGE_HAL_PCI_FREQ_MHERZ_100) && - (new_config->pci_freq_mherz != XGE_HAL_PCI_FREQ_MHERZ_133) && - (new_config->pci_freq_mherz != XGE_HAL_PCI_FREQ_MHERZ_266) && - (new_config->pci_freq_mherz != XGE_HAL_DEFAULT_USE_HARDCODE)) { - return XGE_HAL_BADCFG_PCI_FREQ_MHERZ; - } - - return XGE_HAL_OK; -} - -/* - * __hal_device_config_check_herc - Check device configuration - * @new_config: Device configuration. - * - * Check part of configuration that is relevant only to Xframe-II. - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - * - * See also: __hal_device_config_check_common(). - */ -xge_hal_status_e -__hal_device_config_check_herc (xge_hal_device_config_t *new_config) -{ - return XGE_HAL_OK; -} - - -/* - * __hal_driver_config_check - Check HAL configuration - * @new_config: Driver configuration information - * - * Returns: XGE_HAL_OK - success, - * otherwise one of the xge_hal_status_e{} enumerated error codes. - */ -xge_hal_status_e -__hal_driver_config_check (xge_hal_driver_config_t *new_config) -{ - if ((new_config->queue_size_initial < - XGE_HAL_MIN_QUEUE_SIZE_INITIAL) || - (new_config->queue_size_initial > - XGE_HAL_MAX_QUEUE_SIZE_INITIAL)) { - return XGE_HAL_BADCFG_QUEUE_SIZE_INITIAL; - } - - if ((new_config->queue_size_max < XGE_HAL_MIN_QUEUE_SIZE_MAX) || - (new_config->queue_size_max > XGE_HAL_MAX_QUEUE_SIZE_MAX)) { - return XGE_HAL_BADCFG_QUEUE_SIZE_MAX; - } - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR - if ((new_config->tracebuf_size < XGE_HAL_MIN_CIRCULAR_ARR) || - (new_config->tracebuf_size > XGE_HAL_MAX_CIRCULAR_ARR)) { - return XGE_HAL_BADCFG_TRACEBUF_SIZE; - } - if ((new_config->tracebuf_timestamp_en < XGE_HAL_MIN_TIMESTAMP_EN) || - (new_config->tracebuf_timestamp_en > XGE_HAL_MAX_TIMESTAMP_EN)) { - return XGE_HAL_BADCFG_TRACEBUF_SIZE; - } -#endif - - return XGE_HAL_OK; -} Property changes on: head/sys/dev/nxge/xgehal/xgehal-config.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-channel-fp.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-channel-fp.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-channel-fp.c (nonexistent) @@ -1,296 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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$ - */ - -#ifdef XGE_DEBUG_FP -#include -#endif - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_channel_dtr_alloc(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh) -{ - void **tmp_arr; - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; -#if defined(XGE_HAL_RX_MULTI_FREE_IRQ) || defined(XGE_HAL_TX_MULTI_FREE_IRQ) - unsigned long flags = 0; -#endif - if (channel->terminating) { - return XGE_HAL_FAIL; - } - - if (channel->reserve_length - channel->reserve_top > - channel->reserve_threshold) { - -_alloc_after_swap: - *dtrh = channel->reserve_arr[--channel->reserve_length]; - - xge_debug_channel(XGE_TRACE, "dtrh 0x"XGE_OS_LLXFMT" allocated, " - "channel %d:%d:%d, reserve_idx %d", - (unsigned long long)(ulong_t)*dtrh, - channel->type, channel->post_qid, - channel->compl_qid, channel->reserve_length); - - return XGE_HAL_OK; - } - -#if defined(XGE_HAL_RX_MULTI_FREE_IRQ) || defined(XGE_HAL_TX_MULTI_FREE_IRQ) - xge_os_spin_lock_irq(&channel->free_lock, flags); -#elif defined(XGE_HAL_RX_MULTI_FREE) || defined(XGE_HAL_TX_MULTI_FREE) - xge_os_spin_lock(&channel->free_lock); -#endif - - /* switch between empty and full arrays */ - - /* the idea behind such a design is that by having free and reserved - * arrays separated we basically separated irq and non-irq parts. - * i.e. no additional lock need to be done when we free a resource */ - - if (channel->reserve_initial - channel->free_length > - channel->reserve_threshold) { - - tmp_arr = channel->reserve_arr; - channel->reserve_arr = channel->free_arr; - channel->reserve_length = channel->reserve_initial; - channel->free_arr = tmp_arr; - channel->reserve_top = channel->free_length; - channel->free_length = channel->reserve_initial; - - channel->stats.reserve_free_swaps_cnt++; - - xge_debug_channel(XGE_TRACE, - "switch on channel %d:%d:%d, reserve_length %d, " - "free_length %d", channel->type, channel->post_qid, - channel->compl_qid, channel->reserve_length, - channel->free_length); - -#if defined(XGE_HAL_RX_MULTI_FREE_IRQ) || defined(XGE_HAL_TX_MULTI_FREE_IRQ) - xge_os_spin_unlock_irq(&channel->free_lock, flags); -#elif defined(XGE_HAL_RX_MULTI_FREE) || defined(XGE_HAL_TX_MULTI_FREE) - xge_os_spin_unlock(&channel->free_lock); -#endif - - goto _alloc_after_swap; - } - -#if defined(XGE_HAL_RX_MULTI_FREE_IRQ) || defined(XGE_HAL_TX_MULTI_FREE_IRQ) - xge_os_spin_unlock_irq(&channel->free_lock, flags); -#elif defined(XGE_HAL_RX_MULTI_FREE) || defined(XGE_HAL_TX_MULTI_FREE) - xge_os_spin_unlock(&channel->free_lock); -#endif - - xge_debug_channel(XGE_TRACE, "channel %d:%d:%d is empty!", - channel->type, channel->post_qid, - channel->compl_qid); - - channel->stats.full_cnt++; - - *dtrh = NULL; - return XGE_HAL_INF_OUT_OF_DESCRIPTORS; -} - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_restore(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - int offset) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - /* restore a previously allocated dtrh at current offset and update - * the available reserve length accordingly. If dtrh is null just - * update the reserve length, only */ - - if (dtrh) { - channel->reserve_arr[channel->reserve_length + offset] = dtrh; - xge_debug_channel(XGE_TRACE, "dtrh 0x"XGE_OS_LLXFMT" restored for " - "channel %d:%d:%d, offset %d at reserve index %d, ", - (unsigned long long)(ulong_t)dtrh, channel->type, - channel->post_qid, channel->compl_qid, offset, - channel->reserve_length + offset); - } - else { - channel->reserve_length += offset; - xge_debug_channel(XGE_TRACE, "channel %d:%d:%d, restored " - "for offset %d, new reserve_length %d, free length %d", - channel->type, channel->post_qid, channel->compl_qid, - offset, channel->reserve_length, channel->free_length); - } -} - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t*)channelh; - - xge_assert(channel->work_arr[channel->post_index] == NULL); - - channel->work_arr[channel->post_index++] = dtrh; - - /* wrap-around */ - if (channel->post_index == channel->length) - channel->post_index = 0; -} - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_try_complete(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - xge_assert(channel->work_arr); - xge_assert(channel->compl_index < channel->length); - - *dtrh = channel->work_arr[channel->compl_index]; -} - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_complete(xge_hal_channel_h channelh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - channel->work_arr[channel->compl_index] = NULL; - - /* wrap-around */ - if (++channel->compl_index == channel->length) - channel->compl_index = 0; - - channel->stats.total_compl_cnt++; -} - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_free(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - channel->free_arr[--channel->free_length] = dtrh; - - xge_debug_channel(XGE_TRACE, "dtrh 0x"XGE_OS_LLXFMT" freed, " - "channel %d:%d:%d, new free_length %d", - (unsigned long long)(ulong_t)dtrh, - channel->type, channel->post_qid, - channel->compl_qid, channel->free_length); -} - -/** - * xge_hal_channel_dtr_count - * @channelh: Channel handle. Obtained via xge_hal_channel_open(). - * - * Retreive number of DTRs available. This function can not be called - * from data path. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL int -xge_hal_channel_dtr_count(xge_hal_channel_h channelh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - return ((channel->reserve_length - channel->reserve_top) + - (channel->reserve_initial - channel->free_length) - - channel->reserve_threshold); -} - -/** - * xge_hal_channel_userdata - Get user-specified channel context. - * @channelh: Channel handle. Obtained via xge_hal_channel_open(). - * - * Returns: per-channel "user data", which can be any ULD-defined context. - * The %userdata "gets" into the channel at open time - * (see xge_hal_channel_open()). - * - * See also: xge_hal_channel_open(). - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void* -xge_hal_channel_userdata(xge_hal_channel_h channelh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - return channel->userdata; -} - -/** - * xge_hal_channel_id - Get channel ID. - * @channelh: Channel handle. Obtained via xge_hal_channel_open(). - * - * Returns: channel ID. For link layer channel id is the number - * in the range from 0 to 7 that identifies hardware ring or fifo, - * depending on the channel type. - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL int -xge_hal_channel_id(xge_hal_channel_h channelh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - return channel->post_qid; -} - -/** - * xge_hal_check_alignment - Check buffer alignment and calculate the - * "misaligned" portion. - * @dma_pointer: DMA address of the buffer. - * @size: Buffer size, in bytes. - * @alignment: Alignment "granularity" (see below), in bytes. - * @copy_size: Maximum number of bytes to "extract" from the buffer - * (in order to spost it as a separate scatter-gather entry). See below. - * - * Check buffer alignment and calculate "misaligned" portion, if exists. - * The buffer is considered aligned if its address is multiple of - * the specified @alignment. If this is the case, - * xge_hal_check_alignment() returns zero. - * Otherwise, xge_hal_check_alignment() uses the last argument, - * @copy_size, - * to calculate the size to "extract" from the buffer. The @copy_size - * may or may not be equal @alignment. The difference between these two - * arguments is that the @alignment is used to make the decision: aligned - * or not aligned. While the @copy_size is used to calculate the portion - * of the buffer to "extract", i.e. to post as a separate entry in the - * transmit descriptor. For example, the combination - * @alignment=8 and @copy_size=64 will work okay on AMD Opteron boxes. - * - * Note: @copy_size should be a multiple of @alignment. In many practical - * cases @copy_size and @alignment will probably be equal. - * - * See also: xge_hal_fifo_dtr_buffer_set_aligned(). - */ -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL int -xge_hal_check_alignment(dma_addr_t dma_pointer, int size, int alignment, - int copy_size) -{ - int misaligned_size; - - misaligned_size = (int)(dma_pointer & (alignment - 1)); - if (!misaligned_size) { - return 0; - } - - if (size > copy_size) { - misaligned_size = (int)(dma_pointer & (copy_size - 1)); - misaligned_size = copy_size - misaligned_size; - } else { - misaligned_size = size; - } - - return misaligned_size; -} - Property changes on: head/sys/dev/nxge/xgehal/xgehal-channel-fp.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-channel.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-channel.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-channel.c (nonexistent) @@ -1,586 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include -#include -#include -#include - -/* - * __hal_channel_dtr_next_reservelist - * - * Walking through the all available DTRs. - */ -static xge_hal_status_e -__hal_channel_dtr_next_reservelist(xge_hal_channel_h channelh, - xge_hal_dtr_h *dtrh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - if (channel->reserve_top >= channel->reserve_length) { - return XGE_HAL_INF_NO_MORE_FREED_DESCRIPTORS; - } - - *dtrh = channel->reserve_arr[channel->reserve_top++]; - - return XGE_HAL_OK; -} - -/* - * __hal_channel_dtr_next_freelist - * - * Walking through the "freed" DTRs. - */ -static xge_hal_status_e -__hal_channel_dtr_next_freelist(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - - if (channel->reserve_initial == channel->free_length) { - return XGE_HAL_INF_NO_MORE_FREED_DESCRIPTORS; - } - - *dtrh = channel->free_arr[channel->free_length++]; - - return XGE_HAL_OK; -} - -/* - * __hal_channel_dtr_next_not_completed - Get the _next_ posted but - * not completed descriptor. - * - * Walking through the "not completed" DTRs. - */ -static xge_hal_status_e -__hal_channel_dtr_next_not_completed(xge_hal_channel_h channelh, - xge_hal_dtr_h *dtrh) -{ - xge_hal_ring_rxd_1_t *rxdp; /* doesn't matter 1, 3 or 5... */ - __hal_channel_dtr_try_complete(channelh, dtrh); - if (*dtrh == NULL) { - return XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS; - } - - rxdp = (xge_hal_ring_rxd_1_t *)*dtrh; - xge_assert(rxdp->host_control!=0); - - __hal_channel_dtr_complete(channelh); - - return XGE_HAL_OK; -} - -xge_hal_channel_t* -__hal_channel_allocate(xge_hal_device_h devh, int post_qid, - xge_hal_channel_type_e type) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_channel_t *channel; - int size = 0; - - switch(type) { - case XGE_HAL_CHANNEL_TYPE_FIFO: - xge_assert(post_qid + 1 >= XGE_HAL_MIN_FIFO_NUM && - post_qid + 1 <= XGE_HAL_MAX_FIFO_NUM); - size = sizeof(xge_hal_fifo_t); - break; - case XGE_HAL_CHANNEL_TYPE_RING: - xge_assert(post_qid + 1 >= XGE_HAL_MIN_RING_NUM && - post_qid + 1 <= XGE_HAL_MAX_RING_NUM); - size = sizeof(xge_hal_ring_t); - break; - default : - xge_assert(size); - break; - - } - - - /* allocate FIFO channel */ - channel = (xge_hal_channel_t *) xge_os_malloc(hldev->pdev, size); - if (channel == NULL) { - return NULL; - } - xge_os_memzero(channel, size); - - channel->pdev = hldev->pdev; - channel->regh0 = hldev->regh0; - channel->regh1 = hldev->regh1; - channel->type = type; - channel->devh = devh; - channel->post_qid = post_qid; - channel->compl_qid = 0; - - return channel; -} - -void __hal_channel_free(xge_hal_channel_t *channel) -{ - int size = 0; - - xge_assert(channel->pdev); - - switch(channel->type) { - case XGE_HAL_CHANNEL_TYPE_FIFO: - size = sizeof(xge_hal_fifo_t); - break; - case XGE_HAL_CHANNEL_TYPE_RING: - size = sizeof(xge_hal_ring_t); - break; - case XGE_HAL_CHANNEL_TYPE_SEND_QUEUE: - case XGE_HAL_CHANNEL_TYPE_RECEIVE_QUEUE: - case XGE_HAL_CHANNEL_TYPE_COMPLETION_QUEUE: - case XGE_HAL_CHANNEL_TYPE_UP_MESSAGE_QUEUE: - case XGE_HAL_CHANNEL_TYPE_DOWN_MESSAGE_QUEUE: - xge_assert(size); - break; - default: - break; - } - - xge_os_free(channel->pdev, channel, size); -} - -xge_hal_status_e -__hal_channel_initialize (xge_hal_channel_h channelh, - xge_hal_channel_attr_t *attr, void **reserve_arr, - int reserve_initial, int reserve_max, int reserve_threshold) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - xge_hal_device_t *hldev; - - hldev = (xge_hal_device_t *)channel->devh; - - channel->dtr_term = attr->dtr_term; - channel->dtr_init = attr->dtr_init; - channel->callback = attr->callback; - channel->userdata = attr->userdata; - channel->flags = attr->flags; - channel->per_dtr_space = attr->per_dtr_space; - - channel->reserve_arr = reserve_arr; - channel->reserve_initial = reserve_initial; - channel->reserve_max = reserve_max; - channel->reserve_length = channel->reserve_initial; - channel->reserve_threshold = reserve_threshold; - channel->reserve_top = 0; - channel->saved_arr = (void **) xge_os_malloc(hldev->pdev, - sizeof(void*)*channel->reserve_max); - if (channel->saved_arr == NULL) { - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - xge_os_memzero(channel->saved_arr, sizeof(void*)*channel->reserve_max); - channel->free_arr = channel->saved_arr; - channel->free_length = channel->reserve_initial; - channel->work_arr = (void **) xge_os_malloc(hldev->pdev, - sizeof(void*)*channel->reserve_max); - if (channel->work_arr == NULL) { - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - xge_os_memzero(channel->work_arr, - sizeof(void*)*channel->reserve_max); - channel->post_index = 0; - channel->compl_index = 0; - channel->length = channel->reserve_initial; - - channel->orig_arr = (void **) xge_os_malloc(hldev->pdev, - sizeof(void*)*channel->reserve_max); - if (channel->orig_arr == NULL) - return XGE_HAL_ERR_OUT_OF_MEMORY; - - xge_os_memzero(channel->orig_arr, sizeof(void*)*channel->reserve_max); - -#if defined(XGE_HAL_RX_MULTI_FREE_IRQ) || defined(XGE_HAL_TX_MULTI_FREE_IRQ) - xge_os_spin_lock_init_irq(&channel->free_lock, hldev->irqh); -#elif defined(XGE_HAL_RX_MULTI_FREE) || defined(XGE_HAL_TX_MULTI_FREE) - xge_os_spin_lock_init(&channel->free_lock, hldev->pdev); -#endif - - return XGE_HAL_OK; -} - -void __hal_channel_terminate(xge_hal_channel_h channelh) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - xge_hal_device_t *hldev; - - hldev = (xge_hal_device_t *)channel->devh; - - xge_assert(channel->pdev); - /* undo changes made at channel_initialize() */ - if (channel->work_arr) { - xge_os_free(channel->pdev, channel->work_arr, - sizeof(void*)*channel->reserve_max); - channel->work_arr = NULL; - } - - if (channel->saved_arr) { - xge_os_free(channel->pdev, channel->saved_arr, - sizeof(void*)*channel->reserve_max); - channel->saved_arr = NULL; - } - - if (channel->orig_arr) { - xge_os_free(channel->pdev, channel->orig_arr, - sizeof(void*)*channel->reserve_max); - channel->orig_arr = NULL; - } - -#if defined(XGE_HAL_RX_MULTI_FREE_IRQ) || defined(XGE_HAL_TX_MULTI_FREE_IRQ) - xge_os_spin_lock_destroy_irq(&channel->free_lock, hldev->irqh); -#elif defined(XGE_HAL_RX_MULTI_FREE) || defined(XGE_HAL_TX_MULTI_FREE) - xge_os_spin_lock_destroy(&channel->free_lock, hldev->pdev); -#endif -} - -/** - * xge_hal_channel_open - Open communication channel. - * @devh: HAL device, pointer to xge_hal_device_t structure. - * @attr: Contains attributes required to open - * the channel. - * @channelh: The channel handle. On success (XGE_HAL_OK) HAL fills - * this "out" parameter with a valid channel handle. - * @reopen: See xge_hal_channel_reopen_e{}. - * - * Open communication channel with the device. - * - * HAL uses (persistent) channel configuration to allocate both channel - * and Xframe Tx and Rx descriptors. - * Notes: - * 1) The channel config data is fed into HAL prior to - * xge_hal_channel_open(). - * - * 2) The corresponding hardware queues must be already configured and - * enabled. - * - * 3) Either down or up queue may be omitted, in which case the channel - * is treated as _unidirectional_. - * - * 4) Post and completion queue may be the same, in which case the channel - * is said to have "in-band completions". - * - * Note that free_channels list is not protected. i.e. caller must provide - * safe context. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_CHANNEL_NOT_FOUND - Unable to locate the channel. - * XGE_HAL_ERR_OUT_OF_MEMORY - Memory allocation failed. - * - * See also: xge_hal_channel_attr_t{}. - * Usage: See ex_open{}. - */ -xge_hal_status_e -xge_hal_channel_open(xge_hal_device_h devh, - xge_hal_channel_attr_t *attr, - xge_hal_channel_h *channelh, - xge_hal_channel_reopen_e reopen) -{ - xge_list_t *item; - int i; - xge_hal_status_e status = XGE_HAL_OK; - xge_hal_channel_t *channel = NULL; - xge_hal_device_t *device = (xge_hal_device_t *)devh; - - xge_assert(device); - xge_assert(attr); - - *channelh = NULL; - - /* find channel */ - xge_list_for_each(item, &device->free_channels) { - xge_hal_channel_t *tmp; - - tmp = xge_container_of(item, xge_hal_channel_t, item); - if (tmp->type == attr->type && - tmp->post_qid == attr->post_qid && - tmp->compl_qid == attr->compl_qid) { - channel = tmp; - break; - } - } - - if (channel == NULL) { - return XGE_HAL_ERR_CHANNEL_NOT_FOUND; - } - - xge_assert((channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) || - (channel->type == XGE_HAL_CHANNEL_TYPE_RING)); - - if (reopen == XGE_HAL_CHANNEL_OC_NORMAL) { - /* allocate memory, initialize pointers, etc */ - switch(channel->type) { - case XGE_HAL_CHANNEL_TYPE_FIFO: - status = __hal_fifo_open(channel, attr); - break; - case XGE_HAL_CHANNEL_TYPE_RING: - status = __hal_ring_open(channel, attr); - break; - case XGE_HAL_CHANNEL_TYPE_SEND_QUEUE: - case XGE_HAL_CHANNEL_TYPE_RECEIVE_QUEUE: - case XGE_HAL_CHANNEL_TYPE_COMPLETION_QUEUE: - case XGE_HAL_CHANNEL_TYPE_UP_MESSAGE_QUEUE: - case XGE_HAL_CHANNEL_TYPE_DOWN_MESSAGE_QUEUE: - status = XGE_HAL_FAIL; - break; - default: - break; - } - - if (status == XGE_HAL_OK) { - for (i = 0; i < channel->reserve_initial; i++) { - channel->orig_arr[i] = - channel->reserve_arr[i]; - } - } - else - return status; - } else { - xge_assert(reopen == XGE_HAL_CHANNEL_RESET_ONLY); - - for (i = 0; i < channel->reserve_initial; i++) { - channel->reserve_arr[i] = channel->orig_arr[i]; - channel->free_arr[i] = NULL; - } - channel->free_length = channel->reserve_initial; - channel->reserve_length = channel->reserve_initial; - channel->reserve_top = 0; - channel->post_index = 0; - channel->compl_index = 0; - if (channel->type == XGE_HAL_CHANNEL_TYPE_RING) { - status = __hal_ring_initial_replenish(channel, - reopen); - if (status != XGE_HAL_OK) - return status; - } - } - - /* move channel to the open state list */ - - switch(channel->type) { - case XGE_HAL_CHANNEL_TYPE_FIFO: - xge_list_remove(&channel->item); - xge_list_insert(&channel->item, &device->fifo_channels); - break; - case XGE_HAL_CHANNEL_TYPE_RING: - xge_list_remove(&channel->item); - xge_list_insert(&channel->item, &device->ring_channels); - break; - case XGE_HAL_CHANNEL_TYPE_SEND_QUEUE: - case XGE_HAL_CHANNEL_TYPE_RECEIVE_QUEUE: - case XGE_HAL_CHANNEL_TYPE_COMPLETION_QUEUE: - case XGE_HAL_CHANNEL_TYPE_UP_MESSAGE_QUEUE: - case XGE_HAL_CHANNEL_TYPE_DOWN_MESSAGE_QUEUE: - xge_assert(channel->type == XGE_HAL_CHANNEL_TYPE_FIFO || - channel->type == XGE_HAL_CHANNEL_TYPE_RING); - break; - default: - break; - } - channel->is_open = 1; - channel->terminating = 0; - /* - * The magic check the argument validity, has to be - * removed before 03/01/2005. - */ - channel->magic = XGE_HAL_MAGIC; - - *channelh = channel; - - return XGE_HAL_OK; -} - -/** - * xge_hal_channel_abort - Abort the channel. - * @channelh: Channel handle. - * @reopen: See xge_hal_channel_reopen_e{}. - * - * Terminate (via xge_hal_channel_dtr_term_f{}) all channel descriptors. - * Currently used internally only by HAL, as part of its - * xge_hal_channel_close() and xge_hal_channel_open() in case - * of fatal error. - * - * See also: xge_hal_channel_dtr_term_f{}. - */ -void xge_hal_channel_abort(xge_hal_channel_h channelh, - xge_hal_channel_reopen_e reopen) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - xge_hal_dtr_h dtr; -#ifdef XGE_OS_MEMORY_CHECK - int check_cnt = 0; -#endif - int free_length_sav; - int reserve_top_sav; - - if (channel->dtr_term == NULL) { - return; - } - - free_length_sav = channel->free_length; - while (__hal_channel_dtr_next_freelist(channelh, &dtr) == XGE_HAL_OK) { -#ifdef XGE_OS_MEMORY_CHECK -#ifdef XGE_DEBUG_ASSERT - if (channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) { - xge_assert(!__hal_fifo_txdl_priv(dtr)->allocated); - } else { - if (channel->type == XGE_HAL_CHANNEL_TYPE_RING) { - xge_assert(!__hal_ring_rxd_priv((xge_hal_ring_t * ) channelh, dtr)->allocated); - } - } -#endif - check_cnt++; -#endif - channel->dtr_term(channel, dtr, XGE_HAL_DTR_STATE_FREED, - channel->userdata, reopen); - } - channel->free_length = free_length_sav; - - while (__hal_channel_dtr_next_not_completed(channelh, &dtr) == - XGE_HAL_OK) { -#ifdef XGE_OS_MEMORY_CHECK -#ifdef XGE_DEBUG_ASSERT - if (channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) { - xge_assert(__hal_fifo_txdl_priv(dtr)->allocated); - } else { - if (channel->type == XGE_HAL_CHANNEL_TYPE_RING) { - xge_assert(__hal_ring_rxd_priv((xge_hal_ring_t * ) channelh, dtr) - ->allocated); - } - } -#endif - check_cnt++; -#endif - channel->dtr_term(channel, dtr, XGE_HAL_DTR_STATE_POSTED, - channel->userdata, reopen); - - } - - reserve_top_sav = channel->reserve_top; - while (__hal_channel_dtr_next_reservelist(channelh, &dtr) == - XGE_HAL_OK) { -#ifdef XGE_OS_MEMORY_CHECK -#ifdef XGE_DEBUG_ASSERT - if (channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) { - xge_assert(!__hal_fifo_txdl_priv(dtr)->allocated); - } else { - if (channel->type == XGE_HAL_CHANNEL_TYPE_RING) { - xge_assert(!__hal_ring_rxd_priv((xge_hal_ring_t * ) channelh, dtr)->allocated); - } - } -#endif - check_cnt++; -#endif - channel->dtr_term(channel, dtr, XGE_HAL_DTR_STATE_AVAIL, - channel->userdata, reopen); - } - channel->reserve_top = reserve_top_sav; - - xge_assert(channel->reserve_length == - (channel->free_length + channel->reserve_top)); - -#ifdef XGE_OS_MEMORY_CHECK - xge_assert(check_cnt == channel->reserve_initial); -#endif - -} - -/** - * xge_hal_channel_close - Close communication channel. - * @channelh: The channel handle. - * @reopen: See xge_hal_channel_reopen_e{}. - * - * Will close previously opened channel and deallocate associated resources. - * Channel must be opened otherwise assert will be generated. - * Note that free_channels list is not protected. i.e. caller must provide - * safe context. - */ -void xge_hal_channel_close(xge_hal_channel_h channelh, - xge_hal_channel_reopen_e reopen) -{ - xge_hal_channel_t *channel = (xge_hal_channel_t *)channelh; - xge_hal_device_t *hldev; - xge_list_t *item; - xge_assert(channel); - xge_assert(channel->type < XGE_HAL_CHANNEL_TYPE_MAX); - - hldev = (xge_hal_device_t *)channel->devh; - channel->is_open = 0; - channel->magic = XGE_HAL_DEAD; - - /* sanity check: make sure channel is not in free list */ - xge_list_for_each(item, &hldev->free_channels) { - xge_hal_channel_t *tmp; - - tmp = xge_container_of(item, xge_hal_channel_t, item); - xge_assert(!tmp->is_open); - if (channel == tmp) { - return; - } - } - - xge_hal_channel_abort(channel, reopen); - - xge_assert((channel->type == XGE_HAL_CHANNEL_TYPE_FIFO) || - (channel->type == XGE_HAL_CHANNEL_TYPE_RING)); - - if (reopen == XGE_HAL_CHANNEL_OC_NORMAL) { - /* de-allocate */ - switch(channel->type) { - case XGE_HAL_CHANNEL_TYPE_FIFO: - __hal_fifo_close(channelh); - break; - case XGE_HAL_CHANNEL_TYPE_RING: - __hal_ring_close(channelh); - break; - case XGE_HAL_CHANNEL_TYPE_SEND_QUEUE: - case XGE_HAL_CHANNEL_TYPE_RECEIVE_QUEUE: - case XGE_HAL_CHANNEL_TYPE_COMPLETION_QUEUE: - case XGE_HAL_CHANNEL_TYPE_UP_MESSAGE_QUEUE: - case XGE_HAL_CHANNEL_TYPE_DOWN_MESSAGE_QUEUE: - xge_assert(channel->type == XGE_HAL_CHANNEL_TYPE_FIFO || - channel->type == XGE_HAL_CHANNEL_TYPE_RING); - break; - default: - break; - } - } - else - xge_assert(reopen == XGE_HAL_CHANNEL_RESET_ONLY); - - /* move channel back to free state list */ - xge_list_remove(&channel->item); - xge_list_insert(&channel->item, &hldev->free_channels); - - if (xge_list_is_empty(&hldev->fifo_channels) && - xge_list_is_empty(&hldev->ring_channels)) { - /* clear msix_idx in case of following HW reset */ - hldev->reset_needed_after_close = 1; - } -} Property changes on: head/sys/dev/nxge/xgehal/xgehal-channel.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-fifo-fp.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-fifo-fp.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-fifo-fp.c (nonexistent) @@ -1,1169 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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$ - */ - -#ifdef XGE_DEBUG_FP -#include -#endif - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_fifo_txdl_priv_t* -__hal_fifo_txdl_priv(xge_hal_dtr_h dtrh) -{ - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t*)dtrh; - xge_hal_fifo_txdl_priv_t *txdl_priv; - - xge_assert(txdp); - txdl_priv = (xge_hal_fifo_txdl_priv_t *) - (ulong_t)txdp->host_control; - - xge_assert(txdl_priv); - xge_assert(txdl_priv->dma_object); - xge_assert(txdl_priv->dma_addr); - - xge_assert(txdl_priv->dma_object->handle == txdl_priv->dma_handle); - - return txdl_priv; -} - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -__hal_fifo_dtr_post_single(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - u64 ctrl_1) -{ - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - xge_hal_fifo_hw_pair_t *hw_pair = fifo->hw_pair; - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)dtrh; - xge_hal_fifo_txdl_priv_t *txdl_priv; - u64 ctrl; - - txdp->control_1 |= XGE_HAL_TXD_LIST_OWN_XENA; - -#ifdef XGE_DEBUG_ASSERT - /* make sure Xena overwrites the (illegal) t_code value on completion */ - XGE_HAL_SET_TXD_T_CODE(txdp->control_1, XGE_HAL_TXD_T_CODE_UNUSED_5); -#endif - - txdl_priv = __hal_fifo_txdl_priv(dtrh); - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - /* sync the TxDL to device */ - xge_os_dma_sync(fifo->channel.pdev, - txdl_priv->dma_handle, - txdl_priv->dma_addr, - txdl_priv->dma_offset, - txdl_priv->frags << 5 /* sizeof(xge_hal_fifo_txd_t) */, - XGE_OS_DMA_DIR_TODEVICE); -#endif - /* write the pointer first */ - xge_os_pio_mem_write64(fifo->channel.pdev, - fifo->channel.regh1, - txdl_priv->dma_addr, - &hw_pair->txdl_pointer); - - /* spec: 0x00 = 1 TxD in the list */ - ctrl = XGE_HAL_TX_FIFO_LAST_TXD_NUM(txdl_priv->frags - 1); - ctrl |= ctrl_1; - ctrl |= fifo->no_snoop_bits; - - if (txdp->control_1 & XGE_HAL_TXD_LSO_COF_CTRL(XGE_HAL_TXD_TCP_LSO)) { - ctrl |= XGE_HAL_TX_FIFO_SPECIAL_FUNC; - } - - /* - * according to the XENA spec: - * - * It is important to note that pointers and list control words are - * always written in pairs: in the first write, the host must write a - * pointer, and in the second write, it must write the list control - * word. Any other access will result in an error. Also, all 16 bytes - * of the pointer/control structure must be written, including any - * reserved bytes. - */ - xge_os_wmb(); - - /* - * we want touch work_arr in order with ownership bit set to HW - */ - __hal_channel_dtr_post(channelh, dtrh); - - xge_os_pio_mem_write64(fifo->channel.pdev, fifo->channel.regh1, - ctrl, &hw_pair->list_control); - - xge_debug_fifo(XGE_TRACE, "posted txdl 0x"XGE_OS_LLXFMT" ctrl 0x"XGE_OS_LLXFMT" " - "into 0x"XGE_OS_LLXFMT"", (unsigned long long)txdl_priv->dma_addr, - (unsigned long long)ctrl, - (unsigned long long)(ulong_t)&hw_pair->txdl_pointer); - -#ifdef XGE_HAL_FIFO_DUMP_TXD - xge_os_printf(""XGE_OS_LLXFMT":"XGE_OS_LLXFMT":"XGE_OS_LLXFMT":" - XGE_OS_LLXFMT" dma "XGE_OS_LLXFMT, - txdp->control_1, txdp->control_2, txdp->buffer_pointer, - txdp->host_control, txdl_priv->dma_addr); -#endif - - fifo->channel.stats.total_posts++; - fifo->channel.usage_cnt++; - if (fifo->channel.stats.usage_max < fifo->channel.usage_cnt) - fifo->channel.stats.usage_max = fifo->channel.usage_cnt; -} - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -__hal_fifo_txdl_free_many(xge_hal_channel_h channelh, - xge_hal_fifo_txd_t *txdp, int list_size, int frags) -{ - xge_hal_fifo_txdl_priv_t *current_txdl_priv; - xge_hal_fifo_txdl_priv_t *next_txdl_priv; - int invalid_frags = frags % list_size; - if (invalid_frags){ - xge_debug_fifo(XGE_ERR, - "freeing corrupt dtrh %p, fragments %d list size %d", - txdp, frags, list_size); - xge_assert(invalid_frags == 0); - } - while(txdp){ - xge_debug_fifo(XGE_TRACE, - "freeing linked dtrh %p, fragments %d list size %d", - txdp, frags, list_size); - current_txdl_priv = __hal_fifo_txdl_priv(txdp); -#if defined(XGE_DEBUG_ASSERT) && defined(XGE_OS_MEMORY_CHECK) - current_txdl_priv->allocated = 0; -#endif - __hal_channel_dtr_free(channelh, txdp); - next_txdl_priv = current_txdl_priv->next_txdl_priv; - xge_assert(frags); - frags -= list_size; - if (next_txdl_priv) { - current_txdl_priv->next_txdl_priv = NULL; - txdp = next_txdl_priv->first_txdp; - } - else { - xge_debug_fifo(XGE_TRACE, - "freed linked dtrh fragments %d list size %d", - frags, list_size); - break; - } - } - xge_assert(frags == 0) -} - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -__hal_fifo_txdl_restore_many(xge_hal_channel_h channelh, - xge_hal_fifo_txd_t *txdp, int txdl_count) -{ - xge_hal_fifo_txdl_priv_t *current_txdl_priv; - xge_hal_fifo_txdl_priv_t *next_txdl_priv; - int i = txdl_count; - - xge_assert(((xge_hal_channel_t *)channelh)->reserve_length + - txdl_count <= ((xge_hal_channel_t *)channelh)->reserve_initial); - - current_txdl_priv = __hal_fifo_txdl_priv(txdp); - do{ - xge_assert(i); -#if defined(XGE_DEBUG_ASSERT) && defined(XGE_OS_MEMORY_CHECK) - current_txdl_priv->allocated = 0; -#endif - next_txdl_priv = current_txdl_priv->next_txdl_priv; - txdp = current_txdl_priv->first_txdp; - current_txdl_priv->next_txdl_priv = NULL; - __hal_channel_dtr_restore(channelh, (xge_hal_dtr_h )txdp, --i); - xge_debug_fifo(XGE_TRACE, - "dtrh %p restored at offset %d", txdp, i); - current_txdl_priv = next_txdl_priv; - } while(current_txdl_priv); - __hal_channel_dtr_restore(channelh, NULL, txdl_count); -} -/** - * xge_hal_fifo_dtr_private - Retrieve per-descriptor private data. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * - * Retrieve per-descriptor private data. - * Note that ULD requests per-descriptor space via - * xge_hal_channel_open(). - * - * Returns: private ULD data associated with the descriptor. - * Usage: See ex_xmit{} and ex_tx_compl{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void* -xge_hal_fifo_dtr_private(xge_hal_dtr_h dtrh) -{ - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)dtrh; - - return ((char *)(ulong_t)txdp->host_control) + - sizeof(xge_hal_fifo_txdl_priv_t); -} - -/** - * xge_hal_fifo_dtr_buffer_cnt - Get number of buffers carried by the - * descriptor. - * @dtrh: Descriptor handle. - * - * Returns: Number of buffers stored in the given descriptor. Can be used - * _after_ the descriptor is set up for posting (see - * xge_hal_fifo_dtr_post()) and _before_ it is deallocated (see - * xge_hal_fifo_dtr_free()). - * - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO int -xge_hal_fifo_dtr_buffer_cnt(xge_hal_dtr_h dtrh) -{ - xge_hal_fifo_txdl_priv_t *txdl_priv; - - txdl_priv = __hal_fifo_txdl_priv(dtrh); - - return txdl_priv->frags; -} -/** - * xge_hal_fifo_dtr_reserve_many- Reserve fifo descriptors which span more - * than single txdl. - * @channelh: Channel handle. - * @dtrh: Reserved descriptor. On success HAL fills this "out" parameter - * with a valid handle. - * @frags: minimum number of fragments to be reserved. - * - * Reserve TxDL(s) (that is, fifo descriptor) - * for the subsequent filling-in by upper layerdriver (ULD)) - * and posting on the corresponding channel (@channelh) - * via xge_hal_fifo_dtr_post(). - * - * Returns: XGE_HAL_OK - success; - * XGE_HAL_INF_OUT_OF_DESCRIPTORS - Currently no descriptors available - * - * See also: xge_hal_fifo_dtr_reserve_sp(), xge_hal_fifo_dtr_free(), - * xge_hal_ring_dtr_reserve(), xge_hal_status_e{}. - * Usage: See ex_xmit{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_reserve_many(xge_hal_channel_h channelh, - xge_hal_dtr_h *dtrh, const int frags) -{ - xge_hal_status_e status = XGE_HAL_OK; - int alloc_frags = 0, dang_frags = 0; - xge_hal_fifo_txd_t *curr_txdp = NULL; - xge_hal_fifo_txd_t *next_txdp; - xge_hal_fifo_txdl_priv_t *next_txdl_priv, *curr_txdl_priv = NULL; - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - int max_frags = fifo->config->max_frags; - xge_hal_dtr_h dang_dtrh = NULL; -#if defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - unsigned long flags=0; -#endif - xge_debug_fifo(XGE_TRACE, "dtr_reserve_many called for frags %d", - frags); - xge_assert(frags < (fifo->txdl_per_memblock * max_frags)); -#if defined(XGE_HAL_TX_MULTI_RESERVE) - xge_os_spin_lock(&fifo->channel.reserve_lock); -#elif defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - xge_os_spin_lock_irq(&fifo->channel.reserve_lock, flags); -#endif - while(alloc_frags < frags) { - status = __hal_channel_dtr_alloc(channelh, - (xge_hal_dtr_h *)(void*)&next_txdp); - if (status != XGE_HAL_OK){ - xge_debug_fifo(XGE_ERR, - "failed to allocate linked fragments rc %d", - status); - xge_assert(status == XGE_HAL_INF_OUT_OF_DESCRIPTORS); - if (*dtrh) { - xge_assert(alloc_frags/max_frags); - __hal_fifo_txdl_restore_many(channelh, - (xge_hal_fifo_txd_t *) *dtrh, alloc_frags/max_frags); - } - if (dang_dtrh) { - xge_assert(dang_frags/max_frags); - __hal_fifo_txdl_restore_many(channelh, - (xge_hal_fifo_txd_t *) dang_dtrh, dang_frags/max_frags); - } - break; - } - xge_debug_fifo(XGE_TRACE, "allocated linked dtrh %p" - " for frags %d", next_txdp, frags); - next_txdl_priv = __hal_fifo_txdl_priv(next_txdp); - xge_assert(next_txdl_priv); - xge_assert(next_txdl_priv->first_txdp == next_txdp); - next_txdl_priv->dang_txdl = NULL; - next_txdl_priv->dang_frags = 0; - next_txdl_priv->next_txdl_priv = NULL; -#if defined(XGE_OS_MEMORY_CHECK) - next_txdl_priv->allocated = 1; -#endif - if (!curr_txdp || !curr_txdl_priv) { - curr_txdp = next_txdp; - curr_txdl_priv = next_txdl_priv; - *dtrh = (xge_hal_dtr_h)next_txdp; - alloc_frags = max_frags; - continue; - } - if (curr_txdl_priv->memblock == - next_txdl_priv->memblock) { - xge_debug_fifo(XGE_TRACE, - "linking dtrh %p, with %p", - *dtrh, next_txdp); - xge_assert (next_txdp == - curr_txdp + max_frags); - alloc_frags += max_frags; - curr_txdl_priv->next_txdl_priv = next_txdl_priv; - } - else { - xge_assert(*dtrh); - xge_assert(dang_dtrh == NULL); - dang_dtrh = *dtrh; - dang_frags = alloc_frags; - xge_debug_fifo(XGE_TRACE, - "dangling dtrh %p, linked with dtrh %p", - *dtrh, next_txdp); - next_txdl_priv->dang_txdl = (xge_hal_fifo_txd_t *) *dtrh; - next_txdl_priv->dang_frags = alloc_frags; - alloc_frags = max_frags; - *dtrh = next_txdp; - } - curr_txdp = next_txdp; - curr_txdl_priv = next_txdl_priv; - } - -#if defined(XGE_HAL_TX_MULTI_RESERVE) - xge_os_spin_unlock(&fifo->channel.reserve_lock); -#elif defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - xge_os_spin_unlock_irq(&fifo->channel.reserve_lock, flags); -#endif - - if (status == XGE_HAL_OK) { - xge_hal_fifo_txdl_priv_t * txdl_priv; - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)*dtrh; - xge_hal_stats_channel_info_t *statsp = &fifo->channel.stats; - txdl_priv = __hal_fifo_txdl_priv(txdp); - /* reset the TxDL's private */ - txdl_priv->align_dma_offset = 0; - txdl_priv->align_vaddr_start = txdl_priv->align_vaddr; - txdl_priv->align_used_frags = 0; - txdl_priv->frags = 0; - txdl_priv->bytes_sent = 0; - txdl_priv->alloc_frags = alloc_frags; - /* reset TxD0 */ - txdp->control_1 = txdp->control_2 = 0; - -#if defined(XGE_OS_MEMORY_CHECK) - txdl_priv->allocated = 1; -#endif - /* update statistics */ - statsp->total_posts_dtrs_many++; - statsp->total_posts_frags_many += txdl_priv->alloc_frags; - if (txdl_priv->dang_frags){ - statsp->total_posts_dang_dtrs++; - statsp->total_posts_dang_frags += txdl_priv->dang_frags; - } - } - - return status; -} - -/** - * xge_hal_fifo_dtr_reserve - Reserve fifo descriptor. - * @channelh: Channel handle. - * @dtrh: Reserved descriptor. On success HAL fills this "out" parameter - * with a valid handle. - * - * Reserve a single TxDL (that is, fifo descriptor) - * for the subsequent filling-in by upper layerdriver (ULD)) - * and posting on the corresponding channel (@channelh) - * via xge_hal_fifo_dtr_post(). - * - * Note: it is the responsibility of ULD to reserve multiple descriptors - * for lengthy (e.g., LSO) transmit operation. A single fifo descriptor - * carries up to configured number (fifo.max_frags) of contiguous buffers. - * - * Returns: XGE_HAL_OK - success; - * XGE_HAL_INF_OUT_OF_DESCRIPTORS - Currently no descriptors available - * - * See also: xge_hal_fifo_dtr_reserve_sp(), xge_hal_fifo_dtr_free(), - * xge_hal_ring_dtr_reserve(), xge_hal_status_e{}. - * Usage: See ex_xmit{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_reserve(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh) -{ - xge_hal_status_e status; -#if defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - unsigned long flags=0; -#endif - -#if defined(XGE_HAL_TX_MULTI_RESERVE) - xge_os_spin_lock(&((xge_hal_channel_t*)channelh)->reserve_lock); -#elif defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - xge_os_spin_lock_irq(&((xge_hal_channel_t*)channelh)->reserve_lock, - flags); -#endif - - status = __hal_channel_dtr_alloc(channelh, dtrh); - -#if defined(XGE_HAL_TX_MULTI_RESERVE) - xge_os_spin_unlock(&((xge_hal_channel_t*)channelh)->reserve_lock); -#elif defined(XGE_HAL_TX_MULTI_RESERVE_IRQ) - xge_os_spin_unlock_irq(&((xge_hal_channel_t*)channelh)->reserve_lock, - flags); -#endif - - if (status == XGE_HAL_OK) { - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)*dtrh; - xge_hal_fifo_txdl_priv_t *txdl_priv; - - txdl_priv = __hal_fifo_txdl_priv(txdp); - - /* reset the TxDL's private */ - txdl_priv->align_dma_offset = 0; - txdl_priv->align_vaddr_start = txdl_priv->align_vaddr; - txdl_priv->align_used_frags = 0; - txdl_priv->frags = 0; - txdl_priv->alloc_frags = - ((xge_hal_fifo_t *)channelh)->config->max_frags; - txdl_priv->dang_txdl = NULL; - txdl_priv->dang_frags = 0; - txdl_priv->next_txdl_priv = NULL; - txdl_priv->bytes_sent = 0; - - /* reset TxD0 */ - txdp->control_1 = txdp->control_2 = 0; - -#if defined(XGE_OS_MEMORY_CHECK) - txdl_priv->allocated = 1; -#endif - } - - return status; -} - -/** - * xge_hal_fifo_dtr_reserve_sp - Reserve fifo descriptor and store it in - * the ULD-provided "scratch" memory. - * @channelh: Channel handle. - * @dtr_sp_size: Size of the %dtr_sp "scratch pad" that HAL can use for TxDL. - * @dtr_sp: "Scratch pad" supplied by upper-layer driver (ULD). - * - * Reserve TxDL and fill-in ULD supplied "scratch pad". The difference - * between this API and xge_hal_fifo_dtr_reserve() is (possibly) - - * performance. - * - * If upper-layer uses ULP-defined commands, and if those commands have enough - * space for HAL/Xframe descriptors - tnan it is better (read: faster) to fit - * all the per-command information into one command, which is typically - * one contiguous block. - * - * Note: Unlike xge_hal_fifo_dtr_reserve(), this function can be used to - * allocate a single descriptor for transmit operation. - * - * See also: xge_hal_fifo_dtr_reserve(), xge_hal_fifo_dtr_free(), - * xge_hal_ring_dtr_reserve(), xge_hal_status_e{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_reserve_sp(xge_hal_channel_h channelh, int dtr_sp_size, - xge_hal_dtr_h dtr_sp) -{ - /* FIXME: implement */ - return XGE_HAL_OK; -} - -/** - * xge_hal_fifo_dtr_post - Post descriptor on the fifo channel. - * @channelh: Channel handle. - * @dtrh: Descriptor obtained via xge_hal_fifo_dtr_reserve() or - * xge_hal_fifo_dtr_reserve_sp() - * @frags: Number of contiguous buffers that are part of a single - * transmit operation. - * - * Post descriptor on the 'fifo' type channel for transmission. - * Prior to posting the descriptor should be filled in accordance with - * Host/Xframe interface specification for a given service (LL, etc.). - * - * See also: xge_hal_fifo_dtr_post_many(), xge_hal_ring_dtr_post(). - * Usage: See ex_xmit{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh) -{ - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - xge_hal_fifo_txdl_priv_t *txdl_priv; - xge_hal_fifo_txd_t *txdp_last; - xge_hal_fifo_txd_t *txdp_first; -#if defined(XGE_HAL_TX_MULTI_POST_IRQ) - unsigned long flags = 0; -#endif - - txdl_priv = __hal_fifo_txdl_priv(dtrh); - - txdp_first = (xge_hal_fifo_txd_t *)dtrh; - txdp_first->control_1 |= XGE_HAL_TXD_GATHER_CODE_FIRST; - txdp_first->control_2 |= fifo->interrupt_type; - - txdp_last = (xge_hal_fifo_txd_t *)dtrh + (txdl_priv->frags - 1); - txdp_last->control_1 |= XGE_HAL_TXD_GATHER_CODE_LAST; - -#if defined(XGE_HAL_TX_MULTI_POST) - xge_os_spin_lock(fifo->post_lock_ptr); -#elif defined(XGE_HAL_TX_MULTI_POST_IRQ) - xge_os_spin_lock_irq(fifo->post_lock_ptr, flags); -#endif - - __hal_fifo_dtr_post_single(channelh, dtrh, - (u64)(XGE_HAL_TX_FIFO_FIRST_LIST | XGE_HAL_TX_FIFO_LAST_LIST)); - -#if defined(XGE_HAL_TX_MULTI_POST) - xge_os_spin_unlock(fifo->post_lock_ptr); -#elif defined(XGE_HAL_TX_MULTI_POST_IRQ) - xge_os_spin_unlock_irq(fifo->post_lock_ptr, flags); -#endif -} - -/** - * xge_hal_fifo_dtr_post_many - Post multiple descriptors on fifo - * channel. - * @channelh: Channel to post descriptor. - * @num: Number of descriptors (i.e., fifo TxDLs) in the %dtrs[]. - * @dtrs: Descriptors obtained via xge_hal_fifo_dtr_reserve(). - * @frags_arr: Number of fragments carried @dtrs descriptors. - * Note that frag_arr[i] corresponds to descriptor dtrs[i]. - * - * Post multi-descriptor on the fifo channel. The operation is atomic: - * all descriptrs are posted on the channel "back-to-back' without - * letting other posts (possibly driven by multiple transmitting threads) - * to interleave. - * - * See also: xge_hal_fifo_dtr_post(), xge_hal_ring_dtr_post(). - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_post_many(xge_hal_channel_h channelh, int num, - xge_hal_dtr_h dtrs[]) -{ - int i; - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - xge_hal_fifo_txd_t *txdp_last; - xge_hal_fifo_txd_t *txdp_first; - xge_hal_fifo_txdl_priv_t *txdl_priv_last; -#if defined(XGE_HAL_TX_MULTI_POST_IRQ) - unsigned long flags = 0; -#endif - - xge_assert(num > 1); - - txdp_first = (xge_hal_fifo_txd_t *)dtrs[0]; - txdp_first->control_1 |= XGE_HAL_TXD_GATHER_CODE_FIRST; - txdp_first->control_2 |= fifo->interrupt_type; - - txdl_priv_last = __hal_fifo_txdl_priv(dtrs[num-1]); - txdp_last = (xge_hal_fifo_txd_t *)dtrs[num-1] + - (txdl_priv_last->frags - 1); - txdp_last->control_1 |= XGE_HAL_TXD_GATHER_CODE_LAST; - -#if defined(XGE_HAL_TX_MULTI_POST) - xge_os_spin_lock(&((xge_hal_channel_t*)channelh)->post_lock); -#elif defined(XGE_HAL_TX_MULTI_POST_IRQ) - xge_os_spin_lock_irq(&((xge_hal_channel_t*)channelh)->post_lock, - flags); -#endif - - for (i=0; ipost_lock); -#elif defined(XGE_HAL_TX_MULTI_POST_IRQ) - xge_os_spin_unlock_irq(&((xge_hal_channel_t*)channelh)->post_lock, - flags); -#endif - - fifo->channel.stats.total_posts_many++; -} - -/** - * xge_hal_fifo_dtr_next_completed - Retrieve next completed descriptor. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. Returned by HAL. - * @t_code: Transfer code, as per Xframe User Guide, - * Transmit Descriptor Format. - * Returned by HAL. - * - * Retrieve the _next_ completed descriptor. - * HAL uses channel callback (*xge_hal_channel_callback_f) to notifiy - * upper-layer driver (ULD) of new completed descriptors. After that - * the ULD can use xge_hal_fifo_dtr_next_completed to retrieve the rest - * completions (the very first completion is passed by HAL via - * xge_hal_channel_callback_f). - * - * Implementation-wise, the upper-layer driver is free to call - * xge_hal_fifo_dtr_next_completed either immediately from inside the - * channel callback, or in a deferred fashion and separate (from HAL) - * context. - * - * Non-zero @t_code means failure to process the descriptor. - * The failure could happen, for instance, when the link is - * down, in which case Xframe completes the descriptor because it - * is not able to send the data out. - * - * For details please refer to Xframe User Guide. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS - No completed descriptors - * are currently available for processing. - * - * See also: xge_hal_channel_callback_f{}, - * xge_hal_ring_dtr_next_completed(). - * Usage: See ex_tx_compl{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_next_completed(xge_hal_channel_h channelh, - xge_hal_dtr_h *dtrh, u8 *t_code) -{ - xge_hal_fifo_txd_t *txdp; - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - xge_hal_fifo_txdl_priv_t *txdl_priv; -#endif - - __hal_channel_dtr_try_complete(channelh, dtrh); - txdp = (xge_hal_fifo_txd_t *)*dtrh; - if (txdp == NULL) { - return XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS; - } - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) && defined(XGE_HAL_DMA_DTR_STREAMING) - txdl_priv = __hal_fifo_txdl_priv(txdp); - - /* sync TxDL to read the ownership - * - * Note: 16bytes means Control_1 & Control_2 */ - xge_os_dma_sync(fifo->channel.pdev, - txdl_priv->dma_handle, - txdl_priv->dma_addr, - txdl_priv->dma_offset, - 16, - XGE_OS_DMA_DIR_FROMDEVICE); -#endif - - /* check whether host owns it */ - if ( !(txdp->control_1 & XGE_HAL_TXD_LIST_OWN_XENA) ) { - - xge_assert(txdp->host_control!=0); - - __hal_channel_dtr_complete(channelh); - - *t_code = (u8)XGE_HAL_GET_TXD_T_CODE(txdp->control_1); - - /* see XGE_HAL_SET_TXD_T_CODE() above.. */ - xge_assert(*t_code != XGE_HAL_TXD_T_CODE_UNUSED_5); - - if (fifo->channel.usage_cnt > 0) - fifo->channel.usage_cnt--; - - return XGE_HAL_OK; - } - - /* no more completions */ - *dtrh = 0; - return XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS; -} - -/** - * xge_hal_fifo_dtr_free - Free descriptor. - * @channelh: Channel handle. - * @dtr: Descriptor handle. - * - * Free the reserved descriptor. This operation is "symmetrical" to - * xge_hal_fifo_dtr_reserve or xge_hal_fifo_dtr_reserve_sp. - * The "free-ing" completes the descriptor's lifecycle. - * - * After free-ing (see xge_hal_fifo_dtr_free()) the descriptor again can - * be: - * - * - reserved (xge_hal_fifo_dtr_reserve); - * - * - posted (xge_hal_fifo_dtr_post); - * - * - completed (xge_hal_fifo_dtr_next_completed); - * - * - and recycled again (xge_hal_fifo_dtr_free). - * - * For alternative state transitions and more details please refer to - * the design doc. - * - * See also: xge_hal_ring_dtr_free(), xge_hal_fifo_dtr_reserve(). - * Usage: See ex_tx_compl{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_free(xge_hal_channel_h channelh, xge_hal_dtr_h dtr) -{ -#if defined(XGE_HAL_TX_MULTI_FREE_IRQ) - unsigned long flags = 0; -#endif - xge_hal_fifo_txdl_priv_t *txdl_priv = __hal_fifo_txdl_priv( - (xge_hal_fifo_txd_t *)dtr); - int max_frags = ((xge_hal_fifo_t *)channelh)->config->max_frags; -#if defined(XGE_HAL_TX_MULTI_FREE) - xge_os_spin_lock(&((xge_hal_channel_t*)channelh)->free_lock); -#elif defined(XGE_HAL_TX_MULTI_FREE_IRQ) - xge_os_spin_lock_irq(&((xge_hal_channel_t*)channelh)->free_lock, - flags); -#endif - - if (txdl_priv->alloc_frags > max_frags) { - xge_hal_fifo_txd_t *dang_txdp = (xge_hal_fifo_txd_t *) - txdl_priv->dang_txdl; - int dang_frags = txdl_priv->dang_frags; - int alloc_frags = txdl_priv->alloc_frags; - txdl_priv->dang_txdl = NULL; - txdl_priv->dang_frags = 0; - txdl_priv->alloc_frags = 0; - /* dtrh must have a linked list of dtrh */ - xge_assert(txdl_priv->next_txdl_priv); - - /* free any dangling dtrh first */ - if (dang_txdp) { - xge_debug_fifo(XGE_TRACE, - "freeing dangled dtrh %p for %d fragments", - dang_txdp, dang_frags); - __hal_fifo_txdl_free_many(channelh, dang_txdp, - max_frags, dang_frags); - } - - /* now free the reserved dtrh list */ - xge_debug_fifo(XGE_TRACE, - "freeing dtrh %p list of %d fragments", dtr, - alloc_frags); - __hal_fifo_txdl_free_many(channelh, - (xge_hal_fifo_txd_t *)dtr, max_frags, - alloc_frags); - } - else - __hal_channel_dtr_free(channelh, dtr); - - ((xge_hal_channel_t *)channelh)->poll_bytes += txdl_priv->bytes_sent; - -#if defined(XGE_DEBUG_ASSERT) && defined(XGE_OS_MEMORY_CHECK) - __hal_fifo_txdl_priv(dtr)->allocated = 0; -#endif - -#if defined(XGE_HAL_TX_MULTI_FREE) - xge_os_spin_unlock(&((xge_hal_channel_t*)channelh)->free_lock); -#elif defined(XGE_HAL_TX_MULTI_FREE_IRQ) - xge_os_spin_unlock_irq(&((xge_hal_channel_t*)channelh)->free_lock, - flags); -#endif -} - - -/** - * xge_hal_fifo_dtr_buffer_set_aligned - Align transmit buffer and fill - * in fifo descriptor. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @frag_idx: Index of the data buffer in the caller's scatter-gather list - * (of buffers). - * @vaddr: Virtual address of the data buffer. - * @dma_pointer: DMA address of the data buffer referenced by @frag_idx. - * @size: Size of the data buffer (in bytes). - * @misaligned_size: Size (in bytes) of the misaligned portion of the - * data buffer. Calculated by the caller, based on the platform/OS/other - * specific criteria, which is outside of HAL's domain. See notes below. - * - * This API is part of the transmit descriptor preparation for posting - * (via xge_hal_fifo_dtr_post()). The related "preparation" APIs include - * xge_hal_fifo_dtr_mss_set() and xge_hal_fifo_dtr_cksum_set_bits(). - * All three APIs fill in the fields of the fifo descriptor, - * in accordance with the Xframe specification. - * On the PCI-X based systems aligning transmit data typically provides better - * transmit performance. The typical alignment granularity: L2 cacheline size. - * However, HAL does not make assumptions in terms of the alignment granularity; - * this is specified via additional @misaligned_size parameter described above. - * Prior to calling xge_hal_fifo_dtr_buffer_set_aligned(), - * ULD is supposed to check alignment of a given fragment/buffer. For this HAL - * provides a separate xge_hal_check_alignment() API sufficient to cover - * most (but not all) possible alignment criteria. - * If the buffer appears to be aligned, the ULD calls - * xge_hal_fifo_dtr_buffer_set(). - * Otherwise, ULD calls xge_hal_fifo_dtr_buffer_set_aligned(). - * - * Note; This API is a "superset" of xge_hal_fifo_dtr_buffer_set(). In - * addition to filling in the specified descriptor it aligns transmit data on - * the specified boundary. - * Note: Decision on whether to align or not to align a given contiguous - * transmit buffer is outside of HAL's domain. To this end ULD can use any - * programmable criteria, which can help to 1) boost transmit performance, - * and/or 2) provide a workaround for PCI bridge bugs, if any. - * - * See also: xge_hal_fifo_dtr_buffer_set(), - * xge_hal_check_alignment(). - * - * See also: xge_hal_fifo_dtr_reserve(), xge_hal_fifo_dtr_post(), - * xge_hal_fifo_dtr_mss_set(), xge_hal_fifo_dtr_cksum_set_bits() - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_buffer_set_aligned(xge_hal_channel_h channelh, - xge_hal_dtr_h dtrh, int frag_idx, void *vaddr, - dma_addr_t dma_pointer, int size, int misaligned_size) -{ - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - xge_hal_fifo_txdl_priv_t *txdl_priv; - xge_hal_fifo_txd_t *txdp; - int remaining_size; - ptrdiff_t prev_boff; - - txdl_priv = __hal_fifo_txdl_priv(dtrh); - txdp = (xge_hal_fifo_txd_t *)dtrh + txdl_priv->frags; - - if (frag_idx != 0) { - txdp->control_1 = txdp->control_2 = 0; - } - - /* On some systems buffer size could be zero. - * It is the responsibility of ULD and *not HAL* to - * detect it and skip it. */ - xge_assert(size > 0); - xge_assert(frag_idx < txdl_priv->alloc_frags); - xge_assert(misaligned_size != 0 && - misaligned_size <= fifo->config->alignment_size); - - remaining_size = size - misaligned_size; - xge_assert(remaining_size >= 0); - - xge_os_memcpy((char*)txdl_priv->align_vaddr_start, - vaddr, misaligned_size); - - if (txdl_priv->align_used_frags >= fifo->config->max_aligned_frags) { - return XGE_HAL_ERR_OUT_ALIGNED_FRAGS; - } - - /* setup new buffer */ - prev_boff = txdl_priv->align_vaddr_start - txdl_priv->align_vaddr; - txdp->buffer_pointer = (u64)txdl_priv->align_dma_addr + prev_boff; - txdp->control_1 |= XGE_HAL_TXD_BUFFER0_SIZE(misaligned_size); - txdl_priv->bytes_sent += misaligned_size; - fifo->channel.stats.total_buffers++; - txdl_priv->frags++; - txdl_priv->align_used_frags++; - txdl_priv->align_vaddr_start += fifo->config->alignment_size; - txdl_priv->align_dma_offset = 0; - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) - /* sync new buffer */ - xge_os_dma_sync(fifo->channel.pdev, - txdl_priv->align_dma_handle, - txdp->buffer_pointer, - 0, - misaligned_size, - XGE_OS_DMA_DIR_TODEVICE); -#endif - - if (remaining_size) { - xge_assert(frag_idx < txdl_priv->alloc_frags); - txdp++; - txdp->buffer_pointer = (u64)dma_pointer + - misaligned_size; - txdp->control_1 = - XGE_HAL_TXD_BUFFER0_SIZE(remaining_size); - txdl_priv->bytes_sent += remaining_size; - txdp->control_2 = 0; - fifo->channel.stats.total_buffers++; - txdl_priv->frags++; - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_fifo_dtr_buffer_append - Append the contents of virtually - * contiguous data buffer to a single physically contiguous buffer. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @vaddr: Virtual address of the data buffer. - * @size: Size of the data buffer (in bytes). - * - * This API is part of the transmit descriptor preparation for posting - * (via xge_hal_fifo_dtr_post()). - * The main difference of this API wrt to the APIs - * xge_hal_fifo_dtr_buffer_set_aligned() is that this API appends the - * contents of virtually contiguous data buffers received from - * upper layer into a single physically contiguous data buffer and the - * device will do a DMA from this buffer. - * - * See Also: xge_hal_fifo_dtr_buffer_finalize(), xge_hal_fifo_dtr_buffer_set(), - * xge_hal_fifo_dtr_buffer_set_aligned(). - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_buffer_append(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - void *vaddr, int size) -{ - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - xge_hal_fifo_txdl_priv_t *txdl_priv; - ptrdiff_t used; - - xge_assert(size > 0); - - txdl_priv = __hal_fifo_txdl_priv(dtrh); - - used = txdl_priv->align_vaddr_start - txdl_priv->align_vaddr; - used += txdl_priv->align_dma_offset; - if (used + (unsigned int)size > (unsigned int)fifo->align_size) - return XGE_HAL_ERR_OUT_ALIGNED_FRAGS; - - xge_os_memcpy((char*)txdl_priv->align_vaddr_start + - txdl_priv->align_dma_offset, vaddr, size); - - fifo->channel.stats.copied_frags++; - - txdl_priv->align_dma_offset += size; - return XGE_HAL_OK; -} - -/** - * xge_hal_fifo_dtr_buffer_finalize - Prepares a descriptor that contains the - * single physically contiguous buffer. - * - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @frag_idx: Index of the data buffer in the Txdl list. - * - * This API in conjuction with xge_hal_fifo_dtr_buffer_append() prepares - * a descriptor that consists of a single physically contiguous buffer - * which inturn contains the contents of one or more virtually contiguous - * buffers received from the upper layer. - * - * See Also: xge_hal_fifo_dtr_buffer_append(). -*/ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_buffer_finalize(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - int frag_idx) -{ - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - xge_hal_fifo_txdl_priv_t *txdl_priv; - xge_hal_fifo_txd_t *txdp; - ptrdiff_t prev_boff; - - xge_assert(frag_idx < fifo->config->max_frags); - - txdl_priv = __hal_fifo_txdl_priv(dtrh); - txdp = (xge_hal_fifo_txd_t *)dtrh + txdl_priv->frags; - - if (frag_idx != 0) { - txdp->control_1 = txdp->control_2 = 0; - } - - prev_boff = txdl_priv->align_vaddr_start - txdl_priv->align_vaddr; - txdp->buffer_pointer = (u64)txdl_priv->align_dma_addr + prev_boff; - txdp->control_1 |= - XGE_HAL_TXD_BUFFER0_SIZE(txdl_priv->align_dma_offset); - txdl_priv->bytes_sent += (unsigned int)txdl_priv->align_dma_offset; - fifo->channel.stats.total_buffers++; - fifo->channel.stats.copied_buffers++; - txdl_priv->frags++; - txdl_priv->align_used_frags++; - -#if defined(XGE_OS_DMA_REQUIRES_SYNC) - /* sync pre-mapped buffer */ - xge_os_dma_sync(fifo->channel.pdev, - txdl_priv->align_dma_handle, - txdp->buffer_pointer, - 0, - txdl_priv->align_dma_offset, - XGE_OS_DMA_DIR_TODEVICE); -#endif - - /* increment vaddr_start for the next buffer_append() iteration */ - txdl_priv->align_vaddr_start += txdl_priv->align_dma_offset; - txdl_priv->align_dma_offset = 0; -} - -/** - * xge_hal_fifo_dtr_buffer_set - Set transmit buffer pointer in the - * descriptor. - * @channelh: Channel handle. - * @dtrh: Descriptor handle. - * @frag_idx: Index of the data buffer in the caller's scatter-gather list - * (of buffers). - * @dma_pointer: DMA address of the data buffer referenced by @frag_idx. - * @size: Size of the data buffer (in bytes). - * - * This API is part of the preparation of the transmit descriptor for posting - * (via xge_hal_fifo_dtr_post()). The related "preparation" APIs include - * xge_hal_fifo_dtr_mss_set() and xge_hal_fifo_dtr_cksum_set_bits(). - * All three APIs fill in the fields of the fifo descriptor, - * in accordance with the Xframe specification. - * - * See also: xge_hal_fifo_dtr_buffer_set_aligned(), - * xge_hal_check_alignment(). - * - * See also: xge_hal_fifo_dtr_reserve(), xge_hal_fifo_dtr_post(), - * xge_hal_fifo_dtr_mss_set(), xge_hal_fifo_dtr_cksum_set_bits() - * Prepare transmit descriptor for transmission (via - * xge_hal_fifo_dtr_post()). - * See also: xge_hal_fifo_dtr_vlan_set(). - * Note: Compare with xge_hal_fifo_dtr_buffer_set_aligned(). - * - * Usage: See ex_xmit{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_buffer_set(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - int frag_idx, dma_addr_t dma_pointer, int size) -{ - xge_hal_fifo_t *fifo = (xge_hal_fifo_t *)channelh; - xge_hal_fifo_txdl_priv_t *txdl_priv; - xge_hal_fifo_txd_t *txdp; - - txdl_priv = __hal_fifo_txdl_priv(dtrh); - txdp = (xge_hal_fifo_txd_t *)dtrh + txdl_priv->frags; - - if (frag_idx != 0) { - txdp->control_1 = txdp->control_2 = 0; - } - - /* Note: - * it is the responsibility of upper layers and not HAL - * detect it and skip zero-size fragment - */ - xge_assert(size > 0); - xge_assert(frag_idx < txdl_priv->alloc_frags); - - txdp->buffer_pointer = (u64)dma_pointer; - txdp->control_1 |= XGE_HAL_TXD_BUFFER0_SIZE(size); - txdl_priv->bytes_sent += size; - fifo->channel.stats.total_buffers++; - txdl_priv->frags++; -} - -/** - * xge_hal_fifo_dtr_mss_set - Set MSS. - * @dtrh: Descriptor handle. - * @mss: MSS size for _this_ TCP connection. Passed by TCP stack down to the - * ULD, which in turn inserts the MSS into the @dtrh. - * - * This API is part of the preparation of the transmit descriptor for posting - * (via xge_hal_fifo_dtr_post()). The related "preparation" APIs include - * xge_hal_fifo_dtr_buffer_set(), xge_hal_fifo_dtr_buffer_set_aligned(), - * and xge_hal_fifo_dtr_cksum_set_bits(). - * All these APIs fill in the fields of the fifo descriptor, - * in accordance with the Xframe specification. - * - * See also: xge_hal_fifo_dtr_reserve(), - * xge_hal_fifo_dtr_post(), xge_hal_fifo_dtr_vlan_set(). - * Usage: See ex_xmit{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_mss_set(xge_hal_dtr_h dtrh, int mss) -{ - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)dtrh; - - txdp->control_1 |= XGE_HAL_TXD_LSO_COF_CTRL(XGE_HAL_TXD_TCP_LSO); - txdp->control_1 |= XGE_HAL_TXD_TCP_LSO_MSS(mss); -} - -/** - * xge_hal_fifo_dtr_cksum_set_bits - Offload checksum. - * @dtrh: Descriptor handle. - * @cksum_bits: Specifies which checksums are to be offloaded: IPv4, - * and/or TCP and/or UDP. - * - * Ask Xframe to calculate IPv4 & transport checksums for _this_ transmit - * descriptor. - * This API is part of the preparation of the transmit descriptor for posting - * (via xge_hal_fifo_dtr_post()). The related "preparation" APIs include - * xge_hal_fifo_dtr_mss_set(), xge_hal_fifo_dtr_buffer_set_aligned(), - * and xge_hal_fifo_dtr_buffer_set(). - * All these APIs fill in the fields of the fifo descriptor, - * in accordance with the Xframe specification. - * - * See also: xge_hal_fifo_dtr_reserve(), - * xge_hal_fifo_dtr_post(), XGE_HAL_TXD_TX_CKO_IPV4_EN, - * XGE_HAL_TXD_TX_CKO_TCP_EN. - * Usage: See ex_xmit{}. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_cksum_set_bits(xge_hal_dtr_h dtrh, u64 cksum_bits) -{ - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)dtrh; - - txdp->control_2 |= cksum_bits; -} - - -/** - * xge_hal_fifo_dtr_vlan_set - Set VLAN tag. - * @dtrh: Descriptor handle. - * @vlan_tag: 16bit VLAN tag. - * - * Insert VLAN tag into specified transmit descriptor. - * The actual insertion of the tag into outgoing frame is done by the hardware. - * See also: xge_hal_fifo_dtr_buffer_set(), xge_hal_fifo_dtr_mss_set(). - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_vlan_set(xge_hal_dtr_h dtrh, u16 vlan_tag) -{ - xge_hal_fifo_txd_t *txdp = (xge_hal_fifo_txd_t *)dtrh; - - txdp->control_2 |= XGE_HAL_TXD_VLAN_ENABLE; - txdp->control_2 |= XGE_HAL_TXD_VLAN_TAG(vlan_tag); -} - -/** - * xge_hal_fifo_is_next_dtr_completed - Checks if the next dtr is completed - * @channelh: Channel handle. - */ -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_is_next_dtr_completed(xge_hal_channel_h channelh) -{ - xge_hal_fifo_txd_t *txdp; - xge_hal_dtr_h dtrh; - - __hal_channel_dtr_try_complete(channelh, &dtrh); - txdp = (xge_hal_fifo_txd_t *)dtrh; - if (txdp == NULL) { - return XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS; - } - - /* check whether host owns it */ - if ( !(txdp->control_1 & XGE_HAL_TXD_LIST_OWN_XENA) ) { - xge_assert(txdp->host_control!=0); - return XGE_HAL_OK; - } - - /* no more completions */ - return XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS; -} Property changes on: head/sys/dev/nxge/xgehal/xgehal-fifo-fp.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-mgmtaux.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-mgmtaux.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-mgmtaux.c (nonexistent) @@ -1,1725 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include -#include - -#ifdef XGE_OS_HAS_SNPRINTF -#define __hal_aux_snprintf(retbuf, bufsize, fmt, key, value, retsize) \ - if (bufsize <= 0) return XGE_HAL_ERR_OUT_OF_SPACE; \ - retsize = xge_os_snprintf(retbuf, bufsize, fmt, key, \ - XGE_HAL_AUX_SEPA, value); \ - if (retsize < 0 || retsize >= bufsize) return XGE_HAL_ERR_OUT_OF_SPACE; -#else -#define __hal_aux_snprintf(retbuf, bufsize, fmt, key, value, retsize) \ - if (bufsize <= 0) return XGE_HAL_ERR_OUT_OF_SPACE; \ - retsize = xge_os_sprintf(retbuf, fmt, key, XGE_HAL_AUX_SEPA, value); \ - xge_assert(retsize < bufsize); \ - if (retsize < 0 || retsize >= bufsize) \ - return XGE_HAL_ERR_OUT_OF_SPACE; -#endif - -#define __HAL_AUX_ENTRY_DECLARE(size, buf) \ - int entrysize = 0, leftsize = size; \ - char *ptr = buf; - -#define __HAL_AUX_ENTRY(key, value, fmt) \ - ptr += entrysize; leftsize -= entrysize; \ - __hal_aux_snprintf(ptr, leftsize, "%s%c"fmt"\n", key, value, entrysize) - -#define __HAL_AUX_ENTRY_END(bufsize, retsize) \ - leftsize -= entrysize; \ - *retsize = bufsize - leftsize; - -#define __hal_aux_pci_link_info(name, index, var) { \ - __HAL_AUX_ENTRY(name, \ - (unsigned long long)pcim.link_info[index].var, "%llu") \ - } - -#define __hal_aux_pci_aggr_info(name, index, var) { \ - __HAL_AUX_ENTRY(name, \ - (unsigned long long)pcim.aggr_info[index].var, "%llu") \ - } - -/** - * xge_hal_aux_bar0_read - Read and format Xframe BAR0 register. - * @devh: HAL device handle. - * @offset: Register offset in the BAR0 space. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read Xframe register from BAR0 space. The result is formatted as an ascii string. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not - * valid. - * XGE_HAL_ERR_INVALID_BAR_ID - BAR id is not valid. - * - * See also: xge_hal_mgmt_reg_read(). - */ -xge_hal_status_e xge_hal_aux_bar0_read(xge_hal_device_h devh, - unsigned int offset, int bufsize, char *retbuf, - int *retsize) -{ - xge_hal_status_e status; - u64 retval; - - status = xge_hal_mgmt_reg_read(devh, 0, offset, &retval); - if (status != XGE_HAL_OK) { - return status; - } - - if (bufsize < XGE_OS_SPRINTF_STRLEN) { - return XGE_HAL_ERR_OUT_OF_SPACE; - } - - *retsize = xge_os_sprintf(retbuf, "0x%04X%c0x%08X%08X\n", offset, - XGE_HAL_AUX_SEPA, (u32)(retval>>32), (u32)retval); - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_bar1_read - Read and format Xframe BAR1 register. - * @devh: HAL device handle. - * @offset: Register offset in the BAR1 space. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read Xframe register from BAR1 space. The result is formatted as ascii string. - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not - * valid. - * XGE_HAL_ERR_INVALID_BAR_ID - BAR id is not valid. - * - * See also: xge_hal_mgmt_reg_read(). - */ -xge_hal_status_e xge_hal_aux_bar1_read(xge_hal_device_h devh, - unsigned int offset, int bufsize, char *retbuf, - int *retsize) -{ - xge_hal_status_e status; - u64 retval; - - status = xge_hal_mgmt_reg_read(devh, 1, offset, &retval); - if (status != XGE_HAL_OK) { - return status; - } - - if (bufsize < XGE_OS_SPRINTF_STRLEN) { - return XGE_HAL_ERR_OUT_OF_SPACE; - } - - *retsize = xge_os_sprintf(retbuf, "0x%04X%c0x%08X%08X\n", - offset, - XGE_HAL_AUX_SEPA, (u32)(retval>>32), (u32)retval); - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_bar0_write - Write BAR0 register. - * @devh: HAL device handle. - * @offset: Register offset in the BAR0 space. - * @value: Regsister value (to write). - * - * Write BAR0 register. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_INVALID_OFFSET - Register offset in the BAR space is not - * valid. - * XGE_HAL_ERR_INVALID_BAR_ID - BAR id is not valid. - * - * See also: xge_hal_mgmt_reg_write(). - */ -xge_hal_status_e xge_hal_aux_bar0_write(xge_hal_device_h devh, - unsigned int offset, u64 value) -{ - xge_hal_status_e status; - - status = xge_hal_mgmt_reg_write(devh, 0, offset, value); - if (status != XGE_HAL_OK) { - return status; - } - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_about_read - Retrieve and format about info. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Retrieve about info (using xge_hal_mgmt_about()) and sprintf it - * into the provided @retbuf. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * XGE_HAL_FAIL - Failed to retrieve the information. - * - * See also: xge_hal_mgmt_about(), xge_hal_aux_device_dump(). - */ -xge_hal_status_e xge_hal_aux_about_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize) -{ - xge_hal_status_e status; - xge_hal_mgmt_about_info_t about_info; - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - status = xge_hal_mgmt_about(devh, &about_info, - sizeof(xge_hal_mgmt_about_info_t)); - if (status != XGE_HAL_OK) { - return status; - } - - __HAL_AUX_ENTRY("vendor", about_info.vendor, "0x%x"); - __HAL_AUX_ENTRY("device", about_info.device, "0x%x"); - __HAL_AUX_ENTRY("subsys_vendor", about_info.subsys_vendor, "0x%x"); - __HAL_AUX_ENTRY("subsys_device", about_info.subsys_device, "0x%x"); - __HAL_AUX_ENTRY("board_rev", about_info.board_rev, "0x%x"); - __HAL_AUX_ENTRY("vendor_name", about_info.vendor_name, "%s"); - __HAL_AUX_ENTRY("chip_name", about_info.chip_name, "%s"); - __HAL_AUX_ENTRY("media", about_info.media, "%s"); - __HAL_AUX_ENTRY("hal_major", about_info.hal_major, "%s"); - __HAL_AUX_ENTRY("hal_minor", about_info.hal_minor, "%s"); - __HAL_AUX_ENTRY("hal_fix", about_info.hal_fix, "%s"); - __HAL_AUX_ENTRY("hal_build", about_info.hal_build, "%s"); - __HAL_AUX_ENTRY("ll_major", about_info.ll_major, "%s"); - __HAL_AUX_ENTRY("ll_minor", about_info.ll_minor, "%s"); - __HAL_AUX_ENTRY("ll_fix", about_info.ll_fix, "%s"); - __HAL_AUX_ENTRY("ll_build", about_info.ll_build, "%s"); - - __HAL_AUX_ENTRY("transponder_temperature", - about_info.transponder_temperature, "%d C"); - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_stats_tmac_read - Read TMAC hardware statistics. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read TMAC hardware statistics. This is a subset of stats counters - * from xge_hal_stats_hw_info_t{}. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_mgmt_hw_stats{}, xge_hal_stats_hw_info_t{}, - * xge_hal_aux_stats_pci_read(), - * xge_hal_aux_device_dump(). - */ -xge_hal_status_e xge_hal_aux_stats_tmac_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize) -{ - xge_hal_status_e status; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - if (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN) { - xge_hal_mgmt_hw_stats_t hw; - - status = xge_hal_mgmt_hw_stats(devh, &hw, - sizeof(xge_hal_mgmt_hw_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - - __HAL_AUX_ENTRY("tmac_data_octets", hw.tmac_data_octets, "%u"); - __HAL_AUX_ENTRY("tmac_frms", hw.tmac_frms, "%u"); - __HAL_AUX_ENTRY("tmac_drop_frms", (unsigned long long) - hw.tmac_drop_frms, "%llu"); - __HAL_AUX_ENTRY("tmac_bcst_frms", hw.tmac_bcst_frms, "%u"); - __HAL_AUX_ENTRY("tmac_mcst_frms", hw.tmac_mcst_frms, "%u"); - __HAL_AUX_ENTRY("tmac_pause_ctrl_frms", (unsigned long long) - hw.tmac_pause_ctrl_frms, "%llu"); - __HAL_AUX_ENTRY("tmac_ucst_frms", hw.tmac_ucst_frms, "%u"); - __HAL_AUX_ENTRY("tmac_ttl_octets", hw.tmac_ttl_octets, "%u"); - __HAL_AUX_ENTRY("tmac_any_err_frms", hw.tmac_any_err_frms, "%u"); - __HAL_AUX_ENTRY("tmac_nucst_frms", hw.tmac_nucst_frms, "%u"); - __HAL_AUX_ENTRY("tmac_ttl_less_fb_octets", (unsigned long long) - hw.tmac_ttl_less_fb_octets, "%llu"); - __HAL_AUX_ENTRY("tmac_vld_ip_octets", (unsigned long long) - hw.tmac_vld_ip_octets, "%llu"); - __HAL_AUX_ENTRY("tmac_drop_ip", hw.tmac_drop_ip, "%u"); - __HAL_AUX_ENTRY("tmac_vld_ip", hw.tmac_vld_ip, "%u"); - __HAL_AUX_ENTRY("tmac_rst_tcp", hw.tmac_rst_tcp, "%u"); - __HAL_AUX_ENTRY("tmac_icmp", hw.tmac_icmp, "%u"); - __HAL_AUX_ENTRY("tmac_tcp", (unsigned long long) - hw.tmac_tcp, "%llu"); - __HAL_AUX_ENTRY("reserved_0", hw.reserved_0, "%u"); - __HAL_AUX_ENTRY("tmac_udp", hw.tmac_udp, "%u"); - } else { - int i; - xge_hal_mgmt_pcim_stats_t pcim; - status = xge_hal_mgmt_pcim_stats(devh, &pcim, - sizeof(xge_hal_mgmt_pcim_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - - for (i = 0; i < XGE_HAL_MAC_LINKS; i++) { - __hal_aux_pci_link_info("tx_frms", i, - tx_frms); - __hal_aux_pci_link_info("tx_ttl_eth_octets", - i, tx_ttl_eth_octets ); - __hal_aux_pci_link_info("tx_data_octets", i, - tx_data_octets); - __hal_aux_pci_link_info("tx_mcst_frms", i, - tx_mcst_frms); - __hal_aux_pci_link_info("tx_bcst_frms", i, - tx_bcst_frms); - __hal_aux_pci_link_info("tx_ucst_frms", i, - tx_ucst_frms); - __hal_aux_pci_link_info("tx_tagged_frms", i, - tx_tagged_frms); - __hal_aux_pci_link_info("tx_vld_ip", i, - tx_vld_ip); - __hal_aux_pci_link_info("tx_vld_ip_octets", i, - tx_vld_ip_octets); - __hal_aux_pci_link_info("tx_icmp", i, - tx_icmp); - __hal_aux_pci_link_info("tx_tcp", i, - tx_tcp); - __hal_aux_pci_link_info("tx_rst_tcp", i, - tx_rst_tcp); - __hal_aux_pci_link_info("tx_udp", i, - tx_udp); - __hal_aux_pci_link_info("tx_unknown_protocol", i, - tx_unknown_protocol); - __hal_aux_pci_link_info("tx_parse_error", i, - tx_parse_error); - __hal_aux_pci_link_info("tx_pause_ctrl_frms", i, - tx_pause_ctrl_frms); - __hal_aux_pci_link_info("tx_lacpdu_frms", i, - tx_lacpdu_frms); - __hal_aux_pci_link_info("tx_marker_pdu_frms", i, - tx_marker_pdu_frms); - __hal_aux_pci_link_info("tx_marker_resp_pdu_frms", i, - tx_marker_resp_pdu_frms); - __hal_aux_pci_link_info("tx_drop_ip", i, - tx_drop_ip); - __hal_aux_pci_link_info("tx_xgmii_char1_match", i, - tx_xgmii_char1_match); - __hal_aux_pci_link_info("tx_xgmii_char2_match", i, - tx_xgmii_char2_match); - __hal_aux_pci_link_info("tx_xgmii_column1_match", i, - tx_xgmii_column1_match); - __hal_aux_pci_link_info("tx_xgmii_column2_match", i, - tx_xgmii_column2_match); - __hal_aux_pci_link_info("tx_drop_frms", i, - tx_drop_frms); - __hal_aux_pci_link_info("tx_any_err_frms", i, - tx_any_err_frms); - } - - for (i = 0; i < XGE_HAL_MAC_AGGREGATORS; i++) { - __hal_aux_pci_aggr_info("tx_frms", i, tx_frms); - __hal_aux_pci_aggr_info("tx_mcst_frms", i, - tx_mcst_frms); - __hal_aux_pci_aggr_info("tx_bcst_frms", i, - tx_bcst_frms); - __hal_aux_pci_aggr_info("tx_discarded_frms", i, - tx_discarded_frms); - __hal_aux_pci_aggr_info("tx_errored_frms", i, - tx_errored_frms); - } - } - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_stats_rmac_read - Read RMAC hardware statistics. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read RMAC hardware statistics. This is a subset of stats counters - * from xge_hal_stats_hw_info_t{}. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_mgmt_hw_stats{}, xge_hal_stats_hw_info_t{}, - * xge_hal_aux_stats_pci_read(), xge_hal_aux_stats_tmac_read(), - * xge_hal_aux_device_dump(). - */ -xge_hal_status_e xge_hal_aux_stats_rmac_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize) -{ - xge_hal_status_e status; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - if (xge_hal_device_check_id(hldev) != XGE_HAL_CARD_TITAN) { - xge_hal_mgmt_hw_stats_t hw; - - status = xge_hal_mgmt_hw_stats(devh, &hw, - sizeof(xge_hal_mgmt_hw_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - - __HAL_AUX_ENTRY("rmac_data_octets", hw.rmac_data_octets, "%u"); - __HAL_AUX_ENTRY("rmac_vld_frms", hw.rmac_vld_frms, "%u"); - __HAL_AUX_ENTRY("rmac_fcs_err_frms", (unsigned long long) - hw.rmac_fcs_err_frms, "%llu"); - __HAL_AUX_ENTRY("mac_drop_frms", (unsigned long long) - hw.rmac_drop_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_vld_bcst_frms", hw.rmac_vld_bcst_frms, - "%u"); - __HAL_AUX_ENTRY("rmac_vld_mcst_frms", hw.rmac_vld_mcst_frms, - "%u"); - __HAL_AUX_ENTRY("rmac_out_rng_len_err_frms", - hw.rmac_out_rng_len_err_frms, "%u"); - __HAL_AUX_ENTRY("rmac_in_rng_len_err_frms", - hw.rmac_in_rng_len_err_frms, "%u"); - __HAL_AUX_ENTRY("rmac_long_frms", (unsigned long long) - hw.rmac_long_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_pause_ctrl_frms", (unsigned long long) - hw.rmac_pause_ctrl_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_unsup_ctrl_frms", (unsigned long long) - hw.rmac_unsup_ctrl_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_accepted_ucst_frms", - hw.rmac_accepted_ucst_frms, "%u"); - __HAL_AUX_ENTRY("rmac_ttl_octets", hw.rmac_ttl_octets, "%u"); - __HAL_AUX_ENTRY("rmac_discarded_frms", hw.rmac_discarded_frms, - "%u"); - __HAL_AUX_ENTRY("rmac_accepted_nucst_frms", - hw.rmac_accepted_nucst_frms, "%u"); - __HAL_AUX_ENTRY("reserved_1", hw.reserved_1, "%u"); - __HAL_AUX_ENTRY("rmac_drop_events", hw.rmac_drop_events, "%u"); - __HAL_AUX_ENTRY("rmac_ttl_less_fb_octets", (unsigned long long) - hw.rmac_ttl_less_fb_octets, "%llu"); - __HAL_AUX_ENTRY("rmac_ttl_frms", (unsigned long long) - hw.rmac_ttl_frms, "%llu"); - __HAL_AUX_ENTRY("reserved_2", (unsigned long long) - hw.reserved_2, "%llu"); - __HAL_AUX_ENTRY("rmac_usized_frms", hw.rmac_usized_frms, "%u"); - __HAL_AUX_ENTRY("reserved_3", hw.reserved_3, "%u"); - __HAL_AUX_ENTRY("rmac_frag_frms", hw.rmac_frag_frms, "%u"); - __HAL_AUX_ENTRY("rmac_osized_frms", hw.rmac_osized_frms, "%u"); - __HAL_AUX_ENTRY("reserved_4", hw.reserved_4, "%u"); - __HAL_AUX_ENTRY("rmac_jabber_frms", hw.rmac_jabber_frms, "%u"); - __HAL_AUX_ENTRY("rmac_ttl_64_frms", (unsigned long long) - hw.rmac_ttl_64_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_ttl_65_127_frms", (unsigned long long) - hw.rmac_ttl_65_127_frms, "%llu"); - __HAL_AUX_ENTRY("reserved_5", (unsigned long long) - hw.reserved_5, "%llu"); - __HAL_AUX_ENTRY("rmac_ttl_128_255_frms", (unsigned long long) - hw.rmac_ttl_128_255_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_ttl_256_511_frms", (unsigned long long) - hw.rmac_ttl_256_511_frms, "%llu"); - __HAL_AUX_ENTRY("reserved_6", (unsigned long long) - hw.reserved_6, "%llu"); - __HAL_AUX_ENTRY("rmac_ttl_512_1023_frms", (unsigned long long) - hw.rmac_ttl_512_1023_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_ttl_1024_1518_frms", (unsigned long long) - hw.rmac_ttl_1024_1518_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_ip", hw.rmac_ip, "%u"); - __HAL_AUX_ENTRY("reserved_7", hw.reserved_7, "%u"); - __HAL_AUX_ENTRY("rmac_ip_octets", (unsigned long long) - hw.rmac_ip_octets, "%llu"); - __HAL_AUX_ENTRY("rmac_drop_ip", hw.rmac_drop_ip, "%u"); - __HAL_AUX_ENTRY("rmac_hdr_err_ip", hw.rmac_hdr_err_ip, "%u"); - __HAL_AUX_ENTRY("reserved_8", hw.reserved_8, "%u"); - __HAL_AUX_ENTRY("rmac_icmp", hw.rmac_icmp, "%u"); - __HAL_AUX_ENTRY("rmac_tcp", (unsigned long long) - hw.rmac_tcp, "%llu"); - __HAL_AUX_ENTRY("rmac_err_drp_udp", hw.rmac_err_drp_udp, "%u"); - __HAL_AUX_ENTRY("rmac_udp", hw.rmac_udp, "%u"); - __HAL_AUX_ENTRY("rmac_xgmii_err_sym", (unsigned long long) - hw.rmac_xgmii_err_sym, "%llu"); - __HAL_AUX_ENTRY("rmac_frms_q0", (unsigned long long) - hw.rmac_frms_q0, "%llu"); - __HAL_AUX_ENTRY("rmac_frms_q1", (unsigned long long) - hw.rmac_frms_q1, "%llu"); - __HAL_AUX_ENTRY("rmac_frms_q2", (unsigned long long) - hw.rmac_frms_q2, "%llu"); - __HAL_AUX_ENTRY("rmac_frms_q3", (unsigned long long) - hw.rmac_frms_q3, "%llu"); - __HAL_AUX_ENTRY("rmac_frms_q4", (unsigned long long) - hw.rmac_frms_q4, "%llu"); - __HAL_AUX_ENTRY("rmac_frms_q5", (unsigned long long) - hw.rmac_frms_q5, "%llu"); - __HAL_AUX_ENTRY("rmac_frms_q6", (unsigned long long) - hw.rmac_frms_q6, "%llu"); - __HAL_AUX_ENTRY("rmac_frms_q7", (unsigned long long) - hw.rmac_frms_q7, "%llu"); - __HAL_AUX_ENTRY("rmac_full_q3", hw.rmac_full_q3, "%d"); - __HAL_AUX_ENTRY("rmac_full_q2", hw.rmac_full_q2, "%d"); - __HAL_AUX_ENTRY("rmac_full_q1", hw.rmac_full_q1, "%d"); - __HAL_AUX_ENTRY("rmac_full_q0", hw.rmac_full_q0, "%d"); - __HAL_AUX_ENTRY("rmac_full_q7", hw.rmac_full_q7, "%d"); - __HAL_AUX_ENTRY("rmac_full_q6", hw.rmac_full_q6, "%d"); - __HAL_AUX_ENTRY("rmac_full_q5", hw.rmac_full_q5, "%d"); - __HAL_AUX_ENTRY("rmac_full_q4", hw.rmac_full_q4, "%d"); - __HAL_AUX_ENTRY("reserved_9", hw.reserved_9, "%u"); - __HAL_AUX_ENTRY("rmac_pause_cnt", hw.rmac_pause_cnt, "%u"); - __HAL_AUX_ENTRY("rmac_xgmii_data_err_cnt", (unsigned long long) - hw.rmac_xgmii_data_err_cnt, "%llu"); - __HAL_AUX_ENTRY("rmac_xgmii_ctrl_err_cnt", (unsigned long long) - hw.rmac_xgmii_ctrl_err_cnt, "%llu"); - __HAL_AUX_ENTRY("rmac_err_tcp", hw.rmac_err_tcp, "%u"); - __HAL_AUX_ENTRY("rmac_accepted_ip", hw.rmac_accepted_ip, "%u"); - } else { - int i; - xge_hal_mgmt_pcim_stats_t pcim; - status = xge_hal_mgmt_pcim_stats(devh, &pcim, - sizeof(xge_hal_mgmt_pcim_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - for (i = 0; i < XGE_HAL_MAC_LINKS; i++) { - __hal_aux_pci_link_info("rx_ttl_frms", i, - rx_ttl_frms); - __hal_aux_pci_link_info("rx_vld_frms", i, - rx_vld_frms); - __hal_aux_pci_link_info("rx_offld_frms", i, - rx_offld_frms); - __hal_aux_pci_link_info("rx_ttl_eth_octets", i, - rx_ttl_eth_octets); - __hal_aux_pci_link_info("rx_data_octets", i, - rx_data_octets); - __hal_aux_pci_link_info("rx_offld_octets", i, - rx_offld_octets); - __hal_aux_pci_link_info("rx_vld_mcst_frms", i, - rx_vld_mcst_frms); - __hal_aux_pci_link_info("rx_vld_bcst_frms", i, - rx_vld_bcst_frms); - __hal_aux_pci_link_info("rx_accepted_ucst_frms", i, - rx_accepted_ucst_frms); - __hal_aux_pci_link_info("rx_accepted_nucst_frms", i, - rx_accepted_nucst_frms); - __hal_aux_pci_link_info("rx_tagged_frms", i, - rx_tagged_frms); - __hal_aux_pci_link_info("rx_long_frms", i, - rx_long_frms); - __hal_aux_pci_link_info("rx_usized_frms", i, - rx_usized_frms); - __hal_aux_pci_link_info("rx_osized_frms", i, - rx_osized_frms); - __hal_aux_pci_link_info("rx_frag_frms", i, - rx_frag_frms); - __hal_aux_pci_link_info("rx_jabber_frms", i, - rx_jabber_frms); - __hal_aux_pci_link_info("rx_ttl_64_frms", i, - rx_ttl_64_frms); - __hal_aux_pci_link_info("rx_ttl_65_127_frms", i, - rx_ttl_65_127_frms); - __hal_aux_pci_link_info("rx_ttl_128_255_frms", i, - rx_ttl_128_255_frms); - __hal_aux_pci_link_info("rx_ttl_256_511_frms", i, - rx_ttl_256_511_frms); - __hal_aux_pci_link_info("rx_ttl_512_1023_frms", i, - rx_ttl_512_1023_frms); - __hal_aux_pci_link_info("rx_ttl_1024_1518_frms", i, - rx_ttl_1024_1518_frms); - __hal_aux_pci_link_info("rx_ttl_1519_4095_frms", i, - rx_ttl_1519_4095_frms); - __hal_aux_pci_link_info("rx_ttl_40956_8191_frms", i, - rx_ttl_40956_8191_frms); - __hal_aux_pci_link_info("rx_ttl_8192_max_frms", i, - rx_ttl_8192_max_frms); - __hal_aux_pci_link_info("rx_ttl_gt_max_frms", i, - rx_ttl_gt_max_frms); - __hal_aux_pci_link_info("rx_ip", i, - rx_ip); - __hal_aux_pci_link_info("rx_ip_octets", i, - rx_ip_octets); - - __hal_aux_pci_link_info("rx_hdr_err_ip", i, - rx_hdr_err_ip); - - __hal_aux_pci_link_info("rx_icmp", i, - rx_icmp); - __hal_aux_pci_link_info("rx_tcp", i, - rx_tcp); - __hal_aux_pci_link_info("rx_udp", i, - rx_udp); - __hal_aux_pci_link_info("rx_err_tcp", i, - rx_err_tcp); - __hal_aux_pci_link_info("rx_pause_cnt", i, - rx_pause_cnt); - __hal_aux_pci_link_info("rx_pause_ctrl_frms", i, - rx_pause_ctrl_frms); - __hal_aux_pci_link_info("rx_unsup_ctrl_frms", i, - rx_pause_cnt); - __hal_aux_pci_link_info("rx_in_rng_len_err_frms", i, - rx_in_rng_len_err_frms); - __hal_aux_pci_link_info("rx_out_rng_len_err_frms", i, - rx_out_rng_len_err_frms); - __hal_aux_pci_link_info("rx_drop_frms", i, - rx_drop_frms); - __hal_aux_pci_link_info("rx_discarded_frms", i, - rx_discarded_frms); - __hal_aux_pci_link_info("rx_drop_ip", i, - rx_drop_ip); - __hal_aux_pci_link_info("rx_err_drp_udp", i, - rx_err_drp_udp); - __hal_aux_pci_link_info("rx_lacpdu_frms", i, - rx_lacpdu_frms); - __hal_aux_pci_link_info("rx_marker_pdu_frms", i, - rx_marker_pdu_frms); - __hal_aux_pci_link_info("rx_marker_resp_pdu_frms", i, - rx_marker_resp_pdu_frms); - __hal_aux_pci_link_info("rx_unknown_pdu_frms", i, - rx_unknown_pdu_frms); - __hal_aux_pci_link_info("rx_illegal_pdu_frms", i, - rx_illegal_pdu_frms); - __hal_aux_pci_link_info("rx_fcs_discard", i, - rx_fcs_discard); - __hal_aux_pci_link_info("rx_len_discard", i, - rx_len_discard); - __hal_aux_pci_link_info("rx_pf_discard", i, - rx_pf_discard); - __hal_aux_pci_link_info("rx_trash_discard", i, - rx_trash_discard); - __hal_aux_pci_link_info("rx_rts_discard", i, - rx_trash_discard); - __hal_aux_pci_link_info("rx_wol_discard", i, - rx_wol_discard); - __hal_aux_pci_link_info("rx_red_discard", i, - rx_red_discard); - __hal_aux_pci_link_info("rx_ingm_full_discard", i, - rx_ingm_full_discard); - __hal_aux_pci_link_info("rx_xgmii_data_err_cnt", i, - rx_xgmii_data_err_cnt); - __hal_aux_pci_link_info("rx_xgmii_ctrl_err_cnt", i, - rx_xgmii_ctrl_err_cnt); - __hal_aux_pci_link_info("rx_xgmii_err_sym", i, - rx_xgmii_err_sym); - __hal_aux_pci_link_info("rx_xgmii_char1_match", i, - rx_xgmii_char1_match); - __hal_aux_pci_link_info("rx_xgmii_char2_match", i, - rx_xgmii_char2_match); - __hal_aux_pci_link_info("rx_xgmii_column1_match", i, - rx_xgmii_column1_match); - __hal_aux_pci_link_info("rx_xgmii_column2_match", i, - rx_xgmii_column2_match); - __hal_aux_pci_link_info("rx_local_fault", i, - rx_local_fault); - __hal_aux_pci_link_info("rx_remote_fault", i, - rx_remote_fault); - __hal_aux_pci_link_info("rx_queue_full", i, - rx_queue_full); - } - for (i = 0; i < XGE_HAL_MAC_AGGREGATORS; i++) { - __hal_aux_pci_aggr_info("rx_frms", i, rx_frms); - __hal_aux_pci_link_info("rx_data_octets", i, - rx_data_octets); - __hal_aux_pci_aggr_info("rx_mcst_frms", i, - rx_mcst_frms); - __hal_aux_pci_aggr_info("rx_bcst_frms", i, - rx_bcst_frms); - __hal_aux_pci_aggr_info("rx_discarded_frms", i, - rx_discarded_frms); - __hal_aux_pci_aggr_info("rx_errored_frms", i, - rx_errored_frms); - __hal_aux_pci_aggr_info("rx_unknown_protocol_frms", i, - rx_unknown_protocol_frms); - } - - } - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_stats_herc_enchanced - Get Hercules hardware statistics. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read Hercules device hardware statistics. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_mgmt_hw_stats{}, xge_hal_stats_hw_info_t{}, - * xge_hal_aux_stats_tmac_read(), xge_hal_aux_stats_rmac_read(), - * xge_hal_aux_device_dump(). -*/ -xge_hal_status_e xge_hal_aux_stats_herc_enchanced(xge_hal_device_h devh, - int bufsize, char *retbuf, int *retsize) -{ - xge_hal_status_e status; - xge_hal_mgmt_hw_stats_t hw; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_TITAN) { - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; - } - - - status = xge_hal_mgmt_hw_stats(devh, &hw, - sizeof(xge_hal_mgmt_hw_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - __HAL_AUX_ENTRY("tmac_frms_oflow", hw.tmac_frms_oflow, "%u"); - __HAL_AUX_ENTRY("tmac_data_octets_oflow", hw.tmac_data_octets_oflow, - "%u"); - __HAL_AUX_ENTRY("tmac_mcst_frms_oflow", hw.tmac_mcst_frms_oflow, "%u"); - __HAL_AUX_ENTRY("tmac_bcst_frms_oflow", hw.tmac_bcst_frms_oflow, "%u"); - __HAL_AUX_ENTRY("tmac_ttl_octets_oflow", hw.tmac_ttl_octets_oflow, - "%u"); - __HAL_AUX_ENTRY("tmac_ucst_frms_oflow", hw.tmac_ucst_frms_oflow, "%u"); - __HAL_AUX_ENTRY("tmac_nucst_frms_oflow", hw.tmac_nucst_frms_oflow, - "%u"); - __HAL_AUX_ENTRY("tmac_any_err_frms_oflow", hw.tmac_any_err_frms_oflow, - "%u"); - __HAL_AUX_ENTRY("tmac_vlan_frms", (unsigned long long)hw.tmac_vlan_frms, - "%llu"); - __HAL_AUX_ENTRY("tmac_vld_ip_oflow", hw.tmac_vld_ip_oflow, "%u"); - __HAL_AUX_ENTRY("tmac_drop_ip_oflow", hw.tmac_drop_ip_oflow, "%u"); - __HAL_AUX_ENTRY("tmac_icmp_oflow", hw.tmac_icmp_oflow, "%u"); - __HAL_AUX_ENTRY("tmac_rst_tcp_oflow", hw.tmac_rst_tcp_oflow, "%u"); - __HAL_AUX_ENTRY("tmac_udp_oflow", hw.tmac_udp_oflow, "%u"); - __HAL_AUX_ENTRY("tpa_unknown_protocol", hw.tpa_unknown_protocol, "%u"); - __HAL_AUX_ENTRY("tpa_parse_failure", hw.tpa_parse_failure, "%u"); - __HAL_AUX_ENTRY("rmac_vld_frms_oflow", hw.rmac_vld_frms_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_data_octets_oflow", hw.rmac_data_octets_oflow, - "%u"); - __HAL_AUX_ENTRY("rmac_vld_mcst_frms_oflow", hw.rmac_vld_mcst_frms_oflow, - "%u"); - __HAL_AUX_ENTRY("rmac_vld_bcst_frms_oflow", hw.rmac_vld_bcst_frms_oflow, - "%u"); - __HAL_AUX_ENTRY("rmac_ttl_octets_oflow", hw.rmac_ttl_octets_oflow, - "%u"); - __HAL_AUX_ENTRY("rmac_accepted_ucst_frms_oflow", - hw.rmac_accepted_ucst_frms_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_accepted_nucst_frms_oflow", - hw.rmac_accepted_nucst_frms_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_discarded_frms_oflow", - hw.rmac_discarded_frms_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_drop_events_oflow", hw.rmac_drop_events_oflow, - "%u"); - __HAL_AUX_ENTRY("rmac_usized_frms_oflow", hw.rmac_usized_frms_oflow, - "%u"); - __HAL_AUX_ENTRY("rmac_osized_frms_oflow", hw.rmac_osized_frms_oflow, - "%u"); - __HAL_AUX_ENTRY("rmac_frag_frms_oflow", hw.rmac_frag_frms_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_jabber_frms_oflow", hw.rmac_jabber_frms_oflow, - "%u"); - __HAL_AUX_ENTRY("rmac_ip_oflow", hw.rmac_ip_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_drop_ip_oflow", hw.rmac_drop_ip_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_icmp_oflow", hw.rmac_icmp_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_udp_oflow", hw.rmac_udp_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_err_drp_udp_oflow", hw.rmac_err_drp_udp_oflow, - "%u"); - __HAL_AUX_ENTRY("rmac_pause_cnt_oflow", hw.rmac_pause_cnt_oflow, "%u"); - __HAL_AUX_ENTRY("rmac_ttl_1519_4095_frms", - (unsigned long long)hw.rmac_ttl_1519_4095_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_ttl_4096_8191_frms", - (unsigned long long)hw.rmac_ttl_4096_8191_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_ttl_8192_max_frms", - (unsigned long long)hw.rmac_ttl_8192_max_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_ttl_gt_max_frms", - (unsigned long long)hw.rmac_ttl_gt_max_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_osized_alt_frms", - (unsigned long long)hw.rmac_osized_alt_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_jabber_alt_frms", - (unsigned long long)hw.rmac_jabber_alt_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_gt_max_alt_frms", - (unsigned long long)hw.rmac_gt_max_alt_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_vlan_frms", - (unsigned long long)hw.rmac_vlan_frms, "%llu"); - __HAL_AUX_ENTRY("rmac_fcs_discard", hw.rmac_fcs_discard, "%u"); - __HAL_AUX_ENTRY("rmac_len_discard", hw.rmac_len_discard, "%u"); - __HAL_AUX_ENTRY("rmac_da_discard", hw.rmac_da_discard, "%u"); - __HAL_AUX_ENTRY("rmac_pf_discard", hw.rmac_pf_discard, "%u"); - __HAL_AUX_ENTRY("rmac_rts_discard", hw.rmac_rts_discard, "%u"); - __HAL_AUX_ENTRY("rmac_red_discard", hw.rmac_red_discard, "%u"); - __HAL_AUX_ENTRY("rmac_ingm_full_discard", hw.rmac_ingm_full_discard, - "%u"); - __HAL_AUX_ENTRY("rmac_accepted_ip_oflow", hw.rmac_accepted_ip_oflow, - "%u"); - __HAL_AUX_ENTRY("link_fault_cnt", hw.link_fault_cnt, "%u"); - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_stats_rmac_read - Read PCI hardware statistics. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read PCI statistics counters, including number of PCI read and - * write transactions, PCI retries, discards, etc. - * This is a subset of stats counters from xge_hal_stats_hw_info_t{}. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_mgmt_hw_stats{}, xge_hal_stats_hw_info_t{}, - * xge_hal_aux_stats_tmac_read(), xge_hal_aux_stats_rmac_read(), - * xge_hal_aux_device_dump(). - */ -xge_hal_status_e xge_hal_aux_stats_pci_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize) -{ - xge_hal_status_e status; - xge_hal_mgmt_hw_stats_t hw; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_TITAN) { - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; - } - - - status = xge_hal_mgmt_hw_stats(devh, &hw, - sizeof(xge_hal_mgmt_hw_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - - __HAL_AUX_ENTRY("new_rd_req_cnt", hw.new_rd_req_cnt, "%u"); - __HAL_AUX_ENTRY("rd_req_cnt", hw.rd_req_cnt, "%u"); - __HAL_AUX_ENTRY("rd_rtry_cnt", hw.rd_rtry_cnt, "%u"); - __HAL_AUX_ENTRY("new_rd_req_rtry_cnt", hw.new_rd_req_rtry_cnt, "%u"); - __HAL_AUX_ENTRY("wr_req_cnt", hw.wr_req_cnt, "%u"); - __HAL_AUX_ENTRY("wr_rtry_rd_ack_cnt", hw.wr_rtry_rd_ack_cnt, "%u"); - __HAL_AUX_ENTRY("new_wr_req_rtry_cnt", hw.new_wr_req_rtry_cnt, "%u"); - __HAL_AUX_ENTRY("new_wr_req_cnt", hw.new_wr_req_cnt, "%u"); - __HAL_AUX_ENTRY("wr_disc_cnt", hw.wr_disc_cnt, "%u"); - __HAL_AUX_ENTRY("wr_rtry_cnt", hw.wr_rtry_cnt, "%u"); - __HAL_AUX_ENTRY("txp_wr_cnt", hw.txp_wr_cnt, "%u"); - __HAL_AUX_ENTRY("rd_rtry_wr_ack_cnt", hw.rd_rtry_wr_ack_cnt, "%u"); - __HAL_AUX_ENTRY("txd_wr_cnt", hw.txd_wr_cnt, "%u"); - __HAL_AUX_ENTRY("txd_rd_cnt", hw.txd_rd_cnt, "%u"); - __HAL_AUX_ENTRY("rxd_wr_cnt", hw.rxd_wr_cnt, "%u"); - __HAL_AUX_ENTRY("rxd_rd_cnt", hw.rxd_rd_cnt, "%u"); - __HAL_AUX_ENTRY("rxf_wr_cnt", hw.rxf_wr_cnt, "%u"); - __HAL_AUX_ENTRY("txf_rd_cnt", hw.txf_rd_cnt, "%u"); - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_stats_hal_read - Read HAL (layer) statistics. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read HAL statistics. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not - * currently available. - * - * See also: xge_hal_aux_device_dump(). - */ -xge_hal_status_e xge_hal_aux_stats_hal_read(xge_hal_device_h devh, - int bufsize, char *retbuf, int *retsize) -{ - xge_list_t *item; - xge_hal_channel_t *channel; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_status_e status; - xge_hal_mgmt_device_stats_t devstat; - xge_hal_mgmt_channel_stats_t chstat; - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - status = xge_hal_mgmt_device_stats(hldev, &devstat, - sizeof(xge_hal_mgmt_device_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - - if (!hldev->config.bimodal_interrupts) { - __HAL_AUX_ENTRY("rx_traffic_intr_cnt", - devstat.rx_traffic_intr_cnt, "%u"); - } - __HAL_AUX_ENTRY("tx_traffic_intr_cnt", devstat.tx_traffic_intr_cnt, "%u"); - __HAL_AUX_ENTRY("txpic_intr_cnt", devstat.txpic_intr_cnt, "%u"); - __HAL_AUX_ENTRY("txdma_intr_cnt", devstat.txdma_intr_cnt, "%u"); - __HAL_AUX_ENTRY("txmac_intr_cnt", devstat.txmac_intr_cnt, "%u"); - __HAL_AUX_ENTRY("txxgxs_intr_cnt", devstat.txxgxs_intr_cnt, "%u"); - __HAL_AUX_ENTRY("rxpic_intr_cnt", devstat.rxpic_intr_cnt, "%u"); - __HAL_AUX_ENTRY("rxdma_intr_cnt", devstat.rxdma_intr_cnt, "%u"); - __HAL_AUX_ENTRY("rxmac_intr_cnt", devstat.rxmac_intr_cnt, "%u"); - __HAL_AUX_ENTRY("rxxgxs_intr_cnt", devstat.rxxgxs_intr_cnt, "%u"); - __HAL_AUX_ENTRY("mc_intr_cnt", devstat.mc_intr_cnt, "%u"); - __HAL_AUX_ENTRY("not_xge_intr_cnt", devstat.not_xge_intr_cnt, "%u"); - __HAL_AUX_ENTRY("not_traffic_intr_cnt", - devstat.not_traffic_intr_cnt, "%u"); - __HAL_AUX_ENTRY("traffic_intr_cnt", devstat.traffic_intr_cnt, "%u"); - __HAL_AUX_ENTRY("total_intr_cnt", devstat.total_intr_cnt, "%u"); - __HAL_AUX_ENTRY("soft_reset_cnt", devstat.soft_reset_cnt, "%u"); - - if (hldev->config.rxufca_hi_lim != hldev->config.rxufca_lo_lim && - hldev->config.rxufca_lo_lim != 0) { - __HAL_AUX_ENTRY("rxufca_lo_adjust_cnt", - devstat.rxufca_lo_adjust_cnt, "%u"); - __HAL_AUX_ENTRY("rxufca_hi_adjust_cnt", - devstat.rxufca_hi_adjust_cnt, "%u"); - } - - if (hldev->config.bimodal_interrupts) { - __HAL_AUX_ENTRY("bimodal_lo_adjust_cnt", - devstat.bimodal_lo_adjust_cnt, "%u"); - __HAL_AUX_ENTRY("bimodal_hi_adjust_cnt", - devstat.bimodal_hi_adjust_cnt, "%u"); - } - -#if defined(XGE_HAL_CONFIG_LRO) - __HAL_AUX_ENTRY("tot_frms_lroised", - devstat.tot_frms_lroised, "%u"); - __HAL_AUX_ENTRY("tot_lro_sessions", - devstat.tot_lro_sessions, "%u"); - __HAL_AUX_ENTRY("lro_frm_len_exceed_cnt", - devstat.lro_frm_len_exceed_cnt, "%u"); - __HAL_AUX_ENTRY("lro_sg_exceed_cnt", - devstat.lro_sg_exceed_cnt, "%u"); - __HAL_AUX_ENTRY("lro_out_of_seq_pkt_cnt", - devstat.lro_out_of_seq_pkt_cnt, "%u"); - __HAL_AUX_ENTRY("lro_dup_pkt_cnt", - devstat.lro_dup_pkt_cnt, "%u"); -#endif - - /* for each opened rx channel */ - xge_list_for_each(item, &hldev->ring_channels) { - char key[XGE_OS_SPRINTF_STRLEN]; - channel = xge_container_of(item, xge_hal_channel_t, item); - - status = xge_hal_mgmt_channel_stats(channel, &chstat, - sizeof(xge_hal_mgmt_channel_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - - (void) xge_os_sprintf(key, "ring%d_", channel->post_qid); - - xge_os_strcpy(key+6, "full_cnt"); - __HAL_AUX_ENTRY(key, chstat.full_cnt, "%u"); - xge_os_strcpy(key+6, "usage_max"); - __HAL_AUX_ENTRY(key, chstat.usage_max, "%u"); - xge_os_strcpy(key+6, "usage_cnt"); - __HAL_AUX_ENTRY(key, channel->usage_cnt, "%u"); - xge_os_strcpy(key+6, "reserve_free_swaps_cnt"); - __HAL_AUX_ENTRY(key, chstat.reserve_free_swaps_cnt, "%u"); - if (!hldev->config.bimodal_interrupts) { - xge_os_strcpy(key+6, "avg_compl_per_intr_cnt"); - __HAL_AUX_ENTRY(key, chstat.avg_compl_per_intr_cnt, "%u"); - } - xge_os_strcpy(key+6, "total_compl_cnt"); - __HAL_AUX_ENTRY(key, chstat.total_compl_cnt, "%u"); - xge_os_strcpy(key+6, "bump_cnt"); - __HAL_AUX_ENTRY(key, chstat.ring_bump_cnt, "%u"); - } - - /* for each opened tx channel */ - xge_list_for_each(item, &hldev->fifo_channels) { - char key[XGE_OS_SPRINTF_STRLEN]; - channel = xge_container_of(item, xge_hal_channel_t, item); - - status = xge_hal_mgmt_channel_stats(channel, &chstat, - sizeof(xge_hal_mgmt_channel_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - - (void) xge_os_sprintf(key, "fifo%d_", channel->post_qid); - - xge_os_strcpy(key+6, "full_cnt"); - __HAL_AUX_ENTRY(key, chstat.full_cnt, "%u"); - xge_os_strcpy(key+6, "usage_max"); - __HAL_AUX_ENTRY(key, chstat.usage_max, "%u"); - xge_os_strcpy(key+6, "usage_cnt"); - __HAL_AUX_ENTRY(key, channel->usage_cnt, "%u"); - xge_os_strcpy(key+6, "reserve_free_swaps_cnt"); - __HAL_AUX_ENTRY(key, chstat.reserve_free_swaps_cnt, "%u"); - xge_os_strcpy(key+6, "avg_compl_per_intr_cnt"); - __HAL_AUX_ENTRY(key, chstat.avg_compl_per_intr_cnt, "%u"); - xge_os_strcpy(key+6, "total_compl_cnt"); - __HAL_AUX_ENTRY(key, chstat.total_compl_cnt, "%u"); - xge_os_strcpy(key+6, "total_posts"); - __HAL_AUX_ENTRY(key, chstat.total_posts, "%u"); - xge_os_strcpy(key+6, "total_posts_many"); - __HAL_AUX_ENTRY(key, chstat.total_posts_many, "%u"); - xge_os_strcpy(key+6, "copied_frags"); - __HAL_AUX_ENTRY(key, chstat.copied_frags, "%u"); - xge_os_strcpy(key+6, "copied_buffers"); - __HAL_AUX_ENTRY(key, chstat.copied_buffers, "%u"); - xge_os_strcpy(key+6, "total_buffers"); - __HAL_AUX_ENTRY(key, chstat.total_buffers, "%u"); - xge_os_strcpy(key+6, "avg_buffers_per_post"); - __HAL_AUX_ENTRY(key, chstat.avg_buffers_per_post, "%u"); - xge_os_strcpy(key+6, "avg_buffer_size"); - __HAL_AUX_ENTRY(key, chstat.avg_buffer_size, "%u"); - xge_os_strcpy(key+6, "avg_post_size"); - __HAL_AUX_ENTRY(key, chstat.avg_post_size, "%u"); - xge_os_strcpy(key+6, "total_posts_dtrs_many"); - __HAL_AUX_ENTRY(key, chstat.total_posts_dtrs_many, "%u"); - xge_os_strcpy(key+6, "total_posts_frags_many"); - __HAL_AUX_ENTRY(key, chstat.total_posts_frags_many, "%u"); - xge_os_strcpy(key+6, "total_posts_dang_dtrs"); - __HAL_AUX_ENTRY(key, chstat.total_posts_dang_dtrs, "%u"); - xge_os_strcpy(key+6, "total_posts_dang_frags"); - __HAL_AUX_ENTRY(key, chstat.total_posts_dang_frags, "%u"); - } - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - - - -/** - * xge_hal_aux_stats_sw_dev_read - Read software device statistics. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read software-maintained device statistics. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * XGE_HAL_INF_STATS_IS_NOT_READY - Statistics information is not - * currently available. - * - * See also: xge_hal_aux_device_dump(). - */ -xge_hal_status_e xge_hal_aux_stats_sw_dev_read(xge_hal_device_h devh, - int bufsize, char *retbuf, int *retsize) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_status_e status; - xge_hal_mgmt_sw_stats_t sw_dev_err_stats; - int t_code; - char buf[XGE_OS_SPRINTF_STRLEN]; - - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - status = xge_hal_mgmt_sw_stats(hldev, &sw_dev_err_stats, - sizeof(xge_hal_mgmt_sw_stats_t)); - if (status != XGE_HAL_OK) { - return status; - } - - __HAL_AUX_ENTRY("sm_err_cnt",sw_dev_err_stats.sm_err_cnt, "%u"); - __HAL_AUX_ENTRY("single_ecc_err_cnt",sw_dev_err_stats.single_ecc_err_cnt, "%u"); - __HAL_AUX_ENTRY("double_ecc_err_cnt",sw_dev_err_stats.double_ecc_err_cnt, "%u"); - __HAL_AUX_ENTRY("ecc_err_cnt", sw_dev_err_stats.ecc_err_cnt, "%u"); - __HAL_AUX_ENTRY("parity_err_cnt",sw_dev_err_stats.parity_err_cnt, "%u"); - __HAL_AUX_ENTRY("serr_cnt",sw_dev_err_stats.serr_cnt, "%u"); - - for (t_code = 1; t_code < 16; t_code++) { - int t_code_cnt = sw_dev_err_stats.rxd_t_code_err_cnt[t_code]; - if (t_code_cnt) { - (void) xge_os_sprintf(buf, "rxd_t_code_%d", t_code); - __HAL_AUX_ENTRY(buf, t_code_cnt, "%u"); - } - t_code_cnt = sw_dev_err_stats.txd_t_code_err_cnt[t_code]; - if (t_code_cnt) { - (void) xge_os_sprintf(buf, "txd_t_code_%d", t_code); - __HAL_AUX_ENTRY(buf, t_code_cnt, "%u"); - } - } - __HAL_AUX_ENTRY("alarm_transceiver_temp_high",sw_dev_err_stats. - stats_xpak.alarm_transceiver_temp_high, "%u"); - __HAL_AUX_ENTRY("alarm_transceiver_temp_low",sw_dev_err_stats. - stats_xpak.alarm_transceiver_temp_low, "%u"); - __HAL_AUX_ENTRY("alarm_laser_bias_current_high",sw_dev_err_stats. - stats_xpak.alarm_laser_bias_current_high, "%u"); - __HAL_AUX_ENTRY("alarm_laser_bias_current_low",sw_dev_err_stats. - stats_xpak.alarm_laser_bias_current_low, "%u"); - __HAL_AUX_ENTRY("alarm_laser_output_power_high",sw_dev_err_stats. - stats_xpak.alarm_laser_output_power_high, "%u"); - __HAL_AUX_ENTRY("alarm_laser_output_power_low",sw_dev_err_stats. - stats_xpak.alarm_laser_output_power_low, "%u"); - __HAL_AUX_ENTRY("warn_transceiver_temp_high",sw_dev_err_stats. - stats_xpak.warn_transceiver_temp_high, "%u"); - __HAL_AUX_ENTRY("warn_transceiver_temp_low",sw_dev_err_stats. - stats_xpak.warn_transceiver_temp_low, "%u"); - __HAL_AUX_ENTRY("warn_laser_bias_current_high",sw_dev_err_stats. - stats_xpak.warn_laser_bias_current_high, "%u"); - __HAL_AUX_ENTRY("warn_laser_bias_current_low",sw_dev_err_stats. - stats_xpak.warn_laser_bias_current_low, "%u"); - __HAL_AUX_ENTRY("warn_laser_output_power_high",sw_dev_err_stats. - stats_xpak.warn_laser_output_power_high, "%u"); - __HAL_AUX_ENTRY("warn_laser_output_power_low",sw_dev_err_stats. - stats_xpak.warn_laser_output_power_low, "%u"); - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_pci_config_read - Retrieve and format PCI Configuration - * info. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Retrieve about info (using xge_hal_mgmt_pci_config()) and sprintf it - * into the provided @retbuf. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_mgmt_pci_config(), xge_hal_aux_device_dump(). - */ -xge_hal_status_e xge_hal_aux_pci_config_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize) -{ - xge_hal_status_e status; - xge_hal_mgmt_pci_config_t pci_config; - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - status = xge_hal_mgmt_pci_config(devh, &pci_config, - sizeof(xge_hal_mgmt_pci_config_t)); - if (status != XGE_HAL_OK) { - return status; - } - - __HAL_AUX_ENTRY("vendor_id", pci_config.vendor_id, "0x%04X"); - __HAL_AUX_ENTRY("device_id", pci_config.device_id, "0x%04X"); - __HAL_AUX_ENTRY("command", pci_config.command, "0x%04X"); - __HAL_AUX_ENTRY("status", pci_config.status, "0x%04X"); - __HAL_AUX_ENTRY("revision", pci_config.revision, "0x%02X"); - __HAL_AUX_ENTRY("pciClass1", pci_config.pciClass[0], "0x%02X"); - __HAL_AUX_ENTRY("pciClass2", pci_config.pciClass[1], "0x%02X"); - __HAL_AUX_ENTRY("pciClass3", pci_config.pciClass[2], "0x%02X"); - __HAL_AUX_ENTRY("cache_line_size", - pci_config.cache_line_size, "0x%02X"); - __HAL_AUX_ENTRY("latency_timer", pci_config.latency_timer, "0x%02X"); - __HAL_AUX_ENTRY("header_type", pci_config.header_type, "0x%02X"); - __HAL_AUX_ENTRY("bist", pci_config.bist, "0x%02X"); - __HAL_AUX_ENTRY("base_addr0_lo", pci_config.base_addr0_lo, "0x%08X"); - __HAL_AUX_ENTRY("base_addr0_hi", pci_config.base_addr0_hi, "0x%08X"); - __HAL_AUX_ENTRY("base_addr1_lo", pci_config.base_addr1_lo, "0x%08X"); - __HAL_AUX_ENTRY("base_addr1_hi", pci_config.base_addr1_hi, "0x%08X"); - __HAL_AUX_ENTRY("not_Implemented1", - pci_config.not_Implemented1, "0x%08X"); - __HAL_AUX_ENTRY("not_Implemented2", pci_config.not_Implemented2, - "0x%08X"); - __HAL_AUX_ENTRY("cardbus_cis_pointer", pci_config.cardbus_cis_pointer, - "0x%08X"); - __HAL_AUX_ENTRY("subsystem_vendor_id", pci_config.subsystem_vendor_id, - "0x%04X"); - __HAL_AUX_ENTRY("subsystem_id", pci_config.subsystem_id, "0x%04X"); - __HAL_AUX_ENTRY("rom_base", pci_config.rom_base, "0x%08X"); - __HAL_AUX_ENTRY("capabilities_pointer", - pci_config.capabilities_pointer, "0x%02X"); - __HAL_AUX_ENTRY("interrupt_line", pci_config.interrupt_line, "0x%02X"); - __HAL_AUX_ENTRY("interrupt_pin", pci_config.interrupt_pin, "0x%02X"); - __HAL_AUX_ENTRY("min_grant", pci_config.min_grant, "0x%02X"); - __HAL_AUX_ENTRY("max_latency", pci_config.max_latency, "0x%02X"); - __HAL_AUX_ENTRY("msi_cap_id", pci_config.msi_cap_id, "0x%02X"); - __HAL_AUX_ENTRY("msi_next_ptr", pci_config.msi_next_ptr, "0x%02X"); - __HAL_AUX_ENTRY("msi_control", pci_config.msi_control, "0x%04X"); - __HAL_AUX_ENTRY("msi_lower_address", pci_config.msi_lower_address, - "0x%08X"); - __HAL_AUX_ENTRY("msi_higher_address", pci_config.msi_higher_address, - "0x%08X"); - __HAL_AUX_ENTRY("msi_data", pci_config.msi_data, "0x%04X"); - __HAL_AUX_ENTRY("msi_unused", pci_config.msi_unused, "0x%04X"); - __HAL_AUX_ENTRY("vpd_cap_id", pci_config.vpd_cap_id, "0x%02X"); - __HAL_AUX_ENTRY("vpd_next_cap", pci_config.vpd_next_cap, "0x%02X"); - __HAL_AUX_ENTRY("vpd_addr", pci_config.vpd_addr, "0x%04X"); - __HAL_AUX_ENTRY("vpd_data", pci_config.vpd_data, "0x%08X"); - __HAL_AUX_ENTRY("pcix_cap", pci_config.pcix_cap, "0x%02X"); - __HAL_AUX_ENTRY("pcix_next_cap", pci_config.pcix_next_cap, "0x%02X"); - __HAL_AUX_ENTRY("pcix_command", pci_config.pcix_command, "0x%04X"); - __HAL_AUX_ENTRY("pcix_status", pci_config.pcix_status, "0x%08X"); - - if (xge_hal_device_check_id(devh) == XGE_HAL_CARD_HERC) { - char key[XGE_OS_SPRINTF_STRLEN]; - int i; - - for (i = 0; - i < (XGE_HAL_PCI_XFRAME_CONFIG_SPACE_SIZE - 0x68)/4; - i++) { - (void) xge_os_sprintf(key, "%03x:", 4*i + 0x68); - __HAL_AUX_ENTRY(key, *((int *)pci_config.rsvd_b1 + i), - "0x%08X"); - } - } - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - - -/** - * xge_hal_aux_channel_read - Read channels information. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read HAL statistics. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small. - * See also: xge_hal_aux_device_dump(). - */ -xge_hal_status_e xge_hal_aux_channel_read(xge_hal_device_h devh, - int bufsize, char *retbuf, int *retsize) -{ - xge_list_t *item; - xge_hal_channel_t *channel; - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - if (hldev->magic != XGE_HAL_MAGIC) { - return XGE_HAL_ERR_INVALID_DEVICE; - } - - /* for each opened rx channel */ - xge_list_for_each(item, &hldev->ring_channels) { - char key[XGE_OS_SPRINTF_STRLEN]; - channel = xge_container_of(item, xge_hal_channel_t, item); - - if (channel->is_open != 1) - continue; - - (void) xge_os_sprintf(key, "ring%d_", channel->post_qid); - xge_os_strcpy(key+6, "type"); - __HAL_AUX_ENTRY(key, channel->type, "%u"); - xge_os_strcpy(key+6, "length"); - __HAL_AUX_ENTRY(key, channel->length, "%u"); - xge_os_strcpy(key+6, "is_open"); - __HAL_AUX_ENTRY(key, channel->is_open, "%u"); - xge_os_strcpy(key+6, "reserve_initial"); - __HAL_AUX_ENTRY(key, channel->reserve_initial, "%u"); - xge_os_strcpy(key+6, "reserve_max"); - __HAL_AUX_ENTRY(key, channel->reserve_max, "%u"); - xge_os_strcpy(key+6, "reserve_length"); - __HAL_AUX_ENTRY(key, channel->reserve_length, "%u"); - xge_os_strcpy(key+6, "reserve_top"); - __HAL_AUX_ENTRY(key, channel->reserve_top, "%u"); - xge_os_strcpy(key+6, "reserve_threshold"); - __HAL_AUX_ENTRY(key, channel->reserve_threshold, "%u"); - xge_os_strcpy(key+6, "free_length"); - __HAL_AUX_ENTRY(key, channel->free_length, "%u"); - xge_os_strcpy(key+6, "post_index"); - __HAL_AUX_ENTRY(key, channel->post_index, "%u"); - xge_os_strcpy(key+6, "compl_index"); - __HAL_AUX_ENTRY(key, channel->compl_index, "%u"); - xge_os_strcpy(key+6, "per_dtr_space"); - __HAL_AUX_ENTRY(key, channel->per_dtr_space, "%u"); - xge_os_strcpy(key+6, "usage_cnt"); - __HAL_AUX_ENTRY(key, channel->usage_cnt, "%u"); - } - - /* for each opened tx channel */ - xge_list_for_each(item, &hldev->fifo_channels) { - char key[XGE_OS_SPRINTF_STRLEN]; - channel = xge_container_of(item, xge_hal_channel_t, item); - - if (channel->is_open != 1) - continue; - - (void) xge_os_sprintf(key, "fifo%d_", channel->post_qid); - xge_os_strcpy(key+6, "type"); - __HAL_AUX_ENTRY(key, channel->type, "%u"); - xge_os_strcpy(key+6, "length"); - __HAL_AUX_ENTRY(key, channel->length, "%u"); - xge_os_strcpy(key+6, "is_open"); - __HAL_AUX_ENTRY(key, channel->is_open, "%u"); - xge_os_strcpy(key+6, "reserve_initial"); - __HAL_AUX_ENTRY(key, channel->reserve_initial, "%u"); - xge_os_strcpy(key+6, "reserve_max"); - __HAL_AUX_ENTRY(key, channel->reserve_max, "%u"); - xge_os_strcpy(key+6, "reserve_length"); - __HAL_AUX_ENTRY(key, channel->reserve_length, "%u"); - xge_os_strcpy(key+6, "reserve_top"); - __HAL_AUX_ENTRY(key, channel->reserve_top, "%u"); - xge_os_strcpy(key+6, "reserve_threshold"); - __HAL_AUX_ENTRY(key, channel->reserve_threshold, "%u"); - xge_os_strcpy(key+6, "free_length"); - __HAL_AUX_ENTRY(key, channel->free_length, "%u"); - xge_os_strcpy(key+6, "post_index"); - __HAL_AUX_ENTRY(key, channel->post_index, "%u"); - xge_os_strcpy(key+6, "compl_index"); - __HAL_AUX_ENTRY(key, channel->compl_index, "%u"); - xge_os_strcpy(key+6, "per_dtr_space"); - __HAL_AUX_ENTRY(key, channel->per_dtr_space, "%u"); - xge_os_strcpy(key+6, "usage_cnt"); - __HAL_AUX_ENTRY(key, channel->usage_cnt, "%u"); - } - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - -/** - * xge_hal_aux_device_dump - Dump driver "about" info and device state. - * @devh: HAL device handle. - * - * Dump driver & device "about" info and device state, - * including all BAR0 registers, hardware and software statistics, PCI - * configuration space. - * See also: xge_hal_aux_about_read(), xge_hal_mgmt_reg_read(), - * xge_hal_aux_pci_config_read(), xge_hal_aux_stats_sw_dev_read(), - * xge_hal_aux_stats_tmac_read(), xge_hal_aux_stats_rmac_read(), - * xge_hal_aux_channel_read(), xge_hal_aux_stats_hal_read(). - * Returns: - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_OUT_OF_SPACE - Buffer size is very small. - */ -xge_hal_status_e -xge_hal_aux_device_dump(xge_hal_device_h devh) -{ - xge_hal_device_t *hldev = (xge_hal_device_t*)devh; - xge_hal_status_e status; - int retsize; - int offset; - u64 retval; - - xge_assert(hldev->dump_buf != NULL); - - xge_os_println("********* xge DEVICE DUMP BEGIN **********"); - - status = xge_hal_aux_about_read(hldev, XGE_HAL_DUMP_BUF_SIZE, - hldev->dump_buf, - &retsize); - if (status != XGE_HAL_OK) { - goto error; - } - xge_os_println(hldev->dump_buf); - - - for (offset = 0; offset < 1574; offset++) { - - status = xge_hal_mgmt_reg_read(hldev, 0, offset*8, &retval); - if (status != XGE_HAL_OK) { - goto error; - } - - if (!retval) continue; - - xge_os_printf("0x%04x 0x%08x%08x", offset*8, - (u32)(retval>>32), (u32)retval); - } - xge_os_println("\n"); - - status = xge_hal_aux_pci_config_read(hldev, XGE_HAL_DUMP_BUF_SIZE, - hldev->dump_buf, - &retsize); - if (status != XGE_HAL_OK) { - goto error; - } - xge_os_println(hldev->dump_buf); - - status = xge_hal_aux_stats_tmac_read(hldev, XGE_HAL_DUMP_BUF_SIZE, - hldev->dump_buf, - &retsize); - if (status != XGE_HAL_OK) { - goto error; - } - xge_os_println(hldev->dump_buf); - - status = xge_hal_aux_stats_rmac_read(hldev, XGE_HAL_DUMP_BUF_SIZE, - hldev->dump_buf, - &retsize); - if (status != XGE_HAL_OK) { - goto error; - } - xge_os_println(hldev->dump_buf); - - status = xge_hal_aux_stats_pci_read(hldev, XGE_HAL_DUMP_BUF_SIZE, - hldev->dump_buf, - &retsize); - if (status != XGE_HAL_OK) { - goto error; - } - xge_os_println(hldev->dump_buf); - - if (xge_hal_device_check_id(hldev) == XGE_HAL_CARD_HERC) { - status = xge_hal_aux_stats_herc_enchanced(hldev, - XGE_HAL_DUMP_BUF_SIZE, hldev->dump_buf, &retsize); - if (status != XGE_HAL_OK) { - goto error; - } - xge_os_println(hldev->dump_buf); - } - - status = xge_hal_aux_stats_sw_dev_read(hldev, XGE_HAL_DUMP_BUF_SIZE, - hldev->dump_buf, &retsize); - if (status != XGE_HAL_OK) { - goto error; - } - xge_os_println(hldev->dump_buf); - - status = xge_hal_aux_channel_read(hldev, XGE_HAL_DUMP_BUF_SIZE, - hldev->dump_buf, - &retsize); - if (status != XGE_HAL_OK) { - goto error; - } - xge_os_println(hldev->dump_buf); - - status = xge_hal_aux_stats_hal_read(hldev, XGE_HAL_DUMP_BUF_SIZE, - hldev->dump_buf, - &retsize); - if (status != XGE_HAL_OK) { - goto error; - } - xge_os_println(hldev->dump_buf); - - xge_os_println("********* XFRAME DEVICE DUMP END **********"); - -error: - return status; -} - - -/** - * xge_hal_aux_driver_config_read - Read Driver configuration. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read driver configuration, - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_aux_device_config_read(). - */ -xge_hal_status_e -xge_hal_aux_driver_config_read(int bufsize, char *retbuf, int *retsize) -{ - xge_hal_status_e status; - xge_hal_driver_config_t drv_config; - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - status = xge_hal_mgmt_driver_config(&drv_config, - sizeof(xge_hal_driver_config_t)); - if (status != XGE_HAL_OK) { - return status; - } - - __HAL_AUX_ENTRY("queue size initial", - drv_config.queue_size_initial, "%u"); - __HAL_AUX_ENTRY("queue size max", drv_config.queue_size_max, "%u"); - __HAL_AUX_ENTRY_END(bufsize, retsize); - - return XGE_HAL_OK; -} - - -/** - * xge_hal_aux_device_config_read - Read device configuration. - * @devh: HAL device handle. - * @bufsize: Buffer size. - * @retbuf: Buffer pointer. - * @retsize: Size of the result. Cannot be greater than @bufsize. - * - * Read device configuration, - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_DEVICE - Device is not valid. - * XGE_HAL_ERR_VERSION_CONFLICT - Version it not maching. - * - * See also: xge_hal_aux_driver_config_read(). - */ -xge_hal_status_e xge_hal_aux_device_config_read(xge_hal_device_h devh, - int bufsize, char *retbuf, int *retsize) -{ - int i; - xge_hal_status_e status; - xge_hal_device_config_t *dev_config; - xge_hal_device_t *hldev = (xge_hal_device_t *) devh; - char key[XGE_OS_SPRINTF_STRLEN]; - __HAL_AUX_ENTRY_DECLARE(bufsize, retbuf); - - dev_config = (xge_hal_device_config_t *) xge_os_malloc(hldev->pdev, - sizeof(xge_hal_device_config_t)); - if (dev_config == NULL) { - return XGE_HAL_FAIL; - } - - status = xge_hal_mgmt_device_config(devh, dev_config, - sizeof(xge_hal_device_config_t)); - if (status != XGE_HAL_OK) { - xge_os_free(hldev->pdev, dev_config, - sizeof(xge_hal_device_config_t)); - return status; - } - - __HAL_AUX_ENTRY("mtu", dev_config->mtu, "%u"); - __HAL_AUX_ENTRY("isr_polling_count", dev_config->isr_polling_cnt, "%u"); - __HAL_AUX_ENTRY("latency_timer", dev_config->latency_timer, "%u"); - __HAL_AUX_ENTRY("max_splits_trans", - dev_config->max_splits_trans, "%u"); - __HAL_AUX_ENTRY("mmrb_count", dev_config->mmrb_count, "%d"); - __HAL_AUX_ENTRY("shared_splits", dev_config->shared_splits, "%u"); - __HAL_AUX_ENTRY("stats_refresh_time_sec", - dev_config->stats_refresh_time_sec, "%u"); - __HAL_AUX_ENTRY("pci_freq_mherz", dev_config->pci_freq_mherz, "%u"); - __HAL_AUX_ENTRY("intr_mode", dev_config->intr_mode, "%u"); - __HAL_AUX_ENTRY("ring_memblock_size", - dev_config->ring.memblock_size, "%u"); - - __HAL_AUX_ENTRY("sched_timer_us", dev_config->sched_timer_us, "%u"); - __HAL_AUX_ENTRY("sched_timer_one_shot", - dev_config->sched_timer_one_shot, "%u"); - __HAL_AUX_ENTRY("rxufca_intr_thres", dev_config->rxufca_intr_thres, "%u"); - __HAL_AUX_ENTRY("rxufca_lo_lim", dev_config->rxufca_lo_lim, "%u"); - __HAL_AUX_ENTRY("rxufca_hi_lim", dev_config->rxufca_hi_lim, "%u"); - __HAL_AUX_ENTRY("rxufca_lbolt_period", dev_config->rxufca_lbolt_period, "%u"); - - for(i = 0; i < XGE_HAL_MAX_RING_NUM; i++) - { - xge_hal_ring_queue_t *ring = &dev_config->ring.queue[i]; - xge_hal_rti_config_t *rti = &ring->rti; - - if (!ring->configured) - continue; - - (void) xge_os_sprintf(key, "ring%d_", i); - xge_os_strcpy(key+6, "inital"); - __HAL_AUX_ENTRY(key, ring->initial, "%u"); - xge_os_strcpy(key+6, "max"); - __HAL_AUX_ENTRY(key, ring->max, "%u"); - xge_os_strcpy(key+6, "buffer_mode"); - __HAL_AUX_ENTRY(key, ring->buffer_mode, "%u"); - xge_os_strcpy(key+6, "dram_size_mb"); - __HAL_AUX_ENTRY(key, ring->dram_size_mb, "%u"); - xge_os_strcpy(key+6, "backoff_interval_us"); - __HAL_AUX_ENTRY(key, ring->backoff_interval_us, "%u"); - xge_os_strcpy(key+6, "max_frame_len"); - __HAL_AUX_ENTRY(key, ring->max_frm_len, "%d"); - xge_os_strcpy(key+6, "priority"); - __HAL_AUX_ENTRY(key, ring->priority, "%u"); - xge_os_strcpy(key+6, "rth_en"); - __HAL_AUX_ENTRY(key, ring->rth_en, "%u"); - xge_os_strcpy(key+6, "no_snoop_bits"); - __HAL_AUX_ENTRY(key, ring->no_snoop_bits, "%u"); - xge_os_strcpy(key+6, "indicate_max_pkts"); - __HAL_AUX_ENTRY(key, ring->indicate_max_pkts, "%u"); - - xge_os_strcpy(key+6, "urange_a"); - __HAL_AUX_ENTRY(key, rti->urange_a, "%u"); - xge_os_strcpy(key+6, "ufc_a"); - __HAL_AUX_ENTRY(key, rti->ufc_a, "%u"); - xge_os_strcpy(key+6, "urange_b"); - __HAL_AUX_ENTRY(key, rti->urange_b, "%u"); - xge_os_strcpy(key+6, "ufc_b"); - __HAL_AUX_ENTRY(key, rti->ufc_b, "%u"); - xge_os_strcpy(key+6, "urange_c"); - __HAL_AUX_ENTRY(key, rti->urange_c, "%u"); - xge_os_strcpy(key+6, "ufc_c"); - __HAL_AUX_ENTRY(key, rti->ufc_c, "%u"); - xge_os_strcpy(key+6, "ufc_d"); - __HAL_AUX_ENTRY(key, rti->ufc_d, "%u"); - xge_os_strcpy(key+6, "timer_val_us"); - __HAL_AUX_ENTRY(key, rti->timer_val_us, "%u"); - } - - - { - xge_hal_mac_config_t *mac= &dev_config->mac; - - __HAL_AUX_ENTRY("tmac_util_period", - mac->tmac_util_period, "%u"); - __HAL_AUX_ENTRY("rmac_util_period", - mac->rmac_util_period, "%u"); - __HAL_AUX_ENTRY("rmac_bcast_en", - mac->rmac_bcast_en, "%u"); - __HAL_AUX_ENTRY("rmac_pause_gen_en", - mac->rmac_pause_gen_en, "%d"); - __HAL_AUX_ENTRY("rmac_pause_rcv_en", - mac->rmac_pause_rcv_en, "%d"); - __HAL_AUX_ENTRY("rmac_pause_time", - mac->rmac_pause_time, "%u"); - __HAL_AUX_ENTRY("mc_pause_threshold_q0q3", - mac->mc_pause_threshold_q0q3, "%u"); - __HAL_AUX_ENTRY("mc_pause_threshold_q4q7", - mac->mc_pause_threshold_q4q7, "%u"); - } - - - __HAL_AUX_ENTRY("fifo_max_frags", dev_config->fifo.max_frags, "%u"); - __HAL_AUX_ENTRY("fifo_reserve_threshold", - dev_config->fifo.reserve_threshold, "%u"); - __HAL_AUX_ENTRY("fifo_memblock_size", - dev_config->fifo.memblock_size, "%u"); -#ifdef XGE_HAL_ALIGN_XMIT - __HAL_AUX_ENTRY("fifo_alignment_size", - dev_config->fifo.alignment_size, "%u"); -#endif - - for (i = 0; i < XGE_HAL_MAX_FIFO_NUM; i++) { - int j; - xge_hal_fifo_queue_t *fifo = &dev_config->fifo.queue[i]; - - if (!fifo->configured) - continue; - - (void) xge_os_sprintf(key, "fifo%d_", i); - xge_os_strcpy(key+6, "initial"); - __HAL_AUX_ENTRY(key, fifo->initial, "%u"); - xge_os_strcpy(key+6, "max"); - __HAL_AUX_ENTRY(key, fifo->max, "%u"); - xge_os_strcpy(key+6, "intr"); - __HAL_AUX_ENTRY(key, fifo->intr, "%u"); - xge_os_strcpy(key+6, "no_snoop_bits"); - __HAL_AUX_ENTRY(key, fifo->no_snoop_bits, "%u"); - - for (j = 0; j < XGE_HAL_MAX_FIFO_TTI_NUM; j++) { - xge_hal_tti_config_t *tti = - &dev_config->fifo.queue[i].tti[j]; - - if (!tti->enabled) - continue; - - (void) xge_os_sprintf(key, "fifo%d_tti%02d_", i, - i * XGE_HAL_MAX_FIFO_TTI_NUM + j); - xge_os_strcpy(key+12, "urange_a"); - __HAL_AUX_ENTRY(key, tti->urange_a, "%u"); - xge_os_strcpy(key+12, "ufc_a"); - __HAL_AUX_ENTRY(key, tti->ufc_a, "%u"); - xge_os_strcpy(key+12, "urange_b"); - __HAL_AUX_ENTRY(key, tti->urange_b, "%u"); - xge_os_strcpy(key+12, "ufc_b"); - __HAL_AUX_ENTRY(key, tti->ufc_b, "%u"); - xge_os_strcpy(key+12, "urange_c"); - __HAL_AUX_ENTRY(key, tti->urange_c, "%u"); - xge_os_strcpy(key+12, "ufc_c"); - __HAL_AUX_ENTRY(key, tti->ufc_c, "%u"); - xge_os_strcpy(key+12, "ufc_d"); - __HAL_AUX_ENTRY(key, tti->ufc_d, "%u"); - xge_os_strcpy(key+12, "timer_val_us"); - __HAL_AUX_ENTRY(key, tti->timer_val_us, "%u"); - xge_os_strcpy(key+12, "timer_ci_en"); - __HAL_AUX_ENTRY(key, tti->timer_ci_en, "%u"); - } - } - - /* and bimodal TTIs */ - for (i=0; ibimodal_tti[i]; - - if (!tti->enabled) - continue; - - (void) xge_os_sprintf(key, "tti%02d_", - XGE_HAL_MAX_FIFO_TTI_RING_0 + i); - - xge_os_strcpy(key+6, "urange_a"); - __HAL_AUX_ENTRY(key, tti->urange_a, "%u"); - xge_os_strcpy(key+6, "ufc_a"); - __HAL_AUX_ENTRY(key, tti->ufc_a, "%u"); - xge_os_strcpy(key+6, "urange_b"); - __HAL_AUX_ENTRY(key, tti->urange_b, "%u"); - xge_os_strcpy(key+6, "ufc_b"); - __HAL_AUX_ENTRY(key, tti->ufc_b, "%u"); - xge_os_strcpy(key+6, "urange_c"); - __HAL_AUX_ENTRY(key, tti->urange_c, "%u"); - xge_os_strcpy(key+6, "ufc_c"); - __HAL_AUX_ENTRY(key, tti->ufc_c, "%u"); - xge_os_strcpy(key+6, "ufc_d"); - __HAL_AUX_ENTRY(key, tti->ufc_d, "%u"); - xge_os_strcpy(key+6, "timer_val_us"); - __HAL_AUX_ENTRY(key, tti->timer_val_us, "%u"); - xge_os_strcpy(key+6, "timer_ac_en"); - __HAL_AUX_ENTRY(key, tti->timer_ac_en, "%u"); - xge_os_strcpy(key+6, "timer_ci_en"); - __HAL_AUX_ENTRY(key, tti->timer_ci_en, "%u"); - } - __HAL_AUX_ENTRY("dump_on_serr", dev_config->dump_on_serr, "%u"); - __HAL_AUX_ENTRY("dump_on_eccerr", - dev_config->dump_on_eccerr, "%u"); - __HAL_AUX_ENTRY("dump_on_parityerr", - dev_config->dump_on_parityerr, "%u"); - __HAL_AUX_ENTRY("rth_en", dev_config->rth_en, "%u"); - __HAL_AUX_ENTRY("rth_bucket_size", dev_config->rth_bucket_size, "%u"); - - __HAL_AUX_ENTRY_END(bufsize, retsize); - - xge_os_free(hldev->pdev, dev_config, - sizeof(xge_hal_device_config_t)); - - return XGE_HAL_OK; -} - Property changes on: head/sys/dev/nxge/xgehal/xgehal-mgmtaux.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgehal/xgehal-mm.c =================================================================== --- head/sys/dev/nxge/xgehal/xgehal-mm.c (revision 333387) +++ head/sys/dev/nxge/xgehal/xgehal-mm.c (nonexistent) @@ -1,430 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 -#include -#include - -/* - * __hal_mempool_grow - * - * Will resize mempool up to %num_allocate value. - */ -xge_hal_status_e -__hal_mempool_grow(xge_hal_mempool_t *mempool, int num_allocate, - int *num_allocated) -{ - int i, first_time = mempool->memblocks_allocated == 0 ? 1 : 0; - int n_items = mempool->items_per_memblock; - - *num_allocated = 0; - - if ((mempool->memblocks_allocated + num_allocate) > - mempool->memblocks_max) { - xge_debug_mm(XGE_ERR, "%s", - "__hal_mempool_grow: can grow anymore"); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - - for (i = mempool->memblocks_allocated; - i < mempool->memblocks_allocated + num_allocate; i++) { - int j; - int is_last = - ((mempool->memblocks_allocated+num_allocate-1) == i); - xge_hal_mempool_dma_t *dma_object = - mempool->memblocks_dma_arr + i; - void *the_memblock; - int dma_flags; - - dma_flags = XGE_OS_DMA_CACHELINE_ALIGNED; -#ifdef XGE_HAL_DMA_DTR_CONSISTENT - dma_flags |= XGE_OS_DMA_CONSISTENT; -#else - dma_flags |= XGE_OS_DMA_STREAMING; -#endif - - /* allocate DMA-capable memblock */ - mempool->memblocks_arr[i] = xge_os_dma_malloc(mempool->pdev, - mempool->memblock_size, - dma_flags, - &dma_object->handle, - &dma_object->acc_handle); - if (mempool->memblocks_arr[i] == NULL) { - xge_debug_mm(XGE_ERR, - "memblock[%d]: out of DMA memory", i); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - xge_os_memzero(mempool->memblocks_arr[i], - mempool->memblock_size); - the_memblock = mempool->memblocks_arr[i]; - - /* allocate memblock's private part. Each DMA memblock - * has a space allocated for item's private usage upon - * mempool's user request. Each time mempool grows, it will - * allocate new memblock and its private part at once. - * This helps to minimize memory usage a lot. */ - mempool->memblocks_priv_arr[i] = xge_os_malloc(mempool->pdev, - mempool->items_priv_size * n_items); - if (mempool->memblocks_priv_arr[i] == NULL) { - xge_os_dma_free(mempool->pdev, - the_memblock, - mempool->memblock_size, - &dma_object->acc_handle, - &dma_object->handle); - xge_debug_mm(XGE_ERR, - "memblock_priv[%d]: out of virtual memory, " - "requested %d(%d:%d) bytes", i, - mempool->items_priv_size * n_items, - mempool->items_priv_size, n_items); - return XGE_HAL_ERR_OUT_OF_MEMORY; - } - xge_os_memzero(mempool->memblocks_priv_arr[i], - mempool->items_priv_size * n_items); - - /* map memblock to physical memory */ - dma_object->addr = xge_os_dma_map(mempool->pdev, - dma_object->handle, - the_memblock, - mempool->memblock_size, - XGE_OS_DMA_DIR_BIDIRECTIONAL, -#ifdef XGE_HAL_DMA_DTR_CONSISTENT - XGE_OS_DMA_CONSISTENT -#else - XGE_OS_DMA_STREAMING -#endif - ); - if (dma_object->addr == XGE_OS_INVALID_DMA_ADDR) { - xge_os_free(mempool->pdev, mempool->memblocks_priv_arr[i], - mempool->items_priv_size * - n_items); - xge_os_dma_free(mempool->pdev, - the_memblock, - mempool->memblock_size, - &dma_object->acc_handle, - &dma_object->handle); - return XGE_HAL_ERR_OUT_OF_MAPPING; - } - - /* fill the items hash array */ - for (j=0; j= mempool->items_initial) { - break; - } - - mempool->items_arr[index] = - ((char *)the_memblock + j*mempool->item_size); - - /* let caller to do more job on each item */ - if (mempool->item_func_alloc != NULL) { - xge_hal_status_e status; - - if ((status = mempool->item_func_alloc( - mempool, - the_memblock, - i, - dma_object, - mempool->items_arr[index], - index, - is_last, - mempool->userdata)) != XGE_HAL_OK) { - - if (mempool->item_func_free != NULL) { - int k; - - for (k=0; kitem_func_free( - mempool, the_memblock, - i, dma_object, - mempool->items_arr[index], - index, is_last, - mempool->userdata); - } - } - - xge_os_free(mempool->pdev, - mempool->memblocks_priv_arr[i], - mempool->items_priv_size * - n_items); - xge_os_dma_unmap(mempool->pdev, - dma_object->handle, - dma_object->addr, - mempool->memblock_size, - XGE_OS_DMA_DIR_BIDIRECTIONAL); - xge_os_dma_free(mempool->pdev, - the_memblock, - mempool->memblock_size, - &dma_object->acc_handle, - &dma_object->handle); - return status; - } - } - - mempool->items_current = index + 1; - } - - xge_debug_mm(XGE_TRACE, - "memblock%d: allocated %dk, vaddr 0x"XGE_OS_LLXFMT", " - "dma_addr 0x"XGE_OS_LLXFMT, i, mempool->memblock_size / 1024, - (unsigned long long)(ulong_t)mempool->memblocks_arr[i], - (unsigned long long)dma_object->addr); - - (*num_allocated)++; - - if (first_time && mempool->items_current == - mempool->items_initial) { - break; - } - } - - /* increment actual number of allocated memblocks */ - mempool->memblocks_allocated += *num_allocated; - - return XGE_HAL_OK; -} - -/* - * xge_hal_mempool_create - * @memblock_size: - * @items_initial: - * @items_max: - * @item_size: - * @item_func: - * - * This function will create memory pool object. Pool may grow but will - * never shrink. Pool consists of number of dynamically allocated blocks - * with size enough to hold %items_initial number of items. Memory is - * DMA-able but client must map/unmap before interoperating with the device. - * See also: xge_os_dma_map(), xge_hal_dma_unmap(), xge_hal_status_e{}. - */ -xge_hal_mempool_t* -__hal_mempool_create(pci_dev_h pdev, int memblock_size, int item_size, - int items_priv_size, int items_initial, int items_max, - xge_hal_mempool_item_f item_func_alloc, - xge_hal_mempool_item_f item_func_free, void *userdata) -{ - xge_hal_status_e status; - int memblocks_to_allocate; - xge_hal_mempool_t *mempool; - int allocated; - - if (memblock_size < item_size) { - xge_debug_mm(XGE_ERR, - "memblock_size %d < item_size %d: misconfiguration", - memblock_size, item_size); - return NULL; - } - - mempool = (xge_hal_mempool_t *) \ - xge_os_malloc(pdev, sizeof(xge_hal_mempool_t)); - if (mempool == NULL) { - xge_debug_mm(XGE_ERR, "mempool allocation failure"); - return NULL; - } - xge_os_memzero(mempool, sizeof(xge_hal_mempool_t)); - - mempool->pdev = pdev; - mempool->memblock_size = memblock_size; - mempool->items_max = items_max; - mempool->items_initial = items_initial; - mempool->item_size = item_size; - mempool->items_priv_size = items_priv_size; - mempool->item_func_alloc = item_func_alloc; - mempool->item_func_free = item_func_free; - mempool->userdata = userdata; - - mempool->memblocks_allocated = 0; - - mempool->items_per_memblock = memblock_size / item_size; - - mempool->memblocks_max = (items_max + mempool->items_per_memblock - 1) / - mempool->items_per_memblock; - - /* allocate array of memblocks */ - mempool->memblocks_arr = (void ** ) xge_os_malloc(mempool->pdev, - sizeof(void*) * mempool->memblocks_max); - if (mempool->memblocks_arr == NULL) { - xge_debug_mm(XGE_ERR, "memblocks_arr allocation failure"); - __hal_mempool_destroy(mempool); - return NULL; - } - xge_os_memzero(mempool->memblocks_arr, - sizeof(void*) * mempool->memblocks_max); - - /* allocate array of private parts of items per memblocks */ - mempool->memblocks_priv_arr = (void **) xge_os_malloc(mempool->pdev, - sizeof(void*) * mempool->memblocks_max); - if (mempool->memblocks_priv_arr == NULL) { - xge_debug_mm(XGE_ERR, "memblocks_priv_arr allocation failure"); - __hal_mempool_destroy(mempool); - return NULL; - } - xge_os_memzero(mempool->memblocks_priv_arr, - sizeof(void*) * mempool->memblocks_max); - - /* allocate array of memblocks DMA objects */ - mempool->memblocks_dma_arr = - (xge_hal_mempool_dma_t *) xge_os_malloc(mempool->pdev, - sizeof(xge_hal_mempool_dma_t) * mempool->memblocks_max); - - if (mempool->memblocks_dma_arr == NULL) { - xge_debug_mm(XGE_ERR, "memblocks_dma_arr allocation failure"); - __hal_mempool_destroy(mempool); - return NULL; - } - xge_os_memzero(mempool->memblocks_dma_arr, - sizeof(xge_hal_mempool_dma_t) * mempool->memblocks_max); - - /* allocate hash array of items */ - mempool->items_arr = (void **) xge_os_malloc(mempool->pdev, - sizeof(void*) * mempool->items_max); - if (mempool->items_arr == NULL) { - xge_debug_mm(XGE_ERR, "items_arr allocation failure"); - __hal_mempool_destroy(mempool); - return NULL; - } - xge_os_memzero(mempool->items_arr, sizeof(void *) * mempool->items_max); - - mempool->shadow_items_arr = (void **) xge_os_malloc(mempool->pdev, - sizeof(void*) * mempool->items_max); - if (mempool->shadow_items_arr == NULL) { - xge_debug_mm(XGE_ERR, "shadow_items_arr allocation failure"); - __hal_mempool_destroy(mempool); - return NULL; - } - xge_os_memzero(mempool->shadow_items_arr, - sizeof(void *) * mempool->items_max); - - /* calculate initial number of memblocks */ - memblocks_to_allocate = (mempool->items_initial + - mempool->items_per_memblock - 1) / - mempool->items_per_memblock; - - xge_debug_mm(XGE_TRACE, "allocating %d memblocks, " - "%d items per memblock", memblocks_to_allocate, - mempool->items_per_memblock); - - /* pre-allocate the mempool */ - status = __hal_mempool_grow(mempool, memblocks_to_allocate, &allocated); - xge_os_memcpy(mempool->shadow_items_arr, mempool->items_arr, - sizeof(void*) * mempool->items_max); - if (status != XGE_HAL_OK) { - xge_debug_mm(XGE_ERR, "mempool_grow failure"); - __hal_mempool_destroy(mempool); - return NULL; - } - - xge_debug_mm(XGE_TRACE, - "total: allocated %dk of DMA-capable memory", - mempool->memblock_size * allocated / 1024); - - return mempool; -} - -/* - * xge_hal_mempool_destroy - */ -void -__hal_mempool_destroy(xge_hal_mempool_t *mempool) -{ - int i, j; - - for (i=0; imemblocks_allocated; i++) { - xge_hal_mempool_dma_t *dma_object; - - xge_assert(mempool->memblocks_arr[i]); - xge_assert(mempool->memblocks_dma_arr + i); - - dma_object = mempool->memblocks_dma_arr + i; - - for (j=0; jitems_per_memblock; j++) { - int index = i*mempool->items_per_memblock + j; - - /* to skip last partially filled(if any) memblock */ - if (index >= mempool->items_current) { - break; - } - - /* let caller to do more job on each item */ - if (mempool->item_func_free != NULL) { - - mempool->item_func_free(mempool, - mempool->memblocks_arr[i], - i, dma_object, - mempool->shadow_items_arr[index], - index, /* unused */ -1, - mempool->userdata); - } - } - - xge_os_dma_unmap(mempool->pdev, - dma_object->handle, dma_object->addr, - mempool->memblock_size, XGE_OS_DMA_DIR_BIDIRECTIONAL); - - xge_os_free(mempool->pdev, mempool->memblocks_priv_arr[i], - mempool->items_priv_size * mempool->items_per_memblock); - - xge_os_dma_free(mempool->pdev, mempool->memblocks_arr[i], - mempool->memblock_size, &dma_object->acc_handle, - &dma_object->handle); - } - - if (mempool->items_arr) { - xge_os_free(mempool->pdev, mempool->items_arr, sizeof(void*) * - mempool->items_max); - } - - if (mempool->shadow_items_arr) { - xge_os_free(mempool->pdev, mempool->shadow_items_arr, - sizeof(void*) * mempool->items_max); - } - - if (mempool->memblocks_dma_arr) { - xge_os_free(mempool->pdev, mempool->memblocks_dma_arr, - sizeof(xge_hal_mempool_dma_t) * - mempool->memblocks_max); - } - - if (mempool->memblocks_priv_arr) { - xge_os_free(mempool->pdev, mempool->memblocks_priv_arr, - sizeof(void*) * mempool->memblocks_max); - } - - if (mempool->memblocks_arr) { - xge_os_free(mempool->pdev, mempool->memblocks_arr, - sizeof(void*) * mempool->memblocks_max); - } - - xge_os_free(mempool->pdev, mempool, sizeof(xge_hal_mempool_t)); -} Property changes on: head/sys/dev/nxge/xgehal/xgehal-mm.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-config.h =================================================================== --- head/sys/dev/nxge/include/xgehal-config.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-config.h (nonexistent) @@ -1,914 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_CONFIG_H -#define XGE_HAL_CONFIG_H - -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -#define XGE_HAL_DEFAULT_USE_HARDCODE -1 - -#define XGE_HAL_MAX_VIRTUAL_PATHS 8 -#define XGE_HAL_MAX_INTR_PER_VP 4 - - -/** - * struct xge_hal_tti_config_t - Xframe Tx interrupt configuration. - * @enabled: Set to 1, if TTI feature is enabled. - * @urange_a: Link utilization range A. The value from 0 to 100%. - * @ufc_a: Frame count for the utilization range A. Interrupt will be generated - * each time when (and only when) the line is utilized no more - * than @urange_a percent in the transmit direction, - * and number of transmitted frames is greater or equal @ufc_a. - * @urange_b: Link utilization range B. - * @ufc_b: Frame count for the utilization range B. - * @urange_c: Link utilization range C. - * @ufc_c: Frame count for the utilization range C. - * @urange_d: Link utilization range D. - * @ufc_d: Frame count for the utilization range D. - * @timer_val_us: Interval of time, in microseconds, at which transmit timer - * interrupt is to be generated. Note that unless @timer_ci_en - * is set, the timer interrupt is generated only in presence - * of the transmit traffic. Note also that timer interrupt - * and utilization interrupt are two separate interrupt - * sources. - * @timer_ac_en: Enable auto-cancel. That is, reset the timer if utilization - * interrupt was generated during the interval. - * @timer_ci_en: Enable/disable continuous interrupt. Set this value - * to 1 in order to generate continuous interrupt - * at fixed @timer_val intervals of time, independently - * of whether there is transmit traffic or not. - * @enabled: Set to 1, if TTI feature is enabled. - * - * Xframe transmit interrupt configuration. - * See Xframe User Guide, Section 3.5 "Device Interrupts" - * for more details. Note also (min, max) - * ranges in the body of the xge_hal_tx_intr_config_t structure. - * Note: Valid (min, max) range for each attribute is specified in the body of - * the xge_hal_tti_config_t{} structure. Please refer to the - * corresponding header file. - */ -typedef struct xge_hal_tti_config_t { - - int enabled; -#define XGE_HAL_TTI_ENABLE 1 -#define XGE_HAL_TTI_DISABLE 0 - - /* Line utilization interrupts */ - - int urange_a; -#define XGE_HAL_MIN_TX_URANGE_A 0 -#define XGE_HAL_MAX_TX_URANGE_A 100 - - int ufc_a; -#define XGE_HAL_MIN_TX_UFC_A 0 -#define XGE_HAL_MAX_TX_UFC_A 65535 - - int urange_b; -#define XGE_HAL_MIN_TX_URANGE_B 0 -#define XGE_HAL_MAX_TX_URANGE_B 100 - - int ufc_b; -#define XGE_HAL_MIN_TX_UFC_B 0 -#define XGE_HAL_MAX_TX_UFC_B 65535 - - int urange_c; -#define XGE_HAL_MIN_TX_URANGE_C 0 -#define XGE_HAL_MAX_TX_URANGE_C 100 - - int ufc_c; -#define XGE_HAL_MIN_TX_UFC_C 0 -#define XGE_HAL_MAX_TX_UFC_C 65535 - - int ufc_d; -#define XGE_HAL_MIN_TX_UFC_D 0 -#define XGE_HAL_MAX_TX_UFC_D 65535 - - int timer_val_us; -#define XGE_HAL_MIN_TX_TIMER_VAL 0 -#define XGE_HAL_MAX_TX_TIMER_VAL 65535 - - int timer_ac_en; -#define XGE_HAL_MIN_TX_TIMER_AC_EN 0 -#define XGE_HAL_MAX_TX_TIMER_AC_EN 1 - - int timer_ci_en; -#define XGE_HAL_MIN_TX_TIMER_CI_EN 0 -#define XGE_HAL_MAX_TX_TIMER_CI_EN 1 - - -} xge_hal_tti_config_t; - -/** - * struct xge_hal_rti_config_t - Xframe Rx interrupt configuration. - * @urange_a: Link utilization range A. The value from 0 to 100%. - * @ufc_a: Frame count for the utilization range A. Interrupt will be generated - * each time when (and only when) the line is utilized no more - * than @urange_a percent inbound, - * and number of received frames is greater or equal @ufc_a. - * @urange_b: Link utilization range B. - * @ufc_b: Frame count for the utilization range B. - * @urange_c: Link utilization range C. - * @ufc_c: Frame count for the utilization range C. - * @urange_d: Link utilization range D. - * @ufc_d: Frame count for the utilization range D. - * @timer_ac_en: Enable auto-cancel. That is, reset the timer if utilization - * interrupt was generated during the interval. - * @timer_val_us: Interval of time, in microseconds, at which receive timer - * interrupt is to be generated. The timer interrupt is generated - * only in presence of the inbound traffic. Note also that timer - * interrupt and utilization interrupt are two separate interrupt - * sources. - * - * Xframe receive interrupt configuration. - * See Xframe User Guide, Section 3.5 "Device Interrupts" - * for more details. Note also (min, max) - * ranges in the body of the xge_hal_intr_config_t structure. - * Note: Valid (min, max) range for each attribute is specified in the body of - * the xge_hal_rti_config_t{} structure. Please refer to the - * corresponding header file. - */ -typedef struct xge_hal_rti_config_t { - - int urange_a; -#define XGE_HAL_MIN_RX_URANGE_A 0 -#define XGE_HAL_MAX_RX_URANGE_A 127 - - int ufc_a; -#define XGE_HAL_MIN_RX_UFC_A 0 -#define XGE_HAL_MAX_RX_UFC_A 65535 - - int urange_b; -#define XGE_HAL_MIN_RX_URANGE_B 0 -#define XGE_HAL_MAX_RX_URANGE_B 127 - - int ufc_b; -#define XGE_HAL_MIN_RX_UFC_B 0 -#define XGE_HAL_MAX_RX_UFC_B 65535 - - int urange_c; -#define XGE_HAL_MIN_RX_URANGE_C 0 -#define XGE_HAL_MAX_RX_URANGE_C 127 - - int ufc_c; -#define XGE_HAL_MIN_RX_UFC_C 0 -#define XGE_HAL_MAX_RX_UFC_C 65535 - - int ufc_d; -#define XGE_HAL_MIN_RX_UFC_D 0 -#define XGE_HAL_MAX_RX_UFC_D 65535 - - int timer_ac_en; -#define XGE_HAL_MIN_RX_TIMER_AC_EN 0 -#define XGE_HAL_MAX_RX_TIMER_AC_EN 1 - - int timer_val_us; -#define XGE_HAL_MIN_RX_TIMER_VAL 0 -#define XGE_HAL_MAX_RX_TIMER_VAL 65535 - -} xge_hal_rti_config_t; - -/** - * struct xge_hal_fifo_queue_t - Single fifo configuration. - * @max: Max numbers of TxDLs (that is, lists of Tx descriptors) per queue. - * @initial: Initial numbers of TxDLs per queue (can grow up to @max). - * @intr: Boolean. Use 1 to generate interrupt for each completed TxDL. - * Use 0 otherwise. - * @intr_vector: TBD - * @no_snoop_bits: If non-zero, specifies no-snoop PCI operation, - * which generally improves latency of the host bridge operation - * (see PCI specification). For valid values please refer - * to xge_hal_fifo_queue_t{} in the driver sources. - * @priority: TBD - * @configured: Boolean. Use 1 to specify that the fifo is configured. - * Only "configured" fifos can be activated and used to post - * Tx descriptors. Any subset of 8 available fifos can be - * "configured". - * @tti: TBD - * - * Single fifo configuration. - * Note: Valid (min, max) range for each attribute is specified in the body of - * the xge_hal_fifo_queue_t{} structure. Please refer to the - * corresponding header file. - * See also: xge_hal_fifo_config_t{} - */ -typedef struct xge_hal_fifo_queue_t { - int max; - int initial; -#define XGE_HAL_MIN_FIFO_QUEUE_LENGTH 2 -#define XGE_HAL_MAX_FIFO_QUEUE_LENGTH 8192 - - int intr; -#define XGE_HAL_MIN_FIFO_QUEUE_INTR 0 -#define XGE_HAL_MAX_FIFO_QUEUE_INTR 1 - - int intr_vector; -#define XGE_HAL_MIN_FIFO_QUEUE_INTR_VECTOR 0 -#define XGE_HAL_MAX_FIFO_QUEUE_INTR_VECTOR 64 - - int no_snoop_bits; -#define XGE_HAL_MIN_FIFO_QUEUE_NO_SNOOP_DISABLED 0 -#define XGE_HAL_MAX_FIFO_QUEUE_NO_SNOOP_TXD 1 -#define XGE_HAL_MAX_FIFO_QUEUE_NO_SNOOP_BUFFER 2 -#define XGE_HAL_MAX_FIFO_QUEUE_NO_SNOOP_ALL 3 - - int priority; -#define XGE_HAL_MIN_FIFO_PRIORITY 0 -#define XGE_HAL_MAX_FIFO_PRIORITY 63 - - int configured; -#define XGE_HAL_MIN_FIFO_CONFIGURED 0 -#define XGE_HAL_MAX_FIFO_CONFIGURED 1 - -#define XGE_HAL_MAX_FIFO_TTI_NUM 7 -#define XGE_HAL_MAX_FIFO_TTI_RING_0 56 - xge_hal_tti_config_t tti[XGE_HAL_MAX_FIFO_TTI_NUM]; - -} xge_hal_fifo_queue_t; - -/** - * struct xge_hal_fifo_config_t - Configuration of all 8 fifos. - * @max_frags: Max number of Tx buffers per TxDL (that is, per single - * transmit operation). - * No more than 256 transmit buffers can be specified. - * @max_aligned_frags: Number of fragments to be aligned out of - * maximum fragments (see @max_frags). - * @reserve_threshold: Descriptor reservation threshold. - * At least @reserve_threshold descriptors will remain - * unallocated at all times. - * @memblock_size: Fifo descriptors are allocated in blocks of @mem_block_size - * bytes. Setting @memblock_size to page size ensures - * by-page allocation of descriptors. 128K bytes is the - * maximum supported block size. - * @queue: Array of per-fifo configurations. - * @alignment_size: per Tx fragment DMA-able memory used to align transmit data - * (e.g., to align on a cache line). - * - * Configuration of all Xframe fifos. Includes array of xge_hal_fifo_queue_t - * structures. - * Note: Valid (min, max) range for each attribute is specified in the body of - * the xge_hal_fifo_config_t{} structure. Please refer to the - * corresponding header file. - * See also: xge_hal_ring_queue_t{}. - */ -typedef struct xge_hal_fifo_config_t { - int max_frags; -#define XGE_HAL_MIN_FIFO_FRAGS 1 -#define XGE_HAL_MAX_FIFO_FRAGS 256 - - int reserve_threshold; -#define XGE_HAL_MIN_FIFO_RESERVE_THRESHOLD 0 -#define XGE_HAL_MAX_FIFO_RESERVE_THRESHOLD 8192 - - int memblock_size; -#define XGE_HAL_MIN_FIFO_MEMBLOCK_SIZE 4096 -#define XGE_HAL_MAX_FIFO_MEMBLOCK_SIZE 131072 - - int alignment_size; -#define XGE_HAL_MIN_ALIGNMENT_SIZE 0 -#define XGE_HAL_MAX_ALIGNMENT_SIZE 65536 - - int max_aligned_frags; - /* range: (1, @max_frags) */ - -#define XGE_HAL_MIN_FIFO_NUM 1 -#define XGE_HAL_MAX_FIFO_NUM_HERC 8 -#define XGE_HAL_MAX_FIFO_NUM_TITAN (XGE_HAL_MAX_VIRTUAL_PATHS - 1) -#define XGE_HAL_MAX_FIFO_NUM (XGE_HAL_MAX_VIRTUAL_PATHS) - xge_hal_fifo_queue_t queue[XGE_HAL_MAX_FIFO_NUM]; -} xge_hal_fifo_config_t; - -/** - * struct xge_hal_rts_port_t - RTS port entry - * @num: Port number - * @udp: Port is UDP (default TCP) - * @src: Port is Source (default Destination) - */ -typedef struct xge_hal_rts_port_t { - int num; - int udp; - int src; -} xge_hal_rts_port_t; - -/** - * struct xge_hal_ring_queue_t - Single ring configuration. - * @max: Max numbers of RxD blocks per queue - * @initial: Initial numbers of RxD blocks per queue - * (can grow up to @max) - * @buffer_mode: Receive buffer mode (1, 2, 3, or 5); for details please refer - * to Xframe User Guide. - * @dram_size_mb: Size (in MB) of Xframe DRAM used for _that_ ring. - * Note that 64MB of available - * on-board DRAM is shared between receive rings. - * If a single ring is used, @dram_size_mb can be set to 64. - * Sum of all rings' @dram_size_mb cannot exceed 64. - * @intr_vector: TBD - * @backoff_interval_us: Time (in microseconds), after which Xframe - * tries to download RxDs posted by the host. - * Note that the "backoff" does not happen if host posts receive - * descriptors in the timely fashion. - * @max_frm_len: Maximum frame length that can be received on _that_ ring. - * Setting this field to -1 ensures that the ring will - * "accept" MTU-size frames (note that MTU can be changed at - * runtime). - * Any value other than (-1) specifies a certain "hard" - * limit on the receive frame sizes. - * The field can be used to activate receive frame-length based - * steering. - * @priority: Ring priority. 0 - highest, 7 - lowest. The value is used - * to give prioritized access to PCI-X. See Xframe documentation - * for details. - * @rth_en: Enable Receive Traffic Hashing (RTH). - * @no_snoop_bits: If non-zero, specifies no-snoop PCI operation, - * which generally improves latency of the host bridge operation - * (see PCI specification). For valid values please refer - * to xge_hal_ring_queue_t{} in the driver sources. - * @indicate_max_pkts: Sets maximum number of received frames to be processed - * within single interrupt. - * @configured: Boolean. Use 1 to specify that the ring is configured. - * Only "configured" rings can be activated and used to post - * Rx descriptors. Any subset of 8 available rings can be - * "configured". - * @rts_mac_en: 1 - To enable Receive MAC address steering. - * 0 - To disable Receive MAC address steering. - * @rth_en: TBD - * @rts_port_en: TBD - * @rts_ports: TBD - * @rti: Xframe receive interrupt configuration. - * - * Single ring configuration. - * Note: Valid (min, max) range for each attribute is specified in the body of - * the xge_hal_ring_queue_t{} structure. Please refer to the - * corresponding header file. - * See also: xge_hal_fifo_config_t{}. - */ -typedef struct xge_hal_ring_queue_t { - int max; - int initial; -#define XGE_HAL_MIN_RING_QUEUE_BLOCKS 1 -#define XGE_HAL_MAX_RING_QUEUE_BLOCKS 64 - - int buffer_mode; -#define XGE_HAL_RING_QUEUE_BUFFER_MODE_1 1 -#define XGE_HAL_RING_QUEUE_BUFFER_MODE_2 2 -#define XGE_HAL_RING_QUEUE_BUFFER_MODE_3 3 -#define XGE_HAL_RING_QUEUE_BUFFER_MODE_5 5 - - int dram_size_mb; -#define XGE_HAL_MIN_RING_QUEUE_SIZE 0 -#define XGE_HAL_MAX_RING_QUEUE_SIZE_XENA 64 -#define XGE_HAL_MAX_RING_QUEUE_SIZE_HERC 32 - - int intr_vector; -#define XGE_HAL_MIN_RING_QUEUE_INTR_VECTOR 0 -#define XGE_HAL_MAX_RING_QUEUE_INTR_VECTOR 64 - - int backoff_interval_us; -#define XGE_HAL_MIN_BACKOFF_INTERVAL_US 1 -#define XGE_HAL_MAX_BACKOFF_INTERVAL_US 125000 - - int max_frm_len; -#define XGE_HAL_MIN_MAX_FRM_LEN -1 -#define XGE_HAL_MAX_MAX_FRM_LEN 9622 - - int priority; -#define XGE_HAL_MIN_RING_PRIORITY 0 -#define XGE_HAL_MAX_RING_PRIORITY 7 - - int no_snoop_bits; -#define XGE_HAL_MIN_RING_QUEUE_NO_SNOOP_DISABLED 0 -#define XGE_HAL_MAX_RING_QUEUE_NO_SNOOP_RXD 1 -#define XGE_HAL_MAX_RING_QUEUE_NO_SNOOP_BUFFER 2 -#define XGE_HAL_MAX_RING_QUEUE_NO_SNOOP_ALL 3 - - int indicate_max_pkts; -#define XGE_HAL_MIN_RING_INDICATE_MAX_PKTS 1 -#define XGE_HAL_MAX_RING_INDICATE_MAX_PKTS 65536 - - int configured; -#define XGE_HAL_MIN_RING_CONFIGURED 0 -#define XGE_HAL_MAX_RING_CONFIGURED 1 - - int rts_mac_en; -#define XGE_HAL_MIN_RING_RTS_MAC_EN 0 -#define XGE_HAL_MAX_RING_RTS_MAC_EN 1 - - int rth_en; -#define XGE_HAL_MIN_RING_RTH_EN 0 -#define XGE_HAL_MAX_RING_RTH_EN 1 - - int rts_port_en; -#define XGE_HAL_MIN_RING_RTS_PORT_EN 0 -#define XGE_HAL_MAX_RING_RTS_PORT_EN 1 - -#define XGE_HAL_MAX_STEERABLE_PORTS 32 - xge_hal_rts_port_t rts_ports[XGE_HAL_MAX_STEERABLE_PORTS]; - - xge_hal_rti_config_t rti; - -} xge_hal_ring_queue_t; - -/** - * struct xge_hal_ring_config_t - Array of ring configurations. - * @memblock_size: Ring descriptors are allocated in blocks of @mem_block_size - * bytes. Setting @memblock_size to page size ensures - * by-page allocation of descriptors. 128K bytes is the - * upper limit. - * @scatter_mode: Xframe supports two receive scatter modes: A and B. - * For details please refer to Xframe User Guide. - * @strip_vlan_tag: TBD - * @queue: Array of all Xframe ring configurations. - * - * Array of ring configurations. - * See also: xge_hal_ring_queue_t{}. - */ -typedef struct xge_hal_ring_config_t { - - int memblock_size; -#define XGE_HAL_MIN_RING_MEMBLOCK_SIZE 4096 -#define XGE_HAL_MAX_RING_MEMBLOCK_SIZE 131072 - - int scatter_mode; -#define XGE_HAL_RING_QUEUE_SCATTER_MODE_A 0 -#define XGE_HAL_RING_QUEUE_SCATTER_MODE_B 1 - - int strip_vlan_tag; -#define XGE_HAL_RING_DONOT_STRIP_VLAN_TAG 0 -#define XGE_HAL_RING_STRIP_VLAN_TAG 1 - -#define XGE_HAL_MIN_RING_NUM 1 -#define XGE_HAL_MAX_RING_NUM_HERC 8 -#define XGE_HAL_MAX_RING_NUM_TITAN (XGE_HAL_MAX_VIRTUAL_PATHS - 1) -#define XGE_HAL_MAX_RING_NUM (XGE_HAL_MAX_VIRTUAL_PATHS) - xge_hal_ring_queue_t queue[XGE_HAL_MAX_RING_NUM]; - -} xge_hal_ring_config_t; - -/** - * struct xge_hal_mac_config_t - MAC configuration. - * @media: Transponder type. - * @tmac_util_period: The sampling period over which the transmit utilization - * is calculated. - * @rmac_util_period: The sampling period over which the receive utilization - * is calculated. - * @rmac_strip_pad: Determines whether padding of received frames is removed by - * the MAC or sent to the host. - * @rmac_bcast_en: Enable frames containing broadcast address to be - * passed to the host. - * @rmac_pause_gen_en: Received pause generation enable. - * @rmac_pause_rcv_en: Receive pause enable. - * @rmac_pause_time: The value to be inserted in outgoing pause frames. - * Has units of pause quanta (one pause quanta = 512 bit times). - * @mc_pause_threshold_q0q3: Contains thresholds for pause frame generation - * for queues 0 through 3. The threshold value indicates portion of the - * individual receive buffer queue size. Thresholds have a range of 0 to - * 255, allowing 256 possible watermarks in a queue. - * @mc_pause_threshold_q4q7: Contains thresholds for pause frame generation - * for queues 4 through 7. The threshold value indicates portion of the - * individual receive buffer queue size. Thresholds have a range of 0 to - * 255, allowing 256 possible watermarks in a queue. - * - * MAC configuration. This includes various aspects of configuration, including: - * - Pause frame threshold; - * - sampling rate to calculate link utilization; - * - enabling/disabling broadcasts. - * - * See Xframe User Guide for more details. - * Note: Valid (min, max) range for each attribute is specified in the body of - * the xge_hal_mac_config_t{} structure. Please refer to the - * corresponding include file. - */ -typedef struct xge_hal_mac_config_t { - int media; -#define XGE_HAL_MIN_MEDIA 0 -#define XGE_HAL_MEDIA_SR 0 -#define XGE_HAL_MEDIA_SW 1 -#define XGE_HAL_MEDIA_LR 2 -#define XGE_HAL_MEDIA_LW 3 -#define XGE_HAL_MEDIA_ER 4 -#define XGE_HAL_MEDIA_EW 5 -#define XGE_HAL_MAX_MEDIA 5 - - int tmac_util_period; -#define XGE_HAL_MIN_TMAC_UTIL_PERIOD 0 -#define XGE_HAL_MAX_TMAC_UTIL_PERIOD 15 - - int rmac_util_period; -#define XGE_HAL_MIN_RMAC_UTIL_PERIOD 0 -#define XGE_HAL_MAX_RMAC_UTIL_PERIOD 15 - - int rmac_bcast_en; -#define XGE_HAL_MIN_RMAC_BCAST_EN 0 -#define XGE_HAL_MAX_RMAC_BCAST_EN 1 - - int rmac_pause_gen_en; -#define XGE_HAL_MIN_RMAC_PAUSE_GEN_EN 0 -#define XGE_HAL_MAX_RMAC_PAUSE_GEN_EN 1 - - int rmac_pause_rcv_en; -#define XGE_HAL_MIN_RMAC_PAUSE_RCV_EN 0 -#define XGE_HAL_MAX_RMAC_PAUSE_RCV_EN 1 - - int rmac_pause_time; -#define XGE_HAL_MIN_RMAC_HIGH_PTIME 16 -#define XGE_HAL_MAX_RMAC_HIGH_PTIME 65535 - - int mc_pause_threshold_q0q3; -#define XGE_HAL_MIN_MC_PAUSE_THRESHOLD_Q0Q3 0 -#define XGE_HAL_MAX_MC_PAUSE_THRESHOLD_Q0Q3 254 - - int mc_pause_threshold_q4q7; -#define XGE_HAL_MIN_MC_PAUSE_THRESHOLD_Q4Q7 0 -#define XGE_HAL_MAX_MC_PAUSE_THRESHOLD_Q4Q7 254 - -} xge_hal_mac_config_t; - -/** - * struct xge_hal_device_config_t - Device configuration. - * @mtu: Current mtu size. - * @isr_polling_cnt: Maximum number of times to "poll" for Tx and Rx - * completions. Used in xge_hal_device_handle_irq(). - * @latency_timer: Specifies, in units of PCI bus clocks, and in conformance - * with the PCI Specification, the value of the Latency Timer - * for this PCI bus master. - * Specify either zero or -1 to use BIOS default. - * @napi_weight: (TODO) - * @max_splits_trans: Maximum number of PCI-X split transactions. - * Specify (-1) to use BIOS default. - * @mmrb_count: Maximum Memory Read Byte Count. Use (-1) to use default - * BIOS value. Otherwise: mmrb_count = 0 corresponds to 512B; - * 1 - 1KB, 2 - 2KB, and 3 - 4KB. - * @shared_splits: The number of Outstanding Split Transactions that is - * shared by Tx and Rx requests. The device stops issuing Tx - * requests once the number of Outstanding Split Transactions is - * equal to the value of Shared_Splits. - * A value of zero indicates that the Tx and Rx share all allocated - * Split Requests, i.e. the device can issue both types (Tx and Rx) - * of read requests until the number of Maximum Outstanding Split - * Transactions is reached. - * @stats_refresh_time_sec: Sets the default interval for automatic stats transfer - * to the host. This includes MAC stats as well as PCI stats. - * See xge_hal_stats_hw_info_t{}. - * @pci_freq_mherz: PCI clock frequency, e.g.: 133 for 133MHz. - * @intr_mode: Line, MSI, or MSI-X interrupt. - * @sched_timer_us: If greater than zero, specifies time interval - * (in microseconds) for the device to generate - * interrupt. Note that unlike tti and rti interrupts, - * the scheduled interrupt is generated independently of - * whether there is transmit or receive traffic, respectively. - * @sched_timer_one_shot: 1 - generate scheduled interrupt only once. - * 0 - generate scheduled interrupt periodically at the specified - * @sched_timer_us interval. - * - * @ring: See xge_hal_ring_config_t{}. - * @mac: See xge_hal_mac_config_t{}. - * @tti: See xge_hal_tti_config_t{}. - * @fifo: See xge_hal_fifo_config_t{}. - * - * @dump_on_serr: Dump adapter state ("about", statistics, registers) on SERR#. - * @dump_on_eccerr: Dump adapter state ("about", statistics, registers) on - * ECC error. - * @dump_on_parityerr: Dump adapter state ("about", statistics, registers) on - * parity error. - * @rth_en: Enable Receive Traffic Hashing(RTH) using IT(Indirection Table). - * @rth_bucket_size: RTH bucket width (in bits). For valid range please see - * xge_hal_device_config_t{} in the driver sources. - * @rth_spdm_en: Enable Receive Traffic Hashing(RTH) using SPDM(Socket Pair - * Direct Match). - * @rth_spdm_use_l4: Set to 1, if the L4 ports are used in the calculation of - * hash value in the RTH SPDM based steering. - * @rxufca_intr_thres: (TODO) - * @rxufca_lo_lim: (TODO) - * @rxufca_hi_lim: (TODO) - * @rxufca_lbolt_period: (TODO) - * @link_valid_cnt: link-valid counting is done only at device-open time, - * to determine with the specified certainty that the link is up. See also - * @link_retry_cnt. - * @link_retry_cnt: Max number of polls for link-up. Done only at device - * open time. Reducing this value as well as the previous @link_valid_cnt, - * speeds up device startup, which may be important if the driver - * is compiled into OS. - * @link_stability_period: Specify the period for which the link must be - * stable in order for the adapter to declare "LINK UP". - * The enumerated settings (see Xframe-II UG) are: - * 0 ........... instantaneous - * 1 ........... 500 μs - * 2 ........... 1 ms - * 3 ........... 64 ms - * 4 ........... 256 ms - * 5 ........... 512 ms - * 6 ........... 1 s - * 7 ........... 2 s - * @device_poll_millis: Specify the interval (in mulliseconds) between - * successive xge_hal_device_poll() runs. - * stable in order for the adapter to declare "LINK UP". - * @no_isr_events: TBD - * @lro_sg_size: TBD - * @lro_frm_len: TBD - * @bimodal_interrupts: Enable bimodal interrupts in device - * @bimodal_timer_lo_us: TBD - * @bimodal_timer_hi_us: TBD - * @rts_mac_en: Enable Receive Traffic Steering using MAC destination address - * @rts_qos_en: TBD - * @rts_port_en: TBD - * @vp_config: Configuration for virtual paths - * @max_cqe_groups: The maximum number of adapter CQE group blocks a CQRQ - * can own at any one time. - * @max_num_wqe_od_groups: The maximum number of WQE Headers/OD Groups that - * this S-RQ can own at any one time. - * @no_wqe_threshold: Maximum number of times adapter polls WQE Hdr blocks for - * WQEs before generating a message or interrupt. - * @refill_threshold_high:This field provides a hysteresis upper bound for - * automatic adapter refill operations. - * @refill_threshold_low:This field provides a hysteresis lower bound for - * automatic adapter refill operations. - * @eol_policy:This field sets the policy for handling the end of list condition. - * 2'b00 - When EOL is reached,poll until last block wrapper size is no longer 0. - * 2'b01 - Send UMQ message when EOL is reached. - * 2'b1x - Poll until the poll_count_max is reached and if still EOL,send UMQ message - * @eol_poll_count_max:sets the maximum number of times the queue manager will poll for - * a non-zero block wrapper before giving up and sending a UMQ message - * @ack_blk_limit: Limit on the maximum number of ACK list blocks that can be held - * by a session at any one time. - * @poll_or_doorbell: TBD - * - * Xframe configuration. - * Contains per-device configuration parameters, including: - * - latency timer (settable via PCI configuration space); - * - maximum number of split transactions; - * - maximum number of shared splits; - * - stats sampling interval, etc. - * - * In addition, xge_hal_device_config_t{} includes "subordinate" - * configurations, including: - * - fifos and rings; - * - MAC (see xge_hal_mac_config_t{}). - * - * See Xframe User Guide for more details. - * Note: Valid (min, max) range for each attribute is specified in the body of - * the xge_hal_device_config_t{} structure. Please refer to the - * corresponding include file. - * See also: xge_hal_tti_config_t{}, xge_hal_stats_hw_info_t{}, - * xge_hal_mac_config_t{}. - */ -typedef struct xge_hal_device_config_t { - int mtu; -#define XGE_HAL_MIN_INITIAL_MTU XGE_HAL_MIN_MTU -#define XGE_HAL_MAX_INITIAL_MTU XGE_HAL_MAX_MTU - - int isr_polling_cnt; -#define XGE_HAL_MIN_ISR_POLLING_CNT 0 -#define XGE_HAL_MAX_ISR_POLLING_CNT 65536 - - int latency_timer; -#define XGE_HAL_USE_BIOS_DEFAULT_LATENCY -1 -#define XGE_HAL_MIN_LATENCY_TIMER 8 -#define XGE_HAL_MAX_LATENCY_TIMER 255 - - int napi_weight; -#define XGE_HAL_DEF_NAPI_WEIGHT 64 - - int max_splits_trans; -#define XGE_HAL_USE_BIOS_DEFAULT_SPLITS -1 -#define XGE_HAL_ONE_SPLIT_TRANSACTION 0 -#define XGE_HAL_TWO_SPLIT_TRANSACTION 1 -#define XGE_HAL_THREE_SPLIT_TRANSACTION 2 -#define XGE_HAL_FOUR_SPLIT_TRANSACTION 3 -#define XGE_HAL_EIGHT_SPLIT_TRANSACTION 4 -#define XGE_HAL_TWELVE_SPLIT_TRANSACTION 5 -#define XGE_HAL_SIXTEEN_SPLIT_TRANSACTION 6 -#define XGE_HAL_THIRTYTWO_SPLIT_TRANSACTION 7 - - int mmrb_count; -#define XGE_HAL_DEFAULT_BIOS_MMRB_COUNT -1 -#define XGE_HAL_MIN_MMRB_COUNT 0 /* 512b */ -#define XGE_HAL_MAX_MMRB_COUNT 3 /* 4k */ - - int shared_splits; -#define XGE_HAL_MIN_SHARED_SPLITS 0 -#define XGE_HAL_MAX_SHARED_SPLITS 31 - - int stats_refresh_time_sec; -#define XGE_HAL_STATS_REFRESH_DISABLE 0 -#define XGE_HAL_MIN_STATS_REFRESH_TIME 1 -#define XGE_HAL_MAX_STATS_REFRESH_TIME 300 - - int pci_freq_mherz; -#define XGE_HAL_PCI_FREQ_MHERZ_33 33 -#define XGE_HAL_PCI_FREQ_MHERZ_66 66 -#define XGE_HAL_PCI_FREQ_MHERZ_100 100 -#define XGE_HAL_PCI_FREQ_MHERZ_133 133 -#define XGE_HAL_PCI_FREQ_MHERZ_266 266 - - int intr_mode; -#define XGE_HAL_INTR_MODE_IRQLINE 0 -#define XGE_HAL_INTR_MODE_MSI 1 -#define XGE_HAL_INTR_MODE_MSIX 2 - - int sched_timer_us; -#define XGE_HAL_SCHED_TIMER_DISABLED 0 -#define XGE_HAL_SCHED_TIMER_MIN 0 -#define XGE_HAL_SCHED_TIMER_MAX 0xFFFFF - - int sched_timer_one_shot; -#define XGE_HAL_SCHED_TIMER_ON_SHOT_DISABLE 0 -#define XGE_HAL_SCHED_TIMER_ON_SHOT_ENABLE 1 - - xge_hal_ring_config_t ring; - xge_hal_mac_config_t mac; - xge_hal_fifo_config_t fifo; - - int dump_on_serr; -#define XGE_HAL_DUMP_ON_SERR_DISABLE 0 -#define XGE_HAL_DUMP_ON_SERR_ENABLE 1 - - int dump_on_eccerr; -#define XGE_HAL_DUMP_ON_ECCERR_DISABLE 0 -#define XGE_HAL_DUMP_ON_ECCERR_ENABLE 1 - - int dump_on_parityerr; -#define XGE_HAL_DUMP_ON_PARITYERR_DISABLE 0 -#define XGE_HAL_DUMP_ON_PARITYERR_ENABLE 1 - - int rth_en; -#define XGE_HAL_RTH_DISABLE 0 -#define XGE_HAL_RTH_ENABLE 1 - - int rth_bucket_size; -#define XGE_HAL_MIN_RTH_BUCKET_SIZE 1 -#define XGE_HAL_MAX_RTH_BUCKET_SIZE 8 - - int rth_spdm_en; -#define XGE_HAL_RTH_SPDM_DISABLE 0 -#define XGE_HAL_RTH_SPDM_ENABLE 1 - - int rth_spdm_use_l4; -#define XGE_HAL_RTH_SPDM_USE_L4 1 - - int rxufca_intr_thres; -#define XGE_HAL_RXUFCA_INTR_THRES_MIN 1 -#define XGE_HAL_RXUFCA_INTR_THRES_MAX 4096 - - int rxufca_lo_lim; -#define XGE_HAL_RXUFCA_LO_LIM_MIN 1 -#define XGE_HAL_RXUFCA_LO_LIM_MAX 16 - - int rxufca_hi_lim; -#define XGE_HAL_RXUFCA_HI_LIM_MIN 1 -#define XGE_HAL_RXUFCA_HI_LIM_MAX 256 - - int rxufca_lbolt_period; -#define XGE_HAL_RXUFCA_LBOLT_PERIOD_MIN 1 -#define XGE_HAL_RXUFCA_LBOLT_PERIOD_MAX 1024 - - int link_valid_cnt; -#define XGE_HAL_LINK_VALID_CNT_MIN 0 -#define XGE_HAL_LINK_VALID_CNT_MAX 127 - - int link_retry_cnt; -#define XGE_HAL_LINK_RETRY_CNT_MIN 0 -#define XGE_HAL_LINK_RETRY_CNT_MAX 127 - - int link_stability_period; -#define XGE_HAL_DEFAULT_LINK_STABILITY_PERIOD 2 /* 1ms */ -#define XGE_HAL_MIN_LINK_STABILITY_PERIOD 0 /* instantaneous */ -#define XGE_HAL_MAX_LINK_STABILITY_PERIOD 7 /* 2s */ - - int device_poll_millis; -#define XGE_HAL_DEFAULT_DEVICE_POLL_MILLIS 1000 -#define XGE_HAL_MIN_DEVICE_POLL_MILLIS 1 -#define XGE_HAL_MAX_DEVICE_POLL_MILLIS 100000 - - int no_isr_events; -#define XGE_HAL_NO_ISR_EVENTS_MIN 0 -#define XGE_HAL_NO_ISR_EVENTS_MAX 1 - - int lro_sg_size; -#define XGE_HAL_LRO_DEFAULT_SG_SIZE 10 -#define XGE_HAL_LRO_MIN_SG_SIZE 1 -#define XGE_HAL_LRO_MAX_SG_SIZE 64 - - int lro_frm_len; -#define XGE_HAL_LRO_DEFAULT_FRM_LEN 65536 -#define XGE_HAL_LRO_MIN_FRM_LEN 4096 -#define XGE_HAL_LRO_MAX_FRM_LEN 65536 - - int bimodal_interrupts; -#define XGE_HAL_BIMODAL_INTR_MIN -1 -#define XGE_HAL_BIMODAL_INTR_MAX 1 - - int bimodal_timer_lo_us; -#define XGE_HAL_BIMODAL_TIMER_LO_US_MIN 1 -#define XGE_HAL_BIMODAL_TIMER_LO_US_MAX 127 - - int bimodal_timer_hi_us; -#define XGE_HAL_BIMODAL_TIMER_HI_US_MIN 128 -#define XGE_HAL_BIMODAL_TIMER_HI_US_MAX 65535 - - int rts_mac_en; -#define XGE_HAL_RTS_MAC_DISABLE 0 -#define XGE_HAL_RTS_MAC_ENABLE 1 - - int rts_qos_en; -#define XGE_HAL_RTS_QOS_DISABLE 0 -#define XGE_HAL_RTS_QOS_ENABLE 1 - - int rts_port_en; -#define XGE_HAL_RTS_PORT_DISABLE 0 -#define XGE_HAL_RTS_PORT_ENABLE 1 - -} xge_hal_device_config_t; - -/** - * struct xge_hal_driver_config_t - HAL (layer) configuration. - * @periodic_poll_interval_millis: Interval, in milliseconds, which is used to - * periodically poll HAL, i.e, invoke - * xge_hal_device_poll(). - * Note that HAL does not maintain its own - * polling context. HAL relies on ULD to - * provide one. - * @queue_size_initial: Initial size of the HAL protected event queue. - * The queue is shared by HAL and upper-layer drivers. - * The queue is used to exchange and process slow-path - * events. See xge_hal_event_e. - * @queue_size_max: Maximum size of the HAL queue. Depending on the load, - * the queue may grow at run-time up to @queue_max_size. - * @tracebuf_size: Size of the trace buffer. Set it to '0' to disable. - * HAL configuration. (Note: do not confuse HAL layer with (possibly multiple) - * HAL devices.) - * Currently this structure contains just a few basic values. - * Note: Valid (min, max) range for each attribute is specified in the body of - * the structure. Please refer to the corresponding header file. - * See also: xge_hal_device_poll() - */ -typedef struct xge_hal_driver_config_t { - int queue_size_initial; -#define XGE_HAL_MIN_QUEUE_SIZE_INITIAL 1 -#define XGE_HAL_MAX_QUEUE_SIZE_INITIAL 16 - - int queue_size_max; -#define XGE_HAL_MIN_QUEUE_SIZE_MAX 1 -#define XGE_HAL_MAX_QUEUE_SIZE_MAX 16 - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR - int tracebuf_size; -#define XGE_HAL_MIN_CIRCULAR_ARR 4096 -#define XGE_HAL_MAX_CIRCULAR_ARR 1048576 -#define XGE_HAL_DEF_CIRCULAR_ARR XGE_OS_HOST_PAGE_SIZE - - int tracebuf_timestamp_en; -#define XGE_HAL_MIN_TIMESTAMP_EN 0 -#define XGE_HAL_MAX_TIMESTAMP_EN 1 -#endif - -} xge_hal_driver_config_t; - - -/* ========================== PRIVATE API ================================= */ - -xge_hal_status_e -__hal_device_config_check_common (xge_hal_device_config_t *new_config); - -xge_hal_status_e -__hal_device_config_check_xena (xge_hal_device_config_t *new_config); - -xge_hal_status_e -__hal_device_config_check_herc (xge_hal_device_config_t *new_config); - -xge_hal_status_e -__hal_driver_config_check (xge_hal_driver_config_t *new_config); - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_CONFIG_H */ Property changes on: head/sys/dev/nxge/include/xgehal-config.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal.h =================================================================== --- head/sys/dev/nxge/include/xgehal.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal.h (nonexistent) @@ -1,46 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_H -#define XGE_HAL_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif /* XGE_HAL_H */ Property changes on: head/sys/dev/nxge/include/xgehal.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-types.h =================================================================== --- head/sys/dev/nxge/include/xgehal-types.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-types.h (nonexistent) @@ -1,609 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_TYPES_H -#define XGE_HAL_TYPES_H - -#include - -__EXTERN_BEGIN_DECLS - -/* - * BIT(loc) - set bit at offset - */ -#define BIT(loc) (0x8000000000000000ULL >> (loc)) - -/* - * vBIT(val, loc, sz) - set bits at offset - */ -#define vBIT(val, loc, sz) (((u64)(val)) << (64-(loc)-(sz))) -#define vBIT32(val, loc, sz) (((u32)(val)) << (32-(loc)-(sz))) - -/* - * bVALx(bits, loc) - Get the value of x bits at location - */ -#define bVAL1(bits, loc) ((((u64)bits) >> (64-(loc+1))) & 0x1) -#define bVAL2(bits, loc) ((((u64)bits) >> (64-(loc+2))) & 0x3) -#define bVAL3(bits, loc) ((((u64)bits) >> (64-(loc+3))) & 0x7) -#define bVAL4(bits, loc) ((((u64)bits) >> (64-(loc+4))) & 0xF) -#define bVAL5(bits, loc) ((((u64)bits) >> (64-(loc+5))) & 0x1F) -#define bVAL6(bits, loc) ((((u64)bits) >> (64-(loc+6))) & 0x3F) -#define bVAL7(bits, loc) ((((u64)bits) >> (64-(loc+7))) & 0x7F) -#define bVAL8(bits, loc) ((((u64)bits) >> (64-(loc+8))) & 0xFF) -#define bVAL12(bits, loc) ((((u64)bits) >> (64-(loc+12))) & 0xFFF) -#define bVAL14(bits, loc) ((((u64)bits) >> (64-(loc+14))) & 0x3FFF) -#define bVAL16(bits, loc) ((((u64)bits) >> (64-(loc+16))) & 0xFFFF) -#define bVAL20(bits, loc) ((((u64)bits) >> (64-(loc+20))) & 0xFFFFF) -#define bVAL22(bits, loc) ((((u64)bits) >> (64-(loc+22))) & 0x3FFFFF) -#define bVAL24(bits, loc) ((((u64)bits) >> (64-(loc+24))) & 0xFFFFFF) -#define bVAL28(bits, loc) ((((u64)bits) >> (64-(loc+28))) & 0xFFFFFFF) -#define bVAL32(bits, loc) ((((u64)bits) >> (64-(loc+32))) & 0xFFFFFFFF) -#define bVAL36(bits, loc) ((((u64)bits) >> (64-(loc+36))) & 0xFFFFFFFFF) -#define bVAL40(bits, loc) ((((u64)bits) >> (64-(loc+40))) & 0xFFFFFFFFFF) -#define bVAL44(bits, loc) ((((u64)bits) >> (64-(loc+44))) & 0xFFFFFFFFFFF) -#define bVAL48(bits, loc) ((((u64)bits) >> (64-(loc+48))) & 0xFFFFFFFFFFFF) -#define bVAL52(bits, loc) ((((u64)bits) >> (64-(loc+52))) & 0xFFFFFFFFFFFFF) -#define bVAL56(bits, loc) ((((u64)bits) >> (64-(loc+56))) & 0xFFFFFFFFFFFFFF) -#define bVAL60(bits, loc) ((((u64)bits) >> (64-(loc+60))) & 0xFFFFFFFFFFFFFFF) - -#define XGE_HAL_BASE_INF 100 -#define XGE_HAL_BASE_ERR 200 -#define XGE_HAL_BASE_BADCFG 300 - -#define XGE_HAL_ALL_FOXES 0xFFFFFFFFFFFFFFFFULL - -/** - * enum xge_hal_status_e - HAL return codes. - * @XGE_HAL_OK: Success. - * @XGE_HAL_FAIL: Failure. - * @XGE_HAL_COMPLETIONS_REMAIN: There are more completions on a channel. - * (specific to polling mode completion processing). - * @XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS: No more completed - * descriptors. See xge_hal_fifo_dtr_next_completed(). - * @XGE_HAL_INF_OUT_OF_DESCRIPTORS: Out of descriptors. Channel - * descriptors - * are reserved (via xge_hal_fifo_dtr_reserve(), - * xge_hal_fifo_dtr_reserve()) - * and not yet freed (via xge_hal_fifo_dtr_free(), - * xge_hal_ring_dtr_free()). - * @XGE_HAL_INF_CHANNEL_IS_NOT_READY: Channel is not ready for - * operation. - * @XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING: Indicates that host needs to - * poll until PIO is executed. - * @XGE_HAL_INF_STATS_IS_NOT_READY: Cannot retrieve statistics because - * HAL and/or device is not yet initialized. - * @XGE_HAL_INF_NO_MORE_FREED_DESCRIPTORS: No descriptors left to - * reserve. Internal use only. - * @XGE_HAL_INF_IRQ_POLLING_CONTINUE: Returned by the ULD channel - * callback when instructed to exit descriptor processing loop - * prematurely. Typical usage: polling mode of processing completed - * descriptors. - * Upon getting LRO_ISED, ll driver shall - * 1) initialise lro struct with mbuf if sg_num == 1. - * 2) else it will update m_data_ptr_of_mbuf to tcp pointer and - * append the new mbuf to the tail of mbuf chain in lro struct. - * - * @XGE_HAL_INF_LRO_BEGIN: Returned by ULD LRO module, when new LRO is - * being initiated. - * @XGE_HAL_INF_LRO_CONT: Returned by ULD LRO module, when new frame - * is appended at the end of existing LRO. - * @XGE_HAL_INF_LRO_UNCAPABLE: Returned by ULD LRO module, when new - * frame is not LRO capable. - * @XGE_HAL_INF_LRO_END_1: Returned by ULD LRO module, when new frame - * triggers LRO flush. - * @XGE_HAL_INF_LRO_END_2: Returned by ULD LRO module, when new - * frame triggers LRO flush. Lro frame should be flushed first then - * new frame should be flushed next. - * @XGE_HAL_INF_LRO_END_3: Returned by ULD LRO module, when new - * frame triggers close of current LRO session and opening of new LRO session - * with the frame. - * @XGE_HAL_INF_LRO_SESSIONS_XCDED: Returned by ULD LRO module, when no - * more LRO sessions can be added. - * @XGE_HAL_INF_NOT_ENOUGH_HW_CQES: TBD - * @XGE_HAL_ERR_DRIVER_NOT_INITIALIZED: HAL is not initialized. - * @XGE_HAL_ERR_OUT_OF_MEMORY: Out of memory (example, when and - * allocating descriptors). - * @XGE_HAL_ERR_CHANNEL_NOT_FOUND: xge_hal_channel_open will return this - * error if corresponding channel is not configured. - * @XGE_HAL_ERR_WRONG_IRQ: Returned by HAL's ISR when the latter is - * invoked not because of the Xframe-generated interrupt. - * @XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES: Returned when user tries to - * configure more than XGE_HAL_MAX_MAC_ADDRESSES mac addresses. - * @XGE_HAL_ERR_BAD_DEVICE_ID: Unknown device PCI ID. - * @XGE_HAL_ERR_OUT_ALIGNED_FRAGS: Too many unaligned fragments - * in a scatter-gather list. - * @XGE_HAL_ERR_DEVICE_NOT_INITIALIZED: Device is not initialized. - * Typically means wrong sequence of API calls. - * @XGE_HAL_ERR_SWAPPER_CTRL: Error during device initialization: failed - * to set Xframe byte swapper in accordnace with the host - * endian-ness. - * @XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT: Failed to restore the device to - * a "quiescent" state. - * @XGE_HAL_ERR_INVALID_MTU_SIZE: Returned when MTU size specified by - * caller is not in the (64, 9600) range. - * @XGE_HAL_ERR_OUT_OF_MAPPING: Failed to map DMA-able memory. - * @XGE_HAL_ERR_BAD_SUBSYSTEM_ID: Bad PCI subsystem ID. (Currently we - * check for zero/non-zero only.) - * @XGE_HAL_ERR_INVALID_BAR_ID: Invalid BAR ID. Xframe supports two Base - * Address Register Spaces: BAR0 (id=0) and BAR1 (id=1). - * @XGE_HAL_ERR_INVALID_OFFSET: Invalid offset. Example, attempt to read - * register value (with offset) outside of the BAR0 space. - * @XGE_HAL_ERR_INVALID_DEVICE: Invalid device. The HAL device handle - * (passed by ULD) is invalid. - * @XGE_HAL_ERR_OUT_OF_SPACE: Out-of-provided-buffer-space. Returned by - * management "get" routines when the retrieved information does - * not fit into the provided buffer. - * @XGE_HAL_ERR_INVALID_VALUE_BIT_SIZE: Invalid bit size. - * @XGE_HAL_ERR_VERSION_CONFLICT: Upper-layer driver and HAL (versions) - * are not compatible. - * @XGE_HAL_ERR_INVALID_MAC_ADDRESS: Invalid MAC address. - * @XGE_HAL_ERR_SPDM_NOT_ENABLED: SPDM support is not enabled. - * @XGE_HAL_ERR_SPDM_TABLE_FULL: SPDM table is full. - * @XGE_HAL_ERR_SPDM_INVALID_ENTRY: Invalid SPDM entry. - * @XGE_HAL_ERR_SPDM_ENTRY_NOT_FOUND: Unable to locate the entry in the - * SPDM table. - * @XGE_HAL_ERR_SPDM_TABLE_DATA_INCONSISTENT: Local SPDM table is not in - * synch ith the actual one. - * @XGE_HAL_ERR_INVALID_PCI_INFO: Invalid or unrecognized PCI frequency, - * and or width, and or mode (Xframe-II only, see UG on PCI_INFO register). - * @XGE_HAL_ERR_CRITICAL: Critical error. Returned by HAL APIs - * (including xge_hal_device_handle_tcode()) on: ECC, parity, SERR. - * Also returned when PIO read does not go through ("all-foxes") - * because of "slot-freeze". - * @XGE_HAL_ERR_RESET_FAILED: Failed to soft-reset the device. - * Returned by xge_hal_device_reset(). One circumstance when it could - * happen: slot freeze by the system (see @XGE_HAL_ERR_CRITICAL). - * @XGE_HAL_ERR_TOO_MANY: This error is returned if there were laready - * maximum number of sessions or queues allocated - * @XGE_HAL_ERR_PKT_DROP: TBD - * @XGE_HAL_BADCFG_TX_URANGE_A: Invalid Tx link utilization range A. See - * the structure xge_hal_tti_config_t{} for valid values. - * @XGE_HAL_BADCFG_TX_UFC_A: Invalid frame count for Tx link utilization - * range A. See the structure xge_hal_tti_config_t{} for valid values. - * @XGE_HAL_BADCFG_TX_URANGE_B: Invalid Tx link utilization range B. See - * the structure xge_hal_tti_config_t{} for valid values. - * @XGE_HAL_BADCFG_TX_UFC_B: Invalid frame count for Tx link utilization - * range B. See the strucuture xge_hal_tti_config_t{} for valid values. - * @XGE_HAL_BADCFG_TX_URANGE_C: Invalid Tx link utilization range C. See - * the structure xge_hal_tti_config_t{} for valid values. - * @XGE_HAL_BADCFG_TX_UFC_C: Invalid frame count for Tx link utilization - * range C. See the structure xge_hal_tti_config_t{} for valid values. - * @XGE_HAL_BADCFG_TX_UFC_D: Invalid frame count for Tx link utilization - * range D. See the structure xge_hal_tti_config_t{} for valid values. - * @XGE_HAL_BADCFG_TX_TIMER_VAL: Invalid Tx timer value. See the - * structure xge_hal_tti_config_t{} for valid values. - * @XGE_HAL_BADCFG_TX_TIMER_CI_EN: Invalid Tx timer continuous interrupt - * enable. See the structure xge_hal_tti_config_t{} for valid values. - * @XGE_HAL_BADCFG_RX_URANGE_A: Invalid Rx link utilization range A. See - * the structure xge_hal_rti_config_t{} for valid values. - * @XGE_HAL_BADCFG_RX_UFC_A: Invalid frame count for Rx link utilization - * range A. See the structure xge_hal_rti_config_t{} for valid values. - * @XGE_HAL_BADCFG_RX_URANGE_B: Invalid Rx link utilization range B. See - * the structure xge_hal_rti_config_t{} for valid values. - * @XGE_HAL_BADCFG_RX_UFC_B: Invalid frame count for Rx link utilization - * range B. See the structure xge_hal_rti_config_t{} for valid values. - * @XGE_HAL_BADCFG_RX_URANGE_C: Invalid Rx link utilization range C. See - * the structure xge_hal_rti_config_t{} for valid values. - * @XGE_HAL_BADCFG_RX_UFC_C: Invalid frame count for Rx link utilization - * range C. See the structure xge_hal_rti_config_t{} for valid values. - * @XGE_HAL_BADCFG_RX_UFC_D: Invalid frame count for Rx link utilization - * range D. See the structure xge_hal_rti_config_t{} for valid values. - * @XGE_HAL_BADCFG_RX_TIMER_VAL: Invalid Rx timer value. See the - * structure xge_hal_rti_config_t{} for valid values. - * @XGE_HAL_BADCFG_FIFO_QUEUE_INITIAL_LENGTH: Invalid initial fifo queue - * length. See the structure xge_hal_fifo_queue_t for valid values. - * @XGE_HAL_BADCFG_FIFO_QUEUE_MAX_LENGTH: Invalid fifo queue max length. - * See the structure xge_hal_fifo_queue_t for valid values. - * @XGE_HAL_BADCFG_FIFO_QUEUE_INTR: Invalid fifo queue interrupt mode. - * See the structure xge_hal_fifo_queue_t for valid values. - * @XGE_HAL_BADCFG_RING_QUEUE_INITIAL_BLOCKS: Invalid Initial number of - * RxD blocks for the ring. See the structure xge_hal_ring_queue_t for - * valid values. - * @XGE_HAL_BADCFG_RING_QUEUE_MAX_BLOCKS: Invalid maximum number of RxD - * blocks for the ring. See the structure xge_hal_ring_queue_t for - * valid values. - * @XGE_HAL_BADCFG_RING_QUEUE_BUFFER_MODE: Invalid ring buffer mode. See - * the structure xge_hal_ring_queue_t for valid values. - * @XGE_HAL_BADCFG_RING_QUEUE_SIZE: Invalid ring queue size. See the - * structure xge_hal_ring_queue_t for valid values. - * @XGE_HAL_BADCFG_BACKOFF_INTERVAL_US: Invalid backoff timer interval - * for the ring. See the structure xge_hal_ring_queue_t for valid values. - * @XGE_HAL_BADCFG_MAX_FRM_LEN: Invalid ring max frame length. See the - * structure xge_hal_ring_queue_t for valid values. - * @XGE_HAL_BADCFG_RING_PRIORITY: Invalid ring priority. See the - * structure xge_hal_ring_queue_t for valid values. - * @XGE_HAL_BADCFG_TMAC_UTIL_PERIOD: Invalid tmac util period. See the - * structure xge_hal_mac_config_t{} for valid values. - * @XGE_HAL_BADCFG_RMAC_UTIL_PERIOD: Invalid rmac util period. See the - * structure xge_hal_mac_config_t{} for valid values. - * @XGE_HAL_BADCFG_RMAC_BCAST_EN: Invalid rmac brodcast enable. See the - * structure xge_hal_mac_config_t{} for valid values. - * @XGE_HAL_BADCFG_RMAC_HIGH_PTIME: Invalid rmac pause time. See the - * structure xge_hal_mac_config_t{} for valid values. - * @XGE_HAL_BADCFG_MC_PAUSE_THRESHOLD_Q0Q3: Invalid threshold for pause - * frame generation for queues 0 through 3. See the structure - * xge_hal_mac_config_t{} for valid values. - * @XGE_HAL_BADCFG_MC_PAUSE_THRESHOLD_Q4Q7:Invalid threshold for pause - * frame generation for queues 4 through 7. See the structure - * xge_hal_mac_config_t{} for valid values. - * @XGE_HAL_BADCFG_FIFO_FRAGS: Invalid fifo max fragments length. See - * the structure xge_hal_fifo_config_t{} for valid values. - * @XGE_HAL_BADCFG_FIFO_RESERVE_THRESHOLD: Invalid fifo reserve - * threshold. See the structure xge_hal_fifo_config_t{} for valid values. - * @XGE_HAL_BADCFG_FIFO_MEMBLOCK_SIZE: Invalid fifo descriptors memblock - * size. See the structure xge_hal_fifo_config_t{} for valid values. - * @XGE_HAL_BADCFG_RING_MEMBLOCK_SIZE: Invalid ring descriptors memblock - * size. See the structure xge_hal_ring_config_t{} for valid values. - * @XGE_HAL_BADCFG_MAX_MTU: Invalid max mtu for the device. See the - * structure xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_ISR_POLLING_CNT: Invalid isr polling count. See the - * structure xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_LATENCY_TIMER: Invalid Latency timer. See the - * structure xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_MAX_SPLITS_TRANS: Invalid maximum number of pci-x - * split transactions. See the structure xge_hal_device_config_t{} for valid - * values. - * @XGE_HAL_BADCFG_MMRB_COUNT: Invalid mmrb count. See the structure - * xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_SHARED_SPLITS: Invalid number of outstanding split - * transactions that is shared by Tx and Rx requests. See the structure - * xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_STATS_REFRESH_TIME: Invalid time interval for - * automatic statistics transfer to the host. See the structure - * xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_PCI_FREQ_MHERZ: Invalid pci clock frequency. See the - * structure xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_PCI_MODE: Invalid pci mode. See the structure - * xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_INTR_MODE: Invalid interrupt mode. See the structure - * xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_SCHED_TIMER_US: Invalid scheduled timer interval to - * generate interrupt. See the structure xge_hal_device_config_t{} - * for valid values. - * @XGE_HAL_BADCFG_SCHED_TIMER_ON_SHOT: Invalid scheduled timer one - * shot. See the structure xge_hal_device_config_t{} for valid values. - * @XGE_HAL_BADCFG_QUEUE_SIZE_INITIAL: Invalid driver queue initial - * size. See the structure xge_hal_driver_config_t{} for valid values. - * @XGE_HAL_BADCFG_QUEUE_SIZE_MAX: Invalid driver queue max size. See - * the structure xge_hal_driver_config_t{} for valid values. - * @XGE_HAL_BADCFG_RING_RTH_EN: Invalid value of RTH-enable. See - * the structure xge_hal_ring_queue_t for valid values. - * @XGE_HAL_BADCFG_RING_INDICATE_MAX_PKTS: Invalid value configured for - * indicate_max_pkts variable. - * @XGE_HAL_BADCFG_TX_TIMER_AC_EN: Invalid value for Tx timer - * auto-cancel. See xge_hal_tti_config_t{}. - * @XGE_HAL_BADCFG_RX_TIMER_AC_EN: Invalid value for Rx timer - * auto-cancel. See xge_hal_rti_config_t{}. - * @XGE_HAL_BADCFG_RXUFCA_INTR_THRES: TODO - * @XGE_HAL_BADCFG_RXUFCA_LO_LIM: TODO - * @XGE_HAL_BADCFG_RXUFCA_HI_LIM: TODO - * @XGE_HAL_BADCFG_RXUFCA_LBOLT_PERIOD: TODO - * @XGE_HAL_BADCFG_TRACEBUF_SIZE: Bad configuration: the size of the circular - * (in memory) trace buffer either too large or too small. See the - * the corresponding header file or README for the acceptable range. - * @XGE_HAL_BADCFG_LINK_VALID_CNT: Bad configuration: the link-valid - * counter cannot have the specified value. Note that the link-valid - * counting is done only at device-open time, to determine with the - * specified certainty that the link is up. See the - * the corresponding header file or README for the acceptable range. - * See also @XGE_HAL_BADCFG_LINK_RETRY_CNT. - * @XGE_HAL_BADCFG_LINK_RETRY_CNT: Bad configuration: the specified - * link-up retry count is out of the valid range. Note that the link-up - * retry counting is done only at device-open time. - * See also xge_hal_device_config_t{}. - * @XGE_HAL_BADCFG_LINK_STABILITY_PERIOD: Invalid link stability period. - * @XGE_HAL_BADCFG_DEVICE_POLL_MILLIS: Invalid device poll interval. - * @XGE_HAL_BADCFG_RMAC_PAUSE_GEN_EN: TBD - * @XGE_HAL_BADCFG_RMAC_PAUSE_RCV_EN: TBD - * @XGE_HAL_BADCFG_MEDIA: TBD - * @XGE_HAL_BADCFG_NO_ISR_EVENTS: TBD - * See the structure xge_hal_device_config_t{} for valid values. - * @XGE_HAL_EOF_TRACE_BUF: End of the circular (in memory) trace buffer. - * Returned by xge_hal_mgmt_trace_read(), when user tries to read the trace - * past the buffer limits. Used to enable user to load the trace in two - * or more reads. - * @XGE_HAL_BADCFG_RING_RTS_MAC_EN: Invalid value of RTS_MAC_EN enable. See - * the structure xge_hal_ring_queue_t for valid values. - * @XGE_HAL_BADCFG_LRO_SG_SIZE : Invalid value of LRO scatter gatter size. - * See the structure xge_hal_device_config_t for valid values. - * @XGE_HAL_BADCFG_LRO_FRM_LEN : Invalid value of LRO frame length. - * See the structure xge_hal_device_config_t for valid values. - * @XGE_HAL_BADCFG_WQE_NUM_ODS: TBD - * @XGE_HAL_BADCFG_BIMODAL_INTR: Invalid value to configure bimodal interrupts - * Enumerates status and error codes returned by HAL public - * API functions. - * @XGE_HAL_BADCFG_BIMODAL_TIMER_LO_US: TBD - * @XGE_HAL_BADCFG_BIMODAL_TIMER_HI_US: TBD - * @XGE_HAL_BADCFG_BIMODAL_XENA_NOT_ALLOWED: TBD - * @XGE_HAL_BADCFG_RTS_QOS_EN: TBD - * @XGE_HAL_BADCFG_FIFO_QUEUE_INTR_VECTOR: TBD - * @XGE_HAL_BADCFG_RING_QUEUE_INTR_VECTOR: TBD - * @XGE_HAL_BADCFG_RTS_PORT_EN: TBD - * @XGE_HAL_BADCFG_RING_RTS_PORT_EN: TBD - * - */ -typedef enum xge_hal_status_e { - XGE_HAL_OK = 0, - XGE_HAL_FAIL = 1, - XGE_HAL_COMPLETIONS_REMAIN = 2, - - XGE_HAL_INF_NO_MORE_COMPLETED_DESCRIPTORS = XGE_HAL_BASE_INF + 1, - XGE_HAL_INF_OUT_OF_DESCRIPTORS = XGE_HAL_BASE_INF + 2, - XGE_HAL_INF_CHANNEL_IS_NOT_READY = XGE_HAL_BASE_INF + 3, - XGE_HAL_INF_MEM_STROBE_CMD_EXECUTING = XGE_HAL_BASE_INF + 4, - XGE_HAL_INF_STATS_IS_NOT_READY = XGE_HAL_BASE_INF + 5, - XGE_HAL_INF_NO_MORE_FREED_DESCRIPTORS = XGE_HAL_BASE_INF + 6, - XGE_HAL_INF_IRQ_POLLING_CONTINUE = XGE_HAL_BASE_INF + 7, - XGE_HAL_INF_LRO_BEGIN = XGE_HAL_BASE_INF + 8, - XGE_HAL_INF_LRO_CONT = XGE_HAL_BASE_INF + 9, - XGE_HAL_INF_LRO_UNCAPABLE = XGE_HAL_BASE_INF + 10, - XGE_HAL_INF_LRO_END_1 = XGE_HAL_BASE_INF + 11, - XGE_HAL_INF_LRO_END_2 = XGE_HAL_BASE_INF + 12, - XGE_HAL_INF_LRO_END_3 = XGE_HAL_BASE_INF + 13, - XGE_HAL_INF_LRO_SESSIONS_XCDED = XGE_HAL_BASE_INF + 14, - XGE_HAL_INF_NOT_ENOUGH_HW_CQES = XGE_HAL_BASE_INF + 15, - XGE_HAL_ERR_DRIVER_NOT_INITIALIZED = XGE_HAL_BASE_ERR + 1, - XGE_HAL_ERR_OUT_OF_MEMORY = XGE_HAL_BASE_ERR + 4, - XGE_HAL_ERR_CHANNEL_NOT_FOUND = XGE_HAL_BASE_ERR + 5, - XGE_HAL_ERR_WRONG_IRQ = XGE_HAL_BASE_ERR + 6, - XGE_HAL_ERR_OUT_OF_MAC_ADDRESSES = XGE_HAL_BASE_ERR + 7, - XGE_HAL_ERR_SWAPPER_CTRL = XGE_HAL_BASE_ERR + 8, - XGE_HAL_ERR_DEVICE_IS_NOT_QUIESCENT = XGE_HAL_BASE_ERR + 9, - XGE_HAL_ERR_INVALID_MTU_SIZE = XGE_HAL_BASE_ERR + 10, - XGE_HAL_ERR_OUT_OF_MAPPING = XGE_HAL_BASE_ERR + 11, - XGE_HAL_ERR_BAD_SUBSYSTEM_ID = XGE_HAL_BASE_ERR + 12, - XGE_HAL_ERR_INVALID_BAR_ID = XGE_HAL_BASE_ERR + 13, - XGE_HAL_ERR_INVALID_OFFSET = XGE_HAL_BASE_ERR + 14, - XGE_HAL_ERR_INVALID_DEVICE = XGE_HAL_BASE_ERR + 15, - XGE_HAL_ERR_OUT_OF_SPACE = XGE_HAL_BASE_ERR + 16, - XGE_HAL_ERR_INVALID_VALUE_BIT_SIZE = XGE_HAL_BASE_ERR + 17, - XGE_HAL_ERR_VERSION_CONFLICT = XGE_HAL_BASE_ERR + 18, - XGE_HAL_ERR_INVALID_MAC_ADDRESS = XGE_HAL_BASE_ERR + 19, - XGE_HAL_ERR_BAD_DEVICE_ID = XGE_HAL_BASE_ERR + 20, - XGE_HAL_ERR_OUT_ALIGNED_FRAGS = XGE_HAL_BASE_ERR + 21, - XGE_HAL_ERR_DEVICE_NOT_INITIALIZED = XGE_HAL_BASE_ERR + 22, - XGE_HAL_ERR_SPDM_NOT_ENABLED = XGE_HAL_BASE_ERR + 23, - XGE_HAL_ERR_SPDM_TABLE_FULL = XGE_HAL_BASE_ERR + 24, - XGE_HAL_ERR_SPDM_INVALID_ENTRY = XGE_HAL_BASE_ERR + 25, - XGE_HAL_ERR_SPDM_ENTRY_NOT_FOUND = XGE_HAL_BASE_ERR + 26, - XGE_HAL_ERR_SPDM_TABLE_DATA_INCONSISTENT= XGE_HAL_BASE_ERR + 27, - XGE_HAL_ERR_INVALID_PCI_INFO = XGE_HAL_BASE_ERR + 28, - XGE_HAL_ERR_CRITICAL = XGE_HAL_BASE_ERR + 29, - XGE_HAL_ERR_RESET_FAILED = XGE_HAL_BASE_ERR + 30, - XGE_HAL_ERR_TOO_MANY = XGE_HAL_BASE_ERR + 32, - XGE_HAL_ERR_PKT_DROP = XGE_HAL_BASE_ERR + 33, - - XGE_HAL_BADCFG_TX_URANGE_A = XGE_HAL_BASE_BADCFG + 1, - XGE_HAL_BADCFG_TX_UFC_A = XGE_HAL_BASE_BADCFG + 2, - XGE_HAL_BADCFG_TX_URANGE_B = XGE_HAL_BASE_BADCFG + 3, - XGE_HAL_BADCFG_TX_UFC_B = XGE_HAL_BASE_BADCFG + 4, - XGE_HAL_BADCFG_TX_URANGE_C = XGE_HAL_BASE_BADCFG + 5, - XGE_HAL_BADCFG_TX_UFC_C = XGE_HAL_BASE_BADCFG + 6, - XGE_HAL_BADCFG_TX_UFC_D = XGE_HAL_BASE_BADCFG + 8, - XGE_HAL_BADCFG_TX_TIMER_VAL = XGE_HAL_BASE_BADCFG + 9, - XGE_HAL_BADCFG_TX_TIMER_CI_EN = XGE_HAL_BASE_BADCFG + 10, - XGE_HAL_BADCFG_RX_URANGE_A = XGE_HAL_BASE_BADCFG + 11, - XGE_HAL_BADCFG_RX_UFC_A = XGE_HAL_BASE_BADCFG + 12, - XGE_HAL_BADCFG_RX_URANGE_B = XGE_HAL_BASE_BADCFG + 13, - XGE_HAL_BADCFG_RX_UFC_B = XGE_HAL_BASE_BADCFG + 14, - XGE_HAL_BADCFG_RX_URANGE_C = XGE_HAL_BASE_BADCFG + 15, - XGE_HAL_BADCFG_RX_UFC_C = XGE_HAL_BASE_BADCFG + 16, - XGE_HAL_BADCFG_RX_UFC_D = XGE_HAL_BASE_BADCFG + 17, - XGE_HAL_BADCFG_RX_TIMER_VAL = XGE_HAL_BASE_BADCFG + 18, - XGE_HAL_BADCFG_FIFO_QUEUE_INITIAL_LENGTH= XGE_HAL_BASE_BADCFG + 19, - XGE_HAL_BADCFG_FIFO_QUEUE_MAX_LENGTH = XGE_HAL_BASE_BADCFG + 20, - XGE_HAL_BADCFG_FIFO_QUEUE_INTR = XGE_HAL_BASE_BADCFG + 21, - XGE_HAL_BADCFG_RING_QUEUE_INITIAL_BLOCKS=XGE_HAL_BASE_BADCFG + 22, - XGE_HAL_BADCFG_RING_QUEUE_MAX_BLOCKS = XGE_HAL_BASE_BADCFG + 23, - XGE_HAL_BADCFG_RING_QUEUE_BUFFER_MODE = XGE_HAL_BASE_BADCFG + 24, - XGE_HAL_BADCFG_RING_QUEUE_SIZE = XGE_HAL_BASE_BADCFG + 25, - XGE_HAL_BADCFG_BACKOFF_INTERVAL_US = XGE_HAL_BASE_BADCFG + 26, - XGE_HAL_BADCFG_MAX_FRM_LEN = XGE_HAL_BASE_BADCFG + 27, - XGE_HAL_BADCFG_RING_PRIORITY = XGE_HAL_BASE_BADCFG + 28, - XGE_HAL_BADCFG_TMAC_UTIL_PERIOD = XGE_HAL_BASE_BADCFG + 29, - XGE_HAL_BADCFG_RMAC_UTIL_PERIOD = XGE_HAL_BASE_BADCFG + 30, - XGE_HAL_BADCFG_RMAC_BCAST_EN = XGE_HAL_BASE_BADCFG + 31, - XGE_HAL_BADCFG_RMAC_HIGH_PTIME = XGE_HAL_BASE_BADCFG + 32, - XGE_HAL_BADCFG_MC_PAUSE_THRESHOLD_Q0Q3 = XGE_HAL_BASE_BADCFG +33, - XGE_HAL_BADCFG_MC_PAUSE_THRESHOLD_Q4Q7 = XGE_HAL_BASE_BADCFG + 34, - XGE_HAL_BADCFG_FIFO_FRAGS = XGE_HAL_BASE_BADCFG + 35, - XGE_HAL_BADCFG_FIFO_RESERVE_THRESHOLD = XGE_HAL_BASE_BADCFG + 37, - XGE_HAL_BADCFG_FIFO_MEMBLOCK_SIZE = XGE_HAL_BASE_BADCFG + 38, - XGE_HAL_BADCFG_RING_MEMBLOCK_SIZE = XGE_HAL_BASE_BADCFG + 39, - XGE_HAL_BADCFG_MAX_MTU = XGE_HAL_BASE_BADCFG + 40, - XGE_HAL_BADCFG_ISR_POLLING_CNT = XGE_HAL_BASE_BADCFG + 41, - XGE_HAL_BADCFG_LATENCY_TIMER = XGE_HAL_BASE_BADCFG + 42, - XGE_HAL_BADCFG_MAX_SPLITS_TRANS = XGE_HAL_BASE_BADCFG + 43, - XGE_HAL_BADCFG_MMRB_COUNT = XGE_HAL_BASE_BADCFG + 44, - XGE_HAL_BADCFG_SHARED_SPLITS = XGE_HAL_BASE_BADCFG + 45, - XGE_HAL_BADCFG_STATS_REFRESH_TIME = XGE_HAL_BASE_BADCFG + 46, - XGE_HAL_BADCFG_PCI_FREQ_MHERZ = XGE_HAL_BASE_BADCFG + 47, - XGE_HAL_BADCFG_PCI_MODE = XGE_HAL_BASE_BADCFG + 48, - XGE_HAL_BADCFG_INTR_MODE = XGE_HAL_BASE_BADCFG + 49, - XGE_HAL_BADCFG_SCHED_TIMER_US = XGE_HAL_BASE_BADCFG + 50, - XGE_HAL_BADCFG_SCHED_TIMER_ON_SHOT = XGE_HAL_BASE_BADCFG + 51, - XGE_HAL_BADCFG_QUEUE_SIZE_INITIAL = XGE_HAL_BASE_BADCFG + 52, - XGE_HAL_BADCFG_QUEUE_SIZE_MAX = XGE_HAL_BASE_BADCFG + 53, - XGE_HAL_BADCFG_RING_RTH_EN = XGE_HAL_BASE_BADCFG + 54, - XGE_HAL_BADCFG_RING_INDICATE_MAX_PKTS = XGE_HAL_BASE_BADCFG + 55, - XGE_HAL_BADCFG_TX_TIMER_AC_EN = XGE_HAL_BASE_BADCFG + 56, - XGE_HAL_BADCFG_RX_TIMER_AC_EN = XGE_HAL_BASE_BADCFG + 57, - XGE_HAL_BADCFG_RXUFCA_INTR_THRES = XGE_HAL_BASE_BADCFG + 58, - XGE_HAL_BADCFG_RXUFCA_LO_LIM = XGE_HAL_BASE_BADCFG + 59, - XGE_HAL_BADCFG_RXUFCA_HI_LIM = XGE_HAL_BASE_BADCFG + 60, - XGE_HAL_BADCFG_RXUFCA_LBOLT_PERIOD = XGE_HAL_BASE_BADCFG + 61, - XGE_HAL_BADCFG_TRACEBUF_SIZE = XGE_HAL_BASE_BADCFG + 62, - XGE_HAL_BADCFG_LINK_VALID_CNT = XGE_HAL_BASE_BADCFG + 63, - XGE_HAL_BADCFG_LINK_RETRY_CNT = XGE_HAL_BASE_BADCFG + 64, - XGE_HAL_BADCFG_LINK_STABILITY_PERIOD = XGE_HAL_BASE_BADCFG + 65, - XGE_HAL_BADCFG_DEVICE_POLL_MILLIS = XGE_HAL_BASE_BADCFG + 66, - XGE_HAL_BADCFG_RMAC_PAUSE_GEN_EN = XGE_HAL_BASE_BADCFG + 67, - XGE_HAL_BADCFG_RMAC_PAUSE_RCV_EN = XGE_HAL_BASE_BADCFG + 68, - XGE_HAL_BADCFG_MEDIA = XGE_HAL_BASE_BADCFG + 69, - XGE_HAL_BADCFG_NO_ISR_EVENTS = XGE_HAL_BASE_BADCFG + 70, - XGE_HAL_BADCFG_RING_RTS_MAC_EN = XGE_HAL_BASE_BADCFG + 71, - XGE_HAL_BADCFG_LRO_SG_SIZE = XGE_HAL_BASE_BADCFG + 72, - XGE_HAL_BADCFG_LRO_FRM_LEN = XGE_HAL_BASE_BADCFG + 73, - XGE_HAL_BADCFG_WQE_NUM_ODS = XGE_HAL_BASE_BADCFG + 74, - XGE_HAL_BADCFG_BIMODAL_INTR = XGE_HAL_BASE_BADCFG + 75, - XGE_HAL_BADCFG_BIMODAL_TIMER_LO_US = XGE_HAL_BASE_BADCFG + 76, - XGE_HAL_BADCFG_BIMODAL_TIMER_HI_US = XGE_HAL_BASE_BADCFG + 77, - XGE_HAL_BADCFG_BIMODAL_XENA_NOT_ALLOWED = XGE_HAL_BASE_BADCFG + 78, - XGE_HAL_BADCFG_RTS_QOS_EN = XGE_HAL_BASE_BADCFG + 79, - XGE_HAL_BADCFG_FIFO_QUEUE_INTR_VECTOR = XGE_HAL_BASE_BADCFG + 80, - XGE_HAL_BADCFG_RING_QUEUE_INTR_VECTOR = XGE_HAL_BASE_BADCFG + 81, - XGE_HAL_BADCFG_RTS_PORT_EN = XGE_HAL_BASE_BADCFG + 82, - XGE_HAL_BADCFG_RING_RTS_PORT_EN = XGE_HAL_BASE_BADCFG + 83, - XGE_HAL_BADCFG_TRACEBUF_TIMESTAMP = XGE_HAL_BASE_BADCFG + 84, - XGE_HAL_EOF_TRACE_BUF = -1 -} xge_hal_status_e; - -#define XGE_HAL_ETH_ALEN 6 -typedef u8 macaddr_t[XGE_HAL_ETH_ALEN]; - -#define XGE_HAL_PCI_XFRAME_CONFIG_SPACE_SIZE 0x100 - -/* frames sizes */ -#define XGE_HAL_HEADER_ETHERNET_II_802_3_SIZE 14 -#define XGE_HAL_HEADER_802_2_SIZE 3 -#define XGE_HAL_HEADER_SNAP_SIZE 5 -#define XGE_HAL_HEADER_VLAN_SIZE 4 -#define XGE_HAL_MAC_HEADER_MAX_SIZE \ - (XGE_HAL_HEADER_ETHERNET_II_802_3_SIZE + \ - XGE_HAL_HEADER_802_2_SIZE + \ - XGE_HAL_HEADER_SNAP_SIZE) - -#define XGE_HAL_TCPIP_HEADER_MAX_SIZE (64 + 64) - -/* 32bit alignments */ -#define XGE_HAL_HEADER_ETHERNET_II_802_3_ALIGN 2 -#define XGE_HAL_HEADER_802_2_SNAP_ALIGN 2 -#define XGE_HAL_HEADER_802_2_ALIGN 3 -#define XGE_HAL_HEADER_SNAP_ALIGN 1 - -#define XGE_HAL_L3_CKSUM_OK 0xFFFF -#define XGE_HAL_L4_CKSUM_OK 0xFFFF -#define XGE_HAL_MIN_MTU 46 -#define XGE_HAL_MAX_MTU 9600 -#define XGE_HAL_DEFAULT_MTU 1500 - -#define XGE_HAL_SEGEMENT_OFFLOAD_MAX_SIZE 81920 - -#define XGE_HAL_PCISIZE_XENA 26 /* multiples of dword */ -#define XGE_HAL_PCISIZE_HERC 64 /* multiples of dword */ - -#define XGE_HAL_MAX_MSIX_MESSAGES 64 -#define XGE_HAL_MAX_MSIX_MESSAGES_WITH_ADDR XGE_HAL_MAX_MSIX_MESSAGES * 2 -/* Highest level interrupt blocks */ -#define XGE_HAL_TX_PIC_INTR (0x0001<<0) -#define XGE_HAL_TX_DMA_INTR (0x0001<<1) -#define XGE_HAL_TX_MAC_INTR (0x0001<<2) -#define XGE_HAL_TX_XGXS_INTR (0x0001<<3) -#define XGE_HAL_TX_TRAFFIC_INTR (0x0001<<4) -#define XGE_HAL_RX_PIC_INTR (0x0001<<5) -#define XGE_HAL_RX_DMA_INTR (0x0001<<6) -#define XGE_HAL_RX_MAC_INTR (0x0001<<7) -#define XGE_HAL_RX_XGXS_INTR (0x0001<<8) -#define XGE_HAL_RX_TRAFFIC_INTR (0x0001<<9) -#define XGE_HAL_MC_INTR (0x0001<<10) -#define XGE_HAL_SCHED_INTR (0x0001<<11) -#define XGE_HAL_ALL_INTRS (XGE_HAL_TX_PIC_INTR | \ - XGE_HAL_TX_DMA_INTR | \ - XGE_HAL_TX_MAC_INTR | \ - XGE_HAL_TX_XGXS_INTR | \ - XGE_HAL_TX_TRAFFIC_INTR | \ - XGE_HAL_RX_PIC_INTR | \ - XGE_HAL_RX_DMA_INTR | \ - XGE_HAL_RX_MAC_INTR | \ - XGE_HAL_RX_XGXS_INTR | \ - XGE_HAL_RX_TRAFFIC_INTR | \ - XGE_HAL_MC_INTR | \ - XGE_HAL_SCHED_INTR) -#define XGE_HAL_GEN_MASK_INTR (0x0001<<12) - -/* Interrupt masks for the general interrupt mask register */ -#define XGE_HAL_ALL_INTRS_DIS 0xFFFFFFFFFFFFFFFFULL - -#define XGE_HAL_TXPIC_INT_M BIT(0) -#define XGE_HAL_TXDMA_INT_M BIT(1) -#define XGE_HAL_TXMAC_INT_M BIT(2) -#define XGE_HAL_TXXGXS_INT_M BIT(3) -#define XGE_HAL_TXTRAFFIC_INT_M BIT(8) -#define XGE_HAL_PIC_RX_INT_M BIT(32) -#define XGE_HAL_RXDMA_INT_M BIT(33) -#define XGE_HAL_RXMAC_INT_M BIT(34) -#define XGE_HAL_MC_INT_M BIT(35) -#define XGE_HAL_RXXGXS_INT_M BIT(36) -#define XGE_HAL_RXTRAFFIC_INT_M BIT(40) - -/* MSI level Interrupts */ -#define XGE_HAL_MAX_MSIX_VECTORS (16) - -typedef struct xge_hal_ipv4 { - u32 addr; -}xge_hal_ipv4; - -typedef struct xge_hal_ipv6 { - u64 addr[2]; -}xge_hal_ipv6; - -typedef union xge_hal_ipaddr_t { - xge_hal_ipv4 ipv4; - xge_hal_ipv6 ipv6; -}xge_hal_ipaddr_t; - -/* DMA level Interrupts */ -#define XGE_HAL_TXDMA_PFC_INT_M BIT(0) - -/* PFC block interrupts */ -#define XGE_HAL_PFC_MISC_ERR_1 BIT(0) /* Interrupt to indicate FIFO -full */ - -/* basic handles */ -typedef void* xge_hal_device_h; -typedef void* xge_hal_dtr_h; -typedef void* xge_hal_channel_h; - -/* - * I2C device id. Used in I2C control register for accessing EEPROM device - * memory. - */ -#define XGE_DEV_ID 5 - -typedef enum xge_hal_xpak_alarm_type_e { - XGE_HAL_XPAK_ALARM_EXCESS_TEMP = 1, - XGE_HAL_XPAK_ALARM_EXCESS_BIAS_CURRENT = 2, - XGE_HAL_XPAK_ALARM_EXCESS_LASER_OUTPUT = 3, -} xge_hal_xpak_alarm_type_e; - - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_TYPES_H */ Property changes on: head/sys/dev/nxge/include/xgehal-types.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-event.h =================================================================== --- head/sys/dev/nxge/include/xgehal-event.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-event.h (nonexistent) @@ -1,79 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_EVENT_H -#define XGE_HAL_EVENT_H - -#include - -__EXTERN_BEGIN_DECLS - -#define XGE_HAL_EVENT_BASE 0 -#define XGE_LL_EVENT_BASE 100 - -/** - * enum xge_hal_event_e - Enumerates slow-path HAL events. - * @XGE_HAL_EVENT_UNKNOWN: Unknown (and invalid) event. - * @XGE_HAL_EVENT_SERR: Serious hardware error event. - * @XGE_HAL_EVENT_LINK_IS_UP: The link state has changed from 'down' to - * 'up'; upper-layer driver (typically, link layer) is - * supposed to wake the queue, etc. - * @XGE_HAL_EVENT_LINK_IS_DOWN: Link-down event. - * The link state has changed from 'down' to 'up'; - * upper-layer driver is supposed to stop traffic, etc. - * @XGE_HAL_EVENT_ECCERR: ECC error event. - * @XGE_HAL_EVENT_PARITYERR: Parity error event. - * @XGE_HAL_EVENT_TARGETABORT: Target abort event. Used when device - * aborts transmit operation with the corresponding transfer code - * (for T_CODE enum see xgehal-fifo.h and xgehal-ring.h) - * @XGE_HAL_EVENT_SLOT_FREEZE: Slot-freeze event. Driver tries to distinguish - * slot-freeze from the rest critical events (e.g. ECC) when it is - * impossible to PIO read "through" the bus, i.e. when getting all-foxes. - * - * xge_hal_event_e enumerates slow-path HAL eventis. - * - * See also: xge_hal_uld_cbs_t{}, xge_uld_link_up_f{}, - * xge_uld_link_down_f{}. - */ -typedef enum xge_hal_event_e { - XGE_HAL_EVENT_UNKNOWN = 0, - /* HAL events */ - XGE_HAL_EVENT_SERR = XGE_HAL_EVENT_BASE + 1, - XGE_HAL_EVENT_LINK_IS_UP = XGE_HAL_EVENT_BASE + 2, - XGE_HAL_EVENT_LINK_IS_DOWN = XGE_HAL_EVENT_BASE + 3, - XGE_HAL_EVENT_ECCERR = XGE_HAL_EVENT_BASE + 4, - XGE_HAL_EVENT_PARITYERR = XGE_HAL_EVENT_BASE + 5, - XGE_HAL_EVENT_TARGETABORT = XGE_HAL_EVENT_BASE + 6, - XGE_HAL_EVENT_SLOT_FREEZE = XGE_HAL_EVENT_BASE + 7, -} xge_hal_event_e; - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_EVENT_H */ Property changes on: head/sys/dev/nxge/include/xgehal-event.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-mm.h =================================================================== --- head/sys/dev/nxge/include/xgehal-mm.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-mm.h (nonexistent) @@ -1,168 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_MM_H -#define XGE_HAL_MM_H - -#include -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -typedef void* xge_hal_mempool_h; - -/* - * struct xge_hal_mempool_dma_t - Represents DMA objects passed to the - caller. - */ -typedef struct xge_hal_mempool_dma_t { - dma_addr_t addr; - pci_dma_h handle; - pci_dma_acc_h acc_handle; -} xge_hal_mempool_dma_t; - -/* - * xge_hal_mempool_item_f - Mempool item alloc/free callback - * @mempoolh: Memory pool handle. - * @item: Item that gets allocated or freed. - * @index: Item's index in the memory pool. - * @is_last: True, if this item is the last one in the pool; false - otherwise. - * userdat: Per-pool user context. - * - * Memory pool allocation/deallocation callback. - */ -typedef xge_hal_status_e (*xge_hal_mempool_item_f) (xge_hal_mempool_h mempoolh, - void *memblock, int memblock_index, - xge_hal_mempool_dma_t *dma_object, void *item, - int index, int is_last, void *userdata); - -/* - * struct xge_hal_mempool_t - Memory pool. - */ -typedef struct xge_hal_mempool_t { - xge_hal_mempool_item_f item_func_alloc; - xge_hal_mempool_item_f item_func_free; - void *userdata; - void **memblocks_arr; - void **memblocks_priv_arr; - xge_hal_mempool_dma_t *memblocks_dma_arr; - pci_dev_h pdev; - int memblock_size; - int memblocks_max; - int memblocks_allocated; - int item_size; - int items_max; - int items_initial; - int items_current; - int items_per_memblock; - void **items_arr; - void **shadow_items_arr; - int items_priv_size; -} xge_hal_mempool_t; - -/* - * __hal_mempool_item - Returns pointer to the item in the mempool - * items array. - */ -static inline void* -__hal_mempool_item(xge_hal_mempool_t *mempool, int index) -{ - return mempool->items_arr[index]; -} - -/* - * __hal_mempool_item_priv - will return pointer on per item private space - */ -static inline void* -__hal_mempool_item_priv(xge_hal_mempool_t *mempool, int memblock_idx, - void *item, int *memblock_item_idx) -{ - ptrdiff_t offset; - void *memblock = mempool->memblocks_arr[memblock_idx]; - - xge_assert(memblock); - - offset = (int)((char * )item - (char *)memblock); - xge_assert(offset >= 0 && offset < mempool->memblock_size); - - (*memblock_item_idx) = (int) offset / mempool->item_size; - xge_assert((*memblock_item_idx) < mempool->items_per_memblock); - - return (char*)mempool->memblocks_priv_arr[memblock_idx] + - (*memblock_item_idx) * mempool->items_priv_size; -} - -/* - * __hal_mempool_items_arr - will return pointer to the items array in the - * mempool. - */ -static inline void* -__hal_mempool_items_arr(xge_hal_mempool_t *mempool) -{ - return mempool->items_arr; -} - -/* - * __hal_mempool_memblock - will return pointer to the memblock in the - * mempool memblocks array. - */ -static inline void* -__hal_mempool_memblock(xge_hal_mempool_t *mempool, int memblock_idx) -{ - xge_assert(mempool->memblocks_arr[memblock_idx]); - return mempool->memblocks_arr[memblock_idx]; -} - -/* - * __hal_mempool_memblock_dma - will return pointer to the dma block - * corresponds to the memblock(identified by memblock_idx) in the mempool. - */ -static inline xge_hal_mempool_dma_t* -__hal_mempool_memblock_dma(xge_hal_mempool_t *mempool, int memblock_idx) -{ - return mempool->memblocks_dma_arr + memblock_idx; -} - -xge_hal_status_e __hal_mempool_grow(xge_hal_mempool_t *mempool, - int num_allocate, int *num_allocated); - -xge_hal_mempool_t* __hal_mempool_create(pci_dev_h pdev, int memblock_size, - int item_size, int private_size, int items_initial, - int items_max, xge_hal_mempool_item_f item_func_alloc, - xge_hal_mempool_item_f item_func_free, void *userdata); - -void __hal_mempool_destroy(xge_hal_mempool_t *mempool); - - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_MM_H */ Property changes on: head/sys/dev/nxge/include/xgehal-mm.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-stats.h =================================================================== --- head/sys/dev/nxge/include/xgehal-stats.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-stats.h (nonexistent) @@ -1,1566 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_STATS_H -#define XGE_HAL_STATS_H - -#include -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -/** - * struct xge_hal_stats_hw_info_t - Xframe hardware statistics. - * Transmit MAC Statistics: - * - * @tmac_frms: Count of successfully transmitted MAC - * frames Note that this statistic may be inaccurate. The correct statistic may - * be derived by calcualating (tmac_ttl_octets - tmac_ttl_less_fb_octets) / 8 - * - * @tmac_data_octets: Count of data and padding octets of successfully - * transmitted frames. - * - * @tmac_drop_frms: Count of frames that could not be sent for no other reason - * than internal MAC processing. Increments once whenever the - * transmit buffer is flushed (due to an ECC error on a memory descriptor). - * - * @tmac_mcst_frms: Count of successfully transmitted frames to a multicast - * address. Does not include frames sent to the broadcast address. - * - * @tmac_bcst_frms: Count of successfully transmitted frames to the broadcast - * address. - * - * @tmac_pause_ctrl_frms: Count of MAC PAUSE control frames that are - * transmitted. Since, the only control frames supported by this device - * are PAUSE frames, this register is a count of all transmitted MAC control - * frames. - * - * @tmac_ttl_octets: Count of total octets of transmitted frames, including - * framing characters. - * - * @tmac_ucst_frms: Count of transmitted frames containing a unicast address. - * @tmac_nucst_frms: Count of transmitted frames containing a non-unicast - * (broadcast, multicast) address. - * - * @tmac_any_err_frms: Count of transmitted frames containing any error that - * prevents them from being passed to the network. Increments if there is an ECC - * while reading the frame out of the transmit buffer. - * - * @tmac_ttl_less_fb_octets: Count of total octets of transmitted - * frames, not including framing characters (i.e. less framing bits) - * - * @tmac_vld_ip_octets: Count of total octets of transmitted IP datagrams that - * were passed to the network. Frames that are padded by the host have - * their padding counted as part of the IP datagram. - * - * @tmac_vld_ip: Count of transmitted IP datagrams that were passed to the - * network. - * - * @tmac_drop_ip: Count of transmitted IP datagrams that could not be passed to - * the network. Increments because of 1) an internal processing error (such as - * an uncorrectable ECC error); 2) a frame parsing error during IP checksum - * calculation. - * - * @tmac_icmp: Count of transmitted ICMP messages. Includes messages not sent - * due to problems within ICMP. - * - * @tmac_rst_tcp: Count of transmitted TCP segments containing the RST flag. - * - * @tmac_tcp: Count of transmitted TCP segments. Note that Xena has - * no knowledge of retransmission. - * - * @tmac_udp: Count of transmitted UDP datagrams. - * @reserved_0: Reserved. - * - * Receive MAC Statistics: - * @rmac_vld_frms: Count of successfully received MAC frames. Does not include - * frames received with frame-too-long, FCS, or length errors. - * - * @rmac_data_octets: Count of data and padding octets of successfully received - * frames. Does not include frames received with frame-too-long, FCS, or length - * errors. - * - * @rmac_fcs_err_frms: Count of received MAC frames that do not pass FCS. Does - * not include frames received with frame-too-long or frame-too-short error. - * - * @rmac_drop_frms: Count of received frames that could not be passed to the - * host because of 1) Random Early Discard (RED); 2) Frame steering algorithm - * found no available queue; 3) Receive ingress buffer overflow. - * - * @rmac_vld_mcst_frms: Count of successfully received MAC frames containing a - * multicast address. Does not include frames received with frame-too-long, FCS, - * or length errors. - * - * @rmac_vld_bcst_frms: Count of successfully received MAC frames containing a - * broadcast address. Does not include frames received with frame-too-long, FCS, - * or length errors. - * - * @rmac_in_rng_len_err_frms: Count of received frames with a length/type field - * value between 46 (42 for VLANtagged frames) and 1500 (also 1500 for - * VLAN-tagged frames), inclusive, that does not match the number of data octets - * (including pad) received. Also contains a count of received frames with a - * length/type field less than 46 (42 for VLAN-tagged frames) and the number of - * data octets (including pad) received is greater than 46 (42 for VLAN-tagged - * frames). - * - * @rmac_out_rng_len_err_frms: Count of received frames with length/type field - * between 1501 and 1535 decimal, inclusive. - * - * @rmac_long_frms: Count of received frames that are longer than - * rmac_max_pyld_len + 18 bytes (+22 bytes if VLAN-tagged). - * - * @rmac_pause_ctrl_frms: Count of received MAC PAUSE control frames. - * - * @rmac_unsup_ctrl_frms: Count of received MAC control frames - * that do not contain the PAUSE opcode. The sum of MAC_PAUSE_CTRL_FRMS and this - * register is a count of all received MAC control frames. - * - * @rmac_ttl_octets: Count of total octets of received frames, including framing - * characters. - * - * @rmac_accepted_ucst_frms: Count of successfully received frames - * containing a unicast address. Only includes frames that are passed to the - * system. - * - * @rmac_accepted_nucst_frms: Count of successfully received frames - * containing a non-unicast (broadcast or multicast) address. Only includes - * frames that are passed to the system. Could include, for instance, - * non-unicast frames that contain FCS errors if the MAC_ERROR_CFG register is - * set to pass FCSerrored frames to the host. - * - * @rmac_discarded_frms: Count of received frames containing any error that - * prevents them from being passed to the system. Includes, for example, - * received pause frames that are discarded by the MAC and frames discarded - * because of their destination address. - * - * @rmac_drop_events: Because the RMAC drops one frame at a time, this stat - * matches rmac_drop_frms. - * - * @reserved_1: Reserved. - * @rmac_ttl_less_fb_octets: Count of total octets of received frames, - * not including framing characters (i.e. less framing bits). - * - * @rmac_ttl_frms: Count of all received MAC frames, including frames received - * with frame-too-long, FCS, or length errors. - * - * @reserved_2: Reserved. - * @reserved_3: Reserved. - * @rmac_usized_frms: Count of received frames of length (including FCS, but not - * framing bits) less than 64 octets, that are otherwise well-formed. - * - * @rmac_osized_frms: Count of received frames of length (including FCS, but not - * framing bits) more than 1518 octets, that are otherwise well-formed. - * - * @rmac_frag_frms: Count of received frames of length (including FCS, but not - * framing bits) less than 64 octets that had bad FCS. In other words, counts - * fragments (i.e. runts). - * - * @rmac_jabber_frms: Count of received frames of length (including FCS, but not - * framing bits) more than MTU octets that had bad FCS. In other words, counts - * jabbers. - * - * @reserved_4: Reserved. - * @rmac_ttl_64_frms: Count of all received MAC frames with length (including - * FCS, but not framing bits) of exactly 64 octets. Includes frames received - * with frame-too-long, FCS, or length errors. - * - * @rmac_ttl_65_127_frms: Count of all received MAC frames with length - * (including FCS, but not framing bits) of between 65 and 127 octets - * inclusive. Includes frames received with frame-too-long, FCS, or length - * errors. - * @reserved_5: Reserved. - * @rmac_ttl_128_255_frms: Count of all received MAC frames with length - * (including FCS, but not framing bits) of between 128 and 255 octets - * inclusive. Includes frames received with frame-too-long, FCS, or length - * errors. - * - * @rmac_ttl_256_511_frms: Count of all received MAC frames with length - * (including FCS, but not framing bits) of between 256 and 511 octets - * inclusive. Includes frames received with frame-too-long, FCS, or length - * errors. - * - * @reserved_6: Reserved. - * @rmac_ttl_512_1023_frms: Count of all received MAC frames with length - * (including FCS, but not framing bits) of between 512 and 1023 octets - * inclusive. Includes frames received with frame-too-long, FCS, or length - * errors. - * - * @rmac_ttl_1024_1518_frms: Count of all received MAC frames with length - * (including FCS, but not framing bits) of between 1024 and 1518 octets - * inclusive. Includes frames received with frame-too-long, FCS, or length - * errors. - * @reserved_7: Reserved. - * @rmac_ip: Count of received IP datagrams. Includes errored IP datagrams. - * - * @rmac_ip_octets: Count of number of octets in received IP datagrams. Includes - * errored IP datagrams. - * - * @rmac_hdr_err_ip: Count of received IP datagrams that are discarded due to IP - * header errors. - * - * @rmac_drop_ip: Count of received IP datagrams that could not be passed to the - * host because of 1) Random Early Discard (RED); 2) Frame steering algorithm - * found no available queue; 3) Receive ingress buffer overflow. - * @rmac_icmp: Count of received ICMP messages. Includes errored ICMP messages - * (due to ICMP checksum fail). - * - * @reserved_8: Reserved. - * @rmac_tcp: Count of received TCP segments. Since Xena is unaware of - * connection context, counts all received TCP segments, regardless of whether - * or not they pertain to an established connection. - * - * @rmac_udp: Count of received UDP datagrams. - * @rmac_err_drp_udp: Count of received UDP datagrams that were not delivered to - * the system because of 1) Random Early Discard (RED); 2) Frame steering - * algorithm found no available queue; 3) Receive ingress buffer overflow. - * - * @rmac_xgmii_err_sym: Count of the number of symbol errors in the received - * XGMII data (i.e. PHY indicates "Receive Error" on the XGMII). Only includes - * symbol errors that are observed between the XGMII Start Frame Delimiter - * and End Frame Delimiter, inclusive. And only increments the count by one for - * each frame. - * - * @rmac_frms_q0: Count of number of frames that pass through queue 0 of receive - * buffer. - * @rmac_frms_q1: Count of number of frames that pass through queue 1 of receive - * buffer. - * @rmac_frms_q2: Count of number of frames that pass through queue 2 of receive - * buffer. - * @rmac_frms_q3: Count of number of frames that pass through queue 3 of receive - * buffer. - * @rmac_frms_q4: Count of number of frames that pass through queue 4 of receive - * buffer. - * @rmac_frms_q5: Count of number of frames that pass through queue 5 of receive - * buffer. - * @rmac_frms_q6: Count of number of frames that pass through queue 6 of receive - * buffer. - * @rmac_frms_q7: Count of number of frames that pass through queue 7 of receive - * buffer. - * @rmac_full_q0: Count of number of times that receive buffer queue 0 has - * filled up. If a queue is size 0, then this stat is incremented to a value of - * 1 when MAC receives its first frame. - * - * @rmac_full_q1: Count of number of times that receive buffer queue 1 has - * filled up. If a queue is size 0, then this stat is incremented to a value of - * 1 when MAC receives its first frame. - * - * @rmac_full_q2: Count of number of times that receive buffer queue 2 has - * filled up. If a queue is size 0, then this stat is incremented to a value of - * 1 when MAC receives its first frame. - * - * @rmac_full_q3: Count of number of times that receive buffer queue 3 has - * filled up. If a queue is size 0, then this stat is incremented to a value of - * 1 when MAC receives its first frame. - * - * @rmac_full_q4: Count of number of times that receive buffer queue 4 has - * filled up. If a queue is size 0, then this stat is incremented to a value of - * 1 when MAC receives its first frame. - * - * @rmac_full_q5: Count of number of times that receive buffer queue 5 has - * filled up. If a queue is size 0, then this stat is incremented to a value of - * 1 when MAC receives its first frame. - * - * @rmac_full_q6: Count of number of times that receive buffer queue 6 has - * filled up. If a queue is size 0, then this stat is incremented to a value of - * 1 when MAC receives its first frame. - * - * @rmac_full_q7: Count of number of times that receive buffer queue 7 has - * filled up. If a queue is size 0, then this stat is incremented to a value of - * 1 when MAC receives its first frame. - * - * @rmac_pause_cnt: Count of number of pause quanta that the MAC has been in the - * paused state. Recall, one pause quantum equates to 512 bit times. - * @reserved_9: Reserved. - * @rmac_xgmii_data_err_cnt: This counter is incremented when either 1) The - * Reconcilliation Sublayer (RS) is expecting one control character and gets - * another (i.e. expecting Start control character and gets another control - * character); 2) Start control character is not in lane 0 or lane 4; 3) The RS - * gets a Start control character, but the start frame delimiter is not found in - * the correct location. - * @rmac_xgmii_ctrl_err_cnt: Maintains a count of unexpected or - * misplaced control characters occuring outside of normal data transmission - * (i.e. not included in RMAC_XGMII_DATA_ERR_CNT). - * - * @rmac_accepted_ip: Count of received IP datagrams that were passed to the - * system. - * - * @rmac_err_tcp: Count of received TCP segments containing errors. For example, - * bad TCP checksum. - * - * PCI (bus) Statistics: - * @rd_req_cnt: Counts the total number of read requests made by the device. - * @new_rd_req_cnt: Counts the requests made for a new read sequence (request - * made for the same sequence after a retry or disconnect response are not - * counted). - * @new_rd_req_rtry_cnt: Counts the Retry responses received on the start of - * the new read sequences. - * @rd_rtry_cnt: Counts the Retry responses received for read requests. - * @wr_rtry_rd_ack_cnt: Increments whenever a read request is accepted by - * the target after a write request was terminated with retry. - * @wr_req_cnt: Counts the total number of Write requests made by the device. - * @new_wr_req_cnt: Counts the requests made for a new write sequence (request - * made for the same sequence after a retry or disconnect response are not - * counted). - * @new_wr_req_rtry_cnt: Counts the requests made for a new write sequence - * (request made for the same sequence after a retry or disconnect response are - * not counted). - * - * @wr_rtry_cnt: Counts the Retry responses received for write requests. - * @wr_disc_cnt: Write Disconnect. Counts the target initiated disconnects - * on write transactions. - * @rd_rtry_wr_ack_cnt: Increments whenever a write request is accepted by the - * target after a read request was terminated with retry. - * - * @txp_wr_cnt: Counts the host write transactions to the Tx Pointer - * FIFOs. - * @txd_rd_cnt: Count of the Transmit Descriptor (TxD) read requests. - * @txd_wr_cnt: Count of the TxD write requests. - * @rxd_rd_cnt: Count of the Receive Descriptor (RxD) read requests. - * @rxd_wr_cnt: Count of the RxD write requests. - * @txf_rd_cnt: Count of transmit frame read requests. This will not - * equal the number of frames transmitted, as frame data is typically spread - * across multiple PCI transactions. - * @rxf_wr_cnt: Count of receive frame write requests. - * - * @tmac_frms_oflow: tbd - * @tmac_data_octets_oflow: tbd - * @tmac_mcst_frms_oflow: tbd - * @tmac_bcst_frms_oflow: tbd - * @tmac_ttl_octets_oflow: tbd - * @tmac_ucst_frms_oflow: tbd - * @tmac_nucst_frms_oflow: tbd - * @tmac_any_err_frms_oflow: tbd - * @tmac_vlan_frms: tbd - * @tmac_vld_ip_oflow: tbd - * @tmac_drop_ip_oflow: tbd - * @tmac_icmp_oflow: tbd - * @tmac_rst_tcp_oflow: tbd - * @tmac_udp_oflow: tbd - * @reserved_10: tbd - * @tpa_unknown_protocol: tbd - * @tpa_parse_failure: tbd - * @rmac_vld_frms_oflow: tbd - * @rmac_data_octets_oflow: tbd - * @rmac_vld_mcst_frms_oflow: tbd - * @rmac_vld_bcst_frms_oflow: tbd - * @rmac_ttl_octets_oflow: tbd - * @rmac_accepted_ucst_frms_oflow: tbd - * @rmac_accepted_nucst_frms_oflow: tbd - * @rmac_discarded_frms_oflow: tbd - * @rmac_drop_events_oflow: tbd - * @rmac_usized_frms_oflow: tbd - * @rmac_osized_frms_oflow: tbd - * @rmac_frag_frms_oflow: tbd - * @rmac_jabber_frms_oflow: tbd - * @rmac_ip_oflow: tbd - * @rmac_drop_ip_oflow: tbd - * @rmac_icmp_oflow: tbd - * @rmac_udp_oflow: tbd - * @reserved_11: tbd - * @rmac_err_drp_udp_oflow: tbd - * @rmac_pause_cnt_oflow: tbd - * @rmac_ttl_1519_4095_frms: tbd - * @rmac_ttl_4096_8191_frms: tbd - * @rmac_ttl_8192_max_frms: tbd - * @rmac_ttl_gt_max_frms: tbd - * @rmac_osized_alt_frms: tbd - * @rmac_jabber_alt_frms: tbd - * @rmac_gt_max_alt_frms: tbd - * @rmac_vlan_frms: tbd - * @rmac_fcs_discard: tbd - * @rmac_len_discard: tbd - * @rmac_da_discard: tbd - * @rmac_pf_discard: tbd - * @rmac_rts_discard: tbd - * @rmac_wol_discard: tbd - * @rmac_red_discard: tbd - * @rmac_ingm_full_discard: tbd - * @rmac_accepted_ip_oflow: tbd - * @reserved_12: tbd - * @link_fault_cnt: TBD - * @reserved_13: tbd - * Xframe hardware statistics. - */ -typedef struct xge_hal_stats_hw_info_t { -#ifdef XGE_OS_HOST_BIG_ENDIAN -/* Tx MAC statistics counters. */ - u32 tmac_frms; - u32 tmac_data_octets; - u64 tmac_drop_frms; - u32 tmac_mcst_frms; - u32 tmac_bcst_frms; - u64 tmac_pause_ctrl_frms; - u32 tmac_ttl_octets; - u32 tmac_ucst_frms; - u32 tmac_nucst_frms; - u32 tmac_any_err_frms; - u64 tmac_ttl_less_fb_octets; - u64 tmac_vld_ip_octets; - u32 tmac_vld_ip; - u32 tmac_drop_ip; - u32 tmac_icmp; - u32 tmac_rst_tcp; - u64 tmac_tcp; - u32 tmac_udp; - u32 reserved_0; - -/* Rx MAC Statistics counters. */ - u32 rmac_vld_frms; - u32 rmac_data_octets; - u64 rmac_fcs_err_frms; - u64 rmac_drop_frms; - u32 rmac_vld_mcst_frms; - u32 rmac_vld_bcst_frms; - u32 rmac_in_rng_len_err_frms; - u32 rmac_out_rng_len_err_frms; - u64 rmac_long_frms; - u64 rmac_pause_ctrl_frms; - u64 rmac_unsup_ctrl_frms; - u32 rmac_ttl_octets; - u32 rmac_accepted_ucst_frms; - u32 rmac_accepted_nucst_frms; - u32 rmac_discarded_frms; - u32 rmac_drop_events; - u32 reserved_1; - u64 rmac_ttl_less_fb_octets; - u64 rmac_ttl_frms; - u64 reserved_2; - u32 reserved_3; - u32 rmac_usized_frms; - u32 rmac_osized_frms; - u32 rmac_frag_frms; - u32 rmac_jabber_frms; - u32 reserved_4; - u64 rmac_ttl_64_frms; - u64 rmac_ttl_65_127_frms; - u64 reserved_5; - u64 rmac_ttl_128_255_frms; - u64 rmac_ttl_256_511_frms; - u64 reserved_6; - u64 rmac_ttl_512_1023_frms; - u64 rmac_ttl_1024_1518_frms; - u32 reserved_7; - u32 rmac_ip; - u64 rmac_ip_octets; - u32 rmac_hdr_err_ip; - u32 rmac_drop_ip; - u32 rmac_icmp; - u32 reserved_8; - u64 rmac_tcp; - u32 rmac_udp; - u32 rmac_err_drp_udp; - u64 rmac_xgmii_err_sym; - u64 rmac_frms_q0; - u64 rmac_frms_q1; - u64 rmac_frms_q2; - u64 rmac_frms_q3; - u64 rmac_frms_q4; - u64 rmac_frms_q5; - u64 rmac_frms_q6; - u64 rmac_frms_q7; - u16 rmac_full_q0; - u16 rmac_full_q1; - u16 rmac_full_q2; - u16 rmac_full_q3; - u16 rmac_full_q4; - u16 rmac_full_q5; - u16 rmac_full_q6; - u16 rmac_full_q7; - u32 rmac_pause_cnt; - u32 reserved_9; - u64 rmac_xgmii_data_err_cnt; - u64 rmac_xgmii_ctrl_err_cnt; - u32 rmac_accepted_ip; - u32 rmac_err_tcp; - -/* PCI/PCI-X Read transaction statistics. */ - u32 rd_req_cnt; - u32 new_rd_req_cnt; - u32 new_rd_req_rtry_cnt; - u32 rd_rtry_cnt; - u32 wr_rtry_rd_ack_cnt; - -/* PCI/PCI-X write transaction statistics. */ - u32 wr_req_cnt; - u32 new_wr_req_cnt; - u32 new_wr_req_rtry_cnt; - u32 wr_rtry_cnt; - u32 wr_disc_cnt; - u32 rd_rtry_wr_ack_cnt; - -/* DMA Transaction statistics. */ - u32 txp_wr_cnt; - u32 txd_rd_cnt; - u32 txd_wr_cnt; - u32 rxd_rd_cnt; - u32 rxd_wr_cnt; - u32 txf_rd_cnt; - u32 rxf_wr_cnt; - -/* Enhanced Herc statistics */ - u32 tmac_frms_oflow; - u32 tmac_data_octets_oflow; - u32 tmac_mcst_frms_oflow; - u32 tmac_bcst_frms_oflow; - u32 tmac_ttl_octets_oflow; - u32 tmac_ucst_frms_oflow; - u32 tmac_nucst_frms_oflow; - u32 tmac_any_err_frms_oflow; - u64 tmac_vlan_frms; - u32 tmac_vld_ip_oflow; - u32 tmac_drop_ip_oflow; - u32 tmac_icmp_oflow; - u32 tmac_rst_tcp_oflow; - u32 tmac_udp_oflow; - u32 tpa_unknown_protocol; - u32 tpa_parse_failure; - u32 reserved_10; - u32 rmac_vld_frms_oflow; - u32 rmac_data_octets_oflow; - u32 rmac_vld_mcst_frms_oflow; - u32 rmac_vld_bcst_frms_oflow; - u32 rmac_ttl_octets_oflow; - u32 rmac_accepted_ucst_frms_oflow; - u32 rmac_accepted_nucst_frms_oflow; - u32 rmac_discarded_frms_oflow; - u32 rmac_drop_events_oflow; - u32 rmac_usized_frms_oflow; - u32 rmac_osized_frms_oflow; - u32 rmac_frag_frms_oflow; - u32 rmac_jabber_frms_oflow; - u32 rmac_ip_oflow; - u32 rmac_drop_ip_oflow; - u32 rmac_icmp_oflow; - u32 rmac_udp_oflow; - u32 rmac_err_drp_udp_oflow; - u32 rmac_pause_cnt_oflow; - u32 reserved_11; - u64 rmac_ttl_1519_4095_frms; - u64 rmac_ttl_4096_8191_frms; - u64 rmac_ttl_8192_max_frms; - u64 rmac_ttl_gt_max_frms; - u64 rmac_osized_alt_frms; - u64 rmac_jabber_alt_frms; - u64 rmac_gt_max_alt_frms; - u64 rmac_vlan_frms; - u32 rmac_fcs_discard; - u32 rmac_len_discard; - u32 rmac_da_discard; - u32 rmac_pf_discard; - u32 rmac_rts_discard; - u32 rmac_wol_discard; - u32 rmac_red_discard; - u32 rmac_ingm_full_discard; - u32 rmac_accepted_ip_oflow; - u32 reserved_12; - u32 link_fault_cnt; - u32 reserved_13; -#else -/* Tx MAC statistics counters. */ - u32 tmac_data_octets; - u32 tmac_frms; - u64 tmac_drop_frms; - u32 tmac_bcst_frms; - u32 tmac_mcst_frms; - u64 tmac_pause_ctrl_frms; - u32 tmac_ucst_frms; - u32 tmac_ttl_octets; - u32 tmac_any_err_frms; - u32 tmac_nucst_frms; - u64 tmac_ttl_less_fb_octets; - u64 tmac_vld_ip_octets; - u32 tmac_drop_ip; - u32 tmac_vld_ip; - u32 tmac_rst_tcp; - u32 tmac_icmp; - u64 tmac_tcp; - u32 reserved_0; - u32 tmac_udp; - -/* Rx MAC Statistics counters. */ - u32 rmac_data_octets; - u32 rmac_vld_frms; - u64 rmac_fcs_err_frms; - u64 rmac_drop_frms; - u32 rmac_vld_bcst_frms; - u32 rmac_vld_mcst_frms; - u32 rmac_out_rng_len_err_frms; - u32 rmac_in_rng_len_err_frms; - u64 rmac_long_frms; - u64 rmac_pause_ctrl_frms; - u64 rmac_unsup_ctrl_frms; - u32 rmac_accepted_ucst_frms; - u32 rmac_ttl_octets; - u32 rmac_discarded_frms; - u32 rmac_accepted_nucst_frms; - u32 reserved_1; - u32 rmac_drop_events; - u64 rmac_ttl_less_fb_octets; - u64 rmac_ttl_frms; - u64 reserved_2; - u32 rmac_usized_frms; - u32 reserved_3; - u32 rmac_frag_frms; - u32 rmac_osized_frms; - u32 reserved_4; - u32 rmac_jabber_frms; - u64 rmac_ttl_64_frms; - u64 rmac_ttl_65_127_frms; - u64 reserved_5; - u64 rmac_ttl_128_255_frms; - u64 rmac_ttl_256_511_frms; - u64 reserved_6; - u64 rmac_ttl_512_1023_frms; - u64 rmac_ttl_1024_1518_frms; - u32 rmac_ip; - u32 reserved_7; - u64 rmac_ip_octets; - u32 rmac_drop_ip; - u32 rmac_hdr_err_ip; - u32 reserved_8; - u32 rmac_icmp; - u64 rmac_tcp; - u32 rmac_err_drp_udp; - u32 rmac_udp; - u64 rmac_xgmii_err_sym; - u64 rmac_frms_q0; - u64 rmac_frms_q1; - u64 rmac_frms_q2; - u64 rmac_frms_q3; - u64 rmac_frms_q4; - u64 rmac_frms_q5; - u64 rmac_frms_q6; - u64 rmac_frms_q7; - u16 rmac_full_q3; - u16 rmac_full_q2; - u16 rmac_full_q1; - u16 rmac_full_q0; - u16 rmac_full_q7; - u16 rmac_full_q6; - u16 rmac_full_q5; - u16 rmac_full_q4; - u32 reserved_9; - u32 rmac_pause_cnt; - u64 rmac_xgmii_data_err_cnt; - u64 rmac_xgmii_ctrl_err_cnt; - u32 rmac_err_tcp; - u32 rmac_accepted_ip; - -/* PCI/PCI-X Read transaction statistics. */ - u32 new_rd_req_cnt; - u32 rd_req_cnt; - u32 rd_rtry_cnt; - u32 new_rd_req_rtry_cnt; - -/* PCI/PCI-X Write/Read transaction statistics. */ - u32 wr_req_cnt; - u32 wr_rtry_rd_ack_cnt; - u32 new_wr_req_rtry_cnt; - u32 new_wr_req_cnt; - u32 wr_disc_cnt; - u32 wr_rtry_cnt; - -/* PCI/PCI-X Write / DMA Transaction statistics. */ - u32 txp_wr_cnt; - u32 rd_rtry_wr_ack_cnt; - u32 txd_wr_cnt; - u32 txd_rd_cnt; - u32 rxd_wr_cnt; - u32 rxd_rd_cnt; - u32 rxf_wr_cnt; - u32 txf_rd_cnt; - -/* Enhanced Herc statistics */ - u32 tmac_data_octets_oflow; - u32 tmac_frms_oflow; - u32 tmac_bcst_frms_oflow; - u32 tmac_mcst_frms_oflow; - u32 tmac_ucst_frms_oflow; - u32 tmac_ttl_octets_oflow; - u32 tmac_any_err_frms_oflow; - u32 tmac_nucst_frms_oflow; - u64 tmac_vlan_frms; - u32 tmac_drop_ip_oflow; - u32 tmac_vld_ip_oflow; - u32 tmac_rst_tcp_oflow; - u32 tmac_icmp_oflow; - u32 tpa_unknown_protocol; - u32 tmac_udp_oflow; - u32 reserved_10; - u32 tpa_parse_failure; - u32 rmac_data_octets_oflow; - u32 rmac_vld_frms_oflow; - u32 rmac_vld_bcst_frms_oflow; - u32 rmac_vld_mcst_frms_oflow; - u32 rmac_accepted_ucst_frms_oflow; - u32 rmac_ttl_octets_oflow; - u32 rmac_discarded_frms_oflow; - u32 rmac_accepted_nucst_frms_oflow; - u32 rmac_usized_frms_oflow; - u32 rmac_drop_events_oflow; - u32 rmac_frag_frms_oflow; - u32 rmac_osized_frms_oflow; - u32 rmac_ip_oflow; - u32 rmac_jabber_frms_oflow; - u32 rmac_icmp_oflow; - u32 rmac_drop_ip_oflow; - u32 rmac_err_drp_udp_oflow; - u32 rmac_udp_oflow; - u32 reserved_11; - u32 rmac_pause_cnt_oflow; - u64 rmac_ttl_1519_4095_frms; - u64 rmac_ttl_4096_8191_frms; - u64 rmac_ttl_8192_max_frms; - u64 rmac_ttl_gt_max_frms; - u64 rmac_osized_alt_frms; - u64 rmac_jabber_alt_frms; - u64 rmac_gt_max_alt_frms; - u64 rmac_vlan_frms; - u32 rmac_len_discard; - u32 rmac_fcs_discard; - u32 rmac_pf_discard; - u32 rmac_da_discard; - u32 rmac_wol_discard; - u32 rmac_rts_discard; - u32 rmac_ingm_full_discard; - u32 rmac_red_discard; - u32 reserved_12; - u32 rmac_accepted_ip_oflow; - u32 reserved_13; - u32 link_fault_cnt; -#endif -} xge_hal_stats_hw_info_t; - -/** - * struct xge_hal_stats_channel_into_t - HAL channel statistics. - * @full_cnt: TBD - * @usage_max: TBD - * @reserve_free_swaps_cnt: Reserve/free swap counter. Internal usage. - * @max_compl_per_intr_cnt: Maximum number of completions per interrupt. - * @avg_compl_per_intr_cnt: Average number of completions per interrupt. - * Note that a total number of completed descriptors - * for the given channel can be calculated as - * (@traffic_intr_cnt * @avg_compl_per_intr_cnt). - * @total_compl_cnt: Total completion count. - * @total_compl_cnt == (@traffic_intr_cnt * @avg_compl_per_intr_cnt). - * @total_posts: Total number of descriptor postings on the channel. - * Counts the number of xge_hal_ring_dtr_post() - * or xge_hal_fifo_dtr_post() calls by ULD, for ring and fifo - * channel, respectively. - * @total_posts_many: Total number of posts on the channel that involved - * more than one descriptor. Counts the number of - * xge_hal_fifo_dtr_post_many() calls performed by ULD. - * @total_buffers: Total number of buffers posted on the channel. - * @copied_frags: TBD - * @copied_buffers: TBD - * @avg_buffers_per_post: Average number of buffers transferred in a single - * post operation. - * Calculated as @total_buffers/@total_posts. - * @avg_buffer_size: Average buffer size transferred by a single post - * operation on a fifo channel. The counter is not supported for a ring - * channel. Calculated as a total number of transmitted octets divided - * by @total_buffers. - * @avg_post_size: Average amount of data transferred by a single post. - * Calculated as a total number of transmitted octets divided by - * @total_posts. - * @ring_bump_cnt: Ring "bump" count. Number of times the hardware could - * not post receive data (and had to continue keeping it on-board) - * because of unavailable receive descriptor(s). - * @total_posts_dtrs_many: Total number of posts on the channel that involving - * more than one descriptor. - * @total_posts_frags_many: Total number of fragments posted on the channel - * during post requests of multiple descriptors. - * @total_posts_dang_dtrs: Total number of posts on the channel involving - * dangling descriptors. - * @total_posts_dang_frags: Total number of dangling fragments posted on the channel - * during post request containing multiple descriptors. - * - * HAL channel counters. - * See also: xge_hal_stats_device_info_t{}. - */ -typedef struct xge_hal_stats_channel_info_t { - u32 full_cnt; - u32 usage_max; - u32 reserve_free_swaps_cnt; - u32 avg_compl_per_intr_cnt; - u32 total_compl_cnt; - u32 total_posts; - u32 total_posts_many; - u32 total_buffers; - u32 copied_frags; - u32 copied_buffers; - u32 avg_buffers_per_post; - u32 avg_buffer_size; - u32 avg_post_size; - u32 ring_bump_cnt; - u32 total_posts_dtrs_many; - u32 total_posts_frags_many; - u32 total_posts_dang_dtrs; - u32 total_posts_dang_frags; -} xge_hal_stats_channel_info_t; - -/** - * struct xge_hal_xpak_counter_t - HAL xpak error counters - * @excess_temp: excess transceiver_temperature count - * @excess_bias_current: excess laser_bias_current count - * @excess_laser_output: excess laser_output_power count - * @tick_period: tick count for each cycle - */ -typedef struct xge_hal_xpak_counter_t { - u32 excess_temp; - u32 excess_bias_current; - u32 excess_laser_output; - u32 tick_period; -} xge_hal_xpak_counter_t; - -/** - * struct xge_hal_stats_xpak_t - HAL xpak stats - * @alarm_transceiver_temp_high: alarm_transceiver_temp_high count value - * @alarm_transceiver_temp_low : alarm_transceiver_temp_low count value - * @alarm_laser_bias_current_high: alarm_laser_bias_current_high count value - * @alarm_laser_bias_current_low: alarm_laser_bias_current_low count value - * @alarm_laser_output_power_high: alarm_laser_output_power_high count value - * @alarm_laser_output_power_low: alarm_laser_output_power_low count value - * @warn_transceiver_temp_high: warn_transceiver_temp_high count value - * @warn_transceiver_temp_low: warn_transceiver_temp_low count value - * @warn_laser_bias_current_high: warn_laser_bias_current_high count value - * @warn_laser_bias_current_low: warn_laser_bias_current_low count value - * @warn_laser_output_power_high: warn_laser_output_power_high count value - * @warn_laser_output_power_low: warn_laser_output_power_low count value - */ -typedef struct xge_hal_stats_xpak_t { - u16 alarm_transceiver_temp_high; - u16 alarm_transceiver_temp_low; - u16 alarm_laser_bias_current_high; - u16 alarm_laser_bias_current_low; - u16 alarm_laser_output_power_high; - u16 alarm_laser_output_power_low; - u16 warn_transceiver_temp_high; - u16 warn_transceiver_temp_low; - u16 warn_laser_bias_current_high; - u16 warn_laser_bias_current_low; - u16 warn_laser_output_power_high; - u16 warn_laser_output_power_low; -} xge_hal_stats_xpak_t; - - - -/** - * struct xge_hal_stats_sw_err_t - HAL device error statistics. - * @sm_err_cnt: TBD - * @single_ecc_err_cnt: TBD - * @double_ecc_err_cnt: TBD - * @ecc_err_cnt: ECC error count. - * @parity_err_cnt: Parity error count. - * @serr_cnt: Number of exceptions indicated to the host via PCI SERR#. - * @rxd_t_code_err_cnt: Array of receive transfer codes. The position - * (index) in this array reflects the transfer code type, for instance - * 0x7 - for "invalid receive buffer size", or 0x8 - for ECC. - * Value rxd_t_code_err_cnt[i] reflects the - * number of times the corresponding transfer code was encountered. - * - * @txd_t_code_err_cnt: Array of transmit transfer codes. The position - * (index) in this array reflects the transfer code type, for instance - * 0xA - "loss of link". - * Value txd_t_code_err_cnt[i] reflects the - * number of times the corresponding transfer code was encountered. - * @stats_xpak: TBD - * @xpak_counter: TBD - */ -typedef struct xge_hal_stats_sw_err_t { - u32 sm_err_cnt; - u32 single_ecc_err_cnt; - u32 double_ecc_err_cnt; - u32 ecc_err_cnt; - u32 parity_err_cnt; - u32 serr_cnt; - u32 rxd_t_code_err_cnt[16]; - u32 txd_t_code_err_cnt[16]; - xge_hal_stats_xpak_t stats_xpak; - xge_hal_xpak_counter_t xpak_counter; -} xge_hal_stats_sw_err_t; - -/** - * struct xge_hal_stats_device_info_t - HAL own per-device statistics. - * - * @rx_traffic_intr_cnt: TBD - * @tx_traffic_intr_cnt: TBD - * @txpic_intr_cnt: TBD - * @txdma_intr_cnt: TBD - * @txmac_intr_cnt: TBD - * @txxgxs_intr_cnt: TBD - * @rxpic_intr_cnt: TBD - * @rxdma_intr_cnt: TBD - * @rxmac_intr_cnt: TBD - * @rxxgxs_intr_cnt: TBD - * @mc_intr_cnt: TBD - * @not_traffic_intr_cnt: Number of times the host was interrupted - * without new completions. - * "Non-traffic interrupt counter". - * @not_xge_intr_cnt: TBD - * @traffic_intr_cnt: Number of traffic interrupts for the device. - * @total_intr_cnt: Total number of traffic interrupts for the device. - * @total_intr_cnt == @traffic_intr_cnt + - * @not_traffic_intr_cnt - * @soft_reset_cnt: Number of times soft reset is done on this device. - * @rxufca_hi_adjust_cnt: TODO - * @rxufca_lo_adjust_cnt: TODO - * @bimodal_hi_adjust_cnt: TODO - * @bimodal_lo_adjust_cnt: TODO - * - * @tot_frms_lroised: TBD - * @tot_lro_sessions: TBD - * @lro_frm_len_exceed_cnt: TBD - * @lro_sg_exceed_cnt: TBD - * @lro_out_of_seq_pkt_cnt: TBD - * @lro_dup_pkt_cnt: TBD - * - * HAL per-device statistics. - * See also: xge_hal_stats_channel_info_t{}. - */ -typedef struct xge_hal_stats_device_info_t { - u32 rx_traffic_intr_cnt; - u32 tx_traffic_intr_cnt; - u32 txpic_intr_cnt; - u32 txdma_intr_cnt; - u32 pfc_err_cnt; - u32 tda_err_cnt; - u32 pcc_err_cnt; - u32 tti_err_cnt; - u32 lso_err_cnt; - u32 tpa_err_cnt; - u32 sm_err_cnt; - u32 txmac_intr_cnt; - u32 mac_tmac_err_cnt; - u32 txxgxs_intr_cnt; - u32 xgxs_txgxs_err_cnt; - u32 rxpic_intr_cnt; - u32 rxdma_intr_cnt; - u32 rc_err_cnt; - u32 rpa_err_cnt; - u32 rda_err_cnt; - u32 rti_err_cnt; - u32 rxmac_intr_cnt; - u32 mac_rmac_err_cnt; - u32 rxxgxs_intr_cnt; - u32 xgxs_rxgxs_err_cnt; - u32 mc_intr_cnt; - u32 not_traffic_intr_cnt; - u32 not_xge_intr_cnt; - u32 traffic_intr_cnt; - u32 total_intr_cnt; - u32 soft_reset_cnt; - u32 rxufca_hi_adjust_cnt; - u32 rxufca_lo_adjust_cnt; - u32 bimodal_hi_adjust_cnt; - u32 bimodal_lo_adjust_cnt; -#ifdef XGE_HAL_CONFIG_LRO - u32 tot_frms_lroised; - u32 tot_lro_sessions; - u32 lro_frm_len_exceed_cnt; - u32 lro_sg_exceed_cnt; - u32 lro_out_of_seq_pkt_cnt; - u32 lro_dup_pkt_cnt; -#endif -} xge_hal_stats_device_info_t; - -/* ========================== XFRAME ER STATISTICS ======================== */ -#define XGE_HAL_MAC_LINKS 3 -#define XGE_HAL_MAC_AGGREGATORS 2 -#define XGE_HAL_VPATHS 17 -/** - * struct xge_hal_stats_link_info_t - XGMAC statistics for a link - * - * @tx_frms: Count of transmitted MAC frames for mac the link. - * @tx_ttl_eth_octets: Count of total octets of transmitted frames - * for mac the link. - * @tx_data_octets: Count of data and padding octets of transmitted - * frames for mac the link. - * @tx_mcst_frms: Count of multicast MAC frames for mac the link. - * @tx_bcst_frms: Count of broadcast MAC frames for mac the link. - * @tx_ucst_frms: Count of unicast MAC frames for mac the link. - * @tx_tagged_frms: Count of transmitted frames containing a VLAN tag - * for mac the link. - * @tx_vld_ip: Count of transmitted IP datagrams for mac the link. - * @tx_vld_ip_octets: Count of transmitted IP octets for mac the link. - * @tx_icmp: Count of transmitted ICMP messages for mac the link. - * @tx_tcp: Count of transmitted TCP segments for mac the link. - * @tx_rst_tcp: Count of transmitted TCP segments containing the RST - * flag mac the link. - * @tx_udp: Count of transmitted UDP datagrams for mac the link. - * @tx_unknown_protocol: Count of transmitted packets of unknown - * protocol for mac the link. - * @tx_parse_error: Count of transmitted packets with parsing errors - * for mac the link. - * @tx_pause_ctrl_frms: Count of MAC PAUSE control frames for mac - * the link. - * @tx_lacpdu_frms: Count of LACPDUs transmitted for mac the link. - * @tx_marker_pdu_frms: Count of Marker PDUs transmitted for mac the - * link. - * @tx_marker_resp_pdu_frms: Count of Marker Response PDUs transmitted - * for mac the link. - * @tx_drop_ip: Count of dropped IP packets from the transmission path - * for mac the link. - * @tx_xgmii_char1_match: Count of the number of transmitted XGMII - * characters that match first pattern, for mac the link. - * @tx_xgmii_char2_match: Count of the number of transmitted XGMII - * characters that match second pattern, for mac the link. - * @tx_xgmii_column1_match: Count of the number of transmitted XGMII - * columns that match first pattern, for mac the link. - * @tx_xgmii_column2_match: Count of the number of transmitted XGMII - * columns that match second pattern, for mac the link. - * @tx_drop_frms: Count of frames dropped due to internal errors during - * transmission for mac the link. - * @tx_any_err_frms: Count of frames dropped due to any error during - * transmission for mac the link. - * @rx_ttl_frms: Count of all received MAC frames for mac the link. - * @rx_vld_frms: Count of all successfully received MAC frames for mac - * the link. - * @rx_offld_frms: Count of all offloaded received MAC frames for mac - * the link. - * @rx_ttl_eth_octets: Count of total octets of received frames, not - * including framing characters for mac the link. - * @rx_data_octets: Count of data and padding octets of successfully - * received frames for mac the link. - * @rx_offld_octets: Count of total octets, not including framing - * characters, of offloaded received frames for mac the link. - * @rx_vld_mcst_frms: Count of successfully received multicast MAC - * frames for mac the link. - * @rx_vld_bcst_frms: Count of successfully received broadcast MAC - * frames for mac the link. - * @rx_accepted_ucst_frms: Count of successfully received unicast MAC - * frames for mac the link. - * @rx_accepted_nucst_frms: Count of successfully received non-unicast - * MAC frames for mac the link. - * @rx_tagged_frms: Count of received frames containing a VLAN tag for - * mac the link. - * @rx_long_frms: Count of received frames that are longer than - * RX_MAX_PYLD_LEN + 18 bytes (+ 22 bytes if VLAN-tagged) for mac the link. - * @rx_usized_frms: Count of received frames of length less than 64 - * octets, for mac the link. - * @rx_osized_frms: Count of received frames of length more than 1518 - * octets for mac the link. - * @rx_frag_frms: Count of received frames of length less than 64 - * octets that had bad FCS, for mac the link. - * @rx_jabber_frms: Count of received frames of length more than 1518 - * octets that had bad FCS, for mac the link. - * @rx_ttl_64_frms: Count of all received MAC frames with length of - * exactly 64 octets, for mac the link. - * @rx_ttl_65_127_frms: Count of all received MAC frames with length - * of between 65 and 127 octets inclusive, for mac the link. - * @rx_ttl_128_255_frms: Count of all received MAC frames with length - * of between 128 and 255 octets inclusive, for mac the link. - * @rx_ttl_256_511_frms: Count of all received MAC frames with length - * of between 246 and 511 octets inclusive, for mac the link. - * @rx_ttl_512_1023_frms: Count of all received MAC frames with length - * of between 512 and 1023 octets inclusive, for mac the link. - * @rx_ttl_1024_1518_frms: Count of all received MAC frames with length - * of between 1024 and 1518 octets inclusive, for mac the link. - * @rx_ttl_1519_4095_frms: Count of all received MAC frames with length - * of between 1519 and 4095 octets inclusive, for mac the link. - * @rx_ttl_40956_8191_frms: Count of all received MAC frames with length - * of between 4096 and 8191 octets inclusive, for mac the link. - * @rx_ttl_8192_max_frms: Count of all received MAC frames with length - * of between 8192 and RX_MAX_PYLD_LEN+18 octets inclusive, for mac the link. - * @rx_ttl_gt_max_frms: Count of all received MAC frames with length - * exceeding RX_MAX_PYLD_LEN+18 octets inclusive, for mac the link. - * @rx_ip: Count of received IP datagrams, for mac the link. - * @rx_accepted_ip: Count of received and accepted IP datagrams, - * for mac the link. - * @rx_ip_octets: Count of number of octets in received IP datagrams, - * for mac the link. - * @rx_hdr_err_ip: Count of received IP datagrams that are discarded - * due to IP header errors, for mac the link. - * @rx_icmp: Count of received ICMP messages for mac the link. - * @rx_tcp: Count of received TCP segments for mac the link. - * @rx_udp: Count of received UDP datagrams for mac the link. - * @rx_err_tcp: Count of received TCP segments containing errors for - * mac the link. - * @rx_pause_cnt: Count of number of pause quanta that the MAC has - * been in the paused state, for mac the link. - * @rx_pause_ctrl_frms: Count of received MAC PAUSE control frames for - * mac the link. - * @rx_unsup_ctrl_frms: Count of received MAC control frames that do - * not contain the PAUSE opcode for mac the link. - * @rx_fcs_err_frms: Count of received MAC frames that do not pass FCS - * for mac the link. - * @rx_in_rng_len_err_frms: Count of received frames with a length/type - * field value between 46 and 1500 inclusive, that does not match the number - * of data octets received, for mac the link. - * @rx_out_rng_len_err_frms: Count of received frames with length/type - * field between 1501 and 1535 decimal, inclusive. for mac the link. - * @rx_drop_frms: Count of dropped frames from receive path for mac - * the link. - * @rx_discarded_frms: Count of discarded frames from receive path for - * mac the link. - * @rx_drop_ip: Count of droppen IP datagrams from receive path for - * mac the link. - * @rx_err_drp_udp: Count of droppen UDP datagrams from receive path - * for mac the link. - * @rx_lacpdu_frms: Count of valid LACPDUs received for mac the link. - * @rx_marker_pdu_frms: Count of valid Marker PDUs received for mac - * the link. - * @rx_marker_resp_pdu_frms: Count of valid Marker Response PDUs - * received for mac the link. - * @rx_unknown_pdu_frms: Count of unknown PDUs received for mac the link. - * @rx_illegal_pdu_frms: Count of illegal PDUs received for mac the link. - * @rx_fcs_discard: Count of discarded PDUs received for mac the link. - * @rx_len_discard: Count of received frames that were discarded - * because of an invalid frame length, for mac the link. - * @rx_len_discard: Count of received frames that were discarded - * because of an invalid destination MAC address, for mac the link. - * @rx_pf_discard: Count of received frames that were discarded for - * mac the link. - * @rx_trash_discard: Count of received frames that were steered to the - * trash queue for mac the link. - * @rx_rts_discard: Count of received frames that were discarded by RTS - * logic for mac the link. - * @rx_wol_discard: Count of received frames that were discarded by WOL - * logic for mac the link. - * @rx_red_discard: Count of received frames that were discarded by RED - * logic for mac the link. - * @rx_ingm_full_discard: Count of received frames that were discarded - * because the internal ingress memory was full for mac the link. - * @rx_xgmii_data_err_cnt: Count of unexpected control characters - * during normal data transmission for mac the link. - * @rx_xgmii_ctrl_err_cnt: Count of unexpected or misplaced control - * characters occuring between times of normal data transmission for mac - * the link. - * @rx_xgmii_err_sym: Count of the number of symbol errors in the - * received XGMII data for mac the link. - * @rx_xgmii_char1_match: Count of the number of XGMII characters - * that match first pattern defined in MAC_STATS_RX_XGMII_CHAR_LINK_N. - * @rx_xgmii_char2_match: Count of the number of XGMII characters - * that match second pattern defined in MAC_STATS_RX_XGMII_CHAR_LINK_N. - * @rx_xgmii_column1_match: Count of the number of XGMII columns - * that match a pattern defined in MAC_STATS_RX_XGMII_COLUMN1_LINK_N. - * @rx_xgmii_column2_match: Count of the number of XGMII columns - * that match a pattern defined in MAC_STATS_RX_XGMII_COLUMN1_LINK_N. - * @rx_local_fault: Count of the number of local faults for mac the link. - * @rx_remote_fault: Count of the number of remote faults for mac the - * link. - * @rx_queue_full: Count of the number of frame destined for a full - * queue for mac the link. - */ -typedef struct xge_hal_stats_link_info_t { - u64 tx_frms; - u64 tx_ttl_eth_octets; - u64 tx_data_octets; - u64 tx_mcst_frms; - u64 tx_bcst_frms; - u64 tx_ucst_frms; - u64 tx_tagged_frms; - u64 tx_vld_ip; - u64 tx_vld_ip_octets; - u64 tx_icmp; - u64 tx_tcp; - u64 tx_rst_tcp; - u64 tx_udp; - u64 tx_unknown_protocol; - u64 tx_parse_error; - u64 tx_pause_ctrl_frms; - u64 tx_lacpdu_frms; - u64 tx_marker_pdu_frms; - u64 tx_marker_resp_pdu_frms; - u64 tx_drop_ip; - u64 tx_xgmii_char1_match; - u64 tx_xgmii_char2_match; - u64 tx_xgmii_column1_match; - u64 tx_xgmii_column2_match; - u64 tx_drop_frms; - u64 tx_any_err_frms; - u64 rx_ttl_frms; - u64 rx_vld_frms; - u64 rx_offld_frms; - u64 rx_ttl_eth_octets; - u64 rx_data_octets; - u64 rx_offld_octets; - u64 rx_vld_mcst_frms; - u64 rx_vld_bcst_frms; - u64 rx_accepted_ucst_frms; - u64 rx_accepted_nucst_frms; - u64 rx_tagged_frms; - u64 rx_long_frms; - u64 rx_usized_frms; - u64 rx_osized_frms; - u64 rx_frag_frms; - u64 rx_jabber_frms; - u64 rx_ttl_64_frms; - u64 rx_ttl_65_127_frms; - u64 rx_ttl_128_255_frms; - u64 rx_ttl_256_511_frms; - u64 rx_ttl_512_1023_frms; - u64 rx_ttl_1024_1518_frms; - u64 rx_ttl_1519_4095_frms; - u64 rx_ttl_40956_8191_frms; - u64 rx_ttl_8192_max_frms; - u64 rx_ttl_gt_max_frms; - u64 rx_ip; - u64 rx_ip_octets; - u64 rx_hdr_err_ip; - u64 rx_icmp; - u64 rx_tcp; - u64 rx_udp; - u64 rx_err_tcp; - u64 rx_pause_cnt; - u64 rx_pause_ctrl_frms; - u64 rx_unsup_ctrl_frms; - u64 rx_in_rng_len_err_frms; - u64 rx_out_rng_len_err_frms; - u64 rx_drop_frms; - u64 rx_discarded_frms; - u64 rx_drop_ip; - u64 rx_err_drp_udp; - u64 rx_lacpdu_frms; - u64 rx_marker_pdu_frms; - u64 rx_marker_resp_pdu_frms; - u64 rx_unknown_pdu_frms; - u64 rx_illegal_pdu_frms; - u64 rx_fcs_discard; - u64 rx_len_discard; - u64 rx_pf_discard; - u64 rx_trash_discard; - u64 rx_rts_discard; - u64 rx_wol_discard; - u64 rx_red_discard; - u64 rx_ingm_full_discard; - u64 rx_xgmii_data_err_cnt; - u64 rx_xgmii_ctrl_err_cnt; - u64 rx_xgmii_err_sym; - u64 rx_xgmii_char1_match; - u64 rx_xgmii_char2_match; - u64 rx_xgmii_column1_match; - u64 rx_xgmii_column2_match; - u64 rx_local_fault; - u64 rx_remote_fault; - u64 rx_queue_full; -}xge_hal_stats_link_info_t; - -/** - * struct xge_hal_stats_aggr_info_t - XGMAC statistics for an aggregator - * - * @tx_frms: Count of data frames transmitted for the aggregator. - * @tx_mcst_frms: Count of multicast data frames transmitted for - * the aggregator. - * @tx_bcst_frms: Count of broadcast data frames transmitted for - * the aggregator. - * @tx_discarded_frms: Count of discarded data frames transmitted for - * the aggregator. - * @tx_errored_frms: Count of errored data frames transmitted for - * the aggregator. - * @rx_frms: Count of received frames for aggregators - * @rx_data_octets: Count of data and padding octets of frames received - * the aggregator. - * @rx_mcst_frms: Count of multicast frames received the aggregator. - * @rx_bcst_frms: Count of broadast frames received the aggregator. - * @rx_discarded_frms: Count of discarded frames received the aggregator. - * @rx_errored_frms: Count of errored frames received the aggregator. - * @rx_unknown_protocol_frms: Count of unknown protocol frames received - * the aggregator. -*/ -typedef struct xge_hal_stats_aggr_info_t { - u64 tx_frms; - u64 tx_mcst_frms; - u64 tx_bcst_frms; - u64 tx_discarded_frms; - u64 tx_errored_frms; - u64 rx_frms; - u64 rx_data_octets; - u64 rx_mcst_frms; - u64 rx_bcst_frms; - u64 rx_discarded_frms; - u64 rx_errored_frms; - u64 rx_unknown_protocol_frms; -}xge_hal_stats_aggr_info_t; - -/** - * struct xge_hal_stats_vpath_info_t - XGMAC statistics for a vpath. - * - * @tx_frms: Count of transmitted MAC frames for the vpath. - * @tx_ttl_eth_octets: Count of total octets of transmitted frames - * for the vpath. - * @tx_data_octets: Count of data and padding octets of transmitted - * frames for the vpath. - * @tx_mcst_frms: Count of multicast MAC frames for the vpath. - * @tx_bcst_frms: Count of broadcast MAC frames for the vpath. - * @tx_ucst_frms: Count of unicast MAC frames for the vpath. - * @tx_tagged_frms: Count of transmitted frames containing a VLAN - * tag for the vpath. - * @tx_vld_ip: Count of transmitted IP datagrams for the vpath. - * @tx_vld_ip_octets: Count of transmitted IP octets for the vpath. - * @tx_icmp: Count of transmitted ICMP messages for the vpath. - * @tx_tcp: Count of transmitted TCP segments for the vpath. - * @tx_rst_tcp: Count of transmitted TCP segments containing the RST - * flag the vpath. - * @tx_udp: Count of transmitted UDP datagrams for the vpath. - * @tx_unknown_protocol: Count of transmitted packets of unknown - * protocol for the vpath. - * @tx_parse_error: Count of transmitted packets with parsing errors - * for the vpath. - * @rx_ttl_frms: Count of all received MAC frames for the vpath. - * @rx_vld_frms: Count of all successfully received MAC frames for - * the vpath. - * @rx_offld_frms: Count of all offloaded received MAC frames for - * the vpath. - * @rx_ttl_eth_octets: Count of total octets of received frames, not - * including framing characters for the vpath. - * @rx_data_octets: Count of data and padding octets of successfully - * received frames for the vpath. - * @rx_offld_octets: Count of total octets, not including framing - * characters, of offloaded received frames for the vpath. - * @rx_vld_mcst_frms: Count of successfully received multicast MAC - * frames for the vpath. - * @rx_vld_bcst_frms: Count of successfully received broadcast MAC - * frames for the vpath. - * @rx_accepted_ucst_frms: Count of successfully received unicast - * MAC frames for the vpath. - * @rx_accepted_nucst_frms: Count of successfully received - * non-unicast MAC frames for the vpath. - * @rx_tagged_frms: Count of received frames containing a VLAN tag - * for the vpath. - * @rx_long_frms: Count of received frames that are longer than - * RX_MAX_PYLD_LEN + 18 bytes (+ 22 bytes if VLAN-tagged) for the vpath. - * @rx_usized_frms: Count of received frames of length less than 64 - * octets, for the vpath. - * @rx_usized_frms: Count of received frames of length more than - * 1518 octets, for the vpath. - * @rx_osized_frms: Count of received frames of length more than - * 1518 octets for the vpath. - * @rx_frag_frms: Count of received frames of length less than 64 - * octets that had bad FCS, for the vpath. - * @rx_jabber_frms: Count of received frames of length more than - * 1518 octets that had bad FCS, for the vpath. - * @rx_ttl_64_frms: Count of all received MAC frames with length of - * exactly 64 octets, for the vpath. - * @rx_ttl_65_127_frms: Count of all received MAC frames with length - * of between 65 and 127 octets inclusive, for the vpath. - * @rx_ttl_128_255_frms: Count of all received MAC frames with - * length of between 128 and 255 octets inclusive, for the vpath. - * @rx_ttl_256_511_frms: Count of all received MAC frames with - * length of between 246 and 511 octets inclusive, for the vpath. - * @rx_ttl_512_1023_frms: Count of all received MAC frames with - * length of between 512 and 1023 octets inclusive, for the vpath. - * @rx_ttl_1024_1518_frms: Count of all received MAC frames with - * length of between 1024 and 1518 octets inclusive, for the vpath. - * @rx_ttl_1519_4095_frms: Count of all received MAC frames with - * length of between 1519 and 4095 octets inclusive, for the vpath. - * @rx_ttl_40956_8191_frms: Count of all received MAC frames with - * of between 4096 and 8191 octets inclusive, for the vpath. - * @rx_ttl_8192_max_frms: Count of all received MAC frames with - * length of between 8192 and RX_MAX_PYLD_LEN+18 octets inclusive, for the - * vpath. - * @rx_ttl_gt_max_frms: Count of all received MAC frames with length - * exceeding RX_MAX_PYLD_LEN+18 octets inclusive, for the vpath. - * @rx_ip: Count of received IP datagrams, for the vpath. - * @rx_accepted_ip: Count of received and accepted IP datagrams, - * for the vpath. - * @rx_ip_octets: Count of number of octets in received IP datagrams - * for the vpath. - * @rx_hdr_err_ip: Count of received IP datagrams that are discarded - * due to IP header errors, for the vpath. - * @rx_icmp: Count of received ICMP messages for the vpath. - * @rx_tcp: Count of received TCP segments for the vpath. - * @rx_udp: Count of received UDP datagrams for the vpath. - * @rx_err_tcp: Count of received TCP segments containing errors for - * the vpath. - * @rx_mpa_ok_frms: Count of received frames that pass the MPA - * checks for vptah. - * @rx_mpa_crc_fail_frms: Count of received frames that fail the MPA - * CRC check for the vpath. - * @rx_mpa_mrk_fail_frms: Count of received frames that fail the - * MPA marker check for the vpath. - * @rx_mpa_len_fail_frms: Count of received frames that fail the MPA - * length check for the vpath. - * @rx_wol_frms: Count of received "magic packet" frames for - * the vpath. - */ -typedef struct xge_hal_stats_vpath_info_t { - u64 tx_frms; - u64 tx_ttl_eth_octets; - u64 tx_data_octets; - u64 tx_mcst_frms; - u64 tx_bcst_frms; - u64 tx_ucst_frms; - u64 tx_tagged_frms; - u64 tx_vld_ip; - u64 tx_vld_ip_octets; - u64 tx_icmp; - u64 tx_tcp; - u64 tx_rst_tcp; - u64 tx_udp; - u64 tx_unknown_protocol; - u64 tx_parse_error; - u64 rx_ttl_frms; - u64 rx_vld_frms; - u64 rx_offld_frms; - u64 rx_ttl_eth_octets; - u64 rx_data_octets; - u64 rx_offld_octets; - u64 rx_vld_mcst_frms; - u64 rx_vld_bcst_frms; - u64 rx_accepted_ucst_frms; - u64 rx_accepted_nucst_frms; - u64 rx_tagged_frms; - u64 rx_long_frms; - u64 rx_usized_frms; - u64 rx_osized_frms; - u64 rx_frag_frms; - u64 rx_jabber_frms; - u64 rx_ttl_64_frms; - u64 rx_ttl_65_127_frms; - u64 rx_ttl_128_255_frms; - u64 rx_ttl_256_511_frms; - u64 rx_ttl_512_1023_frms; - u64 rx_ttl_1024_1518_frms; - u64 rx_ttl_1519_4095_frms; - u64 rx_ttl_40956_8191_frms; - u64 rx_ttl_8192_max_frms; - u64 rx_ttl_gt_max_frms; - u64 rx_ip; - u64 rx_accepted_ip; - u64 rx_ip_octets; - u64 rx_hdr_err_ip; - u64 rx_icmp; - u64 rx_tcp; - u64 rx_udp; - u64 rx_err_tcp; - u64 rx_mpa_ok_frms; - u64 rx_mpa_crc_fail_frms; - u64 rx_mpa_mrk_fail_frms; - u64 rx_mpa_len_fail_frms; - u64 rx_wol_frms; -}xge_hal_stats_vpath_info_t; - -/** - * struct xge_hal_stats_pcim_info_t - Contains PCIM statistics - * - * @link_info: PCIM links info for link 0, 1, and 2. - * @aggr_info: PCIM aggregators info for aggregator 0 and 1. - * See also: xge_hal_stats_link_info_t{}, xge_hal_stats_aggr_info_t{}. - */ -typedef struct xge_hal_stats_pcim_info_t { - xge_hal_stats_link_info_t link_info[XGE_HAL_MAC_LINKS]; - xge_hal_stats_aggr_info_t aggr_info[XGE_HAL_MAC_AGGREGATORS]; -}xge_hal_stats_pcim_info_t; - -/** - * struct xge_hal_stats_t - Contains HAL per-device statistics, - * including hw. - * @devh: HAL device handle. - * @dma_addr: DMA addres of the %hw_info. Given to device to fill-in the stats. - * @hw_info_dmah: DMA handle used to map hw statistics onto the device memory - * space. - * @hw_info_dma_acch: One more DMA handle used subsequently to free the - * DMA object. Note that this and the previous handle have - * physical meaning for Solaris; on Windows and Linux the - * corresponding value will be simply pointer to PCI device. - * - * @hw_info: Xframe statistics maintained by the hardware. - * @hw_info_saved: TBD - * @hw_info_latest: TBD - * @pcim_info: Xframe PCIM statistics maintained by the hardware. - * @pcim_info_saved: TBD - * @pcim_info_latest: TBD - * @sw_dev_info_stats: HAL's "soft" device informational statistics, e.g. number - * of completions per interrupt. - * @sw_dev_err_stats: HAL's "soft" device error statistics. - * - * @is_initialized: True, if all the subordinate structures are allocated and - * initialized. - * @is_enabled: True, if device stats collection is enabled. - * - * Structure-container of HAL per-device statistics. Note that per-channel - * statistics are kept in separate structures under HAL's fifo and ring - * channels. - * See also: xge_hal_stats_hw_info_t{}, xge_hal_stats_sw_err_t{}, - * xge_hal_stats_device_info_t{}. - * See also: xge_hal_stats_channel_info_t{}. - */ -typedef struct xge_hal_stats_t { - /* handles */ - xge_hal_device_h devh; - dma_addr_t dma_addr; - pci_dma_h hw_info_dmah; - pci_dma_acc_h hw_info_dma_acch; - - /* HAL device hardware statistics */ - xge_hal_stats_hw_info_t *hw_info; - xge_hal_stats_hw_info_t hw_info_saved; - xge_hal_stats_hw_info_t hw_info_latest; - - /* HAL device hardware statistics for XFRAME ER */ - xge_hal_stats_pcim_info_t *pcim_info; - xge_hal_stats_pcim_info_t *pcim_info_saved; - xge_hal_stats_pcim_info_t *pcim_info_latest; - - /* HAL device "soft" stats */ - xge_hal_stats_sw_err_t sw_dev_err_stats; - xge_hal_stats_device_info_t sw_dev_info_stats; - - /* flags */ - int is_initialized; - int is_enabled; -} xge_hal_stats_t; - -/* ========================== STATS PRIVATE API ========================= */ - -xge_hal_status_e __hal_stats_initialize(xge_hal_stats_t *stats, - xge_hal_device_h devh); - -void __hal_stats_terminate(xge_hal_stats_t *stats); - -void __hal_stats_enable(xge_hal_stats_t *stats); - -void __hal_stats_disable(xge_hal_stats_t *stats); - -void __hal_stats_soft_reset(xge_hal_device_h devh, int reset_all); - -/* ========================== STATS PUBLIC API ========================= */ - -xge_hal_status_e xge_hal_stats_hw(xge_hal_device_h devh, - xge_hal_stats_hw_info_t **hw_info); - -xge_hal_status_e xge_hal_stats_pcim(xge_hal_device_h devh, - xge_hal_stats_pcim_info_t **pcim_info); - -xge_hal_status_e xge_hal_stats_device(xge_hal_device_h devh, - xge_hal_stats_device_info_t **device_info); - -xge_hal_status_e xge_hal_stats_channel(xge_hal_channel_h channelh, - xge_hal_stats_channel_info_t **channel_info); - -xge_hal_status_e xge_hal_stats_reset(xge_hal_device_h devh); - - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_STATS_H */ Property changes on: head/sys/dev/nxge/include/xgehal-stats.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-ring.h =================================================================== --- head/sys/dev/nxge/include/xgehal-ring.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-ring.h (nonexistent) @@ -1,467 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_RING_H -#define XGE_HAL_RING_H - -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -/* HW ring configuration */ -#define XGE_HAL_RING_RXDBLOCK_SIZE 0x1000 - -#define XGE_HAL_RXD_T_CODE_OK 0x0 -#define XGE_HAL_RXD_T_CODE_PARITY 0x1 -#define XGE_HAL_RXD_T_CODE_ABORT 0x2 -#define XGE_HAL_RXD_T_CODE_PARITY_ABORT 0x3 -#define XGE_HAL_RXD_T_CODE_RDA_FAILURE 0x4 -#define XGE_HAL_RXD_T_CODE_UNKNOWN_PROTO 0x5 -#define XGE_HAL_RXD_T_CODE_BAD_FCS 0x6 -#define XGE_HAL_RXD_T_CODE_BUFF_SIZE 0x7 -#define XGE_HAL_RXD_T_CODE_BAD_ECC 0x8 -#define XGE_HAL_RXD_T_CODE_UNUSED_C 0xC -#define XGE_HAL_RXD_T_CODE_UNKNOWN 0xF - -#define XGE_HAL_RING_USE_MTU -1 - -/* control_1 and control_2 formatting - same for all buffer modes */ -#define XGE_HAL_RXD_GET_L3_CKSUM(control_1) ((u16)(control_1>>16) & 0xFFFF) -#define XGE_HAL_RXD_GET_L4_CKSUM(control_1) ((u16)(control_1 & 0xFFFF)) - -#define XGE_HAL_RXD_MASK_VLAN_TAG vBIT(0xFFFF,48,16) -#define XGE_HAL_RXD_SET_VLAN_TAG(control_2, val) control_2 |= (u16)val -#define XGE_HAL_RXD_GET_VLAN_TAG(control_2) ((u16)(control_2 & 0xFFFF)) - -#define XGE_HAL_RXD_POSTED_4_XFRAME BIT(7) /* control_1 */ -#define XGE_HAL_RXD_NOT_COMPLETED BIT(0) /* control_2 */ -#define XGE_HAL_RXD_T_CODE (BIT(12)|BIT(13)|BIT(14)|BIT(15)) -#define XGE_HAL_RXD_GET_T_CODE(control_1) \ - ((control_1 & XGE_HAL_RXD_T_CODE)>>48) -#define XGE_HAL_RXD_SET_T_CODE(control_1, val) \ - (control_1 |= (((u64)val & 0xF) << 48)) - -#define XGE_HAL_RXD_MASK_FRAME_TYPE vBIT(0x3,25,2) -#define XGE_HAL_RXD_MASK_FRAME_PROTO vBIT(0xFFFF,24,8) -#define XGE_HAL_RXD_GET_FRAME_TYPE(control_1) \ - (u8)(0x3 & ((control_1 & XGE_HAL_RXD_MASK_FRAME_TYPE) >> 37)) -#define XGE_HAL_RXD_GET_FRAME_PROTO(control_1) \ - (u8)((control_1 & XGE_HAL_RXD_MASK_FRAME_PROTO) >> 32) -#define XGE_HAL_RXD_FRAME_PROTO_VLAN_TAGGED BIT(24) -#define XGE_HAL_RXD_FRAME_PROTO_IPV4 BIT(27) -#define XGE_HAL_RXD_FRAME_PROTO_IPV6 BIT(28) -#define XGE_HAL_RXD_FRAME_PROTO_IP_FRAGMENTED BIT(29) -#define XGE_HAL_RXD_FRAME_PROTO_TCP BIT(30) -#define XGE_HAL_RXD_FRAME_PROTO_UDP BIT(31) -#define XGE_HAL_RXD_FRAME_TCP_OR_UDP (XGE_HAL_RXD_FRAME_PROTO_TCP | \ - XGE_HAL_RXD_FRAME_PROTO_UDP) - -/** - * enum xge_hal_frame_type_e - Ethernet frame format. - * @XGE_HAL_FRAME_TYPE_DIX: DIX (Ethernet II) format. - * @XGE_HAL_FRAME_TYPE_LLC: LLC format. - * @XGE_HAL_FRAME_TYPE_SNAP: SNAP format. - * @XGE_HAL_FRAME_TYPE_IPX: IPX format. - * - * Ethernet frame format. - */ -typedef enum xge_hal_frame_type_e { - XGE_HAL_FRAME_TYPE_DIX = 0x0, - XGE_HAL_FRAME_TYPE_LLC = 0x1, - XGE_HAL_FRAME_TYPE_SNAP = 0x2, - XGE_HAL_FRAME_TYPE_IPX = 0x3, -} xge_hal_frame_type_e; - -/** - * enum xge_hal_frame_proto_e - Higher-layer ethernet protocols. - * @XGE_HAL_FRAME_PROTO_VLAN_TAGGED: VLAN. - * @XGE_HAL_FRAME_PROTO_IPV4: IPv4. - * @XGE_HAL_FRAME_PROTO_IPV6: IPv6. - * @XGE_HAL_FRAME_PROTO_IP_FRAGMENTED: IP fragmented. - * @XGE_HAL_FRAME_PROTO_TCP: TCP. - * @XGE_HAL_FRAME_PROTO_UDP: UDP. - * @XGE_HAL_FRAME_PROTO_TCP_OR_UDP: TCP or UDP. - * - * Higher layer ethernet protocols and options. - */ -typedef enum xge_hal_frame_proto_e { - XGE_HAL_FRAME_PROTO_VLAN_TAGGED = 0x80, - XGE_HAL_FRAME_PROTO_IPV4 = 0x10, - XGE_HAL_FRAME_PROTO_IPV6 = 0x08, - XGE_HAL_FRAME_PROTO_IP_FRAGMENTED = 0x04, - XGE_HAL_FRAME_PROTO_TCP = 0x02, - XGE_HAL_FRAME_PROTO_UDP = 0x01, - XGE_HAL_FRAME_PROTO_TCP_OR_UDP = (XGE_HAL_FRAME_PROTO_TCP | \ - XGE_HAL_FRAME_PROTO_UDP) -} xge_hal_frame_proto_e; - -/* - * xge_hal_ring_rxd_1_t - */ -typedef struct { - u64 host_control; - u64 control_1; - u64 control_2; -#define XGE_HAL_RXD_1_MASK_BUFFER0_SIZE vBIT(0xFFFF,0,16) -#define XGE_HAL_RXD_1_SET_BUFFER0_SIZE(val) vBIT(val,0,16) -#define XGE_HAL_RXD_1_GET_BUFFER0_SIZE(Control_2) \ - (int)((Control_2 & vBIT(0xFFFF,0,16))>>48) -#define XGE_HAL_RXD_1_GET_RTH_VALUE(Control_2) \ - (u32)((Control_2 & vBIT(0xFFFFFFFF,16,32))>>16) - u64 buffer0_ptr; -} xge_hal_ring_rxd_1_t; - -/* - * xge_hal_ring_rxd_3_t - */ -typedef struct { - u64 host_control; - u64 control_1; - - u64 control_2; -#define XGE_HAL_RXD_3_MASK_BUFFER0_SIZE vBIT(0xFF,8,8) -#define XGE_HAL_RXD_3_SET_BUFFER0_SIZE(val) vBIT(val,8,8) -#define XGE_HAL_RXD_3_MASK_BUFFER1_SIZE vBIT(0xFFFF,16,16) -#define XGE_HAL_RXD_3_SET_BUFFER1_SIZE(val) vBIT(val,16,16) -#define XGE_HAL_RXD_3_MASK_BUFFER2_SIZE vBIT(0xFFFF,32,16) -#define XGE_HAL_RXD_3_SET_BUFFER2_SIZE(val) vBIT(val,32,16) - - -#define XGE_HAL_RXD_3_GET_BUFFER0_SIZE(Control_2) \ - (int)((Control_2 & vBIT(0xFF,8,8))>>48) -#define XGE_HAL_RXD_3_GET_BUFFER1_SIZE(Control_2) \ - (int)((Control_2 & vBIT(0xFFFF,16,16))>>32) -#define XGE_HAL_RXD_3_GET_BUFFER2_SIZE(Control_2) \ - (int)((Control_2 & vBIT(0xFFFF,32,16))>>16) - - u64 buffer0_ptr; - u64 buffer1_ptr; - u64 buffer2_ptr; -} xge_hal_ring_rxd_3_t; - -/* - * xge_hal_ring_rxd_5_t - */ -typedef struct { -#ifdef XGE_OS_HOST_BIG_ENDIAN - u32 host_control; - u32 control_3; -#else - u32 control_3; - u32 host_control; -#endif - - -#define XGE_HAL_RXD_5_MASK_BUFFER3_SIZE vBIT(0xFFFF,32,16) -#define XGE_HAL_RXD_5_SET_BUFFER3_SIZE(val) vBIT(val,32,16) -#define XGE_HAL_RXD_5_MASK_BUFFER4_SIZE vBIT(0xFFFF,48,16) -#define XGE_HAL_RXD_5_SET_BUFFER4_SIZE(val) vBIT(val,48,16) - -#define XGE_HAL_RXD_5_GET_BUFFER3_SIZE(Control_3) \ - (int)((Control_3 & vBIT(0xFFFF,32,16))>>16) -#define XGE_HAL_RXD_5_GET_BUFFER4_SIZE(Control_3) \ - (int)((Control_3 & vBIT(0xFFFF,48,16))) - - u64 control_1; - u64 control_2; - -#define XGE_HAL_RXD_5_MASK_BUFFER0_SIZE vBIT(0xFFFF,0,16) -#define XGE_HAL_RXD_5_SET_BUFFER0_SIZE(val) vBIT(val,0,16) -#define XGE_HAL_RXD_5_MASK_BUFFER1_SIZE vBIT(0xFFFF,16,16) -#define XGE_HAL_RXD_5_SET_BUFFER1_SIZE(val) vBIT(val,16,16) -#define XGE_HAL_RXD_5_MASK_BUFFER2_SIZE vBIT(0xFFFF,32,16) -#define XGE_HAL_RXD_5_SET_BUFFER2_SIZE(val) vBIT(val,32,16) - - -#define XGE_HAL_RXD_5_GET_BUFFER0_SIZE(Control_2) \ - (int)((Control_2 & vBIT(0xFFFF,0,16))>>48) -#define XGE_HAL_RXD_5_GET_BUFFER1_SIZE(Control_2) \ - (int)((Control_2 & vBIT(0xFFFF,16,16))>>32) -#define XGE_HAL_RXD_5_GET_BUFFER2_SIZE(Control_2) \ - (int)((Control_2 & vBIT(0xFFFF,32,16))>>16) - u64 buffer0_ptr; - u64 buffer1_ptr; - u64 buffer2_ptr; - u64 buffer3_ptr; - u64 buffer4_ptr; -} xge_hal_ring_rxd_5_t; - -#define XGE_HAL_RXD_GET_RTH_SPDM_HIT(Control_1) \ - (u8)((Control_1 & BIT(18))>>45) -#define XGE_HAL_RXD_GET_RTH_IT_HIT(Control_1) \ - (u8)((Control_1 & BIT(19))>>44) -#define XGE_HAL_RXD_GET_RTH_HASH_TYPE(Control_1) \ - (u8)((Control_1 & vBIT(0xF,20,4))>>40) - -#define XGE_HAL_RXD_HASH_TYPE_NONE 0x0 -#define XGE_HAL_RXD_HASH_TYPE_TCP_IPV4 0x1 -#define XGE_HAL_RXD_HASH_TYPE_UDP_IPV4 0x2 -#define XGE_HAL_RXD_HASH_TYPE_IPV4 0x3 -#define XGE_HAL_RXD_HASH_TYPE_TCP_IPV6 0x4 -#define XGE_HAL_RXD_HASH_TYPE_UDP_IPV6 0x5 -#define XGE_HAL_RXD_HASH_TYPE_IPV6 0x6 -#define XGE_HAL_RXD_HASH_TYPE_TCP_IPV6_EX 0x7 -#define XGE_HAL_RXD_HASH_TYPE_UDP_IPV6_EX 0x8 -#define XGE_HAL_RXD_HASH_TYPE_IPV6_EX 0x9 - -typedef u8 xge_hal_ring_block_t[XGE_HAL_RING_RXDBLOCK_SIZE]; - -#define XGE_HAL_RING_NEXT_BLOCK_POINTER_OFFSET 0xFF8 -#define XGE_HAL_RING_MEMBLOCK_IDX_OFFSET 0xFF0 - -#define XGE_HAL_RING_RXD_SIZEOF(n) \ - (n==1 ? sizeof(xge_hal_ring_rxd_1_t) : \ - (n==3 ? sizeof(xge_hal_ring_rxd_3_t) : \ - sizeof(xge_hal_ring_rxd_5_t))) - -#define XGE_HAL_RING_RXDS_PER_BLOCK(n) \ - (n==1 ? 127 : (n==3 ? 85 : 63)) - -/** - * struct xge_hal_ring_rxd_priv_t - Receive descriptor HAL-private data. - * @dma_addr: DMA (mapped) address of _this_ descriptor. - * @dma_handle: DMA handle used to map the descriptor onto device. - * @dma_offset: Descriptor's offset in the memory block. HAL allocates - * descriptors in memory blocks of - * %XGE_HAL_RING_RXDBLOCK_SIZE - * bytes. Each memblock is contiguous DMA-able memory. Each - * memblock contains 1 or more 4KB RxD blocks visible to the - * Xframe hardware. - * @dma_object: DMA address and handle of the memory block that contains - * the descriptor. This member is used only in the "checked" - * version of the HAL (to enforce certain assertions); - * otherwise it gets compiled out. - * @allocated: True if the descriptor is reserved, 0 otherwise. Internal usage. - * - * Per-receive decsriptor HAL-private data. HAL uses the space to keep DMA - * information associated with the descriptor. Note that ULD can ask HAL - * to allocate additional per-descriptor space for its own (ULD-specific) - * purposes. - */ -typedef struct xge_hal_ring_rxd_priv_t { - dma_addr_t dma_addr; - pci_dma_h dma_handle; - ptrdiff_t dma_offset; -#ifdef XGE_DEBUG_ASSERT - xge_hal_mempool_dma_t *dma_object; -#endif -#ifdef XGE_OS_MEMORY_CHECK - int allocated; -#endif -} xge_hal_ring_rxd_priv_t; - -/** - * struct xge_hal_ring_t - Ring channel. - * @channel: Channel "base" of this ring, the common part of all HAL - * channels. - * @buffer_mode: 1, 3, or 5. The value specifies a receive buffer mode, - * as per Xframe User Guide. - * @indicate_max_pkts: Maximum number of packets processed within a single - * interrupt. Can be used to limit the time spent inside hw - * interrupt. - * @config: Ring configuration, part of device configuration - * (see xge_hal_device_config_t{}). - * @rxd_size: RxD sizes for 1-, 3- or 5- buffer modes. As per Xframe spec, - * 1-buffer mode descriptor is 32 byte long, etc. - * @rxd_priv_size: Per RxD size reserved (by HAL) for ULD to keep per-descriptor - * data (e.g., DMA handle for Solaris) - * @rxds_per_block: Number of descriptors per hardware-defined RxD - * block. Depends on the (1-,3-,5-) buffer mode. - * @mempool: Memory pool, the pool from which descriptors get allocated. - * (See xge_hal_mm.h). - * @rxdblock_priv_size: Reserved at the end of each RxD block. HAL internal - * usage. Not to confuse with @rxd_priv_size. - * @reserved_rxds_arr: Array of RxD pointers. At any point in time each - * entry in this array is available for allocation - * (via xge_hal_ring_dtr_reserve()) and posting. - * @cmpl_cnt: Completion counter. Is reset to zero upon entering the ISR. - * Used in conjunction with @indicate_max_pkts. - * Ring channel. - * - * Note: The structure is cache line aligned to better utilize - * CPU cache performance. - */ -typedef struct xge_hal_ring_t { - xge_hal_channel_t channel; - int buffer_mode; - int indicate_max_pkts; - xge_hal_ring_config_t *config; - int rxd_size; - int rxd_priv_size; - int rxds_per_block; - xge_hal_mempool_t *mempool; - int rxdblock_priv_size; - void **reserved_rxds_arr; - int cmpl_cnt; -} __xge_os_attr_cacheline_aligned xge_hal_ring_t; - -/** - * struct xge_hal_dtr_info_t - Extended information associated with a - * completed ring descriptor. - * @l3_cksum: Result of IP checksum check (by Xframe hardware). - * This field containing XGE_HAL_L3_CKSUM_OK would mean that - * the checksum is correct, otherwise - the datagram is - * corrupted. - * @l4_cksum: Result of TCP/UDP checksum check (by Xframe hardware). - * This field containing XGE_HAL_L4_CKSUM_OK would mean that - * the checksum is correct. Otherwise - the packet is - * corrupted. - * @frame: See xge_hal_frame_type_e{}. - * @proto: Reporting bits for various higher-layer protocols, including (but - * note restricted to) TCP and UDP. See xge_hal_frame_proto_e{}. - * @vlan: VLAN tag extracted from the received frame. - * @rth_value: Receive Traffic Hashing(RTH) hash value. Produced by Xframe II - * hardware if RTH is enabled. - * @rth_it_hit: Set, If RTH hash value calculated by the Xframe II hardware - * has a matching entry in the Indirection table. - * @rth_spdm_hit: Set, If RTH hash value calculated by the Xframe II hardware - * has a matching entry in the Socket Pair Direct Match table. - * @rth_hash_type: RTH hash code of the function used to calculate the hash. - * @reserved_pad: Unused byte. - */ -typedef struct xge_hal_dtr_info_t { - int l3_cksum; - int l4_cksum; - int frame; /* zero or more of xge_hal_frame_type_e flags */ - int proto; /* zero or more of xge_hal_frame_proto_e flags */ - int vlan; - u32 rth_value; - u8 rth_it_hit; - u8 rth_spdm_hit; - u8 rth_hash_type; - u8 reserved_pad; -} xge_hal_dtr_info_t; - -/* ========================== RING PRIVATE API ============================ */ - -xge_hal_status_e __hal_ring_open(xge_hal_channel_h channelh, - xge_hal_channel_attr_t *attr); - -void __hal_ring_close(xge_hal_channel_h channelh); - -void __hal_ring_hw_initialize(xge_hal_device_h devh); - -void __hal_ring_mtu_set(xge_hal_device_h devh, int new_mtu); - -void __hal_ring_prc_enable(xge_hal_channel_h channelh); - -void __hal_ring_prc_disable(xge_hal_channel_h channelh); - -xge_hal_status_e __hal_ring_initial_replenish(xge_hal_channel_t *channel, - xge_hal_channel_reopen_e reopen); - -#if defined(XGE_DEBUG_FP) && (XGE_DEBUG_FP & XGE_DEBUG_FP_RING) -#define __HAL_STATIC_RING -#define __HAL_INLINE_RING - -__HAL_STATIC_RING __HAL_INLINE_RING int -__hal_ring_block_memblock_idx(xge_hal_ring_block_t *block); - -__HAL_STATIC_RING __HAL_INLINE_RING void -__hal_ring_block_memblock_idx_set(xge_hal_ring_block_t*block, int memblock_idx); - -__HAL_STATIC_RING __HAL_INLINE_RING dma_addr_t -__hal_ring_block_next_pointer(xge_hal_ring_block_t *block); - -__HAL_STATIC_RING __HAL_INLINE_RING void -__hal_ring_block_next_pointer_set(xge_hal_ring_block_t*block, - dma_addr_t dma_next); - -__HAL_STATIC_RING __HAL_INLINE_RING xge_hal_ring_rxd_priv_t* -__hal_ring_rxd_priv(xge_hal_ring_t *ring, xge_hal_dtr_h dtrh); - -/* =========================== RING PUBLIC API ============================ */ - -__HAL_STATIC_RING __HAL_INLINE_RING xge_hal_status_e -xge_hal_ring_dtr_reserve(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh); - -__HAL_STATIC_RING __HAL_INLINE_RING void* -xge_hal_ring_dtr_private(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_1b_set(xge_hal_dtr_h dtrh, dma_addr_t dma_pointer, int size); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_info_get(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - xge_hal_dtr_info_t *ext_info); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_1b_get(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - dma_addr_t *dma_pointer, int *pkt_length); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_3b_set(xge_hal_dtr_h dtrh, dma_addr_t dma_pointers[], - int sizes[]); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_3b_get(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - dma_addr_t dma_pointers[], int sizes[]); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_5b_set(xge_hal_dtr_h dtrh, dma_addr_t dma_pointers[], - int sizes[]); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_5b_get(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - dma_addr_t dma_pointer[], int sizes[]); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_pre_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_post_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_post_post_wmb(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_RING __HAL_INLINE_RING xge_hal_status_e -xge_hal_ring_dtr_next_completed(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh, - u8 *t_code); - -__HAL_STATIC_RING __HAL_INLINE_RING void -xge_hal_ring_dtr_free(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_RING __HAL_INLINE_RING xge_hal_status_e -xge_hal_ring_is_next_dtr_completed(xge_hal_channel_h channelh); - -#else /* XGE_FASTPATH_EXTERN */ -#define __HAL_STATIC_RING static -#define __HAL_INLINE_RING inline -#include -#endif /* XGE_FASTPATH_INLINE */ - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_RING_H */ Property changes on: head/sys/dev/nxge/include/xgehal-ring.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xge-list.h =================================================================== --- head/sys/dev/nxge/include/xge-list.h (revision 333387) +++ head/sys/dev/nxge/include/xge-list.h (nonexistent) @@ -1,197 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_LIST_H -#define XGE_LIST_H - -#include - -__EXTERN_BEGIN_DECLS - -/** - * struct xge_list_t - List item. - * @prev: Previous list item. - * @next: Next list item. - * - * Item of a bi-directional linked list. - */ -typedef struct xge_list_t { - struct xge_list_t* prev; - struct xge_list_t* next; -} xge_list_t; - -/** - * xge_list_init - Initialize linked list. - * header: first element of the list (head) - * - * Initialize linked list. - * See also: xge_list_t{}. - */ -static inline void xge_list_init (xge_list_t *header) -{ - header->next = header; - header->prev = header; -} - -/** - * xge_list_is_empty - Is the list empty? - * header: first element of the list (head) - * - * Determine whether the bi-directional list is empty. Return '1' in - * case of 'empty'. - * See also: xge_list_t{}. - */ -static inline int xge_list_is_empty(xge_list_t *header) -{ - xge_assert(header != NULL); - - return header->next == header; -} - -/** - * xge_list_first_get - Return the first item from the linked list. - * header: first element of the list (head) - * - * Returns the next item from the header. - * Returns NULL if the next item is header itself - * See also: xge_list_remove(), xge_list_insert(), xge_list_t{}. - */ -static inline xge_list_t *xge_list_first_get(xge_list_t *header) -{ - xge_assert(header != NULL); - xge_assert(header->next != NULL); - xge_assert(header->prev != NULL); - - if(header->next == header) - return NULL; - else - return header->next; -} - -/** - * xge_list_remove - Remove the specified item from the linked list. - * item: element of the list - * - * Remove item from a list. - * See also: xge_list_insert(), xge_list_t{}. - */ -static inline void xge_list_remove(xge_list_t *item) -{ - xge_assert(item != NULL); - xge_assert(item->next != NULL); - xge_assert(item->prev != NULL); - - item->next->prev = item->prev; - item->prev->next = item->next; -#ifdef XGE_DEBUG_ASSERT - item->next = item->prev = NULL; -#endif -} - -/** - * xge_list_insert - Insert a new item after the specified item. - * new_item: new element of the list - * prev_item: element of the list after which the new element is - * inserted - * - * Insert new item (new_item) after given item (prev_item). - * See also: xge_list_remove(), xge_list_insert_before(), xge_list_t{}. - */ -static inline void xge_list_insert (xge_list_t *new_item, - xge_list_t *prev_item) -{ - xge_assert(new_item != NULL); - xge_assert(prev_item != NULL); - xge_assert(prev_item->next != NULL); - - new_item->next = prev_item->next; - new_item->prev = prev_item; - prev_item->next->prev = new_item; - prev_item->next = new_item; -} - -/** - * xge_list_insert_before - Insert a new item before the specified item. - * new_item: new element of the list - * next_item: element of the list after which the new element is inserted - * - * Insert new item (new_item) before given item (next_item). - */ -static inline void xge_list_insert_before (xge_list_t *new_item, - xge_list_t *next_item) -{ - xge_assert(new_item != NULL); - xge_assert(next_item != NULL); - xge_assert(next_item->next != NULL); - - new_item->next = next_item; - new_item->prev = next_item->prev; - next_item->prev->next = new_item; - next_item->prev = new_item; -} - -#define xge_list_for_each(_p, _h) \ - for (_p = (_h)->next, xge_os_prefetch(_p->next); _p != (_h); \ - _p = _p->next, xge_os_prefetch(_p->next)) - -#define xge_list_for_each_safe(_p, _n, _h) \ - for (_p = (_h)->next, _n = _p->next; _p != (_h); \ - _p = _n, _n = _p->next) - -#ifdef __GNUC__ -/** - * xge_container_of - Given a member, return the containing structure. - * @ptr: the pointer to the member. - * @type: the type of the container struct this is embedded in. - * @member: the name of the member within the struct. - * - * Cast a member of a structure out to the containing structure. - */ -#define xge_container_of(ptr, type, member) ({ \ - __typeof( ((type *)0)->member ) *__mptr = (ptr); \ - (type *)(void *)( (char *)__mptr - ((size_t) &((type *)0)->member) );}) -#else -/* type unsafe version */ -#define xge_container_of(ptr, type, member) \ - ((type*)(void*)((char*)(ptr) - ((size_t) &((type *)0)->member))) -#endif - -/** - * xge_offsetof - Offset of the member in the containing structure. - * @t: struct name. - * @m: the name of the member within the struct. - * - * Return the offset of the member @m in the structure @t. - */ -#define xge_offsetof(t, m) ((size_t) (&((t *)0)->m)) - -__EXTERN_END_DECLS - -#endif /* XGE_LIST_H */ Property changes on: head/sys/dev/nxge/include/xge-list.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-regs.h =================================================================== --- head/sys/dev/nxge/include/xgehal-regs.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-regs.h (nonexistent) @@ -1,1375 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_REGS_H -#define XGE_HAL_REGS_H - -__EXTERN_BEGIN_DECLS - -typedef struct { - -/* General Control-Status Registers */ - u64 general_int_status; -#define XGE_HAL_GEN_INTR_TXPIC BIT(0) -#define XGE_HAL_GEN_INTR_TXDMA BIT(1) -#define XGE_HAL_GEN_INTR_TXMAC BIT(2) -#define XGE_HAL_GEN_INTR_TXXGXS BIT(3) -#define XGE_HAL_GEN_INTR_TXTRAFFIC BIT(8) -#define XGE_HAL_GEN_INTR_RXPIC BIT(32) -#define XGE_HAL_GEN_INTR_RXDMA BIT(33) -#define XGE_HAL_GEN_INTR_RXMAC BIT(34) -#define XGE_HAL_GEN_INTR_MC BIT(35) -#define XGE_HAL_GEN_INTR_RXXGXS BIT(36) -#define XGE_HAL_GEN_INTR_RXTRAFFIC BIT(40) -#define XGE_HAL_GEN_ERROR_INTR (XGE_HAL_GEN_INTR_TXPIC | \ - XGE_HAL_GEN_INTR_RXPIC | \ - XGE_HAL_GEN_INTR_TXDMA | \ - XGE_HAL_GEN_INTR_RXDMA | \ - XGE_HAL_GEN_INTR_TXMAC | \ - XGE_HAL_GEN_INTR_RXMAC | \ - XGE_HAL_GEN_INTR_TXXGXS | \ - XGE_HAL_GEN_INTR_RXXGXS | \ - XGE_HAL_GEN_INTR_MC) - - u64 general_int_mask; - - u8 unused0[0x100 - 0x10]; - - u64 sw_reset; - -/* XGXS must be removed from reset only once. */ -#define XGE_HAL_SW_RESET_XENA vBIT(0xA5,0,8) -#define XGE_HAL_SW_RESET_FLASH vBIT(0xA5,8,8) -#define XGE_HAL_SW_RESET_EOI vBIT(0xA5,16,8) -#define XGE_HAL_SW_RESET_XGXS vBIT(0xA5,24,8) -#define XGE_HAL_SW_RESET_ALL (XGE_HAL_SW_RESET_XENA | \ - XGE_HAL_SW_RESET_FLASH | \ - XGE_HAL_SW_RESET_EOI | \ - XGE_HAL_SW_RESET_XGXS) - -/* The SW_RESET register must read this value after a successful reset. */ -#if defined(XGE_OS_HOST_BIG_ENDIAN) && !defined(XGE_OS_PIO_LITTLE_ENDIAN) -#define XGE_HAL_SW_RESET_RAW_VAL_XENA 0xA500000000ULL -#define XGE_HAL_SW_RESET_RAW_VAL_HERC 0xA5A500000000ULL -#else -#define XGE_HAL_SW_RESET_RAW_VAL_XENA 0xA5000000ULL -#define XGE_HAL_SW_RESET_RAW_VAL_HERC 0xA5A50000ULL -#endif - - - u64 adapter_status; -#define XGE_HAL_ADAPTER_STATUS_TDMA_READY BIT(0) -#define XGE_HAL_ADAPTER_STATUS_RDMA_READY BIT(1) -#define XGE_HAL_ADAPTER_STATUS_PFC_READY BIT(2) -#define XGE_HAL_ADAPTER_STATUS_TMAC_BUF_EMPTY BIT(3) -#define XGE_HAL_ADAPTER_STATUS_PIC_QUIESCENT BIT(5) -#define XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT BIT(6) -#define XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT BIT(7) -#define XGE_HAL_ADAPTER_STATUS_RMAC_PCC_IDLE vBIT(0xFF,8,8) -#define XGE_HAL_ADAPTER_STATUS_RMAC_PCC_4_IDLE vBIT(0x0F,8,8) -#define XGE_HAL_ADAPTER_PCC_ENABLE_FOUR vBIT(0x0F,0,8) - -#define XGE_HAL_ADAPTER_STATUS_RC_PRC_QUIESCENT vBIT(0xFF,16,8) -#define XGE_HAL_ADAPTER_STATUS_MC_DRAM_READY BIT(24) -#define XGE_HAL_ADAPTER_STATUS_MC_QUEUES_READY BIT(25) -#define XGE_HAL_ADAPTER_STATUS_M_PLL_LOCK BIT(30) -#define XGE_HAL_ADAPTER_STATUS_P_PLL_LOCK BIT(31) - - u64 adapter_control; -#define XGE_HAL_ADAPTER_CNTL_EN BIT(7) -#define XGE_HAL_ADAPTER_EOI_TX_ON BIT(15) -#define XGE_HAL_ADAPTER_LED_ON BIT(23) -#define XGE_HAL_ADAPTER_UDPI(val) vBIT(val,36,4) -#define XGE_HAL_ADAPTER_WAIT_INT BIT(48) -#define XGE_HAL_ADAPTER_ECC_EN BIT(55) - - u64 serr_source; -#define XGE_HAL_SERR_SOURCE_PIC BIT(0) -#define XGE_HAL_SERR_SOURCE_TXDMA BIT(1) -#define XGE_HAL_SERR_SOURCE_RXDMA BIT(2) -#define XGE_HAL_SERR_SOURCE_MAC BIT(3) -#define XGE_HAL_SERR_SOURCE_MC BIT(4) -#define XGE_HAL_SERR_SOURCE_XGXS BIT(5) -#define XGE_HAL_SERR_SOURCE_ANY (XGE_HAL_SERR_SOURCE_PIC | \ - XGE_HAL_SERR_SOURCE_TXDMA | \ - XGE_HAL_SERR_SOURCE_RXDMA | \ - XGE_HAL_SERR_SOURCE_MAC | \ - XGE_HAL_SERR_SOURCE_MC | \ - XGE_HAL_SERR_SOURCE_XGXS) - - u64 pci_info; -#define XGE_HAL_PCI_INFO vBIT(0xF,0,4) -#define XGE_HAL_PCI_32_BIT BIT(8) - - u8 unused0_1[0x160 - 0x128]; - - u64 ric_status; - - u8 unused0_2[0x558 - 0x168]; - - u64 mbist_status; - - u8 unused0_3[0x800 - 0x560]; - -/* PCI-X Controller registers */ - u64 pic_int_status; - u64 pic_int_mask; -#define XGE_HAL_PIC_INT_TX BIT(0) -#define XGE_HAL_PIC_INT_FLSH BIT(1) -#define XGE_HAL_PIC_INT_MDIO BIT(2) -#define XGE_HAL_PIC_INT_IIC BIT(3) -#define XGE_HAL_PIC_INT_MISC BIT(4) -#define XGE_HAL_PIC_INT_RX BIT(32) - - u64 txpic_int_reg; -#define XGE_HAL_TXPIC_INT_SCHED_INTR BIT(42) - u64 txpic_int_mask; -#define XGE_HAL_PCIX_INT_REG_ECC_SG_ERR BIT(0) -#define XGE_HAL_PCIX_INT_REG_ECC_DB_ERR BIT(1) -#define XGE_HAL_PCIX_INT_REG_FLASHR_R_FSM_ERR BIT(8) -#define XGE_HAL_PCIX_INT_REG_FLASHR_W_FSM_ERR BIT(9) -#define XGE_HAL_PCIX_INT_REG_INI_TX_FSM_SERR BIT(10) -#define XGE_HAL_PCIX_INT_REG_INI_TXO_FSM_ERR BIT(11) -#define XGE_HAL_PCIX_INT_REG_TRT_FSM_SERR BIT(13) -#define XGE_HAL_PCIX_INT_REG_SRT_FSM_SERR BIT(14) -#define XGE_HAL_PCIX_INT_REG_PIFR_FSM_SERR BIT(15) -#define XGE_HAL_PCIX_INT_REG_WRC_TX_SEND_FSM_SERR BIT(21) -#define XGE_HAL_PCIX_INT_REG_RRC_TX_REQ_FSM_SERR BIT(23) -#define XGE_HAL_PCIX_INT_REG_INI_RX_FSM_SERR BIT(48) -#define XGE_HAL_PCIX_INT_REG_RA_RX_FSM_SERR BIT(50) -/* -#define XGE_HAL_PCIX_INT_REG_WRC_RX_SEND_FSM_SERR BIT(52) -#define XGE_HAL_PCIX_INT_REG_RRC_RX_REQ_FSM_SERR BIT(54) -#define XGE_HAL_PCIX_INT_REG_RRC_RX_SPLIT_FSM_SERR BIT(58) -*/ - u64 txpic_alarms; - u64 rxpic_int_reg; -#define XGE_HAL_RX_PIC_INT_REG_SPDM_READY BIT(0) -#define XGE_HAL_RX_PIC_INT_REG_SPDM_OVERWRITE_ERR BIT(44) -#define XGE_HAL_RX_PIC_INT_REG_SPDM_PERR BIT(55) - u64 rxpic_int_mask; - u64 rxpic_alarms; - - u64 flsh_int_reg; - u64 flsh_int_mask; -#define XGE_HAL_PIC_FLSH_INT_REG_CYCLE_FSM_ERR BIT(63) -#define XGE_HAL_PIC_FLSH_INT_REG_ERR BIT(62) - u64 flash_alarms; - - u64 mdio_int_reg; - u64 mdio_int_mask; -#define XGE_HAL_MDIO_INT_REG_MDIO_BUS_ERR BIT(0) -#define XGE_HAL_MDIO_INT_REG_DTX_BUS_ERR BIT(8) -#define XGE_HAL_MDIO_INT_REG_LASI BIT(39) - u64 mdio_alarms; - - u64 iic_int_reg; - u64 iic_int_mask; -#define XGE_HAL_IIC_INT_REG_BUS_FSM_ERR BIT(4) -#define XGE_HAL_IIC_INT_REG_BIT_FSM_ERR BIT(5) -#define XGE_HAL_IIC_INT_REG_CYCLE_FSM_ERR BIT(6) -#define XGE_HAL_IIC_INT_REG_REQ_FSM_ERR BIT(7) -#define XGE_HAL_IIC_INT_REG_ACK_ERR BIT(8) - u64 iic_alarms; - - u64 msi_pending_reg; - - u64 misc_int_reg; -#define XGE_HAL_MISC_INT_REG_DP_ERR_INT BIT(0) -#define XGE_HAL_MISC_INT_REG_LINK_DOWN_INT BIT(1) -#define XGE_HAL_MISC_INT_REG_LINK_UP_INT BIT(2) - u64 misc_int_mask; - u64 misc_alarms; - - u64 msi_triggered_reg; - - u64 xfp_gpio_int_reg; - u64 xfp_gpio_int_mask; - u64 xfp_alarms; - - u8 unused5[0x8E0 - 0x8C8]; - - u64 tx_traffic_int; -#define XGE_HAL_TX_TRAFFIC_INT_n(n) BIT(n) - u64 tx_traffic_mask; - - u64 rx_traffic_int; -#define XGE_HAL_RX_TRAFFIC_INT_n(n) BIT(n) - u64 rx_traffic_mask; - -/* PIC Control registers */ - u64 pic_control; -#define XGE_HAL_PIC_CNTL_RX_ALARM_MAP_1 BIT(0) -#define XGE_HAL_PIC_CNTL_ONE_SHOT_TINT BIT(1) -#define XGE_HAL_PIC_CNTL_SHARED_SPLITS(n) vBIT(n,11,4) - - u64 swapper_ctrl; -#define XGE_HAL_SWAPPER_CTRL_PIF_R_FE BIT(0) -#define XGE_HAL_SWAPPER_CTRL_PIF_R_SE BIT(1) -#define XGE_HAL_SWAPPER_CTRL_PIF_W_FE BIT(8) -#define XGE_HAL_SWAPPER_CTRL_PIF_W_SE BIT(9) -#define XGE_HAL_SWAPPER_CTRL_RTH_FE BIT(10) -#define XGE_HAL_SWAPPER_CTRL_RTH_SE BIT(11) -#define XGE_HAL_SWAPPER_CTRL_TXP_FE BIT(16) -#define XGE_HAL_SWAPPER_CTRL_TXP_SE BIT(17) -#define XGE_HAL_SWAPPER_CTRL_TXD_R_FE BIT(18) -#define XGE_HAL_SWAPPER_CTRL_TXD_R_SE BIT(19) -#define XGE_HAL_SWAPPER_CTRL_TXD_W_FE BIT(20) -#define XGE_HAL_SWAPPER_CTRL_TXD_W_SE BIT(21) -#define XGE_HAL_SWAPPER_CTRL_TXF_R_FE BIT(22) -#define XGE_HAL_SWAPPER_CTRL_TXF_R_SE BIT(23) -#define XGE_HAL_SWAPPER_CTRL_RXD_R_FE BIT(32) -#define XGE_HAL_SWAPPER_CTRL_RXD_R_SE BIT(33) -#define XGE_HAL_SWAPPER_CTRL_RXD_W_FE BIT(34) -#define XGE_HAL_SWAPPER_CTRL_RXD_W_SE BIT(35) -#define XGE_HAL_SWAPPER_CTRL_RXF_W_FE BIT(36) -#define XGE_HAL_SWAPPER_CTRL_RXF_W_SE BIT(37) -#define XGE_HAL_SWAPPER_CTRL_XMSI_FE BIT(40) -#define XGE_HAL_SWAPPER_CTRL_XMSI_SE BIT(41) -#define XGE_HAL_SWAPPER_CTRL_STATS_FE BIT(48) -#define XGE_HAL_SWAPPER_CTRL_STATS_SE BIT(49) - - u64 pif_rd_swapper_fb; -#define XGE_HAL_IF_RD_SWAPPER_FB 0x0123456789ABCDEFULL - - u64 scheduled_int_ctrl; -#define XGE_HAL_SCHED_INT_CTRL_TIMER_EN BIT(0) -#define XGE_HAL_SCHED_INT_CTRL_ONE_SHOT BIT(1) -#define XGE_HAL_SCHED_INT_CTRL_INT2MSI(val) vBIT(val,10,6) -#define XGE_HAL_SCHED_INT_PERIOD(val) vBIT(val,32,32) -#define XGE_HAL_SCHED_INT_PERIOD_MASK 0xFFFFFFFF00000000ULL - - - u64 txreqtimeout; -#define XGE_HAL_TXREQTO_VAL(val) vBIT(val,0,32) -#define XGE_HAL_TXREQTO_EN BIT(63) - - u64 statsreqtimeout; -#define XGE_HAL_STATREQTO_VAL(n) TBD -#define XGE_HAL_STATREQTO_EN BIT(63) - - u64 read_retry_delay; - u64 read_retry_acceleration; - u64 write_retry_delay; - u64 write_retry_acceleration; - - u64 xmsi_control; -#define XGE_HAL_XMSI_EN BIT(0) -#define XGE_HAL_XMSI_DIS_TINT_SERR BIT(1) -#define XGE_HAL_XMSI_BYTE_COUNT(val) vBIT(val,13,3) - - u64 xmsi_access; -#define XGE_HAL_XMSI_WR_RDN BIT(7) -#define XGE_HAL_XMSI_STROBE BIT(15) -#define XGE_HAL_XMSI_NO(val) vBIT(val,26,6) - - u64 xmsi_address; - u64 xmsi_data; - - u64 rx_mat; -#define XGE_HAL_SET_RX_MAT(ring, msi) vBIT(msi, (8 * ring), 8) - - u8 unused6[0x8]; - - u64 tx_mat[8]; -#define XGE_HAL_SET_TX_MAT(fifo, msi) vBIT(msi, (8 * fifo), 8) - - u64 xmsi_mask_reg; - - /* Automated statistics collection */ - u64 stat_byte_cnt; - u64 stat_cfg; -#define XGE_HAL_STAT_CFG_STAT_EN BIT(0) -#define XGE_HAL_STAT_CFG_ONE_SHOT_EN BIT(1) -#define XGE_HAL_STAT_CFG_STAT_NS_EN BIT(8) -#define XGE_HAL_STAT_CFG_STAT_RO BIT(9) -#define XGE_HAL_XENA_PER_SEC 0x208d5 -#define XGE_HAL_SET_UPDT_PERIOD(n) vBIT(n,32,32) - - u64 stat_addr; - - /* General Configuration */ - u64 mdio_control; -#define XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(n) vBIT(n,0,16) -#define XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(n) vBIT(n,19,5) -#define XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(n) vBIT(n,27,5) -#define XGE_HAL_MDIO_CONTROL_MMD_DATA(n) vBIT(n,32,16) -#define XGE_HAL_MDIO_CONTROL_MMD_CTRL(n) vBIT(n,56,4) -#define XGE_HAL_MDIO_CONTROL_MMD_OP(n) vBIT(n,60,2) -#define XGE_HAL_MDIO_CONTROL_MMD_DATA_GET(n) ((n>>16)&0xFFFF) -#define XGE_HAL_MDIO_MMD_PMA_DEV_ADDR 0x01 -#define XGE_HAL_MDIO_DOM_REG_ADDR 0xA100 -#define XGE_HAL_MDIO_ALARM_FLAGS_ADDR 0xA070 -#define XGE_HAL_MDIO_WARN_FLAGS_ADDR 0xA074 -#define XGE_HAL_MDIO_CTRL_START 0xE -#define XGE_HAL_MDIO_OP_ADDRESS 0x0 -#define XGE_HAL_MDIO_OP_WRITE 0x1 -#define XGE_HAL_MDIO_OP_READ 0x3 -#define XGE_HAL_MDIO_OP_READ_POST_INCREMENT 0x2 -#define XGE_HAL_MDIO_ALARM_TEMPHIGH 0x0080 -#define XGE_HAL_MDIO_ALARM_TEMPLOW 0x0040 -#define XGE_HAL_MDIO_ALARM_BIASHIGH 0x0008 -#define XGE_HAL_MDIO_ALARM_BIASLOW 0x0004 -#define XGE_HAL_MDIO_ALARM_POUTPUTHIGH 0x0002 -#define XGE_HAL_MDIO_ALARM_POUTPUTLOW 0x0001 -#define XGE_HAL_MDIO_WARN_TEMPHIGH 0x0080 -#define XGE_HAL_MDIO_WARN_TEMPLOW 0x0040 -#define XGE_HAL_MDIO_WARN_BIASHIGH 0x0008 -#define XGE_HAL_MDIO_WARN_BIASLOW 0x0004 -#define XGE_HAL_MDIO_WARN_POUTPUTHIGH 0x0002 -#define XGE_HAL_MDIO_WARN_POUTPUTLOW 0x0001 - - u64 dtx_control; - - u64 i2c_control; -#define XGE_HAL_I2C_CONTROL_DEV_ID(id) vBIT(id,1,3) -#define XGE_HAL_I2C_CONTROL_ADDR(addr) vBIT(addr,5,11) -#define XGE_HAL_I2C_CONTROL_BYTE_CNT(cnt) vBIT(cnt,22,2) -#define XGE_HAL_I2C_CONTROL_READ BIT(24) -#define XGE_HAL_I2C_CONTROL_NACK BIT(25) -#define XGE_HAL_I2C_CONTROL_CNTL_START vBIT(0xE,28,4) -#define XGE_HAL_I2C_CONTROL_CNTL_END(val) (val & vBIT(0x1,28,4)) -#define XGE_HAL_I2C_CONTROL_GET_DATA(val) (u32)(val & 0xFFFFFFFF) -#define XGE_HAL_I2C_CONTROL_SET_DATA(val) vBIT(val,32,32) - - u64 beacon_control; - u64 misc_control; -#define XGE_HAL_MISC_CONTROL_LINK_STABILITY_PERIOD(val) vBIT(val,29,3) -#define XGE_HAL_MISC_CONTROL_EXT_REQ_EN BIT(1) -#define XGE_HAL_MISC_CONTROL_LINK_FAULT BIT(0) - - u64 xfb_control; - u64 gpio_control; -#define XGE_HAL_GPIO_CTRL_GPIO_0 BIT(8) - - u64 txfifo_dw_mask; - u64 split_table_line_no; - u64 sc_timeout; - u64 pic_control_2; -#define XGE_HAL_TXD_WRITE_BC(n) vBIT(n, 13, 3) - u64 ini_dperr_ctrl; - u64 wreq_split_mask; - u64 qw_per_rxd; - u8 unused7[0x300 - 0x250]; - - u64 pic_status; - u64 txp_status; - u64 txp_err_context; - u64 spdm_bir_offset; -#define XGE_HAL_SPDM_PCI_BAR_NUM(spdm_bir_offset) \ - (u8)(spdm_bir_offset >> 61) -#define XGE_HAL_SPDM_PCI_BAR_OFFSET(spdm_bir_offset) \ - (u32)((spdm_bir_offset >> 32) & 0x1FFFFFFF) - u64 spdm_overwrite; -#define XGE_HAL_SPDM_OVERWRITE_ERR_SPDM_ENTRY(spdm_overwrite) \ - (u8)((spdm_overwrite >> 48) & 0xff) -#define XGE_HAL_SPDM_OVERWRITE_ERR_SPDM_DW(spdm_overwrite) \ - (u8)((spdm_overwrite >> 40) & 0x3) -#define XGE_HAL_SPDM_OVERWRITE_ERR_SPDM_LINE(spdm_overwrite) \ - (u8)((spdm_overwrite >> 32) & 0x7) - u64 cfg_addr_on_dperr; - u64 pif_addr_on_dperr; - u64 tags_in_use; - u64 rd_req_types; - u64 split_table_line; - u64 unxp_split_add_ph; - u64 unexp_split_attr_ph; - u64 split_message; - u64 spdm_structure; -#define XGE_HAL_SPDM_MAX_ENTRIES(spdm_structure) (u16)(spdm_structure >> 48) -#define XGE_HAL_SPDM_INT_QW_PER_ENTRY(spdm_structure) \ - (u8)((spdm_structure >> 40) & 0xff) -#define XGE_HAL_SPDM_PCI_QW_PER_ENTRY(spdm_structure) \ - (u8)((spdm_structure >> 32) & 0xff) - - u64 txdw_ptr_cnt_0; - u64 txdw_ptr_cnt_1; - u64 txdw_ptr_cnt_2; - u64 txdw_ptr_cnt_3; - u64 txdw_ptr_cnt_4; - u64 txdw_ptr_cnt_5; - u64 txdw_ptr_cnt_6; - u64 txdw_ptr_cnt_7; - u64 rxdw_cnt_ring_0; - u64 rxdw_cnt_ring_1; - u64 rxdw_cnt_ring_2; - u64 rxdw_cnt_ring_3; - u64 rxdw_cnt_ring_4; - u64 rxdw_cnt_ring_5; - u64 rxdw_cnt_ring_6; - u64 rxdw_cnt_ring_7; - - u8 unused8[0x410]; - -/* TxDMA registers */ - u64 txdma_int_status; - u64 txdma_int_mask; -#define XGE_HAL_TXDMA_PFC_INT BIT(0) -#define XGE_HAL_TXDMA_TDA_INT BIT(1) -#define XGE_HAL_TXDMA_PCC_INT BIT(2) -#define XGE_HAL_TXDMA_TTI_INT BIT(3) -#define XGE_HAL_TXDMA_LSO_INT BIT(4) -#define XGE_HAL_TXDMA_TPA_INT BIT(5) -#define XGE_HAL_TXDMA_SM_INT BIT(6) - u64 pfc_err_reg; -#define XGE_HAL_PFC_ECC_SG_ERR BIT(7) -#define XGE_HAL_PFC_ECC_DB_ERR BIT(15) -#define XGE_HAL_PFC_SM_ERR_ALARM BIT(23) -#define XGE_HAL_PFC_MISC_0_ERR BIT(31) -#define XGE_HAL_PFC_MISC_1_ERR BIT(32) -#define XGE_HAL_PFC_PCIX_ERR BIT(39) - u64 pfc_err_mask; - u64 pfc_err_alarm; - - u64 tda_err_reg; -#define XGE_HAL_TDA_Fn_ECC_SG_ERR vBIT(0xff,0,8) -#define XGE_HAL_TDA_Fn_ECC_DB_ERR vBIT(0xff,8,8) -#define XGE_HAL_TDA_SM0_ERR_ALARM BIT(22) -#define XGE_HAL_TDA_SM1_ERR_ALARM BIT(23) -#define XGE_HAL_TDA_PCIX_ERR BIT(39) - u64 tda_err_mask; - u64 tda_err_alarm; - - u64 pcc_err_reg; -#define XGE_HAL_PCC_FB_ECC_SG_ERR vBIT(0xFF,0,8) -#define XGE_HAL_PCC_TXB_ECC_SG_ERR vBIT(0xFF,8,8) -#define XGE_HAL_PCC_FB_ECC_DB_ERR vBIT(0xFF,16, 8) -#define XGE_HAL_PCC_TXB_ECC_DB_ERR vBIT(0xff,24,8) -#define XGE_HAL_PCC_SM_ERR_ALARM vBIT(0xff,32,8) -#define XGE_HAL_PCC_WR_ERR_ALARM vBIT(0xff,40,8) -#define XGE_HAL_PCC_N_SERR vBIT(0xff,48,8) -#define XGE_HAL_PCC_ENABLE_FOUR vBIT(0x0F,0,8) -#define XGE_HAL_PCC_6_COF_OV_ERR BIT(56) -#define XGE_HAL_PCC_7_COF_OV_ERR BIT(57) -#define XGE_HAL_PCC_6_LSO_OV_ERR BIT(58) -#define XGE_HAL_PCC_7_LSO_OV_ERR BIT(59) - u64 pcc_err_mask; - u64 pcc_err_alarm; - - u64 tti_err_reg; -#define XGE_HAL_TTI_ECC_SG_ERR BIT(7) -#define XGE_HAL_TTI_ECC_DB_ERR BIT(15) -#define XGE_HAL_TTI_SM_ERR_ALARM BIT(23) - u64 tti_err_mask; - u64 tti_err_alarm; - - u64 lso_err_reg; -#define XGE_HAL_LSO6_SEND_OFLOW BIT(12) -#define XGE_HAL_LSO7_SEND_OFLOW BIT(13) -#define XGE_HAL_LSO6_ABORT BIT(14) -#define XGE_HAL_LSO7_ABORT BIT(15) -#define XGE_HAL_LSO6_SM_ERR_ALARM BIT(22) -#define XGE_HAL_LSO7_SM_ERR_ALARM BIT(23) - u64 lso_err_mask; - u64 lso_err_alarm; - - u64 tpa_err_reg; -#define XGE_HAL_TPA_TX_FRM_DROP BIT(7) -#define XGE_HAL_TPA_SM_ERR_ALARM BIT(23) - u64 tpa_err_mask; - u64 tpa_err_alarm; - - u64 sm_err_reg; -#define XGE_HAL_SM_SM_ERR_ALARM BIT(15) - u64 sm_err_mask; - u64 sm_err_alarm; - - u8 unused9[0x100 - 0xB8]; - -/* TxDMA arbiter */ - u64 tx_dma_wrap_stat; - -/* Tx FIFO controller */ -#define XGE_HAL_X_MAX_FIFOS 8 -#define XGE_HAL_X_FIFO_MAX_LEN 0x1FFF /*8191 */ - u64 tx_fifo_partition_0; -#define XGE_HAL_TX_FIFO_PARTITION_EN BIT(0) -#define XGE_HAL_TX_FIFO_PARTITION_0_PRI(val) vBIT(val,5,3) -#define XGE_HAL_TX_FIFO_PARTITION_0_LEN(val) vBIT(val,19,13) -#define XGE_HAL_TX_FIFO_PARTITION_1_PRI(val) vBIT(val,37,3) -#define XGE_HAL_TX_FIFO_PARTITION_1_LEN(val) vBIT(val,51,13 ) - - u64 tx_fifo_partition_1; -#define XGE_HAL_TX_FIFO_PARTITION_2_PRI(val) vBIT(val,5,3) -#define XGE_HAL_TX_FIFO_PARTITION_2_LEN(val) vBIT(val,19,13) -#define XGE_HAL_TX_FIFO_PARTITION_3_PRI(val) vBIT(val,37,3) -#define XGE_HAL_TX_FIFO_PARTITION_3_LEN(val) vBIT(val,51,13) - - u64 tx_fifo_partition_2; -#define XGE_HAL_TX_FIFO_PARTITION_4_PRI(val) vBIT(val,5,3) -#define XGE_HAL_TX_FIFO_PARTITION_4_LEN(val) vBIT(val,19,13) -#define XGE_HAL_TX_FIFO_PARTITION_5_PRI(val) vBIT(val,37,3) -#define XGE_HAL_TX_FIFO_PARTITION_5_LEN(val) vBIT(val,51,13) - - u64 tx_fifo_partition_3; -#define XGE_HAL_TX_FIFO_PARTITION_6_PRI(val) vBIT(val,5,3) -#define XGE_HAL_TX_FIFO_PARTITION_6_LEN(val) vBIT(val,19,13) -#define XGE_HAL_TX_FIFO_PARTITION_7_PRI(val) vBIT(val,37,3) -#define XGE_HAL_TX_FIFO_PARTITION_7_LEN(val) vBIT(val,51,13) - -#define XGE_HAL_TX_FIFO_PARTITION_PRI_0 0 /* highest */ -#define XGE_HAL_TX_FIFO_PARTITION_PRI_1 1 -#define XGE_HAL_TX_FIFO_PARTITION_PRI_2 2 -#define XGE_HAL_TX_FIFO_PARTITION_PRI_3 3 -#define XGE_HAL_TX_FIFO_PARTITION_PRI_4 4 -#define XGE_HAL_TX_FIFO_PARTITION_PRI_5 5 -#define XGE_HAL_TX_FIFO_PARTITION_PRI_6 6 -#define XGE_HAL_TX_FIFO_PARTITION_PRI_7 7 /* lowest */ - - u64 tx_w_round_robin_0; - u64 tx_w_round_robin_1; - u64 tx_w_round_robin_2; - u64 tx_w_round_robin_3; - u64 tx_w_round_robin_4; - - u64 tti_command_mem; -#define XGE_HAL_TTI_CMD_MEM_WE BIT(7) -#define XGE_HAL_TTI_CMD_MEM_STROBE_NEW_CMD BIT(15) -#define XGE_HAL_TTI_CMD_MEM_STROBE_BEING_EXECUTED BIT(15) -#define XGE_HAL_TTI_CMD_MEM_OFFSET(n) vBIT(n,26,6) - - u64 tti_data1_mem; -#define XGE_HAL_TTI_DATA1_MEM_TX_TIMER_VAL(n) vBIT(n,6,26) -#define XGE_HAL_TTI_DATA1_MEM_TX_TIMER_AC_CI(n) vBIT(n,38,2) -#define XGE_HAL_TTI_DATA1_MEM_TX_TIMER_AC_EN BIT(38) -#define XGE_HAL_TTI_DATA1_MEM_TX_TIMER_CI_EN BIT(39) -#define XGE_HAL_TTI_DATA1_MEM_TX_URNG_A(n) vBIT(n,41,7) -#define XGE_HAL_TTI_DATA1_MEM_TX_URNG_B(n) vBIT(n,49,7) -#define XGE_HAL_TTI_DATA1_MEM_TX_URNG_C(n) vBIT(n,57,7) - - u64 tti_data2_mem; -#define XGE_HAL_TTI_DATA2_MEM_TX_UFC_A(n) vBIT(n,0,16) -#define XGE_HAL_TTI_DATA2_MEM_TX_UFC_B(n) vBIT(n,16,16) -#define XGE_HAL_TTI_DATA2_MEM_TX_UFC_C(n) vBIT(n,32,16) -#define XGE_HAL_TTI_DATA2_MEM_TX_UFC_D(n) vBIT(n,48,16) - -/* Tx Protocol assist */ - u64 tx_pa_cfg; -#define XGE_HAL_TX_PA_CFG_IGNORE_FRM_ERR BIT(1) -#define XGE_HAL_TX_PA_CFG_IGNORE_SNAP_OUI BIT(2) -#define XGE_HAL_TX_PA_CFG_IGNORE_LLC_CTRL BIT(3) -#define XGE_HAL_TX_PA_CFG_IGNORE_L2_ERR BIT(6) - -/* Recent add, used only debug purposes. */ - u64 pcc_enable; - - u64 pfc_monitor_0; - u64 pfc_monitor_1; - u64 pfc_monitor_2; - u64 pfc_monitor_3; - u64 txd_ownership_ctrl; - u64 pfc_read_cntrl; - u64 pfc_read_data; - - u8 unused10[0x1700 - 0x11B0]; - - u64 txdma_debug_ctrl; - - u8 unused11[0x1800 - 0x1708]; - -/* RxDMA Registers */ - u64 rxdma_int_status; -#define XGE_HAL_RXDMA_RC_INT BIT(0) -#define XGE_HAL_RXDMA_RPA_INT BIT(1) -#define XGE_HAL_RXDMA_RDA_INT BIT(2) -#define XGE_HAL_RXDMA_RTI_INT BIT(3) - - u64 rxdma_int_mask; -#define XGE_HAL_RXDMA_INT_RC_INT_M BIT(0) -#define XGE_HAL_RXDMA_INT_RPA_INT_M BIT(1) -#define XGE_HAL_RXDMA_INT_RDA_INT_M BIT(2) -#define XGE_HAL_RXDMA_INT_RTI_INT_M BIT(3) - - u64 rda_err_reg; -#define XGE_HAL_RDA_RXDn_ECC_SG_ERR vBIT(0xFF,0,8) -#define XGE_HAL_RDA_RXDn_ECC_DB_ERR vBIT(0xFF,8,8) -#define XGE_HAL_RDA_FRM_ECC_SG_ERR BIT(23) -#define XGE_HAL_RDA_FRM_ECC_DB_N_AERR BIT(31) -#define XGE_HAL_RDA_SM1_ERR_ALARM BIT(38) -#define XGE_HAL_RDA_SM0_ERR_ALARM BIT(39) -#define XGE_HAL_RDA_MISC_ERR BIT(47) -#define XGE_HAL_RDA_PCIX_ERR BIT(55) -#define XGE_HAL_RDA_RXD_ECC_DB_SERR BIT(63) - u64 rda_err_mask; - u64 rda_err_alarm; - - u64 rc_err_reg; -#define XGE_HAL_RC_PRCn_ECC_SG_ERR vBIT(0xFF,0,8) -#define XGE_HAL_RC_PRCn_ECC_DB_ERR vBIT(0xFF,8,8) -#define XGE_HAL_RC_FTC_ECC_SG_ERR BIT(23) -#define XGE_HAL_RC_FTC_ECC_DB_ERR BIT(31) -#define XGE_HAL_RC_PRCn_SM_ERR_ALARM vBIT(0xFF,32,8) -#define XGE_HAL_RC_FTC_SM_ERR_ALARM BIT(47) -#define XGE_HAL_RC_RDA_FAIL_WR_Rn vBIT(0xFF,48,8) - u64 rc_err_mask; - u64 rc_err_alarm; - - u64 prc_pcix_err_reg; -#define XGE_HAL_PRC_PCI_AB_RD_Rn vBIT(0xFF,0,8) -#define XGE_HAL_PRC_PCI_DP_RD_Rn vBIT(0xFF,8,8) -#define XGE_HAL_PRC_PCI_AB_WR_Rn vBIT(0xFF,16,8) -#define XGE_HAL_PRC_PCI_DP_WR_Rn vBIT(0xFF,24,8) -#define XGE_HAL_PRC_PCI_AB_F_WR_Rn vBIT(0xFF,32,8) -#define XGE_HAL_PRC_PCI_DP_F_WR_Rn vBIT(0xFF,40,8) - u64 prc_pcix_err_mask; - u64 prc_pcix_err_alarm; - - u64 rpa_err_reg; -#define XGE_HAL_RPA_ECC_SG_ERR BIT(7) -#define XGE_HAL_RPA_ECC_DB_ERR BIT(15) -#define XGE_HAL_RPA_FLUSH_REQUEST BIT(22) -#define XGE_HAL_RPA_SM_ERR_ALARM BIT(23) -#define XGE_HAL_RPA_CREDIT_ERR BIT(31) - u64 rpa_err_mask; - u64 rpa_err_alarm; - - u64 rti_err_reg; -#define XGE_HAL_RTI_ECC_SG_ERR BIT(7) -#define XGE_HAL_RTI_ECC_DB_ERR BIT(15) -#define XGE_HAL_RTI_SM_ERR_ALARM BIT(23) - u64 rti_err_mask; - u64 rti_err_alarm; - - u8 unused12[0x100 - 0x88]; - -/* DMA arbiter */ - u64 rx_queue_priority; -#define XGE_HAL_RX_QUEUE_0_PRIORITY(val) vBIT(val,5,3) -#define XGE_HAL_RX_QUEUE_1_PRIORITY(val) vBIT(val,13,3) -#define XGE_HAL_RX_QUEUE_2_PRIORITY(val) vBIT(val,21,3) -#define XGE_HAL_RX_QUEUE_3_PRIORITY(val) vBIT(val,29,3) -#define XGE_HAL_RX_QUEUE_4_PRIORITY(val) vBIT(val,37,3) -#define XGE_HAL_RX_QUEUE_5_PRIORITY(val) vBIT(val,45,3) -#define XGE_HAL_RX_QUEUE_6_PRIORITY(val) vBIT(val,53,3) -#define XGE_HAL_RX_QUEUE_7_PRIORITY(val) vBIT(val,61,3) - -#define XGE_HAL_RX_QUEUE_PRI_0 0 /* highest */ -#define XGE_HAL_RX_QUEUE_PRI_1 1 -#define XGE_HAL_RX_QUEUE_PRI_2 2 -#define XGE_HAL_RX_QUEUE_PRI_3 3 -#define XGE_HAL_RX_QUEUE_PRI_4 4 -#define XGE_HAL_RX_QUEUE_PRI_5 5 -#define XGE_HAL_RX_QUEUE_PRI_6 6 -#define XGE_HAL_RX_QUEUE_PRI_7 7 /* lowest */ - - u64 rx_w_round_robin_0; - u64 rx_w_round_robin_1; - u64 rx_w_round_robin_2; - u64 rx_w_round_robin_3; - u64 rx_w_round_robin_4; - - /* Per-ring controller regs */ -#define XGE_HAL_RX_MAX_RINGS 8 - u64 prc_rxd0_n[XGE_HAL_RX_MAX_RINGS]; - u64 prc_ctrl_n[XGE_HAL_RX_MAX_RINGS]; -#define XGE_HAL_PRC_CTRL_RC_ENABLED BIT(7) -#define XGE_HAL_PRC_CTRL_RING_MODE (BIT(14)|BIT(15)) -#define XGE_HAL_PRC_CTRL_RING_MODE_1 vBIT(0,14,2) -#define XGE_HAL_PRC_CTRL_RING_MODE_3 vBIT(1,14,2) -#define XGE_HAL_PRC_CTRL_RING_MODE_5 vBIT(2,14,2) -#define XGE_HAL_PRC_CTRL_RING_MODE_x vBIT(3,14,2) -#define XGE_HAL_PRC_CTRL_NO_SNOOP(n) vBIT(n,22,2) -#define XGE_HAL_PRC_CTRL_RTH_DISABLE BIT(31) -#define XGE_HAL_PRC_CTRL_BIMODAL_INTERRUPT BIT(37) -#define XGE_HAL_PRC_CTRL_GROUP_READS BIT(38) -#define XGE_HAL_PRC_CTRL_RXD_BACKOFF_INTERVAL(val) vBIT(val,40,24) - - u64 prc_alarm_action; -#define XGE_HAL_PRC_ALARM_ACTION_RR_R0_STOP BIT(3) -#define XGE_HAL_PRC_ALARM_ACTION_RW_R0_STOP BIT(7) -#define XGE_HAL_PRC_ALARM_ACTION_RR_R1_STOP BIT(11) -#define XGE_HAL_PRC_ALARM_ACTION_RW_R1_STOP BIT(15) -#define XGE_HAL_PRC_ALARM_ACTION_RR_R2_STOP BIT(19) -#define XGE_HAL_PRC_ALARM_ACTION_RW_R2_STOP BIT(23) -#define XGE_HAL_PRC_ALARM_ACTION_RR_R3_STOP BIT(27) -#define XGE_HAL_PRC_ALARM_ACTION_RW_R3_STOP BIT(31) -#define XGE_HAL_PRC_ALARM_ACTION_RR_R4_STOP BIT(35) -#define XGE_HAL_PRC_ALARM_ACTION_RW_R4_STOP BIT(39) -#define XGE_HAL_PRC_ALARM_ACTION_RR_R5_STOP BIT(43) -#define XGE_HAL_PRC_ALARM_ACTION_RW_R5_STOP BIT(47) -#define XGE_HAL_PRC_ALARM_ACTION_RR_R6_STOP BIT(51) -#define XGE_HAL_PRC_ALARM_ACTION_RW_R6_STOP BIT(55) -#define XGE_HAL_PRC_ALARM_ACTION_RR_R7_STOP BIT(59) -#define XGE_HAL_PRC_ALARM_ACTION_RW_R7_STOP BIT(63) - -/* Receive traffic interrupts */ - u64 rti_command_mem; -#define XGE_HAL_RTI_CMD_MEM_WE BIT(7) -#define XGE_HAL_RTI_CMD_MEM_STROBE BIT(15) -#define XGE_HAL_RTI_CMD_MEM_STROBE_NEW_CMD BIT(15) -#define XGE_HAL_RTI_CMD_MEM_STROBE_CMD_BEING_EXECUTED BIT(15) -#define XGE_HAL_RTI_CMD_MEM_OFFSET(n) vBIT(n,29,3) - - u64 rti_data1_mem; -#define XGE_HAL_RTI_DATA1_MEM_RX_TIMER_VAL(n) vBIT(n,3,29) -#define XGE_HAL_RTI_DATA1_MEM_RX_TIMER_AC_EN BIT(38) -#define XGE_HAL_RTI_DATA1_MEM_RX_TIMER_CI_EN BIT(39) -#define XGE_HAL_RTI_DATA1_MEM_RX_URNG_A(n) vBIT(n,41,7) -#define XGE_HAL_RTI_DATA1_MEM_RX_URNG_B(n) vBIT(n,49,7) -#define XGE_HAL_RTI_DATA1_MEM_RX_URNG_C(n) vBIT(n,57,7) - - u64 rti_data2_mem; -#define XGE_HAL_RTI_DATA2_MEM_RX_UFC_A(n) vBIT(n,0,16) -#define XGE_HAL_RTI_DATA2_MEM_RX_UFC_B(n) vBIT(n,16,16) -#define XGE_HAL_RTI_DATA2_MEM_RX_UFC_C(n) vBIT(n,32,16) -#define XGE_HAL_RTI_DATA2_MEM_RX_UFC_D(n) vBIT(n,48,16) - - u64 rx_pa_cfg; -#define XGE_HAL_RX_PA_CFG_IGNORE_FRM_ERR BIT(1) -#define XGE_HAL_RX_PA_CFG_IGNORE_SNAP_OUI BIT(2) -#define XGE_HAL_RX_PA_CFG_IGNORE_LLC_CTRL BIT(3) -#define XGE_HAL_RX_PA_CFG_SCATTER_MODE(n) vBIT(n,6,1) -#define XGE_HAL_RX_PA_CFG_STRIP_VLAN_TAG_MODE(n) vBIT(n,15,1) - - u8 unused13_0[0x8]; - - u64 ring_bump_counter1; - u64 ring_bump_counter2; -#define XGE_HAL_RING_BUMP_CNT(i, val) (u16)(val >> (48 - (16 * (i % 4)))) - - u8 unused13[0x700 - 0x1f0]; - - u64 rxdma_debug_ctrl; - - u8 unused14[0x2000 - 0x1f08]; - -/* Media Access Controller Register */ - u64 mac_int_status; - u64 mac_int_mask; -#define XGE_HAL_MAC_INT_STATUS_TMAC_INT BIT(0) -#define XGE_HAL_MAC_INT_STATUS_RMAC_INT BIT(1) - - u64 mac_tmac_err_reg; -#define XGE_HAL_TMAC_ECC_DB_ERR BIT(15) -#define XGE_HAL_TMAC_TX_BUF_OVRN BIT(23) -#define XGE_HAL_TMAC_TX_CRI_ERR BIT(31) -#define XGE_HAL_TMAC_TX_SM_ERR BIT(39) - u64 mac_tmac_err_mask; - u64 mac_tmac_err_alarm; - - u64 mac_rmac_err_reg; -#define XGE_HAL_RMAC_RX_BUFF_OVRN BIT(0) -#define XGE_HAL_RMAC_RTH_SPDM_ECC_SG_ERR BIT(0) -#define XGE_HAL_RMAC_RTS_ECC_DB_ERR BIT(0) -#define XGE_HAL_RMAC_ECC_DB_ERR BIT(0) -#define XGE_HAL_RMAC_RTH_SPDM_ECC_DB_ERR BIT(0) -#define XGE_HAL_RMAC_LINK_STATE_CHANGE_INT BIT(0) -#define XGE_HAL_RMAC_RX_SM_ERR BIT(39) - u64 mac_rmac_err_mask; - u64 mac_rmac_err_alarm; - - u8 unused15[0x100 - 0x40]; - - u64 mac_cfg; -#define XGE_HAL_MAC_CFG_TMAC_ENABLE BIT(0) -#define XGE_HAL_MAC_CFG_RMAC_ENABLE BIT(1) -#define XGE_HAL_MAC_CFG_LAN_NOT_WAN BIT(2) -#define XGE_HAL_MAC_CFG_TMAC_LOOPBACK BIT(3) -#define XGE_HAL_MAC_CFG_TMAC_APPEND_PAD BIT(4) -#define XGE_HAL_MAC_CFG_RMAC_STRIP_FCS BIT(5) -#define XGE_HAL_MAC_CFG_RMAC_STRIP_PAD BIT(6) -#define XGE_HAL_MAC_CFG_RMAC_PROM_ENABLE BIT(7) -#define XGE_HAL_MAC_RMAC_DISCARD_PFRM BIT(8) -#define XGE_HAL_MAC_RMAC_BCAST_ENABLE BIT(9) -#define XGE_HAL_MAC_RMAC_ALL_ADDR_ENABLE BIT(10) -#define XGE_HAL_MAC_RMAC_INVLD_IPG_THR(val) vBIT(val,16,8) - - u64 tmac_avg_ipg; -#define XGE_HAL_TMAC_AVG_IPG(val) vBIT(val,0,8) - - u64 rmac_max_pyld_len; -#define XGE_HAL_RMAC_MAX_PYLD_LEN(val) vBIT(val,2,14) - - u64 rmac_err_cfg; -#define XGE_HAL_RMAC_ERR_FCS BIT(0) -#define XGE_HAL_RMAC_ERR_FCS_ACCEPT BIT(1) -#define XGE_HAL_RMAC_ERR_TOO_LONG BIT(1) -#define XGE_HAL_RMAC_ERR_TOO_LONG_ACCEPT BIT(1) -#define XGE_HAL_RMAC_ERR_RUNT BIT(2) -#define XGE_HAL_RMAC_ERR_RUNT_ACCEPT BIT(2) -#define XGE_HAL_RMAC_ERR_LEN_MISMATCH BIT(3) -#define XGE_HAL_RMAC_ERR_LEN_MISMATCH_ACCEPT BIT(3) - - u64 rmac_cfg_key; -#define XGE_HAL_RMAC_CFG_KEY(val) vBIT(val,0,16) - -#define XGE_HAL_MAX_MAC_ADDRESSES 64 -#define XGE_HAL_MAC_MC_ALL_MC_ADDR_OFFSET 63 -#define XGE_HAL_MAX_MAC_ADDRESSES_HERC 256 -#define XGE_HAL_MAC_MC_ALL_MC_ADDR_OFFSET_HERC 255 - - u64 rmac_addr_cmd_mem; -#define XGE_HAL_RMAC_ADDR_CMD_MEM_WE BIT(7) -#define XGE_HAL_RMAC_ADDR_CMD_MEM_RD 0 -#define XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD BIT(15) -#define XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_CMD_EXECUTING BIT(15) -#define XGE_HAL_RMAC_ADDR_CMD_MEM_OFFSET(n) vBIT(n,26,6) - - u64 rmac_addr_data0_mem; -#define XGE_HAL_RMAC_ADDR_DATA0_MEM_ADDR(n) vBIT(n,0,48) -#define XGE_HAL_RMAC_ADDR_DATA0_MEM_USER BIT(48) - - u64 rmac_addr_data1_mem; -#define XGE_HAL_RMAC_ADDR_DATA1_MEM_MASK(n) vBIT(n,0,48) - - u8 unused16[0x8]; - -/* - u64 rmac_addr_cfg; -#define XGE_HAL_RMAC_ADDR_UCASTn_EN(n) mBIT(0)_n(n) -#define XGE_HAL_RMAC_ADDR_MCASTn_EN(n) mBIT(0)_n(n) -#define XGE_HAL_RMAC_ADDR_BCAST_EN vBIT(0)_48 -#define XGE_HAL_RMAC_ADDR_ALL_ADDR_EN vBIT(0)_49 -*/ - u64 tmac_ipg_cfg; - - u64 rmac_pause_cfg; -#define XGE_HAL_RMAC_PAUSE_GEN_EN BIT(0) -#define XGE_HAL_RMAC_PAUSE_RCV_EN BIT(1) -#define XGE_HAL_RMAC_PAUSE_HG_PTIME_DEF vBIT(0xFFFF,16,16) -#define XGE_HAL_RMAC_PAUSE_HG_PTIME(val) vBIT(val,16,16) - - u64 rmac_red_cfg; - - u64 rmac_red_rate_q0q3; - u64 rmac_red_rate_q4q7; - - u64 mac_link_util; -#define XGE_HAL_MAC_TX_LINK_UTIL vBIT(0xFE,1,7) -#define XGE_HAL_MAC_TX_LINK_UTIL_DISABLE vBIT(0xF, 8,4) -#define XGE_HAL_MAC_TX_LINK_UTIL_VAL( n ) vBIT(n,8,4) -#define XGE_HAL_MAC_RX_LINK_UTIL vBIT(0xFE,33,7) -#define XGE_HAL_MAC_RX_LINK_UTIL_DISABLE vBIT(0xF,40,4) -#define XGE_HAL_MAC_RX_LINK_UTIL_VAL( n ) vBIT(n,40,4) - -#define XGE_HAL_MAC_LINK_UTIL_DISABLE (XGE_HAL_MAC_TX_LINK_UTIL_DISABLE | \ - XGE_HAL_MAC_RX_LINK_UTIL_DISABLE) - - u64 rmac_invalid_ipg; - -/* rx traffic steering */ -#define XGE_HAL_MAC_RTS_FRM_LEN_SET(len) vBIT(len,2,14) - u64 rts_frm_len_n[8]; - - u64 rts_qos_steering; - -#define XGE_HAL_MAX_DIX_MAP 4 - u64 rts_dix_map_n[XGE_HAL_MAX_DIX_MAP]; -#define XGE_HAL_RTS_DIX_MAP_ETYPE(val) vBIT(val,0,16) -#define XGE_HAL_RTS_DIX_MAP_SCW(val) BIT(val,21) - - u64 rts_q_alternates; - u64 rts_default_q; -#define XGE_HAL_RTS_DEFAULT_Q(n) vBIT(n,5,3) - - u64 rts_ctrl; -#define XGE_HAL_RTS_CTRL_IGNORE_SNAP_OUI BIT(2) -#define XGE_HAL_RTS_CTRL_IGNORE_LLC_CTRL BIT(3) -#define XGE_HAL_RTS_CTRL_ENHANCED_MODE BIT(7) - - u64 rts_pn_cam_ctrl; -#define XGE_HAL_RTS_PN_CAM_CTRL_WE BIT(7) -#define XGE_HAL_RTS_PN_CAM_CTRL_STROBE_NEW_CMD BIT(15) -#define XGE_HAL_RTS_PN_CAM_CTRL_STROBE_BEING_EXECUTED BIT(15) -#define XGE_HAL_RTS_PN_CAM_CTRL_OFFSET(n) vBIT(n,24,8) - u64 rts_pn_cam_data; -#define XGE_HAL_RTS_PN_CAM_DATA_TCP_SELECT BIT(7) -#define XGE_HAL_RTS_PN_CAM_DATA_PORT(val) vBIT(val,8,16) -#define XGE_HAL_RTS_PN_CAM_DATA_SCW(val) vBIT(val,24,8) - - u64 rts_ds_mem_ctrl; -#define XGE_HAL_RTS_DS_MEM_CTRL_WE BIT(7) -#define XGE_HAL_RTS_DS_MEM_CTRL_STROBE_NEW_CMD BIT(15) -#define XGE_HAL_RTS_DS_MEM_CTRL_STROBE_CMD_BEING_EXECUTED BIT(15) -#define XGE_HAL_RTS_DS_MEM_CTRL_OFFSET(n) vBIT(n,26,6) - u64 rts_ds_mem_data; -#define XGE_HAL_RTS_DS_MEM_DATA(n) vBIT(n,0,8) - - u8 unused16_1[0x308 - 0x220]; - - u64 rts_vid_mem_ctrl; - u64 rts_vid_mem_data; - u64 rts_p0_p3_map; - u64 rts_p4_p7_map; - u64 rts_p8_p11_map; - u64 rts_p12_p15_map; - - u64 rts_mac_cfg; -#define XGE_HAL_RTS_MAC_SECT0_EN BIT(0) -#define XGE_HAL_RTS_MAC_SECT1_EN BIT(1) -#define XGE_HAL_RTS_MAC_SECT2_EN BIT(2) -#define XGE_HAL_RTS_MAC_SECT3_EN BIT(3) -#define XGE_HAL_RTS_MAC_SECT4_EN BIT(4) -#define XGE_HAL_RTS_MAC_SECT5_EN BIT(5) -#define XGE_HAL_RTS_MAC_SECT6_EN BIT(6) -#define XGE_HAL_RTS_MAC_SECT7_EN BIT(7) - - u8 unused16_2[0x380 - 0x340]; - - u64 rts_rth_cfg; -#define XGE_HAL_RTS_RTH_EN BIT(3) -#define XGE_HAL_RTS_RTH_BUCKET_SIZE(n) vBIT(n,4,4) -#define XGE_HAL_RTS_RTH_ALG_SEL_MS BIT(11) -#define XGE_HAL_RTS_RTH_TCP_IPV4_EN BIT(15) -#define XGE_HAL_RTS_RTH_UDP_IPV4_EN BIT(19) -#define XGE_HAL_RTS_RTH_IPV4_EN BIT(23) -#define XGE_HAL_RTS_RTH_TCP_IPV6_EN BIT(27) -#define XGE_HAL_RTS_RTH_UDP_IPV6_EN BIT(31) -#define XGE_HAL_RTS_RTH_IPV6_EN BIT(35) -#define XGE_HAL_RTS_RTH_TCP_IPV6_EX_EN BIT(39) -#define XGE_HAL_RTS_RTH_UDP_IPV6_EX_EN BIT(43) -#define XGE_HAL_RTS_RTH_IPV6_EX_EN BIT(47) - - u64 rts_rth_map_mem_ctrl; -#define XGE_HAL_RTS_RTH_MAP_MEM_CTRL_WE BIT(7) -#define XGE_HAL_RTS_RTH_MAP_MEM_CTRL_STROBE BIT(15) -#define XGE_HAL_RTS_RTH_MAP_MEM_CTRL_OFFSET(n) vBIT(n,24,8) - - u64 rts_rth_map_mem_data; -#define XGE_HAL_RTS_RTH_MAP_MEM_DATA_ENTRY_EN BIT(3) -#define XGE_HAL_RTS_RTH_MAP_MEM_DATA(n) vBIT(n,5,3) - - u64 rts_rth_spdm_mem_ctrl; -#define XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_STROBE BIT(15) -#define XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_LINE_SEL(n) vBIT(n,21,3) -#define XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_OFFSET(n) vBIT(n,24,8) - - u64 rts_rth_spdm_mem_data; - - u64 rts_rth_jhash_cfg; -#define XGE_HAL_RTS_RTH_JHASH_GOLDEN(n) vBIT(n,0,32) -#define XGE_HAL_RTS_RTH_JHASH_INIT_VAL(n) vBIT(n,32,32) - - u64 rts_rth_hash_mask[5]; /* rth mask's 0...4 */ - u64 rts_rth_hash_mask_5; -#define XGE_HAL_RTH_HASH_MASK_5(n) vBIT(n,0,32) - - u64 rts_rth_status; -#define XGE_HAL_RTH_STATUS_SPDM_USE_L4 BIT(3) - - u8 unused17[0x400 - 0x3E8]; - - u64 rmac_red_fine_q0q3; - u64 rmac_red_fine_q4q7; - u64 rmac_pthresh_cross; - u64 rmac_rthresh_cross; - u64 rmac_pnum_range[32]; - - u64 rmac_mp_crc_0; - u64 rmac_mp_mask_a_0; - u64 rmac_mp_mask_b_0; - - u64 rmac_mp_crc_1; - u64 rmac_mp_mask_a_1; - u64 rmac_mp_mask_b_1; - - u64 rmac_mp_crc_2; - u64 rmac_mp_mask_a_2; - u64 rmac_mp_mask_b_2; - - u64 rmac_mp_crc_3; - u64 rmac_mp_mask_a_3; - u64 rmac_mp_mask_b_3; - - u64 rmac_mp_crc_4; - u64 rmac_mp_mask_a_4; - u64 rmac_mp_mask_b_4; - - u64 rmac_mp_crc_5; - u64 rmac_mp_mask_a_5; - u64 rmac_mp_mask_b_5; - - u64 rmac_mp_crc_6; - u64 rmac_mp_mask_a_6; - u64 rmac_mp_mask_b_6; - - u64 rmac_mp_crc_7; - u64 rmac_mp_mask_a_7; - u64 rmac_mp_mask_b_7; - - u64 mac_ctrl; - u64 activity_control; - - u8 unused17_2[0x700 - 0x5F0]; - - u64 mac_debug_ctrl; -#define XGE_HAL_MAC_DBG_ACTIVITY_VALUE 0x411040400000000ULL - - u8 unused18[0x2800 - 0x2708]; - -/* memory controller registers */ - u64 mc_int_status; -#define XGE_HAL_MC_INT_STATUS_MC_INT BIT(0) - u64 mc_int_mask; -#define XGE_HAL_MC_INT_MASK_MC_INT BIT(0) - - u64 mc_err_reg; -#define XGE_HAL_MC_ERR_REG_ITQ_ECC_SG_ERR_L BIT(2) /* non-Xena */ -#define XGE_HAL_MC_ERR_REG_ITQ_ECC_SG_ERR_U BIT(3) /* non-Xena */ -#define XGE_HAL_MC_ERR_REG_RLD_ECC_SG_ERR_L BIT(4) /* non-Xena */ -#define XGE_HAL_MC_ERR_REG_RLD_ECC_SG_ERR_U BIT(5) /* non-Xena */ -#define XGE_HAL_MC_ERR_REG_ETQ_ECC_SG_ERR_L BIT(6) -#define XGE_HAL_MC_ERR_REG_ETQ_ECC_SG_ERR_U BIT(7) -#define XGE_HAL_MC_ERR_REG_ITQ_ECC_DB_ERR_L BIT(10) /* non-Xena */ -#define XGE_HAL_MC_ERR_REG_ITQ_ECC_DB_ERR_U BIT(11) /* non-Xena */ -#define XGE_HAL_MC_ERR_REG_RLD_ECC_DB_ERR_L BIT(12) /* non-Xena */ -#define XGE_HAL_MC_ERR_REG_RLD_ECC_DB_ERR_U BIT(13) /* non-Xena */ -#define XGE_HAL_MC_ERR_REG_ETQ_ECC_DB_ERR_L BIT(14) -#define XGE_HAL_MC_ERR_REG_ETQ_ECC_DB_ERR_U BIT(15) -#define XGE_HAL_MC_ERR_REG_MIRI_ECC_SG_ERR_0 BIT(17) -#define XGE_HAL_MC_ERR_REG_MIRI_ECC_DB_ERR_0 BIT(18) /* Xena: reset */ -#define XGE_HAL_MC_ERR_REG_MIRI_ECC_SG_ERR_1 BIT(19) -#define XGE_HAL_MC_ERR_REG_MIRI_ECC_DB_ERR_1 BIT(20) /* Xena: reset */ -#define XGE_HAL_MC_ERR_REG_MIRI_CRI_ERR_0 BIT(22) -#define XGE_HAL_MC_ERR_REG_MIRI_CRI_ERR_1 BIT(23) -#define XGE_HAL_MC_ERR_REG_SM_ERR BIT(31) -#define XGE_HAL_MC_ERR_REG_PL_LOCK_N BIT(39) - - u64 mc_err_mask; - u64 mc_err_alarm; - - u8 unused19[0x100 - 0x28]; - -/* MC configuration */ - u64 rx_queue_cfg; -#define XGE_HAL_RX_QUEUE_CFG_Q0_SZ(n) vBIT(n,0,8) -#define XGE_HAL_RX_QUEUE_CFG_Q1_SZ(n) vBIT(n,8,8) -#define XGE_HAL_RX_QUEUE_CFG_Q2_SZ(n) vBIT(n,16,8) -#define XGE_HAL_RX_QUEUE_CFG_Q3_SZ(n) vBIT(n,24,8) -#define XGE_HAL_RX_QUEUE_CFG_Q4_SZ(n) vBIT(n,32,8) -#define XGE_HAL_RX_QUEUE_CFG_Q5_SZ(n) vBIT(n,40,8) -#define XGE_HAL_RX_QUEUE_CFG_Q6_SZ(n) vBIT(n,48,8) -#define XGE_HAL_RX_QUEUE_CFG_Q7_SZ(n) vBIT(n,56,8) - - u64 mc_rldram_mrs; -#define XGE_HAL_MC_RLDRAM_QUEUE_SIZE_ENABLE BIT(39) -#define XGE_HAL_MC_RLDRAM_MRS_ENABLE BIT(47) - - u64 mc_rldram_interleave; - - u64 mc_pause_thresh_q0q3; - u64 mc_pause_thresh_q4q7; - - u64 mc_red_thresh_q[8]; - - u8 unused20[0x200 - 0x168]; - u64 mc_rldram_ref_per; - u8 unused21[0x220 - 0x208]; - u64 mc_rldram_test_ctrl; -#define XGE_HAL_MC_RLDRAM_TEST_MODE BIT(47) -#define XGE_HAL_MC_RLDRAM_TEST_WRITE BIT(7) -#define XGE_HAL_MC_RLDRAM_TEST_GO BIT(15) -#define XGE_HAL_MC_RLDRAM_TEST_DONE BIT(23) -#define XGE_HAL_MC_RLDRAM_TEST_PASS BIT(31) - - u8 unused22[0x240 - 0x228]; - u64 mc_rldram_test_add; - u8 unused23[0x260 - 0x248]; - u64 mc_rldram_test_d0; - u8 unused24[0x280 - 0x268]; - u64 mc_rldram_test_d1; - u8 unused25[0x300 - 0x288]; - u64 mc_rldram_test_d2; - u8 unused26_1[0x2C00 - 0x2B08]; - u64 mc_rldram_test_read_d0; - u8 unused26_2[0x20 - 0x8]; - u64 mc_rldram_test_read_d1; - u8 unused26_3[0x40 - 0x28]; - u64 mc_rldram_test_read_d2; - u8 unused26_4[0x60 - 0x48]; - u64 mc_rldram_test_add_bkg; - u8 unused26_5[0x80 - 0x68]; - u64 mc_rldram_test_d0_bkg; - u8 unused26_6[0xD00 - 0xC88]; - u64 mc_rldram_test_d1_bkg; - u8 unused26_7[0x20 - 0x8]; - u64 mc_rldram_test_d2_bkg; - u8 unused26_8[0x40 - 0x28]; - u64 mc_rldram_test_read_d0_bkg; - u8 unused26_9[0x60 - 0x48]; - u64 mc_rldram_test_read_d1_bkg; - u8 unused26_10[0x80 - 0x68]; - u64 mc_rldram_test_read_d2_bkg; - u8 unused26_11[0xE00 - 0xD88]; - u64 mc_rldram_generation; - u8 unused26_12[0x20 - 0x8]; - u64 mc_driver; - u8 unused26_13[0x40 - 0x28]; - u64 mc_rldram_ref_per_herc; -#define XGE_HAL_MC_RLDRAM_SET_REF_PERIOD(n) vBIT(n, 0, 16) - u8 unused26_14[0x660 - 0x648]; - u64 mc_rldram_mrs_herc; -#define XGE_HAL_MC_RLDRAM_MRS(n) vBIT(n, 14, 17) - u8 unused26_15[0x700 - 0x668]; - u64 mc_debug_ctrl; - - u8 unused27[0x3000 - 0x2f08]; - -/* XGXG */ - /* XGXS control registers */ - - u64 xgxs_int_status; -#define XGE_HAL_XGXS_INT_STATUS_TXGXS BIT(0) -#define XGE_HAL_XGXS_INT_STATUS_RXGXS BIT(1) - u64 xgxs_int_mask; -#define XGE_HAL_XGXS_INT_MASK_TXGXS BIT(0) -#define XGE_HAL_XGXS_INT_MASK_RXGXS BIT(1) - - u64 xgxs_txgxs_err_reg; -#define XGE_HAL_TXGXS_ECC_SG_ERR BIT(7) -#define XGE_HAL_TXGXS_ECC_DB_ERR BIT(15) -#define XGE_HAL_TXGXS_ESTORE_UFLOW BIT(31) -#define XGE_HAL_TXGXS_TX_SM_ERR BIT(39) - u64 xgxs_txgxs_err_mask; - u64 xgxs_txgxs_err_alarm; - - u64 xgxs_rxgxs_err_reg; -#define XGE_HAL_RXGXS_ESTORE_OFLOW BIT(7) -#define XGE_HAL_RXGXS_RX_SM_ERR BIT(39) - u64 xgxs_rxgxs_err_mask; - u64 xgxs_rxgxs_err_alarm; - - u64 spi_err_reg; - u64 spi_err_mask; - u64 spi_err_alarm; - - u8 unused28[0x100 - 0x58]; - - u64 xgxs_cfg; - u64 xgxs_status; - - u64 xgxs_cfg_key; - u64 xgxs_efifo_cfg; /* CHANGED */ - u64 rxgxs_ber_0; /* CHANGED */ - u64 rxgxs_ber_1; /* CHANGED */ - - u64 spi_control; - u64 spi_data; - u64 spi_write_protect; - - u8 unused29[0x80 - 0x48]; - - u64 xgxs_cfg_1; -} xge_hal_pci_bar0_t; - -/* Using this strcture to calculate offsets */ -typedef struct xge_hal_pci_config_le_t { - u16 vendor_id; // 0x00 - u16 device_id; // 0x02 - - u16 command; // 0x04 - u16 status; // 0x06 - - u8 revision; // 0x08 - u8 pciClass[3]; // 0x09 - - u8 cache_line_size; // 0x0c - u8 latency_timer; // 0x0d - u8 header_type; // 0x0e - u8 bist; // 0x0f - - u32 base_addr0_lo; // 0x10 - u32 base_addr0_hi; // 0x14 - - u32 base_addr1_lo; // 0x18 - u32 base_addr1_hi; // 0x1C - - u32 not_Implemented1; // 0x20 - u32 not_Implemented2; // 0x24 - - u32 cardbus_cis_pointer; // 0x28 - - u16 subsystem_vendor_id; // 0x2c - u16 subsystem_id; // 0x2e - - u32 rom_base; // 0x30 - u8 capabilities_pointer; // 0x34 - u8 rsvd_35[3]; // 0x35 - u32 rsvd_38; // 0x38 - - u8 interrupt_line; // 0x3c - u8 interrupt_pin; // 0x3d - u8 min_grant; // 0x3e - u8 max_latency; // 0x3f - - u8 msi_cap_id; // 0x40 - u8 msi_next_ptr; // 0x41 - u16 msi_control; // 0x42 - u32 msi_lower_address; // 0x44 - u32 msi_higher_address; // 0x48 - u16 msi_data; // 0x4c - u16 msi_unused; // 0x4e - - u8 vpd_cap_id; // 0x50 - u8 vpd_next_cap; // 0x51 - u16 vpd_addr; // 0x52 - u32 vpd_data; // 0x54 - - u8 rsvd_b0[8]; // 0x58 - - u8 pcix_cap; // 0x60 - u8 pcix_next_cap; // 0x61 - u16 pcix_command; // 0x62 - - u32 pcix_status; // 0x64 - - u8 rsvd_b1[XGE_HAL_PCI_XFRAME_CONFIG_SPACE_SIZE-0x68]; -} xge_hal_pci_config_le_t; // 0x100 - -typedef struct xge_hal_pci_config_t { -#ifdef XGE_OS_HOST_BIG_ENDIAN - u16 device_id; // 0x02 - u16 vendor_id; // 0x00 - - u16 status; // 0x06 - u16 command; // 0x04 - - u8 pciClass[3]; // 0x09 - u8 revision; // 0x08 - - u8 bist; // 0x0f - u8 header_type; // 0x0e - u8 latency_timer; // 0x0d - u8 cache_line_size; // 0x0c - - u32 base_addr0_lo; // 0x10 - u32 base_addr0_hi; // 0x14 - - u32 base_addr1_lo; // 0x18 - u32 base_addr1_hi; // 0x1C - - u32 not_Implemented1; // 0x20 - u32 not_Implemented2; // 0x24 - - u32 cardbus_cis_pointer; // 0x28 - - u16 subsystem_id; // 0x2e - u16 subsystem_vendor_id; // 0x2c - - u32 rom_base; // 0x30 - u8 rsvd_35[3]; // 0x35 - u8 capabilities_pointer; // 0x34 - u32 rsvd_38; // 0x38 - - u8 max_latency; // 0x3f - u8 min_grant; // 0x3e - u8 interrupt_pin; // 0x3d - u8 interrupt_line; // 0x3c - - u16 msi_control; // 0x42 - u8 msi_next_ptr; // 0x41 - u8 msi_cap_id; // 0x40 - u32 msi_lower_address; // 0x44 - u32 msi_higher_address; // 0x48 - u16 msi_unused; // 0x4e - u16 msi_data; // 0x4c - - u16 vpd_addr; // 0x52 - u8 vpd_next_cap; // 0x51 - u8 vpd_cap_id; // 0x50 - u32 vpd_data; // 0x54 - - u8 rsvd_b0[8]; // 0x58 - - u16 pcix_command; // 0x62 - u8 pcix_next_cap; // 0x61 - u8 pcix_cap; // 0x60 - - u32 pcix_status; // 0x64 -#else - u16 vendor_id; // 0x00 - u16 device_id; // 0x02 - - u16 command; // 0x04 - u16 status; // 0x06 - - u8 revision; // 0x08 - u8 pciClass[3]; // 0x09 - - u8 cache_line_size; // 0x0c - u8 latency_timer; // 0x0d - u8 header_type; // 0x0e - u8 bist; // 0x0f - - u32 base_addr0_lo; // 0x10 - u32 base_addr0_hi; // 0x14 - - u32 base_addr1_lo; // 0x18 - u32 base_addr1_hi; // 0x1C - - u32 not_Implemented1; // 0x20 - u32 not_Implemented2; // 0x24 - - u32 cardbus_cis_pointer; // 0x28 - - u16 subsystem_vendor_id; // 0x2c - u16 subsystem_id; // 0x2e - - u32 rom_base; // 0x30 - u8 capabilities_pointer; // 0x34 - u8 rsvd_35[3]; // 0x35 - u32 rsvd_38; // 0x38 - - u8 interrupt_line; // 0x3c - u8 interrupt_pin; // 0x3d - u8 min_grant; // 0x3e - u8 max_latency; // 0x3f - - u8 msi_cap_id; // 0x40 - u8 msi_next_ptr; // 0x41 - u16 msi_control; // 0x42 - u32 msi_lower_address; // 0x44 - u32 msi_higher_address; // 0x48 - u16 msi_data; // 0x4c - u16 msi_unused; // 0x4e - - u8 vpd_cap_id; // 0x50 - u8 vpd_next_cap; // 0x51 - u16 vpd_addr; // 0x52 - u32 vpd_data; // 0x54 - - u8 rsvd_b0[8]; // 0x58 - - u8 pcix_cap; // 0x60 - u8 pcix_next_cap; // 0x61 - u16 pcix_command; // 0x62 - - u32 pcix_status; // 0x64 - -#endif - u8 rsvd_b1[XGE_HAL_PCI_XFRAME_CONFIG_SPACE_SIZE-0x68]; -} xge_hal_pci_config_t; // 0x100 - -#define XGE_HAL_REG_SPACE sizeof(xge_hal_pci_bar0_t) -#define XGE_HAL_EEPROM_SIZE (0x01 << 11) - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_REGS_H */ Property changes on: head/sys/dev/nxge/include/xgehal-regs.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xge-os-pal.h =================================================================== --- head/sys/dev/nxge/include/xge-os-pal.h (revision 333387) +++ head/sys/dev/nxge/include/xge-os-pal.h (nonexistent) @@ -1,127 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_OS_PAL_H -#define XGE_OS_PAL_H - -#include - -__EXTERN_BEGIN_DECLS - -/*--------------------------- platform switch ------------------------------*/ - -/* platform specific header */ -#include - -#if !defined(XGE_OS_PLATFORM_64BIT) && !defined(XGE_OS_PLATFORM_32BIT) -#error "either 32bit or 64bit switch must be defined!" -#endif - -#if !defined(XGE_OS_HOST_BIG_ENDIAN) && !defined(XGE_OS_HOST_LITTLE_ENDIAN) -#error "either little endian or big endian switch must be defined!" -#endif - -#if defined(XGE_OS_PLATFORM_64BIT) -#define XGE_OS_MEMORY_DEADCODE_PAT 0x5a5a5a5a5a5a5a5a -#else -#define XGE_OS_MEMORY_DEADCODE_PAT 0x5a5a5a5a -#endif - -#define XGE_OS_TRACE_MSGBUF_MAX 512 -typedef struct xge_os_tracebuf_t { - int wrapped_once; /* circular buffer been wrapped */ - int timestamp; /* whether timestamps are enabled */ - volatile int offset; /* offset within the tracebuf */ - int size; /* total size of trace buffer */ - char msg[XGE_OS_TRACE_MSGBUF_MAX]; /* each individual buffer */ - int msgbuf_max; /* actual size of msg buffer */ - char *data; /* pointer to data buffer */ -} xge_os_tracebuf_t; -extern xge_os_tracebuf_t *g_xge_os_tracebuf; - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR -extern xge_os_tracebuf_t *g_xge_os_tracebuf; -extern char *dmesg_start; - -/* Calculate the size of the msg and copy it into the global buffer */ -#define __xge_trace(tb) { \ - int msgsize = xge_os_strlen(tb->msg) + 2; \ - int offset = tb->offset; \ - if (msgsize != 2 && msgsize < tb->msgbuf_max) { \ - int leftsize = tb->size - offset; \ - if ((msgsize + tb->msgbuf_max) > leftsize) { \ - xge_os_memzero(tb->data + offset, leftsize); \ - offset = 0; \ - tb->wrapped_once = 1; \ - } \ - xge_os_memcpy(tb->data + offset, tb->msg, msgsize-1); \ - *(tb->data + offset + msgsize-1) = '\n'; \ - *(tb->data + offset + msgsize) = 0; \ - offset += msgsize; \ - tb->offset = offset; \ - dmesg_start = tb->data + offset; \ - *tb->msg = 0; \ - } \ -} - -#define xge_os_vatrace(tb, fmt) { \ - if (tb != NULL) { \ - char *_p = tb->msg; \ - if (tb->timestamp) { \ - xge_os_timestamp(tb->msg); \ - _p = tb->msg + xge_os_strlen(tb->msg); \ - } \ - xge_os_vasprintf(_p, fmt); \ - __xge_trace(tb); \ - } \ -} - -#ifdef __GNUC__ -#define xge_os_trace(tb, fmt...) { \ - if (tb != NULL) { \ - if (tb->timestamp) { \ - xge_os_timestamp(tb->msg); \ - } \ - xge_os_sprintf(tb->msg + xge_os_strlen(tb->msg), fmt); \ - __xge_trace(tb); \ - } \ -} -#endif /* __GNUC__ */ - -#else -#define xge_os_vatrace(tb, fmt) -#ifdef __GNUC__ -#define xge_os_trace(tb, fmt...) -#endif /* __GNUC__ */ -#endif - -__EXTERN_END_DECLS - -#endif /* XGE_OS_PAL_H */ Property changes on: head/sys/dev/nxge/include/xge-os-pal.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xge-queue.h =================================================================== --- head/sys/dev/nxge/include/xge-queue.h (revision 333387) +++ head/sys/dev/nxge/include/xge-queue.h (nonexistent) @@ -1,179 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_QUEUE_H -#define XGE_QUEUE_H - -#include -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -#define XGE_QUEUE_BUF_SIZE 0x1000 -#define XGE_DEFAULT_EVENT_MAX_DATA_SIZE 16 - -/** - * enum xge_queue_status_e - Enumerates return codes of the xge_queue - * manipulation APIs. - * @XGE_QUEUE_IS_FULL: Queue is full, need to grow. - * @XGE_QUEUE_IS_EMPTY: Queue is empty. - * @XGE_QUEUE_OUT_OF_MEMORY: Out of memory. - * @XGE_QUEUE_NOT_ENOUGH_SPACE: Exceeded specified event size, - * see xge_queue_consume(). - * @XGE_QUEUE_OK: Neither one of the codes listed above. - * - * Enumerates return codes of xge_queue_consume() - * and xge_queue_produce() APIs. - */ -typedef enum xge_queue_status_e { - XGE_QUEUE_OK = 0, - XGE_QUEUE_IS_FULL = 1, - XGE_QUEUE_IS_EMPTY = 2, - XGE_QUEUE_OUT_OF_MEMORY = 3, - XGE_QUEUE_NOT_ENOUGH_SPACE = 4 -} xge_queue_status_e; - -typedef void* xge_queue_h; - -/** - * struct xge_queue_item_t - Queue item. - * @item: List item. Note that the queue is "built" on top of - * the bi-directional linked list. - * @event_type: Event type. Includes (but is not restricted to) - * one of the xge_hal_event_e{} enumerated types. - * @data_size: Size of the enqueued user data. Note that xge_queue_t - * items are allowed to have variable sizes. - * @is_critical: For critical events, e.g. ECC. - * @context: Opaque (void*) "context", for instance event producer object. - * - * Item of the xge_queue_t{}. The queue is protected - * in terms of multi-threaded concurrent access. - * See also: xge_queue_t{}. - */ -typedef struct xge_queue_item_t { - xge_list_t item; - xge_hal_event_e event_type; - int data_size; - int is_critical; - void *context; -} xge_queue_item_t; - -/** - * function xge_queued_f - Item-enqueued callback. - * @data: Per-queue context independent of the event. E.g., device handle. - * @event_type: HAL or ULD-defined event type. Note that HAL own - * events are enumerated by xge_hal_event_e{}. - * - * Per-queue optional callback. If not NULL, called by HAL each - * time an event gets added to the queue. - */ -typedef void (*xge_queued_f) (void *data, int event_type); - -/** - * struct xge_queue_t - Protected dynamic queue of variable-size items. - * @start_ptr: Points to the start of the queue. - * @end_ptr: Points to the end of the queue. - * @head_ptr: Points to the head of the queue. It gets changed during queue - * produce/consume operations. - * @tail_ptr: Points to the tail of the queue. It gets changed during queue - * produce/consume operations. - * @lock: Lock for queue operations(syncronization purpose). - * @pages_initial:Number of pages to be initially allocated at the time - * of queue creation. - * @pages_max: Max number of pages that can be allocated in the queue. - * @pages_current: Number of pages currently allocated - * @list_head: Points to the list of queue elements that are produced, but yet - * to be consumed. - * @signal_callback: (TODO) - * @pdev: PCI device handle - * @irqh: PCI device IRQ handle. - * @queued_func: Optional callback function to be called each time a new - * item is added to the queue. - * @queued_data: Arguments to the callback function. - * @has_critical_event: Non-zero, if the queue contains a critical event, - * see xge_hal_event_e{}. - * Protected dynamically growing queue. The queue is used to support multiple - * producer/consumer type scenarios. The queue is a strict FIFO: first come - * first served. - * Queue users may "produce" (see xge_queue_produce()) and "consume" - * (see xge_queue_consume()) items (a.k.a. events) variable sizes. - * See also: xge_queue_item_t{}. - */ -typedef struct xge_queue_t { - void *start_ptr; - void *end_ptr; - void *head_ptr; - void *tail_ptr; - spinlock_t lock; - unsigned int pages_initial; - unsigned int pages_max; - unsigned int pages_current; - xge_list_t list_head; - pci_dev_h pdev; - pci_irq_h irqh; - xge_queued_f queued_func; - void *queued_data; - int has_critical_event; -} xge_queue_t; - -/* ========================== PUBLIC API ================================= */ - -xge_queue_h xge_queue_create(pci_dev_h pdev, pci_irq_h irqh, int pages_initial, - int pages_max, xge_queued_f queued_func, void *queued_data); - -void xge_queue_destroy(xge_queue_h queueh); - -void* xge_queue_item_data(xge_queue_item_t *item); - -xge_queue_status_e -xge_queue_produce(xge_queue_h queueh, int event_type, void *context, - int is_critical, const int data_size, void *data); - -static inline xge_queue_status_e -xge_queue_produce_context(xge_queue_h queueh, int event_type, void *context) { - return xge_queue_produce(queueh, event_type, context, 0, 0, 0); -} - -xge_queue_status_e xge_queue_consume(xge_queue_h queueh, int data_max_size, - xge_queue_item_t *item); - -void xge_queue_flush(xge_queue_h queueh); - -/* ========================== PRIVATE API ================================= */ - -xge_queue_status_e __io_queue_grow(xge_queue_h qh); - -int __queue_get_reset_critical (xge_queue_h qh); - -__EXTERN_END_DECLS - -#endif /* XGE_QUEUE_H */ Property changes on: head/sys/dev/nxge/include/xge-queue.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-fifo.h =================================================================== --- head/sys/dev/nxge/include/xgehal-fifo.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-fifo.h (nonexistent) @@ -1,361 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_FIFO_H -#define XGE_HAL_FIFO_H - -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -/* HW fifo configuration */ -#define XGE_HAL_FIFO_INT_PER_LIST_THRESHOLD 65 -#define XGE_HAL_FIFO_MAX_WRR 5 -#define XGE_HAL_FIFO_MAX_PARTITION 4 -#define XGE_HAL_FIFO_MAX_WRR_STATE 36 -#define XGE_HAL_FIFO_HW_PAIR_OFFSET 0x20000 - -/* HW FIFO Weight Calender */ -#define XGE_HAL_FIFO_WRR_0 0x0706050407030602ULL -#define XGE_HAL_FIFO_WRR_1 0x0507040601070503ULL -#define XGE_HAL_FIFO_WRR_2 0x0604070205060700ULL -#define XGE_HAL_FIFO_WRR_3 0x0403060705010207ULL -#define XGE_HAL_FIFO_WRR_4 0x0604050300000000ULL -/* - * xge_hal_fifo_hw_pair_t - * - * Represent a single fifo in the BAR1 memory space. - */ -typedef struct { - u64 txdl_pointer; /* offset 0x0 */ - - u64 reserved[2]; - - u64 list_control; /* offset 0x18 */ -#define XGE_HAL_TX_FIFO_LAST_TXD_NUM( val) vBIT(val,0,8) -#define XGE_HAL_TX_FIFO_FIRST_LIST BIT(14) -#define XGE_HAL_TX_FIFO_LAST_LIST BIT(15) -#define XGE_HAL_TX_FIFO_FIRSTNLAST_LIST vBIT(3,14,2) -#define XGE_HAL_TX_FIFO_SPECIAL_FUNC BIT(23) -#define XGE_HAL_TX_FIFO_NO_SNOOP(n) vBIT(n,30,2) -} xge_hal_fifo_hw_pair_t; - - -/* Bad TxDL transfer codes */ -#define XGE_HAL_TXD_T_CODE_OK 0x0 -#define XGE_HAL_TXD_T_CODE_UNUSED_1 0x1 -#define XGE_HAL_TXD_T_CODE_ABORT_BUFFER 0x2 -#define XGE_HAL_TXD_T_CODE_ABORT_DTOR 0x3 -#define XGE_HAL_TXD_T_CODE_UNUSED_5 0x5 -#define XGE_HAL_TXD_T_CODE_PARITY 0x7 -#define XGE_HAL_TXD_T_CODE_LOSS_OF_LINK 0xA -#define XGE_HAL_TXD_T_CODE_GENERAL_ERR 0xF - - -/** - * struct xge_hal_fifo_txd_t - TxD. - * @control_1: Control_1. - * @control_2: Control_2. - * @buffer_pointer: Buffer_Address. - * @host_control: Host_Control.Opaque 64bit data stored by ULD inside the Xframe - * descriptor prior to posting the latter on the channel - * via xge_hal_fifo_dtr_post() or xge_hal_ring_dtr_post(). - * The %host_control is returned as is to the ULD with each - * completed descriptor. - * - * Transmit descriptor (TxD).Fifo descriptor contains configured number - * (list) of TxDs. * For more details please refer to Xframe User Guide, - * Section 5.4.2 "Transmit Descriptor (TxD) Format". - */ -typedef struct xge_hal_fifo_txd_t { - u64 control_1; -#define XGE_HAL_TXD_LIST_OWN_XENA BIT(7) -#define XGE_HAL_TXD_T_CODE (BIT(12)|BIT(13)|BIT(14)|BIT(15)) -#define XGE_HAL_GET_TXD_T_CODE(val) ((val & XGE_HAL_TXD_T_CODE)>>48) -#define XGE_HAL_SET_TXD_T_CODE(x, val) (x |= (((u64)val & 0xF) << 48)) -#define XGE_HAL_TXD_GATHER_CODE (BIT(22) | BIT(23)) -#define XGE_HAL_TXD_GATHER_CODE_FIRST BIT(22) -#define XGE_HAL_TXD_GATHER_CODE_LAST BIT(23) -#define XGE_HAL_TXD_NO_LSO 0 -#define XGE_HAL_TXD_UDF_COF 1 -#define XGE_HAL_TXD_TCP_LSO 2 -#define XGE_HAL_TXD_UDP_LSO 3 -#define XGE_HAL_TXD_LSO_COF_CTRL(val) vBIT(val,30,2) -#define XGE_HAL_TXD_TCP_LSO_MSS(val) vBIT(val,34,14) -#define XGE_HAL_TXD_BUFFER0_SIZE(val) vBIT(val,48,16) -#define XGE_HAL_TXD_GET_LSO_BYTES_SENT(val) ((val & vBIT(0xFFFF,16,16))>>32) - u64 control_2; -#define XGE_HAL_TXD_TX_CKO_CONTROL (BIT(5)|BIT(6)|BIT(7)) -#define XGE_HAL_TXD_TX_CKO_IPV4_EN BIT(5) -#define XGE_HAL_TXD_TX_CKO_TCP_EN BIT(6) -#define XGE_HAL_TXD_TX_CKO_UDP_EN BIT(7) -#define XGE_HAL_TXD_VLAN_ENABLE BIT(15) -#define XGE_HAL_TXD_VLAN_TAG(val) vBIT(val,16,16) -#define XGE_HAL_TXD_INT_NUMBER(val) vBIT(val,34,6) -#define XGE_HAL_TXD_INT_TYPE_PER_LIST BIT(47) -#define XGE_HAL_TXD_INT_TYPE_UTILZ BIT(46) -#define XGE_HAL_TXD_SET_MARKER vBIT(0x6,0,4) - - u64 buffer_pointer; - - u64 host_control; - -} xge_hal_fifo_txd_t; - -typedef xge_hal_fifo_txd_t* xge_hal_fifo_txdl_t; - -/** - * struct xge_hal_fifo_t - Fifo channel. - * @channel: Channel "base" of this fifo, the common part of all HAL - * channels. - * @post_lock_ptr: Points to a lock that serializes (pointer, control) PIOs. - * Note that for Xena the serialization is done across all device - * fifos. - * @hw_pair: Per-fifo (Pointer, Control) pair used to send descriptors to the - * Xframe hardware (for details see Xframe user guide). - * @config: Fifo configuration, part of device configuration - * (see xge_hal_device_config_t{}). - * @no_snoop_bits: See xge_hal_fifo_config_t{}. - * @txdl_per_memblock: Number of TxDLs (TxD lists) per memblock. - * on TxDL please refer to Xframe UG. - * @interrupt_type: FIXME: to-be-defined. - * @txdl_size: Configured TxDL size (i.e., number of TxDs in a list), plus - * per-TxDL HAL private space (xge_hal_fifo_txdl_priv_t). - * @priv_size: Per-Tx descriptor space reserved for upper-layer driver - * usage. - * @mempool: Memory pool, from which descriptors get allocated. - * @align_size: TBD - * - * Fifo channel. - * Note: The structure is cache line aligned. - */ -typedef struct xge_hal_fifo_t { - xge_hal_channel_t channel; - spinlock_t *post_lock_ptr; - xge_hal_fifo_hw_pair_t *hw_pair; - xge_hal_fifo_config_t *config; - int no_snoop_bits; - int txdl_per_memblock; - u64 interrupt_type; - int txdl_size; - int priv_size; - xge_hal_mempool_t *mempool; - int align_size; -} __xge_os_attr_cacheline_aligned xge_hal_fifo_t; - -/** - * struct xge_hal_fifo_txdl_priv_t - Transmit descriptor HAL-private - * data. - * @dma_addr: DMA (mapped) address of _this_ descriptor. - * @dma_handle: DMA handle used to map the descriptor onto device. - * @dma_offset: Descriptor's offset in the memory block. HAL allocates - * descriptors in memory blocks (see - * xge_hal_fifo_config_t{}) - * Each memblock is a contiguous block of DMA-able memory. - * @frags: Total number of fragments (that is, contiguous data buffers) - * carried by this TxDL. - * @align_vaddr_start: (TODO). - * @align_vaddr: Virtual address of the per-TxDL area in memory used for - * alignement. Used to place one or more mis-aligned fragments - * (the maximum defined by configration variable - * @max_aligned_frags). - * @align_dma_addr: DMA address translated from the @align_vaddr. - * @align_dma_handle: DMA handle that corresponds to @align_dma_addr. - * @align_dma_acch: DMA access handle corresponds to @align_dma_addr. - * @align_dma_offset: The current offset into the @align_vaddr area. - * Grows while filling the descriptor, gets reset. - * @align_used_frags: (TODO). - * @alloc_frags: Total number of fragments allocated. - * @dang_frags: Number of fragments kept from release until this TxDL is freed. - * @bytes_sent: TODO - * @unused: TODO - * @dang_txdl: (TODO). - * @next_txdl_priv: (TODO). - * @first_txdp: (TODO). - * @dang_dtrh: Pointer to TxDL (list) kept from release until this TxDL - * is freed. - * @linked_txdl_priv: Pointer to any linked TxDL for creating contiguous - * TxDL list. - * @dtrh: Corresponding dtrh to this TxDL. - * @memblock: Pointer to the TxDL memory block or memory page. - * on the next send operation. - * @dma_object: DMA address and handle of the memory block that contains - * the descriptor. This member is used only in the "checked" - * version of the HAL (to enforce certain assertions); - * otherwise it gets compiled out. - * @allocated: True if the descriptor is reserved, 0 otherwise. Internal usage. - * - * Per-transmit decsriptor HAL-private data. HAL uses the space to keep DMA - * information associated with the descriptor. Note that ULD can ask HAL - * to allocate additional per-descriptor space for its own (ULD-specific) - * purposes. - * - * See also: xge_hal_ring_rxd_priv_t{}. - */ -typedef struct xge_hal_fifo_txdl_priv_t { - dma_addr_t dma_addr; - pci_dma_h dma_handle; - ptrdiff_t dma_offset; - int frags; - char *align_vaddr_start; - char *align_vaddr; - dma_addr_t align_dma_addr; - pci_dma_h align_dma_handle; - pci_dma_acc_h align_dma_acch; - ptrdiff_t align_dma_offset; - int align_used_frags; - int alloc_frags; - int dang_frags; - unsigned int bytes_sent; - int unused; - xge_hal_fifo_txd_t *dang_txdl; - struct xge_hal_fifo_txdl_priv_t *next_txdl_priv; - xge_hal_fifo_txd_t *first_txdp; - void *memblock; -#ifdef XGE_DEBUG_ASSERT - xge_hal_mempool_dma_t *dma_object; -#endif -#ifdef XGE_OS_MEMORY_CHECK - int allocated; -#endif -} xge_hal_fifo_txdl_priv_t; - -/** - * xge_hal_fifo_get_max_frags_cnt - Return the max fragments allocated - * for the fifo. - * @channelh: Channel handle. - */ -static inline int -xge_hal_fifo_get_max_frags_cnt(xge_hal_channel_h channelh) -{ - return ((xge_hal_fifo_t *)channelh)->config->max_frags; -} -/* ========================= FIFO PRIVATE API ============================= */ - -xge_hal_status_e __hal_fifo_open(xge_hal_channel_h channelh, - xge_hal_channel_attr_t *attr); - -void __hal_fifo_close(xge_hal_channel_h channelh); - -void __hal_fifo_hw_initialize(xge_hal_device_h hldev); - -xge_hal_status_e -__hal_fifo_dtr_align_alloc_map(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -void -__hal_fifo_dtr_align_free_unmap(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -#if defined(XGE_DEBUG_FP) && (XGE_DEBUG_FP & XGE_DEBUG_FP_FIFO) -#define __HAL_STATIC_FIFO -#define __HAL_INLINE_FIFO - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_fifo_txdl_priv_t* -__hal_fifo_txdl_priv(xge_hal_dtr_h dtrh); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -__hal_fifo_dtr_post_single(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - u64 ctrl_1); -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -__hal_fifo_txdl_restore_many(xge_hal_channel_h channelh, - xge_hal_fifo_txd_t *txdp, int txdl_count); - -/* ========================= FIFO PUBLIC API ============================== */ - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_reserve(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_reserve_many(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh, - const int frags); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void* -xge_hal_fifo_dtr_private(xge_hal_dtr_h dtrh); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO int -xge_hal_fifo_dtr_buffer_cnt(xge_hal_dtr_h dtrh); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_reserve_sp(xge_hal_channel_h channel, int dtr_sp_size, - xge_hal_dtr_h dtr_sp); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_post_many(xge_hal_channel_h channelh, int num, - xge_hal_dtr_h dtrs[]); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_next_completed(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh, - u8 *t_code); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_free(xge_hal_channel_h channelh, xge_hal_dtr_h dtr); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_buffer_set(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - int frag_idx, dma_addr_t dma_pointer, int size); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_buffer_set_aligned(xge_hal_channel_h channelh, - xge_hal_dtr_h dtrh, int frag_idx, void *vaddr, - dma_addr_t dma_pointer, int size, int misaligned_size); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_dtr_buffer_append(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - void *vaddr, int size); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_buffer_finalize(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - int frag_idx); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_mss_set(xge_hal_dtr_h dtrh, int mss); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_cksum_set_bits(xge_hal_dtr_h dtrh, u64 cksum_bits); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO void -xge_hal_fifo_dtr_vlan_set(xge_hal_dtr_h dtrh, u16 vlan_tag); - -__HAL_STATIC_FIFO __HAL_INLINE_FIFO xge_hal_status_e -xge_hal_fifo_is_next_dtr_completed(xge_hal_channel_h channelh); - -#else /* XGE_FASTPATH_EXTERN */ -#define __HAL_STATIC_FIFO static -#define __HAL_INLINE_FIFO inline -#include -#endif /* XGE_FASTPATH_INLINE */ - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_FIFO_H */ Property changes on: head/sys/dev/nxge/include/xgehal-fifo.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-mgmt.h =================================================================== --- head/sys/dev/nxge/include/xgehal-mgmt.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-mgmt.h (nonexistent) @@ -1,222 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_MGMT_H -#define XGE_HAL_MGMT_H - -#include -#include -#include -#include -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -/** - * struct xge_hal_mgmt_about_info_t - About info. - * @vendor: PCI Vendor ID. - * @device: PCI Device ID. - * @subsys_vendor: PCI Subsystem Vendor ID. - * @subsys_device: PCI Subsystem Device ID. - * @board_rev: PCI Board revision, e.g. 3 - for Xena 3. - * @vendor_name: Neterion, Inc. - * @chip_name: Xframe. - * @media: Fiber, copper. - * @hal_major: HAL major version number. - * @hal_minor: HAL minor version number. - * @hal_fix: HAL fix number. - * @hal_build: HAL build number. - * @ll_major: Link-layer ULD major version number. - * @ll_minor: Link-layer ULD minor version number. - * @ll_fix: Link-layer ULD fix version number. - * @ll_build: Link-layer ULD build number. - * @transponder_temperature: TODO - */ -typedef struct xge_hal_mgmt_about_info_t { - u16 vendor; - u16 device; - u16 subsys_vendor; - u16 subsys_device; - u8 board_rev; - char vendor_name[16]; - char chip_name[16]; - char media[16]; - char hal_major[4]; - char hal_minor[4]; - char hal_fix[4]; - char hal_build[16]; - char ll_major[4]; - char ll_minor[4]; - char ll_fix[4]; - char ll_build[16]; - u32 transponder_temperature; -} xge_hal_mgmt_about_info_t; - -typedef xge_hal_stats_hw_info_t xge_hal_mgmt_hw_stats_t; -typedef xge_hal_stats_pcim_info_t xge_hal_mgmt_pcim_stats_t; -typedef xge_hal_stats_sw_err_t xge_hal_mgmt_sw_stats_t; -typedef xge_hal_stats_device_info_t xge_hal_mgmt_device_stats_t; -typedef xge_hal_stats_channel_info_t xge_hal_mgmt_channel_stats_t; -typedef xge_hal_device_config_t xge_hal_mgmt_device_config_t; -typedef xge_hal_driver_config_t xge_hal_mgmt_driver_config_t; -typedef xge_hal_pci_config_t xge_hal_mgmt_pci_config_t; - -xge_hal_status_e -xge_hal_mgmt_about(xge_hal_device_h devh, xge_hal_mgmt_about_info_t *about_info, - int size); - -xge_hal_status_e -xge_hal_mgmt_hw_stats(xge_hal_device_h devh, xge_hal_mgmt_hw_stats_t *hw_stats, - int size); - -xge_hal_status_e -xge_hal_mgmt_hw_stats_off(xge_hal_device_h devh, int off, int size, char *out); - -xge_hal_status_e -xge_hal_mgmt_pcim_stats(xge_hal_device_h devh, - xge_hal_mgmt_pcim_stats_t *pcim_stats, int size); - -xge_hal_status_e -xge_hal_mgmt_pcim_stats_off(xge_hal_device_h devh, int off, int size, - char *out); - -xge_hal_status_e -xge_hal_mgmt_sw_stats(xge_hal_device_h devh, xge_hal_mgmt_sw_stats_t *hw_stats, - int size); - -xge_hal_status_e -xge_hal_mgmt_device_stats(xge_hal_device_h devh, - xge_hal_mgmt_device_stats_t *device_stats, int size); - -xge_hal_status_e -xge_hal_mgmt_channel_stats(xge_hal_channel_h channelh, - xge_hal_mgmt_channel_stats_t *channel_stats, int size); - -xge_hal_status_e -xge_hal_mgmt_reg_read(xge_hal_device_h devh, int bar_id, unsigned int offset, - u64 *value); - -xge_hal_status_e -xge_hal_mgmt_reg_write(xge_hal_device_h devh, int bar_id, unsigned int offset, - u64 value); - -xge_hal_status_e -xge_hal_mgmt_pcireg_read(xge_hal_device_h devh, unsigned int offset, - int bits, u32 *value); - -xge_hal_status_e -xge_hal_mgmt_device_config(xge_hal_device_h devh, - xge_hal_mgmt_device_config_t *dev_config, int size); - -xge_hal_status_e -xge_hal_mgmt_driver_config(xge_hal_mgmt_driver_config_t *drv_config, - int size); - -xge_hal_status_e -xge_hal_mgmt_pci_config(xge_hal_device_h devh, - xge_hal_mgmt_pci_config_t *pci_config, int size); - -xge_hal_status_e -xge_hal_pma_loopback( xge_hal_device_h devh, int enable ); - -xge_hal_status_e -xge_hal_rldram_test(xge_hal_device_h devh, u64 * data); - -u16 -xge_hal_mdio_read( xge_hal_device_h devh, u32 mmd_type, u64 addr ); - -xge_hal_status_e -xge_hal_mdio_write( xge_hal_device_h devh, u32 mmd_type, u64 addr, u32 value ); - -u32 -xge_hal_read_xfp_current_temp(xge_hal_device_h devh); - -xge_hal_status_e -xge_hal_read_eeprom(xge_hal_device_h devh, int off, u32* data); - -xge_hal_status_e -xge_hal_write_eeprom(xge_hal_device_h devh, int off, u32 data, int cnt); - -xge_hal_status_e -xge_hal_register_test(xge_hal_device_h devh, u64 *data); - -xge_hal_status_e -xge_hal_eeprom_test(xge_hal_device_h devh, u64 *data); - -xge_hal_status_e -xge_hal_bist_test(xge_hal_device_h devh, u64 *data); - -xge_hal_status_e -xge_hal_link_test(xge_hal_device_h devh, u64 *data); - -int -xge_hal_setpause_data(xge_hal_device_h devh, int tx, int rx); - -void -xge_hal_getpause_data(xge_hal_device_h devh, int *tx, int *rx); - -void -__hal_updt_stats_xpak(xge_hal_device_t *hldev); - -void -__hal_chk_xpak_counter(xge_hal_device_t *hldev, int type, u32 value); - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR -xge_hal_status_e -xge_hal_mgmt_trace_read(char *buffer, unsigned buf_size, unsigned *offset, - unsigned *read_length); -#endif - -void -xge_hal_restore_link_led(xge_hal_device_h devh); - - -void -xge_hal_flick_link_led(xge_hal_device_h devh); - -/* - * Some set of Xena3 Cards were known to have some link LED - * Problems. This macro identifies if the card is among them - * given its Sub system ID. - */ -#define CARDS_WITH_FAULTY_LINK_INDICATORS(subid) \ - ((((subid >= 0x600B) && (subid <= 0x600D)) || \ - ((subid >= 0x640B) && (subid <= 0x640D))) ? 1 : 0) -#define CHECKBIT(value, nbit) (value & (1 << nbit)) - -#ifdef XGE_HAL_USE_MGMT_AUX -#include -#endif - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_MGMT_H */ Property changes on: head/sys/dev/nxge/include/xgehal-mgmt.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-mgmtaux.h =================================================================== --- head/sys/dev/nxge/include/xgehal-mgmtaux.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-mgmtaux.h (nonexistent) @@ -1,89 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_MGMTAUX_H -#define XGE_HAL_MGMTAUX_H - -#include - -__EXTERN_BEGIN_DECLS - -#define XGE_HAL_AUX_SEPA ' ' - -xge_hal_status_e xge_hal_aux_about_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize); - -xge_hal_status_e xge_hal_aux_stats_tmac_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize); - -xge_hal_status_e xge_hal_aux_stats_rmac_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize); - -xge_hal_status_e xge_hal_aux_stats_sw_dev_read(xge_hal_device_h devh, - int bufsize, char *retbuf, int *retsize); - -xge_hal_status_e xge_hal_aux_stats_pci_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize); - -xge_hal_status_e xge_hal_aux_stats_hal_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize); - -xge_hal_status_e xge_hal_aux_bar0_read(xge_hal_device_h devh, - unsigned int offset, int bufsize, char *retbuf, - int *retsize); - -xge_hal_status_e xge_hal_aux_bar0_write(xge_hal_device_h devh, - unsigned int offset, u64 value); - -xge_hal_status_e xge_hal_aux_bar1_read(xge_hal_device_h devh, - unsigned int offset, int bufsize, char *retbuf, - int *retsize); - -xge_hal_status_e xge_hal_aux_pci_config_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize); - -xge_hal_status_e xge_hal_aux_stats_herc_enchanced(xge_hal_device_h devh, - int bufsize, char *retbuf, int *retsize); - -xge_hal_status_e xge_hal_aux_channel_read(xge_hal_device_h devh, int bufsize, - char *retbuf, int *retsize); - -xge_hal_status_e xge_hal_aux_device_dump(xge_hal_device_h devh); - - -xge_hal_status_e xge_hal_aux_driver_config_read(int bufsize, char *retbuf, - int *retsize); - -xge_hal_status_e xge_hal_aux_device_config_read(xge_hal_device_h devh, - int bufsize, char *retbuf, int *retsize); - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_MGMTAUX_H */ Property changes on: head/sys/dev/nxge/include/xgehal-mgmtaux.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-device.h =================================================================== --- head/sys/dev/nxge/include/xgehal-device.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-device.h (nonexistent) @@ -1,1012 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_DEVICE_H -#define XGE_HAL_DEVICE_H - -#include -#include -#include -#include -#include -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -#define XGE_HAL_VPD_LENGTH 80 -#define XGE_HAL_CARD_XENA_VPD_ADDR 0x50 -#define XGE_HAL_CARD_HERC_VPD_ADDR 0x80 -#define XGE_HAL_VPD_READ_COMPLETE 0x80 -#define XGE_HAL_VPD_BUFFER_SIZE 128 -#define XGE_HAL_DEVICE_XMSI_WAIT_MAX_MILLIS 500 -#define XGE_HAL_DEVICE_CMDMEM_WAIT_MAX_MILLIS 500 -#define XGE_HAL_DEVICE_QUIESCENT_WAIT_MAX_MILLIS 500 -#define XGE_HAL_DEVICE_FAULT_WAIT_MAX_MILLIS 50 -#define XGE_HAL_DEVICE_RESET_WAIT_MAX_MILLIS 250 -#define XGE_HAL_DEVICE_SPDM_READY_WAIT_MAX_MILLIS 250 /* TODO */ - -#define XGE_HAL_MAGIC 0x12345678 -#define XGE_HAL_DEAD 0xDEADDEAD -#define XGE_HAL_DUMP_BUF_SIZE 0x4000 - -#define XGE_HAL_LRO_MAX_BUCKETS 32 - -/** - * enum xge_hal_card_e - Xframe adapter type. - * @XGE_HAL_CARD_UNKNOWN: Unknown device. - * @XGE_HAL_CARD_XENA: Xframe I device. - * @XGE_HAL_CARD_HERC: Xframe II (PCI-266Mhz) device. - * @XGE_HAL_CARD_TITAN: Xframe ER (PCI-266Mhz) device. - * - * Enumerates Xframe adapter types. The corresponding PCI device - * IDs are listed in the file xgehal-defs.h. - * (See XGE_PCI_DEVICE_ID_XENA_1, etc.) - * - * See also: xge_hal_device_check_id(). - */ -typedef enum xge_hal_card_e { - XGE_HAL_CARD_UNKNOWN = 0, - XGE_HAL_CARD_XENA = 1, - XGE_HAL_CARD_HERC = 2, - XGE_HAL_CARD_TITAN = 3, -} xge_hal_card_e; - -/** - * struct xge_hal_device_attr_t - Device memory spaces. - * @regh0: BAR0 mapped memory handle (Solaris), or simply PCI device @pdev - * (Linux and the rest.) - * @regh1: BAR1 mapped memory handle. Same comment as above. - * @bar0: BAR0 virtual address. - * @bar1: BAR1 virtual address. - * @irqh: IRQ handle (Solaris). - * @cfgh: Configuration space handle (Solaris), or PCI device @pdev (Linux). - * @pdev: PCI device object. - * - * Device memory spaces. Includes configuration, BAR0, BAR1, etc. per device - * mapped memories. Also, includes a pointer to OS-specific PCI device object. - */ -typedef struct xge_hal_device_attr_t { - pci_reg_h regh0; - pci_reg_h regh1; - pci_reg_h regh2; - char *bar0; - char *bar1; - char *bar2; - pci_irq_h irqh; - pci_cfg_h cfgh; - pci_dev_h pdev; -} xge_hal_device_attr_t; - -/** - * enum xge_hal_device_link_state_e - Link state enumeration. - * @XGE_HAL_LINK_NONE: Invalid link state. - * @XGE_HAL_LINK_DOWN: Link is down. - * @XGE_HAL_LINK_UP: Link is up. - * - */ -typedef enum xge_hal_device_link_state_e { - XGE_HAL_LINK_NONE, - XGE_HAL_LINK_DOWN, - XGE_HAL_LINK_UP -} xge_hal_device_link_state_e; - - -/** - * enum xge_hal_pci_mode_e - PIC bus speed and mode specific enumeration. - * @XGE_HAL_PCI_33MHZ_MODE: 33 MHZ pci mode. - * @XGE_HAL_PCI_66MHZ_MODE: 66 MHZ pci mode. - * @XGE_HAL_PCIX_M1_66MHZ_MODE: PCIX M1 66MHZ mode. - * @XGE_HAL_PCIX_M1_100MHZ_MODE: PCIX M1 100MHZ mode. - * @XGE_HAL_PCIX_M1_133MHZ_MODE: PCIX M1 133MHZ mode. - * @XGE_HAL_PCIX_M2_66MHZ_MODE: PCIX M2 66MHZ mode. - * @XGE_HAL_PCIX_M2_100MHZ_MODE: PCIX M2 100MHZ mode. - * @XGE_HAL_PCIX_M2_133MHZ_MODE: PCIX M3 133MHZ mode. - * @XGE_HAL_PCIX_M1_RESERVED: PCIX M1 reserved mode. - * @XGE_HAL_PCIX_M1_66MHZ_NS: PCIX M1 66MHZ mode not supported. - * @XGE_HAL_PCIX_M1_100MHZ_NS: PCIX M1 100MHZ mode not supported. - * @XGE_HAL_PCIX_M1_133MHZ_NS: PCIX M1 133MHZ not supported. - * @XGE_HAL_PCIX_M2_RESERVED: PCIX M2 reserved. - * @XGE_HAL_PCIX_533_RESERVED: PCIX 533 reserved. - * @XGE_HAL_PCI_BASIC_MODE: PCI basic mode, XENA specific value. - * @XGE_HAL_PCIX_BASIC_MODE: PCIX basic mode, XENA specific value. - * @XGE_HAL_PCI_INVALID_MODE: Invalid PCI or PCIX mode. - * - */ -typedef enum xge_hal_pci_mode_e { - XGE_HAL_PCI_33MHZ_MODE = 0x0, - XGE_HAL_PCI_66MHZ_MODE = 0x1, - XGE_HAL_PCIX_M1_66MHZ_MODE = 0x2, - XGE_HAL_PCIX_M1_100MHZ_MODE = 0x3, - XGE_HAL_PCIX_M1_133MHZ_MODE = 0x4, - XGE_HAL_PCIX_M2_66MHZ_MODE = 0x5, - XGE_HAL_PCIX_M2_100MHZ_MODE = 0x6, - XGE_HAL_PCIX_M2_133MHZ_MODE = 0x7, - XGE_HAL_PCIX_M1_RESERVED = 0x8, - XGE_HAL_PCIX_M1_66MHZ_NS = 0xA, - XGE_HAL_PCIX_M1_100MHZ_NS = 0xB, - XGE_HAL_PCIX_M1_133MHZ_NS = 0xC, - XGE_HAL_PCIX_M2_RESERVED = 0xD, - XGE_HAL_PCIX_533_RESERVED = 0xE, - XGE_HAL_PCI_BASIC_MODE = 0x10, - XGE_HAL_PCIX_BASIC_MODE = 0x11, - XGE_HAL_PCI_INVALID_MODE = 0x12, -} xge_hal_pci_mode_e; - -/** - * enum xge_hal_pci_bus_frequency_e - PCI bus frequency enumeration. - * @XGE_HAL_PCI_BUS_FREQUENCY_33MHZ: PCI bus frequency 33MHZ - * @XGE_HAL_PCI_BUS_FREQUENCY_66MHZ: PCI bus frequency 66MHZ - * @XGE_HAL_PCI_BUS_FREQUENCY_100MHZ: PCI bus frequency 100MHZ - * @XGE_HAL_PCI_BUS_FREQUENCY_133MHZ: PCI bus frequency 133MHZ - * @XGE_HAL_PCI_BUS_FREQUENCY_200MHZ: PCI bus frequency 200MHZ - * @XGE_HAL_PCI_BUS_FREQUENCY_250MHZ: PCI bus frequency 250MHZ - * @XGE_HAL_PCI_BUS_FREQUENCY_266MHZ: PCI bus frequency 266MHZ - * @XGE_HAL_PCI_BUS_FREQUENCY_UNKNOWN: Unrecognized PCI bus frequency value. - * - */ -typedef enum xge_hal_pci_bus_frequency_e { - XGE_HAL_PCI_BUS_FREQUENCY_33MHZ = 33, - XGE_HAL_PCI_BUS_FREQUENCY_66MHZ = 66, - XGE_HAL_PCI_BUS_FREQUENCY_100MHZ = 100, - XGE_HAL_PCI_BUS_FREQUENCY_133MHZ = 133, - XGE_HAL_PCI_BUS_FREQUENCY_200MHZ = 200, - XGE_HAL_PCI_BUS_FREQUENCY_250MHZ = 250, - XGE_HAL_PCI_BUS_FREQUENCY_266MHZ = 266, - XGE_HAL_PCI_BUS_FREQUENCY_UNKNOWN = 0 -} xge_hal_pci_bus_frequency_e; - -/** - * enum xge_hal_pci_bus_width_e - PCI bus width enumeration. - * @XGE_HAL_PCI_BUS_WIDTH_64BIT: 64 bit bus width. - * @XGE_HAL_PCI_BUS_WIDTH_32BIT: 32 bit bus width. - * @XGE_HAL_PCI_BUS_WIDTH_UNKNOWN: unknown bus width. - * - */ -typedef enum xge_hal_pci_bus_width_e { - XGE_HAL_PCI_BUS_WIDTH_64BIT = 0, - XGE_HAL_PCI_BUS_WIDTH_32BIT = 1, - XGE_HAL_PCI_BUS_WIDTH_UNKNOWN = 2, -} xge_hal_pci_bus_width_e; - -#if defined (XGE_HAL_CONFIG_LRO) - -#define IP_TOTAL_LENGTH_OFFSET 2 -#define IP_FAST_PATH_HDR_MASK 0x45 -#define TCP_FAST_PATH_HDR_MASK1 0x50 -#define TCP_FAST_PATH_HDR_MASK2 0x10 -#define TCP_FAST_PATH_HDR_MASK3 0x18 -#define IP_SOURCE_ADDRESS_OFFSET 12 -#define IP_DESTINATION_ADDRESS_OFFSET 16 -#define TCP_DESTINATION_PORT_OFFSET 2 -#define TCP_SOURCE_PORT_OFFSET 0 -#define TCP_DATA_OFFSET_OFFSET 12 -#define TCP_WINDOW_OFFSET 14 -#define TCP_SEQUENCE_NUMBER_OFFSET 4 -#define TCP_ACKNOWLEDGEMENT_NUMBER_OFFSET 8 - -typedef struct tcplro { - u16 source; - u16 dest; - u32 seq; - u32 ack_seq; - u8 doff_res; - u8 ctrl; - u16 window; - u16 check; - u16 urg_ptr; -} tcplro_t; - -typedef struct iplro { - u8 version_ihl; - u8 tos; - u16 tot_len; - u16 id; - u16 frag_off; - u8 ttl; - u8 protocol; - u16 check; - u32 saddr; - u32 daddr; - /*The options start here. */ -} iplro_t; - -/* - * LRO object, one per each LRO session. -*/ -typedef struct lro { - /* non-linear: contains scatter-gather list of - xframe-mapped received buffers */ - OS_NETSTACK_BUF os_buf; - OS_NETSTACK_BUF os_buf_end; - - /* link layer header of the first frame; - remains intack throughout the processing */ - u8 *ll_hdr; - - /* IP header - gets _collapsed_ */ - iplro_t *ip_hdr; - - /* transport header - gets _collapsed_ */ - tcplro_t *tcp_hdr; - - /* Next tcp sequence number */ - u32 tcp_next_seq_num; - /* Current tcp seq & ack */ - u32 tcp_seq_num; - u32 tcp_ack_num; - - /* total number of accumulated (so far) frames */ - int sg_num; - - /* total data length */ - int total_length; - - /* receive side hash value, available from Hercules */ - u32 rth_value; - - /* In use */ - u8 in_use; - - /* Total length of the fragments clubbed with the inital frame */ - u32 frags_len; - - /* LRO frame contains time stamp, if (ts_off != -1) */ - int ts_off; - -} lro_t; -#endif - -/* - * xge_hal_spdm_entry_t - * - * Represents a single spdm entry in the SPDM table. - */ -typedef struct xge_hal_spdm_entry_t { - xge_hal_ipaddr_t src_ip; - xge_hal_ipaddr_t dst_ip; - u32 jhash_value; - u16 l4_sp; - u16 l4_dp; - u16 spdm_entry; - u8 in_use; - u8 is_tcp; - u8 is_ipv4; - u8 tgt_queue; -} xge_hal_spdm_entry_t; - -#if defined(XGE_HAL_CONFIG_LRO) -typedef struct { - lro_t lro_pool[XGE_HAL_LRO_MAX_BUCKETS]; - int lro_next_idx; - lro_t *lro_recent; -} xge_hal_lro_desc_t; -#endif -/* - * xge_hal_vpd_data_t - * - * Represents vpd capabilty structure - */ -typedef struct xge_hal_vpd_data_t { - u8 product_name[XGE_HAL_VPD_LENGTH]; - u8 serial_num[XGE_HAL_VPD_LENGTH]; -} xge_hal_vpd_data_t; - -/* - * xge_hal_device_t - * - * HAL device object. Represents Xframe. - */ -typedef struct { - unsigned int magic; - pci_reg_h regh0; - pci_reg_h regh1; - pci_reg_h regh2; - char *bar0; - char *isrbar0; - char *bar1; - char *bar2; - pci_irq_h irqh; - pci_cfg_h cfgh; - pci_dev_h pdev; - xge_hal_pci_config_t pci_config_space; - xge_hal_pci_config_t pci_config_space_bios; - xge_hal_device_config_t config; - xge_list_t free_channels; - xge_list_t fifo_channels; - xge_list_t ring_channels; - volatile int is_initialized; - volatile int terminating; - xge_hal_stats_t stats; - macaddr_t macaddr[1]; - xge_queue_h queueh; - volatile int mcast_refcnt; - int is_promisc; - volatile xge_hal_device_link_state_e link_state; - void *upper_layer_info; - xge_hal_device_attr_t orig_attr; - u16 device_id; - u8 revision; - int msi_enabled; - int hw_is_initialized; - u64 inject_serr; - u64 inject_ecc; - u8 inject_bad_tcode; - int inject_bad_tcode_for_chan_type; - int reset_needed_after_close; - int tti_enabled; - xge_hal_tti_config_t bimodal_tti[XGE_HAL_MAX_RING_NUM]; - int bimodal_timer_val_us; - int bimodal_urange_a_en; - int bimodal_intr_cnt; - char *spdm_mem_base; - u16 spdm_max_entries; - xge_hal_spdm_entry_t **spdm_table; - spinlock_t spdm_lock; -#if defined(XGE_HAL_CONFIG_LRO) - xge_hal_lro_desc_t lro_desc[XGE_HAL_MAX_RING_NUM]; -#endif - spinlock_t xena_post_lock; - - /* bimodal workload stats */ - int irq_workload_rxd[XGE_HAL_MAX_RING_NUM]; - int irq_workload_rxcnt[XGE_HAL_MAX_RING_NUM]; - int irq_workload_rxlen[XGE_HAL_MAX_RING_NUM]; - int irq_workload_txd[XGE_HAL_MAX_FIFO_NUM]; - int irq_workload_txcnt[XGE_HAL_MAX_FIFO_NUM]; - int irq_workload_txlen[XGE_HAL_MAX_FIFO_NUM]; - - int mtu_first_time_set; - u64 rxufca_lbolt; - u64 rxufca_lbolt_time; - u64 rxufca_intr_thres; - char* dump_buf; - xge_hal_pci_mode_e pci_mode; - xge_hal_pci_bus_frequency_e bus_frequency; - xge_hal_pci_bus_width_e bus_width; - xge_hal_vpd_data_t vpd_data; - volatile int in_poll; - u64 msix_vector_table[XGE_HAL_MAX_MSIX_MESSAGES_WITH_ADDR]; -} xge_hal_device_t; - - -/* ========================== PRIVATE API ================================= */ - -void -__hal_device_event_queued(void *data, int event_type); - -xge_hal_status_e -__hal_device_set_swapper(xge_hal_device_t *hldev); - -xge_hal_status_e -__hal_device_rth_it_configure(xge_hal_device_t *hldev); - -xge_hal_status_e -__hal_device_rth_spdm_configure(xge_hal_device_t *hldev); - -xge_hal_status_e -__hal_verify_pcc_idle(xge_hal_device_t *hldev, u64 adp_status); - -xge_hal_status_e -__hal_device_handle_pic(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_read_spdm_entry_line(xge_hal_device_t *hldev, u8 spdm_line, - u16 spdm_entry, u64 *spdm_line_val); - -void __hal_pio_mem_write32_upper(pci_dev_h pdev, pci_reg_h regh, u32 val, - void *addr); - -void __hal_pio_mem_write32_lower(pci_dev_h pdev, pci_reg_h regh, u32 val, - void *addr); -void __hal_device_get_vpd_data(xge_hal_device_t *hldev); - -xge_hal_status_e -__hal_device_handle_txpic(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_device_handle_txdma(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_device_handle_txmac(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_device_handle_txxgxs(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_device_handle_rxpic(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_device_handle_rxdma(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_device_handle_rxmac(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_device_handle_rxxgxs(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_device_handle_mc(xge_hal_device_t *hldev, u64 reason); - -xge_hal_status_e -__hal_device_register_poll(xge_hal_device_t *hldev, u64 *reg, int op, u64 mask, - int max_millis); -xge_hal_status_e -__hal_device_rts_mac_configure(xge_hal_device_t *hldev); - -xge_hal_status_e -__hal_device_rts_qos_configure(xge_hal_device_t *hldev); - -xge_hal_status_e -__hal_device_rts_port_configure(xge_hal_device_t *hldev); - -xge_hal_status_e -__hal_device_rti_configure(xge_hal_device_t *hldev, int runtime); - -void -__hal_device_msi_intr_endis(xge_hal_device_t *hldev, int flag); - -void -__hal_device_msix_intr_endis(xge_hal_device_t *hldev, - xge_hal_channel_t *channel, int flag); - -/* =========================== PUBLIC API ================================= */ - -unsigned int -__hal_fix_time_ival_herc(xge_hal_device_t *hldev, - unsigned int time_ival); -xge_hal_status_e -xge_hal_rts_rth_itable_set(xge_hal_device_t *hldev, u8 *itable, - u32 itable_size); - -void -xge_hal_rts_rth_set(xge_hal_device_t *hldev, u8 def_q, u64 hash_type, - u16 bucket_size); - -void -xge_hal_rts_rth_init(xge_hal_device_t *hldev); - -void -xge_hal_rts_rth_clr(xge_hal_device_t *hldev); - -void -xge_hal_rts_rth_start(xge_hal_device_t *hldev); - -void -xge_hal_rts_rth_stop(xge_hal_device_t *hldev); - -void -xge_hal_device_rts_rth_key_set(xge_hal_device_t *hldev, u8 KeySize, u8 *Key); - -xge_hal_status_e -xge_hal_device_rts_mac_enable(xge_hal_device_h devh, int index, macaddr_t macaddr); - -xge_hal_status_e -xge_hal_device_rts_mac_disable(xge_hal_device_h devh, int index); - -int xge_hal_reinitialize_hw(xge_hal_device_t * hldev); - -xge_hal_status_e xge_hal_fix_rldram_ecc_error(xge_hal_device_t * hldev); -/** - * xge_hal_device_rti_reconfigure - * @hldev: Hal Device - */ -static inline xge_hal_status_e -xge_hal_device_rti_reconfigure(xge_hal_device_t *hldev) -{ - return __hal_device_rti_configure(hldev, 1); -} - -/** - * xge_hal_device_rts_port_reconfigure - * @hldev: Hal Device - */ -static inline xge_hal_status_e -xge_hal_device_rts_port_reconfigure(xge_hal_device_t *hldev) -{ - return __hal_device_rts_port_configure(hldev); -} - -/** - * xge_hal_device_is_initialized - Returns 0 if device is not - * initialized, non-zero otherwise. - * @devh: HAL device handle. - * - * Returns 0 if device is not initialized, non-zero otherwise. - */ -static inline int -xge_hal_device_is_initialized(xge_hal_device_h devh) -{ - return ((xge_hal_device_t*)devh)->is_initialized; -} - - -/** - * xge_hal_device_in_poll - non-zero, if xge_hal_device_poll() is executing. - * @devh: HAL device handle. - * - * Returns non-zero if xge_hal_device_poll() is executing, and 0 - otherwise. - */ -static inline int -xge_hal_device_in_poll(xge_hal_device_h devh) -{ - return ((xge_hal_device_t*)devh)->in_poll; -} - - -/** - * xge_hal_device_inject_ecc - Inject ECC error. - * @devh: HAL device, pointer to xge_hal_device_t structure. - * @err_reg: Contains the error register. - * - * This function is used to inject ECC error into the driver flow. - * This facility can be used to test the driver flow in the - * case of ECC error is reported by the firmware. - * - * Returns: void - * See also: xge_hal_device_inject_serr(), - * xge_hal_device_inject_bad_tcode() - */ -static inline void -xge_hal_device_inject_ecc(xge_hal_device_h devh, u64 err_reg) -{ - ((xge_hal_device_t*)devh)->inject_ecc = err_reg; -} - - -/** - * xge_hal_device_inject_serr - Inject SERR error. - * @devh: HAL device, pointer to xge_hal_device_t structure. - * @err_reg: Contains the error register. - * - * This function is used to inject SERR error into the driver flow. - * This facility can be used to test the driver flow in the - * case of SERR error is reported by firmware. - * - * Returns: void - * See also: xge_hal_device_inject_ecc(), - * xge_hal_device_inject_bad_tcode() - */ -static inline void -xge_hal_device_inject_serr(xge_hal_device_h devh, u64 err_reg) -{ - ((xge_hal_device_t*)devh)->inject_serr = err_reg; -} - - -/** - * xge_hal_device_inject_bad_tcode - Inject Bad transfer code. - * @devh: HAL device, pointer to xge_hal_device_t structure. - * @chan_type: Channel type (fifo/ring). - * @t_code: Transfer code. - * - * This function is used to inject bad (Tx/Rx Data)transfer code - * into the driver flow. - * - * This facility can be used to test the driver flow in the - * case of bad transfer code reported by firmware for a Tx/Rx data - * transfer. - * - * Returns: void - * See also: xge_hal_device_inject_ecc(), xge_hal_device_inject_serr() - */ -static inline void -xge_hal_device_inject_bad_tcode(xge_hal_device_h devh, int chan_type, u8 t_code) -{ - ((xge_hal_device_t*)devh)->inject_bad_tcode_for_chan_type = chan_type; - ((xge_hal_device_t*)devh)->inject_bad_tcode = t_code; -} - -void xge_hal_device_msi_enable(xge_hal_device_h devh); - -/* - * xge_hal_device_msi_mode - Is MSI enabled? - * @devh: HAL device handle. - * - * Returns 0 if MSI is enabled for the specified device, - * non-zero otherwise. - */ -static inline int -xge_hal_device_msi_mode(xge_hal_device_h devh) -{ - return ((xge_hal_device_t*)devh)->msi_enabled; -} - -/** - * xge_hal_device_queue - Get per-device event queue. - * @devh: HAL device handle. - * - * Returns: event queue associated with the specified HAL device. - */ -static inline xge_queue_h -xge_hal_device_queue (xge_hal_device_h devh) -{ - return ((xge_hal_device_t*)devh)->queueh; -} - -/** - * xge_hal_device_attr - Get original (user-specified) device - * attributes. - * @devh: HAL device handle. - * - * Returns: original (user-specified) device attributes. - */ -static inline xge_hal_device_attr_t* -xge_hal_device_attr(xge_hal_device_h devh) -{ - return &((xge_hal_device_t*)devh)->orig_attr; -} - -/** - * xge_hal_device_private_set - Set ULD context. - * @devh: HAL device handle. - * @data: pointer to ULD context - * - * Use HAL device to set upper-layer driver (ULD) context. - * - * See also: xge_hal_device_from_private(), xge_hal_device_private() - */ -static inline void -xge_hal_device_private_set(xge_hal_device_h devh, void *data) -{ - ((xge_hal_device_t*)devh)->upper_layer_info = data; -} - -/** - * xge_hal_device_private - Get ULD context. - * @devh: HAL device handle. - * - * Use HAL device to get upper-layer driver (ULD) context. - * - * Returns: ULD context. - * - * See also: xge_hal_device_from_private(), xge_hal_device_private_set() - */ -static inline void* -xge_hal_device_private(xge_hal_device_h devh) -{ - return ((xge_hal_device_t*)devh)->upper_layer_info; -} - -/** - * xge_hal_device_from_private - Get HAL device object from private. - * @info_ptr: ULD context. - * - * Use ULD context to get HAL device. - * - * Returns: Device handle. - * - * See also: xge_hal_device_private(), xge_hal_device_private_set() - */ -static inline xge_hal_device_h -xge_hal_device_from_private(void *info_ptr) -{ - return xge_container_of((void ** ) info_ptr, xge_hal_device_t, - upper_layer_info); -} - -/** - * xge_hal_device_mtu_check - check MTU value for ranges - * @hldev: the device - * @new_mtu: new MTU value to check - * - * Will do sanity check for new MTU value. - * - * Returns: XGE_HAL_OK - success. - * XGE_HAL_ERR_INVALID_MTU_SIZE - MTU is invalid. - * - * See also: xge_hal_device_mtu_set() - */ -static inline xge_hal_status_e -xge_hal_device_mtu_check(xge_hal_device_t *hldev, int new_mtu) -{ - if ((new_mtu < XGE_HAL_MIN_MTU) || (new_mtu > XGE_HAL_MAX_MTU)) { - return XGE_HAL_ERR_INVALID_MTU_SIZE; - } - - return XGE_HAL_OK; -} - -void xge_hal_device_bcast_enable(xge_hal_device_h devh); - -void xge_hal_device_bcast_disable(xge_hal_device_h devh); - -void xge_hal_device_terminating(xge_hal_device_h devh); - -xge_hal_status_e xge_hal_device_initialize(xge_hal_device_t *hldev, - xge_hal_device_attr_t *attr, xge_hal_device_config_t *config); - -void xge_hal_device_terminate(xge_hal_device_t *hldev); - -xge_hal_status_e xge_hal_device_reset(xge_hal_device_t *hldev); - -xge_hal_status_e xge_hal_device_macaddr_get(xge_hal_device_t *hldev, - int index, macaddr_t *macaddr); - -xge_hal_status_e xge_hal_device_macaddr_set(xge_hal_device_t *hldev, - int index, macaddr_t macaddr); - -xge_hal_status_e xge_hal_device_macaddr_clear(xge_hal_device_t *hldev, - int index); - -int xge_hal_device_macaddr_find(xge_hal_device_t *hldev, macaddr_t wanted); - -xge_hal_status_e xge_hal_device_mtu_set(xge_hal_device_t *hldev, int new_mtu); - -xge_hal_status_e xge_hal_device_status(xge_hal_device_t *hldev, u64 *hw_status); - -void xge_hal_device_intr_enable(xge_hal_device_t *hldev); - -void xge_hal_device_intr_disable(xge_hal_device_t *hldev); - -xge_hal_status_e xge_hal_device_mcast_enable(xge_hal_device_t *hldev); - -xge_hal_status_e xge_hal_device_mcast_disable(xge_hal_device_t *hldev); - -void xge_hal_device_promisc_enable(xge_hal_device_t *hldev); - -void xge_hal_device_promisc_disable(xge_hal_device_t *hldev); - -xge_hal_status_e xge_hal_device_disable(xge_hal_device_t *hldev); - -xge_hal_status_e xge_hal_device_enable(xge_hal_device_t *hldev); - -xge_hal_status_e xge_hal_device_handle_tcode(xge_hal_channel_h channelh, - xge_hal_dtr_h dtrh, - u8 t_code); - -xge_hal_status_e xge_hal_device_link_state(xge_hal_device_h devh, - xge_hal_device_link_state_e *ls); - -void xge_hal_device_sched_timer(xge_hal_device_h devh, int interval_us, - int one_shot); - -void xge_hal_device_poll(xge_hal_device_h devh); - -xge_hal_card_e xge_hal_device_check_id(xge_hal_device_h devh); - -int xge_hal_device_is_slot_freeze(xge_hal_device_h devh); - -xge_hal_status_e -xge_hal_device_pci_info_get(xge_hal_device_h devh, xge_hal_pci_mode_e *pci_mode, - xge_hal_pci_bus_frequency_e *bus_frequency, - xge_hal_pci_bus_width_e *bus_width); - -xge_hal_status_e -xge_hal_spdm_entry_add(xge_hal_device_h devh, xge_hal_ipaddr_t *src_ip, - xge_hal_ipaddr_t *dst_ip, u16 l4_sp, u16 l4_dp, - u8 is_tcp, u8 is_ipv4, u8 tgt_queue); - -xge_hal_status_e -xge_hal_spdm_entry_remove(xge_hal_device_h devh, xge_hal_ipaddr_t *src_ip, - xge_hal_ipaddr_t *dst_ip, u16 l4_sp, u16 l4_dp, - u8 is_tcp, u8 is_ipv4); - -xge_hal_status_e -xge_hal_device_rts_section_enable(xge_hal_device_h devh, int index); - -int -xge_hal_device_is_closed (xge_hal_device_h devh); - -/* private functions, don't use them in ULD */ - -void __hal_serial_mem_write64(xge_hal_device_t *hldev, u64 value, u64 *reg); - -u64 __hal_serial_mem_read64(xge_hal_device_t *hldev, u64 *reg); - - -/* Some function protoypes for MSI implementation. */ -xge_hal_status_e -xge_hal_channel_msi_set (xge_hal_channel_h channelh, int msi, - u32 msg_val); -void -xge_hal_mask_msi(xge_hal_device_t *hldev); - -void -xge_hal_unmask_msi(xge_hal_channel_h channelh); - -xge_hal_status_e -xge_hal_channel_msix_set(xge_hal_channel_h channelh, int msix_idx); - -xge_hal_status_e -xge_hal_mask_msix(xge_hal_device_h devh, int msi_id); - -xge_hal_status_e -xge_hal_unmask_msix(xge_hal_device_h devh, int msi_id); - -#if defined(XGE_HAL_CONFIG_LRO) -xge_hal_status_e -xge_hal_lro_init(u32 lro_scale, xge_hal_device_t *hldev); - -void -xge_hal_lro_terminate(u32 lro_scale, xge_hal_device_t *hldev); -#endif - -#if defined(XGE_DEBUG_FP) && (XGE_DEBUG_FP & XGE_DEBUG_FP_DEVICE) -#define __HAL_STATIC_DEVICE -#define __HAL_INLINE_DEVICE - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE int -xge_hal_device_rev(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_begin_irq(xge_hal_device_t *hldev, u64 *reason); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_clear_rx(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_clear_tx(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_continue_irq(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_handle_irq(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE char * -xge_hal_device_bar0(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE char * -xge_hal_device_isrbar0(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE char * -xge_hal_device_bar1(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_bar0_set(xge_hal_device_t *hldev, char *bar0); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_isrbar0_set(xge_hal_device_t *hldev, char *isrbar0); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_bar1_set(xge_hal_device_t *hldev, xge_hal_channel_h channelh, - char *bar1); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_mask_tx(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_mask_rx(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_mask_all(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_unmask_tx(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_unmask_rx(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE void -xge_hal_device_unmask_all(xge_hal_device_t *hldev); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_poll_tx_channels(xge_hal_device_t *hldev, int *got_tx); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_poll_rx_channels(xge_hal_device_t *hldev, int *got_rx); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_poll_rx_channel(xge_hal_channel_t *channel, int *got_rx); - -__HAL_STATIC_DEVICE __HAL_INLINE_DEVICE xge_hal_status_e -xge_hal_device_poll_tx_channel(xge_hal_channel_t *channel, int *got_tx); - -#if defined (XGE_HAL_CONFIG_LRO) -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL u8 -__hal_header_parse_token_u8(u8 *string,u16 offset); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL u16 -__hal_header_parse_token_u16(u8 *string,u16 offset); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL u32 -__hal_header_parse_token_u32(u8 *string,u16 offset); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_header_update_u8(u8 *string, u16 offset, u8 val); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_header_update_u16(u8 *string, u16 offset, u16 val); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_header_update_u32(u8 *string, u16 offset, u32 val); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL u16 -__hal_tcp_seg_len(iplro_t *ip, tcplro_t *tcp); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_ip_lro_capable(iplro_t *ip, xge_hal_dtr_info_t *ext_info); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_tcp_lro_capable(iplro_t *ip, tcplro_t *tcp, lro_t *lro, int *ts_off); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_lro_capable(u8 *buffer, iplro_t **ip, tcplro_t **tcp, - xge_hal_dtr_info_t *ext_info); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_get_lro_session(u8 *eth_hdr, iplro_t *ip, tcplro_t *tcp, lro_t **lro, - xge_hal_dtr_info_t *ext_info, xge_hal_device_t *hldev, - xge_hal_lro_desc_t *ring_lro, lro_t **lro_end3); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_lro_under_optimal_thresh(iplro_t *ip, tcplro_t *tcp, lro_t *lro, - xge_hal_device_t *hldev); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_collapse_ip_hdr(iplro_t *ip, tcplro_t *tcp, lro_t *lro, - xge_hal_device_t *hldev); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_collapse_tcp_hdr(iplro_t *ip, tcplro_t *tcp, lro_t *lro, - xge_hal_device_t *hldev); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_append_lro(iplro_t *ip, tcplro_t **tcp, u32 *seg_len, lro_t *lro, - xge_hal_device_t *hldev); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -xge_hal_lro_process_rx(int ring, u8 *eth_hdr, u8 *ip_hdr, tcplro_t **tcp, - u32 *seglen, lro_t **p_lro, - xge_hal_dtr_info_t *ext_info, xge_hal_device_t *hldev, - lro_t **lro_end3); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -xge_hal_accumulate_large_rx(u8 *buffer, tcplro_t **tcp, u32 *seglen, - lro_t **lro, xge_hal_dtr_info_t *ext_info, - xge_hal_device_t *hldev, lro_t **lro_end3); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL lro_t * -xge_hal_lro_next_session (xge_hal_device_t *hldev, int ring); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL lro_t * -xge_hal_lro_get_next_session(xge_hal_device_t *hldev); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_open_lro_session (u8 *buffer, iplro_t *ip, tcplro_t *tcp, lro_t **lro, - xge_hal_device_t *hldev, xge_hal_lro_desc_t *ring_lro, - int slot, u32 tcp_seg_len, int ts_off); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL int -__hal_lro_get_free_slot (xge_hal_lro_desc_t *ring_lro); -#endif - -#else /* XGE_FASTPATH_EXTERN */ -#define __HAL_STATIC_DEVICE static -#define __HAL_INLINE_DEVICE inline -#include -#endif /* XGE_FASTPATH_INLINE */ - - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_DEVICE_H */ Property changes on: head/sys/dev/nxge/include/xgehal-device.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-driver.h =================================================================== --- head/sys/dev/nxge/include/xgehal-driver.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-driver.h (nonexistent) @@ -1,316 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_DRIVER_H -#define XGE_HAL_DRIVER_H - -#include -#include -#include -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -/* maximum number of events consumed in a syncle poll() cycle */ -#define XGE_HAL_DRIVER_QUEUE_CONSUME_MAX 5 - - -/** - * function xge_uld_sched_timer_cb_f - Per-device periodic timer - * callback. - * @devh: HAL device handle. - * @userdata: Per-device user data (a.k.a. context) specified via - * xge_hal_device_initialize(). - * - * Periodic or one-shot timer callback. If specified (that is, not NULL) - * HAL invokes this callback periodically. The call is performed in the - * interrupt context, or more exactly, in the context of HAL's ISR - * xge_hal_device_continue_irq(). - * - * See also: xge_hal_device_initialize{} - */ -typedef void (*xge_uld_sched_timer_cb_f)(xge_hal_device_h devh, void *userdata); - -/** - * function xge_uld_link_up_f - Link-Up callback provided by upper-layer - * driver. - * @userdata: Opaque context set by the ULD via - * xge_hal_device_private_set() - * (typically - at HAL device iinitialization time). - * - * Link-up notification callback provided by the ULD. - * This is one of the per-driver callbacks, see xge_hal_uld_cbs_t{}. - * - * See also: xge_hal_uld_cbs_t{}, xge_uld_link_down_f{}, - * xge_hal_driver_initialize(), xge_hal_device_private_set(). - */ -typedef void (*xge_uld_link_up_f) (void *userdata); - -/** - * function xge_uld_link_down_f - Link-Down callback provided by - * upper-layer driver. - * @userdata: Opaque context set by the ULD via - * xge_hal_device_private_set() - * (typically - at HAL device iinitialization time). - * - * Link-Down notification callback provided by the upper-layer driver. - * This is one of the per-driver callbacks, see xge_hal_uld_cbs_t{}. - * - * See also: xge_hal_uld_cbs_t{}, xge_uld_link_up_f{}, - * xge_hal_driver_initialize(), xge_hal_device_private_set(). - */ -typedef void (*xge_uld_link_down_f) (void *userdata); - -/** - * function xge_uld_crit_err_f - Critical Error notification callback. - * @userdata: Opaque context set by the ULD via - * xge_hal_device_private_set() - * (typically - at HAL device iinitialization time). - * @type: Enumerated hw error, e.g.: double ECC. - * @serr_data: Xframe status. - * @ext_data: Extended data. The contents depends on the @type. - * - * Link-Down notification callback provided by the upper-layer driver. - * This is one of the per-driver callbacks, see xge_hal_uld_cbs_t{}. - * - * See also: xge_hal_uld_cbs_t{}, xge_hal_event_e{}, - * xge_hal_device_private_set(), xge_hal_driver_initialize(). - */ -typedef void (*xge_uld_crit_err_f) (void *userdata, xge_hal_event_e type, - u64 ext_data); - -/** - * function xge_uld_event_queued_f - Event-enqueued notification - * callback. - * @devh: HAL device handle. - * @event_type: HAL- or ULD-defined event type. Note that HAL - * events are enumerated by xge_hal_event_e{}. - * - * "Event-was-enqueued" notification callback provided by the upper-layer - * driver. The callback is invoked (if defined, i.e., not NULL in the - * xge_hal_uld_cbs_t{} structure) each time immediately after an event - * is enqueued. - * - * See also: xge_hal_uld_cbs_t{}, xge_hal_device_private_set(), - * xge_hal_driver_initialize(). - */ -typedef void (*xge_uld_event_queued_f) (xge_hal_device_h devh, int event_type); - -/** - * function xge_uld_event_f - ULD event callback. - * @item: ULD-defined event, item of the xge_queue_t. - * - * ULD event callback. - * Upper-layer driver can use HAL queue to serialize certain slow-path - * events. HAL periodically polls the queue as part of the - * xge_hal_device_poll() processing. When/if HAL discovers in the queue - * an unkown event type it simply invokes the event callback - * (which must be non-NULL and supplied by the ULD in this case). - * - * See also: xge_hal_uld_cbs_t{}, xge_hal_device_poll(), xge_queue_t{}, - * xge_hal_driver_initialize(), xge_queue_item_t{}. - */ -typedef void (*xge_uld_event_f) (xge_queue_item_t *item); - -/** - * function xge_uld_before_device_poll_f - ULD "before-poll" callback. - * @devh: HAL device handle. - * - * HAL invokes the callback from inside its xge_hal_device_poll() - * implementation %prior to accessing the @devh device. This allows ULD to - * perform per-device locking and/or context mapping, if required.. - * The interface is currently used by AIX driver only. - * To avoid using/implementing the callback set the corresponding field - * in the xge_hal_uld_cbs_t{} structure to NULL. - * - * Returns: 0 on success, non-zero on failure. - * - * See also: xge_hal_driver_initialize(), xge_hal_uld_cbs_t{}, - * xge_hal_device_poll(). - */ -typedef int (*xge_uld_before_device_poll_f) (xge_hal_device_h devh); - -/** - * function xge_uld_after_device_poll_f - ULD "after-poll" callback. - * @devh: HAL device handle. - * - * Unless NULL is specified, - * HAL invokes the callback from inside its xge_hal_device_poll() - * implementation immediately %after it has completed polling the @devh - * device. This allows ULD to undo the affects of - * xge_uld_before_device_poll_f{}. - * The interface is currently used by AIX driver only. - * - * See also: xge_hal_driver_initialize(), xge_hal_uld_cbs_t{}, - * xge_hal_device_poll(). - */ -typedef void (*xge_uld_after_device_poll_f) (xge_hal_device_h devh); - -/** - * function xge_uld_xpak_alarm_log_f - ULD "XPAK alarm log" callback. - * @devh: HAL device handle. - * @type: TODO - * - * Unless NULL is specified, - * HAL invokes the callback from inside __hal_chk_xpak_counter() - */ -typedef void (*xge_uld_xpak_alarm_log_f) (xge_hal_device_h devh, xge_hal_xpak_alarm_type_e type); - -/** - * struct xge_hal_uld_cbs_t - Upper-layer driver "slow-path" callbacks. - * @link_up: See xge_uld_link_up_f{}. - * @link_down: See xge_uld_link_down_f{}. - * @crit_err: See xge_uld_crit_err_f{}. - * @event: See xge_uld_event_f{}. - * @event_queued: See xge_uld_event_queued_f{}. - * @before_device_poll: See xge_uld_before_device_poll_f{}. - * @after_device_poll: See xge_uld_after_device_poll_f{}. - * @sched_timer: See xge_uld_sched_timer_cb_f{}. - * @xpak_alarm_log: TODO - * - * Upper layer driver slow-path (per-driver) callbacks. - * Implemented by ULD and provided to HAL via - * xge_hal_driver_initialize(). - * Note that these callbacks are not mandatory: HAL will not invoke - * a callback if NULL is specified. - * - * Note that in addition to those, there are curently 2 per-channel callbacks - * (completion and abort) specified at channel open time - * via xge_hal_channel_open(). - * - * See also: xge_hal_driver_initialize(). - */ -typedef struct xge_hal_uld_cbs_t { - xge_uld_link_up_f link_up; - xge_uld_link_down_f link_down; - xge_uld_crit_err_f crit_err; - xge_uld_event_f event; - xge_uld_event_queued_f event_queued; - xge_uld_before_device_poll_f before_device_poll; - xge_uld_after_device_poll_f after_device_poll; - xge_uld_sched_timer_cb_f sched_timer; - xge_uld_xpak_alarm_log_f xpak_alarm_log; -} xge_hal_uld_cbs_t; - -/** - * struct xge_hal_driver_t - Represents HAL object. - * @config: HAL configuration. - * @devices: List of all PCI-enumerated Xframe devices in the system. - * A single xge_hal_driver_t instance contains zero or more - * Xframe devices. - * @devices_lock: Lock to protect %devices when inserting/removing. - * @is_initialized: True if HAL is initialized; false otherwise. - * @uld_callbacks: Upper-layer driver callbacks. See xge_hal_uld_cbs_t{}. - * @debug_module_mask: 32bit mask that defines which components of the - * driver are to be traced. The trace-able components are: - * XGE_COMPONENT_HAL_CONFIG 0x1 - * XGE_COMPONENT_HAL_FIFO 0x2 - * XGE_COMPONENT_HAL_RING 0x4 - * XGE_COMPONENT_HAL_CHANNEL 0x8 - * XGE_COMPONENT_HAL_DEVICE 0x10 - * XGE_COMPONENT_HAL_MM 0x20 - * XGE_COMPONENT_HAL_QUEUE 0x40 - * XGE_COMPONENT_HAL_STATS 0x100 - * XGE_COMPONENT_OSDEP 0x1000 - * XGE_COMPONENT_LL 0x2000 - * XGE_COMPONENT_TOE 0x4000 - * XGE_COMPONENT_RDMA 0x8000 - * XGE_COMPONENT_ALL 0xffffffff - * The @debug_module_mask allows to switch off and on tracing at runtime. - * In addition, the traces for the same trace-able components can be - * compiled out, based on the same mask provided via Makefile. - * @debug_level: See xge_debug_level_e{}. - * - * HAL (driver) object. There is a single instance of this structure per HAL. - */ -typedef struct xge_hal_driver_t { - xge_hal_driver_config_t config; - int is_initialized; - xge_hal_uld_cbs_t uld_callbacks; - u32 debug_module_mask; - int debug_level; -} xge_hal_driver_t; - -extern xge_hal_driver_t *g_xge_hal_driver; - -static inline int -xge_hal_driver_is_initialized(void) { - return g_xge_hal_driver->is_initialized; -} - -static inline int -xge_hal_driver_debug_module_mask(void) -{ - return g_xge_hal_driver->debug_module_mask; -} - -static inline void -xge_hal_driver_debug_module_mask_set(u32 new_mask) -{ -#if (defined(XGE_DEBUG_TRACE_MASK) && XGE_DEBUG_TRACE_MASK > 0) || \ - (defined(XGE_DEBUG_ERR_MASK) && XGE_DEBUG_ERR_MASK > 0) - g_xge_hal_driver->debug_module_mask = new_mask; - g_module_mask = (unsigned long *)&g_xge_hal_driver->debug_module_mask; -#endif -} - -static inline int -xge_hal_driver_debug_level(void) { return g_xge_hal_driver->debug_level; } - -static inline void -xge_hal_driver_debug_level_set(int new_level) -{ -#if (defined(XGE_DEBUG_TRACE_MASK) && XGE_DEBUG_TRACE_MASK > 0) || \ - (defined(XGE_DEBUG_ERR_MASK) && XGE_DEBUG_ERR_MASK > 0) - g_xge_hal_driver->debug_level = new_level; - g_level = &g_xge_hal_driver->debug_level; -#endif -} - -xge_hal_status_e xge_hal_driver_initialize(xge_hal_driver_config_t *config, - xge_hal_uld_cbs_t *uld_callbacks); - -void xge_hal_driver_terminate(void); - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR -void xge_hal_driver_tracebuf_dump(void); - -xge_hal_status_e -xge_hal_driver_tracebuf_read(int bufsize, char *retbuf, int *retsize); -#else -#define xge_hal_driver_tracebuf_dump() -#define xge_hal_driver_tracebuf_read(a, b, c) (0); -#endif - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_DRIVER_H */ Property changes on: head/sys/dev/nxge/include/xgehal-driver.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xge-defs.h =================================================================== --- head/sys/dev/nxge/include/xge-defs.h (revision 333387) +++ head/sys/dev/nxge/include/xge-defs.h (nonexistent) @@ -1,143 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_DEFS_H -#define XGE_DEFS_H - -#define XGE_PCI_VENDOR_ID 0x17D5 -#define XGE_PCI_DEVICE_ID_XENA_1 0x5731 -#define XGE_PCI_DEVICE_ID_XENA_2 0x5831 -#define XGE_PCI_DEVICE_ID_HERC_1 0x5732 -#define XGE_PCI_DEVICE_ID_HERC_2 0x5832 -#define XGE_PCI_DEVICE_ID_TITAN_1 0x5733 -#define XGE_PCI_DEVICE_ID_TITAN_2 0x5833 - -#define XGE_DRIVER_NAME "Xge driver" -#define XGE_DRIVER_VENDOR "Neterion, Inc" -#define XGE_CHIP_FAMILY "Xframe" -#define XGE_SUPPORTED_MEDIA_0 "Fiber" - -#include - -#if defined(__cplusplus) -#define __EXTERN_BEGIN_DECLS extern "C" { -#define __EXTERN_END_DECLS } -#else -#define __EXTERN_BEGIN_DECLS -#define __EXTERN_END_DECLS -#endif - -__EXTERN_BEGIN_DECLS - -/*---------------------------- DMA attributes ------------------------------*/ -/* Used in xge_os_dma_malloc() and xge_os_dma_map() */ -/*---------------------------- DMA attributes ------------------------------*/ - -/* XGE_OS_DMA_REQUIRES_SYNC - should be defined or - NOT defined in the Makefile */ -#define XGE_OS_DMA_CACHELINE_ALIGNED 0x1 -/* Either STREAMING or CONSISTENT should be used. - The combination of both or none is invalid */ -#define XGE_OS_DMA_STREAMING 0x2 -#define XGE_OS_DMA_CONSISTENT 0x4 -#define XGE_OS_SPRINTF_STRLEN 64 - -/*---------------------------- common stuffs -------------------------------*/ - -#define XGE_OS_LLXFMT "%llx" -#define XGE_OS_NEWLINE "\n" -#ifdef XGE_OS_MEMORY_CHECK -typedef struct { - void *ptr; - int size; - char *file; - int line; -} xge_os_malloc_t; - -#define XGE_OS_MALLOC_CNT_MAX 64*1024 -extern xge_os_malloc_t g_malloc_arr[XGE_OS_MALLOC_CNT_MAX]; -extern int g_malloc_cnt; - -#define XGE_OS_MEMORY_CHECK_MALLOC(_vaddr, _size, _file, _line) { \ - if (_vaddr) { \ - int index_mem_chk; \ - for (index_mem_chk=0; index_mem_chk < g_malloc_cnt; index_mem_chk++) { \ - if (g_malloc_arr[index_mem_chk].ptr == NULL) { \ - break; \ - } \ - } \ - if (index_mem_chk == g_malloc_cnt) { \ - g_malloc_cnt++; \ - if (g_malloc_cnt >= XGE_OS_MALLOC_CNT_MAX) { \ - xge_os_bug("g_malloc_cnt exceed %d", \ - XGE_OS_MALLOC_CNT_MAX); \ - } \ - } \ - g_malloc_arr[index_mem_chk].ptr = _vaddr; \ - g_malloc_arr[index_mem_chk].size = _size; \ - g_malloc_arr[index_mem_chk].file = _file; \ - g_malloc_arr[index_mem_chk].line = _line; \ - for (index_mem_chk=0; index_mem_chk<_size; index_mem_chk++) { \ - *((char *)_vaddr+index_mem_chk) = 0x5a; \ - } \ - } \ -} - -#define XGE_OS_MEMORY_CHECK_FREE(_vaddr, _check_size) { \ - int index_mem_chk; \ - for (index_mem_chk=0; index_mem_chk < XGE_OS_MALLOC_CNT_MAX; index_mem_chk++) { \ - if (g_malloc_arr[index_mem_chk].ptr == _vaddr) { \ - g_malloc_arr[index_mem_chk].ptr = NULL; \ - if(_check_size && g_malloc_arr[index_mem_chk].size!=_check_size) { \ - xge_os_printf("OSPAL: freeing with wrong " \ - "size %d! allocated at %s:%d:"XGE_OS_LLXFMT":%d", \ - (int)_check_size, \ - g_malloc_arr[index_mem_chk].file, \ - g_malloc_arr[index_mem_chk].line, \ - (unsigned long long)(ulong_t) \ - g_malloc_arr[index_mem_chk].ptr, \ - g_malloc_arr[index_mem_chk].size); \ - } \ - break; \ - } \ - } \ - if (index_mem_chk == XGE_OS_MALLOC_CNT_MAX) { \ - xge_os_printf("OSPAL: ptr "XGE_OS_LLXFMT" not found!", \ - (unsigned long long)(ulong_t)_vaddr); \ - } \ -} -#else -#define XGE_OS_MEMORY_CHECK_MALLOC(ptr, size, file, line) -#define XGE_OS_MEMORY_CHECK_FREE(vaddr, check_size) -#endif - -__EXTERN_END_DECLS - -#endif /* XGE_DEFS_H */ Property changes on: head/sys/dev/nxge/include/xge-defs.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/version.h =================================================================== --- head/sys/dev/nxge/include/version.h (revision 333387) +++ head/sys/dev/nxge/include/version.h (nonexistent) @@ -1,47 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 VERSION_H -#define VERSION_H - -#include - -#define XGE_HAL_VERSION_MAJOR "2" -#define XGE_HAL_VERSION_MINOR "0" -#define XGE_HAL_VERSION_FIX "9" -#define XGE_HAL_VERSION_BUILD GENERATED_BUILD_VERSION -#define XGE_HAL_VERSION XGE_HAL_VERSION_MAJOR"."XGE_HAL_VERSION_MINOR"."\ - XGE_HAL_VERSION_FIX"."XGE_HAL_VERSION_BUILD -#define XGE_HAL_DESC XGE_DRIVER_NAME" v."XGE_HAL_VERSION - -/* Link Layer versioning */ -#include - -#endif /* VERSION_H */ Property changes on: head/sys/dev/nxge/include/version.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xgehal-channel.h =================================================================== --- head/sys/dev/nxge/include/xgehal-channel.h (revision 333387) +++ head/sys/dev/nxge/include/xgehal-channel.h (nonexistent) @@ -1,492 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_HAL_CHANNEL_H -#define XGE_HAL_CHANNEL_H - -#include -#include -#include -#include - -__EXTERN_BEGIN_DECLS - -/** - * enum xge_hal_channel_type_e - Enumerated channel types. - * @XGE_HAL_CHANNEL_TYPE_FIFO: fifo. - * @XGE_HAL_CHANNEL_TYPE_RING: ring. - * @XGE_HAL_CHANNEL_TYPE_SEND_QUEUE: Send Queue - * @XGE_HAL_CHANNEL_TYPE_RECEIVE_QUEUE: Receive Queue - * @XGE_HAL_CHANNEL_TYPE_COMPLETION_QUEUE: Receive queue completion queue - * @XGE_HAL_CHANNEL_TYPE_UP_MESSAGE_QUEUE: Up message queue - * @XGE_HAL_CHANNEL_TYPE_DOWN_MESSAGE_QUEUE: Down message queue - * @XGE_HAL_CHANNEL_TYPE_MAX: Maximum number of HAL-supported - * (and recognized) channel types. Currently: two. - * - * Enumerated channel types. Currently there are only two link-layer - * channels - Xframe fifo and Xframe ring. In the future the list will grow. - */ -typedef enum xge_hal_channel_type_e { - XGE_HAL_CHANNEL_TYPE_FIFO, - XGE_HAL_CHANNEL_TYPE_RING, - XGE_HAL_CHANNEL_TYPE_SEND_QUEUE, - XGE_HAL_CHANNEL_TYPE_RECEIVE_QUEUE, - XGE_HAL_CHANNEL_TYPE_COMPLETION_QUEUE, - XGE_HAL_CHANNEL_TYPE_UP_MESSAGE_QUEUE, - XGE_HAL_CHANNEL_TYPE_DOWN_MESSAGE_QUEUE, - XGE_HAL_CHANNEL_TYPE_MAX -} xge_hal_channel_type_e; - -/** - * enum xge_hal_channel_flag_e - Channel flags. - * @XGE_HAL_CHANNEL_FLAG_NONE: zero (nil) flag. - * @XGE_HAL_CHANNEL_FLAG_USE_TX_LOCK: use lock when posting transmit - * descriptor. - * @XGE_HAL_CHANNEL_FLAG_FREE_RXD: to-be-defined. - * - * Channel opening flags. Reserved for future usage. - */ -typedef enum xge_hal_channel_flag_e { - XGE_HAL_CHANNEL_FLAG_NONE = 0x0, - XGE_HAL_CHANNEL_FLAG_USE_TX_LOCK = 0x1, - XGE_HAL_CHANNEL_FLAG_FREE_RXD = 0x2 -} xge_hal_channel_flag_e; - -/** - * enum xge_hal_dtr_state_e - Descriptor (DTR) state. - * @XGE_HAL_DTR_STATE_NONE: Invalid state. - * @XGE_HAL_DTR_STATE_AVAIL: Descriptor is available for reservation - * (via xge_hal_fifo_dtr_reserve(), xge_hal_ring_dtr_reserve(), etc.). - * @XGE_HAL_DTR_STATE_POSTED: Descriptor is posted for processing by the - * device. - * @XGE_HAL_DTR_STATE_FREED: Descriptor is free and can be reused for - * filling-in and posting later. - * - * Xframe/HAL descriptor states. For more on descriptor states and transitions - * please refer to ch_intern{}. - * - * See also: xge_hal_channel_dtr_term_f{}. - */ -typedef enum xge_hal_dtr_state_e { - XGE_HAL_DTR_STATE_NONE = 0, - XGE_HAL_DTR_STATE_AVAIL = 1, - XGE_HAL_DTR_STATE_POSTED = 2, - XGE_HAL_DTR_STATE_FREED = 3 -} xge_hal_dtr_state_e; - -/** - * enum xge_hal_channel_reopen_e - Channel open, close, or reopen option. - * @XGE_HAL_CHANNEL_RESET_ONLY: Do not (de)allocate channel; used with - * xge_hal_channel_open(), xge_hal_channel_close(). - * @XGE_HAL_CHANNEL_OC_NORMAL: Do (de)allocate channel; used with - * xge_hal_channel_open(), xge_hal_channel_close(). - * - * Enumerates options used with channel open and close operations. - * The @XGE_HAL_CHANNEL_RESET_ONLY can be used when resetting the device; - * in this case there is actually no need to free and then again malloc - * the memory (including DMA-able memory) used for channel operation. - */ -typedef enum xge_hal_channel_reopen_e { - XGE_HAL_CHANNEL_RESET_ONLY = 1, - XGE_HAL_CHANNEL_OC_NORMAL = 2 -} xge_hal_channel_reopen_e; - -/** - * function xge_hal_channel_callback_f - Channel callback. - * @channelh: Channel "containing" 1 or more completed descriptors. - * @dtrh: First completed descriptor. - * @t_code: Transfer code, as per Xframe User Guide. - * Returned by HAL. - * @host_control: Opaque 64bit data stored by ULD inside the Xframe - * descriptor prior to posting the latter on the channel - * via xge_hal_fifo_dtr_post() or xge_hal_ring_dtr_post(). - * The @host_control is returned as is to the ULD with each - * completed descriptor. - * @userdata: Opaque per-channel data specified at channel open - * time, via xge_hal_channel_open(). - * - * Channel completion callback (type declaration). A single per-channel - * callback is specified at channel open time, via - * xge_hal_channel_open(). - * Typically gets called as part of the processing of the Interrupt - * Service Routine. - * - * Channel callback gets called by HAL if, and only if, there is at least - * one new completion on a given ring or fifo channel. Upon processing the - * first @dtrh ULD is _supposed_ to continue consuming completions - * using one of the following HAL APIs: - * - xge_hal_fifo_dtr_next_completed() - * or - * - xge_hal_ring_dtr_next_completed(). - * - * Note that failure to process new completions in a timely fashion - * leads to XGE_HAL_INF_OUT_OF_DESCRIPTORS condition. - * - * Non-zero @t_code means failure to process (transmit or receive, depending - * on the channel type) the descriptor. - * - * In the "transmit" case the failure could happen, for instance, when the - * link is down, in which case Xframe completes the descriptor because it - * is not able to send the data out. - * - * For details please refer to Xframe User Guide. - * - * See also: xge_hal_fifo_dtr_next_completed(), - * xge_hal_ring_dtr_next_completed(), xge_hal_channel_dtr_term_f{}. - */ -typedef xge_hal_status_e (*xge_hal_channel_callback_f) - (xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - u8 t_code, void *userdata); - -/** - * function xge_hal_channel_dtr_init_f - Initialize descriptor callback. - * @channelh: Channel "containing" the @dtrh descriptor. - * @dtrh: Descriptor. - * @index: Index of the descriptor in the channel's set of descriptors. - * @userdata: Per-channel user data (a.k.a. context) specified at - * channel open time, via xge_hal_channel_open(). - * @reopen: See xge_hal_channel_reopen_e{}. - * - * Initialize descriptor callback. Unless NULL is specified in the - * xge_hal_channel_attr_t{} structure passed to xge_hal_channel_open()), - * HAL invokes the callback as part of the xge_hal_channel_open() - * implementation. - * For the ring type of channel the ULD is expected to fill in this descriptor - * with buffer(s) and control information. - * For the fifo type of channel the ULD could use the callback to - * pre-set DMA mappings and/or alignment buffers. - * - * See also: xge_hal_channel_attr_t{}, xge_hal_channel_dtr_term_f{}. - */ -typedef xge_hal_status_e (*xge_hal_channel_dtr_init_f) - (xge_hal_channel_h channelh, - xge_hal_dtr_h dtrh, - int index, - void *userdata, - xge_hal_channel_reopen_e reopen); - -/** - * function xge_hal_channel_dtr_term_f - Terminate descriptor callback. - * @channelh: Channel "containing" the @dtrh descriptor. - * @dtrh: First completed descriptor. - * @state: One of the xge_hal_dtr_state_e{} enumerated states. - * @userdata: Per-channel user data (a.k.a. context) specified at - * channel open time, via xge_hal_channel_open(). - * @reopen: See xge_hal_channel_reopen_e{}. - * - * Terminate descriptor callback. Unless NULL is specified in the - * xge_hal_channel_attr_t{} structure passed to xge_hal_channel_open()), - * HAL invokes the callback as part of closing the corresponding - * channel, prior to de-allocating the channel and associated data - * structures (including descriptors). - * ULD should utilize the callback to (for instance) unmap - * and free DMA data buffers associated with the posted (state = - * XGE_HAL_DTR_STATE_POSTED) descriptors, - * as well as other relevant cleanup functions. - * - * See also: xge_hal_channel_attr_t{}, xge_hal_channel_dtr_init_f{}. - */ -typedef void (*xge_hal_channel_dtr_term_f) (xge_hal_channel_h channelh, - xge_hal_dtr_h dtrh, - xge_hal_dtr_state_e state, - void *userdata, - xge_hal_channel_reopen_e reopen); - - -/** - * struct xge_hal_channel_attr_t - Channel open "template". - * @type: xge_hal_channel_type_e channel type. - * @vp_id: Virtual path id - * @post_qid: Queue ID to post descriptors. For the link layer this - * number should be in the 0..7 range. - * @compl_qid: Completion queue ID. Must be set to zero for the link layer. - * @callback: Channel completion callback. HAL invokes the callback when there - * are new completions on that channel. In many implementations - * the @callback executes in the hw interrupt context. - * @dtr_init: Channel's descriptor-initialize callback. - * See xge_hal_channel_dtr_init_f{}. - * If not NULL, HAL invokes the callback when opening - * the channel via xge_hal_channel_open(). - * @dtr_term: Channel's descriptor-terminate callback. If not NULL, - * HAL invokes the callback when closing the corresponding channel. - * See also xge_hal_channel_dtr_term_f{}. - * @userdata: User-defined "context" of _that_ channel. Passed back to the - * user as one of the @callback, @dtr_init, and @dtr_term arguments. - * @per_dtr_space: If specified (i.e., greater than zero): extra space - * reserved by HAL per each transmit or receive (depending on the - * channel type) descriptor. Can be used to store, - * and retrieve on completion, information specific - * to the upper-layer. - * @flags: xge_hal_channel_flag_e enumerated flags. - * - * Channel open "template". User fills the structure with channel - * attributes and passes it to xge_hal_channel_open(). - * Usage: See ex_open{}. - */ -typedef struct xge_hal_channel_attr_t { - xge_hal_channel_type_e type; - int post_qid; - int compl_qid; - xge_hal_channel_callback_f callback; - xge_hal_channel_dtr_init_f dtr_init; - xge_hal_channel_dtr_term_f dtr_term; - void *userdata; - int per_dtr_space; - xge_hal_channel_flag_e flags; -} xge_hal_channel_attr_t; - -/* - * xge_hal_channel_t - * ---------- complete/free section --------------- - * @item: List item; used to maintain a list of open channels. - * @callback: Channel completion callback. See - * xge_hal_channel_callback_f. - * @compl_index: Completion index. At any point in time points on the - * position in the channel, which will contain next - * to-be-completed descriptor. - * @length: Channel length. Currently allocated number of descriptors. - * The channel length "grows" when more descriptors get allocated. - * See _hal_mempool_grow. - * @free_arr: Free array. Contains completed descriptors that were freed - * (i.e., handed over back to HAL) by ULD. - * See xge_hal_fifo_dtr_free(), xge_hal_ring_dtr_free(). - * @free_lock: Lock to protect @free_arr. - * ----------- reserve/post section --------------- - * @post_index: Post index. At any point in time points on the - * position in the channel, which'll contain next to-be-posted - * descriptor. - * @post_lock: Lock to serialize multiple concurrent "posters" of descriptors - * on the given channel. - * @reserve_arr: Reserve array. Contains descriptors that can be reserved - * by ULD for the subsequent send or receive operation. - * See xge_hal_fifo_dtr_reserve(), - * xge_hal_ring_dtr_reserve(). - * @reserve_length: Length of the @reserve_arr. The length dynamically - * changes: it decrements each time descriptor is reserved. - * @reserve_lock: Lock to serialize multiple concurrent threads accessing - * @reserve_arr. - * @reserve_threshold: Reserve threshold. Minimal number of free descriptors - * that ought to be preserved in the channel at all times. - * Note that @reserve_threshold >= 0 && - * @reserve_threshold < @reserve_max. - * ------------ common section -------------------- - * @devh: Device handle. HAL device object that contains _this_ channel. - * @dmah: Channel's DMA address. Used to synchronize (to/from device) - * descriptors. - * @regh0: Base address of the device memory space handle. Copied from HAL device - * at channel open time. - * @regh1: Base address of the device memory space handle. Copied from HAL device - * at channel open time. - * @userdata: Per-channel opaque (void*) user-defined context, which may be - * upper-layer driver object, ULP connection, etc. - * Once channel is open, @userdata is passed back to user via - * xge_hal_channel_callback_f. - * @work_arr: Work array. Contains descriptors posted to the channel. - * Note that at any point in time @work_arr contains 3 types of - * descriptors: - * 1) posted but not yet consumed by Xframe device; - * 2) consumed but not yet completed; - * 3) completed but not yet freed - * (via xge_hal_fifo_dtr_free() or xge_hal_ring_dtr_free()) - * @saved_arr: Array used internally to optimize channel full-duplex - * operation. - * @stats: Channel statistcis. Includes HAL internal counters, including - * for instance, number of times out-of-descriptors - * (see XGE_HAL_INF_OUT_OF_DESCRIPTORS) condition happened. - * ------------- "slow" section ------------------ - * @type: Channel type. See xge_hal_channel_type_e{}. - * @vp_id: Virtual path id - * @post_qid: Identifies Xframe queue used for posting descriptors. - * @compl_qid: Identifies Xframe completion queue. - * @flags: Channel flags. See xge_hal_channel_flag_e{}. - * @reserve_initial: Initial number of descriptors allocated at channel open - * time (see xge_hal_channel_open()). The number of - * channel descriptors can grow at runtime - * up to @reserve_max value. - * @reserve_max: Maximum number of channel descriptors. See @reserve_initial. - * @is_open: True, if channel is open; false - otherwise. - * @per_dtr_space: Per-descriptor space (in bytes) that channel user can utilize - * to store per-operation control information. - * HAL channel object. HAL devices (see xge_hal_device_t{}) contains - * zero or more channels. HAL channel contains zero or more descriptors. The - * latter are used by ULD(s) to manage the device and/or send and receive data - * to remote peer(s) via the channel. - * - * See also: xge_hal_channel_type_e{}, xge_hal_channel_flag_e, - * xge_hal_channel_callback_f{} - */ -typedef struct { - /* complete/free section */ - xge_list_t item; - xge_hal_channel_callback_f callback; - void **free_arr; - int length; - int free_length; -#if defined(XGE_HAL_RX_MULTI_FREE_IRQ) || defined(XGE_HAL_TX_MULTI_FREE_IRQ) || \ - defined(XGE_HAL_RX_MULTI_FREE) || defined(XGE_HAL_TX_MULTI_FREE) - spinlock_t free_lock; -#endif - int compl_index; - unsigned int usage_cnt; - unsigned int poll_bytes; - - /* reserve/post data path section */ - int terminating; -#ifdef __XGE_WIN__ - int __xge_os_attr_cacheline_aligned - post_index; -#else - int post_index - __xge_os_attr_cacheline_aligned; -#endif - spinlock_t reserve_lock; - spinlock_t post_lock; - - void **reserve_arr; - int reserve_length; - int reserve_threshold; - int reserve_top; - int unused1; - - /* common section */ - xge_hal_device_h devh; - pci_dev_h pdev; - pci_reg_h regh0; - pci_reg_h regh1; - void *userdata; - void **work_arr; - void **saved_arr; - void **orig_arr; - xge_hal_stats_channel_info_t stats; - - /* slow section */ - xge_hal_channel_type_e type; - int post_qid; - int compl_qid; - xge_hal_channel_flag_e flags; - int reserve_initial; - int reserve_max; - int is_open; - int per_dtr_space; - xge_hal_channel_dtr_term_f dtr_term; - xge_hal_channel_dtr_init_f dtr_init; - /* MSI stuff */ - u32 msi_msg; - u8 rti; - u8 tti; - u16 unused2; - /* MSI-X stuff */ - u64 msix_address; - u32 msix_data; - int msix_idx; - volatile int in_interrupt; - unsigned int magic; -#ifdef __XGE_WIN__ -} __xge_os_attr_cacheline_aligned xge_hal_channel_t ; -#else -} xge_hal_channel_t __xge_os_attr_cacheline_aligned; -#endif - -/* ========================== CHANNEL PRIVATE API ========================= */ - -xge_hal_status_e -__hal_channel_initialize(xge_hal_channel_h channelh, - xge_hal_channel_attr_t *attr, void **reserve_arr, - int reserve_initial, int reserve_max, int reserve_threshold); - -void __hal_channel_terminate(xge_hal_channel_h channelh); - -xge_hal_channel_t* -__hal_channel_allocate(xge_hal_device_h devh, int post_qid, - xge_hal_channel_type_e type); - -void __hal_channel_free(xge_hal_channel_t *channel); - -#if defined(XGE_DEBUG_FP) && (XGE_DEBUG_FP & XGE_DEBUG_FP_CHANNEL) -#define __HAL_STATIC_CHANNEL -#define __HAL_INLINE_CHANNEL - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL xge_hal_status_e -__hal_channel_dtr_alloc(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_post(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_try_complete(xge_hal_channel_h channelh, xge_hal_dtr_h *dtrh); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_complete(xge_hal_channel_h channelh); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_free(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_dealloc(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void -__hal_channel_dtr_restore(xge_hal_channel_h channelh, xge_hal_dtr_h dtrh, - int offset); - -/* ========================== CHANNEL PUBLIC API ========================= */ - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL int -xge_hal_channel_dtr_count(xge_hal_channel_h channelh); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL void* -xge_hal_channel_userdata(xge_hal_channel_h channelh); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL int -xge_hal_channel_id(xge_hal_channel_h channelh); - -__HAL_STATIC_CHANNEL __HAL_INLINE_CHANNEL int -xge_hal_check_alignment(dma_addr_t dma_pointer, int size, int alignment, - int copy_size); - -#else /* XGE_FASTPATH_EXTERN */ -#define __HAL_STATIC_CHANNEL static -#define __HAL_INLINE_CHANNEL inline -#include -#endif /* XGE_FASTPATH_INLINE */ - -xge_hal_status_e -xge_hal_channel_open(xge_hal_device_h hldev, xge_hal_channel_attr_t *attr, - xge_hal_channel_h *channel, - xge_hal_channel_reopen_e reopen); - -void xge_hal_channel_close(xge_hal_channel_h channelh, - xge_hal_channel_reopen_e reopen); - -void xge_hal_channel_abort(xge_hal_channel_h channelh, - xge_hal_channel_reopen_e reopen); - -__EXTERN_END_DECLS - -#endif /* XGE_HAL_CHANNEL_H */ Property changes on: head/sys/dev/nxge/include/xgehal-channel.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/xge-debug.h =================================================================== --- head/sys/dev/nxge/include/xge-debug.h (revision 333387) +++ head/sys/dev/nxge/include/xge-debug.h (nonexistent) @@ -1,417 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_DEBUG_H -#define XGE_DEBUG_H - -#include - -__EXTERN_BEGIN_DECLS - -/* - * __FUNCTION__ is, together with __PRETTY_FUNCTION__ or something similar, - * a gcc extension. we'll have to #ifdef around that, and provide some - * meaningful replacement for those, so to make some gcc versions happier - */ -#ifndef __func__ -#ifdef __FUNCTION__ -#define __func__ __FUNCTION__ -#endif -#endif - - -#ifdef XGE_DEBUG_FP -#define XGE_DEBUG_FP_DEVICE 0x1 -#define XGE_DEBUG_FP_CHANNEL 0x2 -#define XGE_DEBUG_FP_FIFO 0x4 -#define XGE_DEBUG_FP_RING 0x8 -#define XGE_DEBUG_FP_ALL 0xff -#endif - -/** - * enum xge_debug_level_e - * @XGE_NONE: debug disabled - * @XGE_ERR: all errors going to be logged out - * @XGE_TRACE: all errors plus all kind of verbose tracing print outs - * going to be logged out. Very noisy. - * - * This enumeration going to be used to switch between different - * debug levels during runtime if DEBUG macro defined during - * compilation. If DEBUG macro not defined than code will be - * compiled out. - */ -typedef enum xge_debug_level_e { - XGE_NONE = 0, - XGE_TRACE = 1, - XGE_ERR = 2, -} xge_debug_level_e; - -#define XGE_DEBUG_MODULE_MASK_DEF 0x30000030 -#define XGE_DEBUG_LEVEL_DEF XGE_ERR - -#if defined(XGE_DEBUG_TRACE_MASK) || defined(XGE_DEBUG_ERR_MASK) - -extern unsigned long *g_module_mask; -extern int *g_level; - -#ifndef XGE_DEBUG_TRACE_MASK -#define XGE_DEBUG_TRACE_MASK 0 -#endif - -#ifndef XGE_DEBUG_ERR_MASK -#define XGE_DEBUG_ERR_MASK 0 -#endif - -/* - * @XGE_COMPONENT_HAL_CONFIG: do debug for xge core config module - * @XGE_COMPONENT_HAL_FIFO: do debug for xge core fifo module - * @XGE_COMPONENT_HAL_RING: do debug for xge core ring module - * @XGE_COMPONENT_HAL_CHANNEL: do debug for xge core channel module - * @XGE_COMPONENT_HAL_DEVICE: do debug for xge core device module - * @XGE_COMPONENT_HAL_DMQ: do debug for xge core DMQ module - * @XGE_COMPONENT_HAL_UMQ: do debug for xge core UMQ module - * @XGE_COMPONENT_HAL_SQ: do debug for xge core SQ module - * @XGE_COMPONENT_HAL_SRQ: do debug for xge core SRQ module - * @XGE_COMPONENT_HAL_CQRQ: do debug for xge core CRQ module - * @XGE_COMPONENT_HAL_POOL: do debug for xge core memory pool module - * @XGE_COMPONENT_HAL_BITMAP: do debug for xge core BITMAP module - * @XGE_COMPONENT_CORE: do debug for xge KMA core module - * @XGE_COMPONENT_OSDEP: do debug for xge KMA os dependent parts - * @XGE_COMPONENT_LL: do debug for xge link layer module - * @XGE_COMPONENT_ALL: activate debug for all modules with no exceptions - * - * This enumeration going to be used to distinguish modules - * or libraries during compilation and runtime. Makefile must declare - * XGE_DEBUG_MODULE_MASK macro and set it to proper value. - */ -#define XGE_COMPONENT_HAL_CONFIG 0x00000001 -#define XGE_COMPONENT_HAL_FIFO 0x00000002 -#define XGE_COMPONENT_HAL_RING 0x00000004 -#define XGE_COMPONENT_HAL_CHANNEL 0x00000008 -#define XGE_COMPONENT_HAL_DEVICE 0x00000010 -#define XGE_COMPONENT_HAL_MM 0x00000020 -#define XGE_COMPONENT_HAL_QUEUE 0x00000040 -#define XGE_COMPONENT_HAL_INTERRUPT 0x00000080 -#define XGE_COMPONENT_HAL_STATS 0x00000100 - - /* space for CORE_XXX */ -#define XGE_COMPONENT_OSDEP 0x10000000 -#define XGE_COMPONENT_LL 0x20000000 -#define XGE_COMPONENT_ALL 0xffffffff - -#ifndef XGE_DEBUG_MODULE_MASK -#error "XGE_DEBUG_MODULE_MASK macro must be defined for DEBUG mode..." -#endif - -#ifndef __GNUC__ -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR - #define xge_trace_aux(fmt) xge_os_vatrace(g_xge_os_tracebuf, fmt) -#else - #define xge_trace_aux(fmt) xge_os_vaprintf(fmt) -#endif - -/** - * xge_debug - * @level: level of debug verbosity. - * @fmt: printf like format string - * - * Provides logging facilities. Can be customized on per-module - * basis or/and with debug levels. Input parameters, except - * module and level, are the same as posix printf. This function - * may be compiled out if DEBUG macro was never defined. - * See also: xge_debug_level_e{}. - */ -#define xge_debug(module, level, fmt) { \ -if (((level >= XGE_TRACE && ((module & XGE_DEBUG_TRACE_MASK) == module)) || \ - (level >= XGE_ERR && ((module & XGE_DEBUG_ERR_MASK) == module))) && \ - level >= *g_level && module & *(unsigned int *)g_module_mask) { \ - xge_trace_aux(fmt); \ - } \ -} -#else /* __GNUC__ */ - -#ifdef XGE_TRACE_INTO_CIRCULAR_ARR - #define xge_trace_aux(fmt...) xge_os_trace(g_xge_os_tracebuf, fmt) -#else - #define xge_trace_aux(fmt...) xge_os_printf(fmt) -#endif - -#define xge_debug(module, level, fmt...) { \ -if (((level >= XGE_TRACE && ((module & XGE_DEBUG_TRACE_MASK) == module)) || \ - (level >= XGE_ERR && ((module & XGE_DEBUG_ERR_MASK) == module))) && \ - level >= *g_level && module & *(unsigned int *)g_module_mask) { \ - xge_trace_aux(fmt); \ - } \ -} -#endif /* __GNUC__ */ - -#if (XGE_COMPONENT_HAL_STATS & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_stats(xge_debug_level_e level, char *fmt, ...) { - u32 module = XGE_COMPONENT_HAL_STATS; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_stats(level, fmt...) \ - xge_debug(XGE_COMPONENT_HAL_STATS, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_stats(xge_debug_level_e level, char *fmt, ...) {} -#else /* __GNUC__ */ -#define xge_debug_stats(level, fmt...) -#endif /* __GNUC__ */ -#endif - -/* Interrupt Related */ -#if (XGE_COMPONENT_HAL_INTERRUPT & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_interrupt(xge_debug_level_e level, char *fmt, ...) { - u32 module = XGE_COMPONENT_HAL_INTERRUPT; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_interrupt(level, fmt...) \ - xge_debug(XGE_COMPONENT_HAL_INTERRUPT, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_interrupt(xge_debug_level_e level, char *fmt, ...) {} -#else /* __GNUC__ */ -#define xge_debug_interrupt(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#if (XGE_COMPONENT_HAL_QUEUE & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_queue(xge_debug_level_e level, char *fmt, ...) { - u32 module = XGE_COMPONENT_HAL_QUEUE; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_queue(level, fmt...) \ - xge_debug(XGE_COMPONENT_HAL_QUEUE, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_queue(xge_debug_level_e level, char *fmt, -...) {} -#else /* __GNUC__ */ -#define xge_debug_queue(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#if (XGE_COMPONENT_HAL_MM & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_mm(xge_debug_level_e level, char *fmt, ...) -{ - u32 module = XGE_COMPONENT_HAL_MM; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_mm(level, fmt...) \ - xge_debug(XGE_COMPONENT_HAL_MM, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_mm(xge_debug_level_e level, char *fmt, ...) -{} -#else /* __GNUC__ */ -#define xge_debug_mm(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#if (XGE_COMPONENT_HAL_CONFIG & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_config(xge_debug_level_e level, char *fmt, ...) { - u32 module = XGE_COMPONENT_HAL_CONFIG; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_config(level, fmt...) \ - xge_debug(XGE_COMPONENT_HAL_CONFIG, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_config(xge_debug_level_e level, char *fmt, -...) {} -#else /* __GNUC__ */ -#define xge_debug_config(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#if (XGE_COMPONENT_HAL_FIFO & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_fifo(xge_debug_level_e level, char *fmt, ...) { - u32 module = XGE_COMPONENT_HAL_FIFO; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_fifo(level, fmt...) \ - xge_debug(XGE_COMPONENT_HAL_FIFO, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_fifo(xge_debug_level_e level, char *fmt, ...) {} -#else /* __GNUC__ */ -#define xge_debug_fifo(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#if (XGE_COMPONENT_HAL_RING & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_ring(xge_debug_level_e level, char *fmt, ...) { - u32 module = XGE_COMPONENT_HAL_RING; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_ring(level, fmt...) \ - xge_debug(XGE_COMPONENT_HAL_RING, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_ring(xge_debug_level_e level, char *fmt, ...) {} -#else /* __GNUC__ */ -#define xge_debug_ring(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#if (XGE_COMPONENT_HAL_CHANNEL & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_channel(xge_debug_level_e level, char *fmt, ...) { - u32 module = XGE_COMPONENT_HAL_CHANNEL; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_channel(level, fmt...) \ - xge_debug(XGE_COMPONENT_HAL_CHANNEL, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_channel(xge_debug_level_e level, char *fmt, ...) {} -#else /* __GNUC__ */ -#define xge_debug_channel(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#if (XGE_COMPONENT_HAL_DEVICE & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_device(xge_debug_level_e level, char *fmt, ...) { - u32 module = XGE_COMPONENT_HAL_DEVICE; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_device(level, fmt...) \ - xge_debug(XGE_COMPONENT_HAL_DEVICE, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_device(xge_debug_level_e level, char *fmt, ...) {} -#else /* __GNUC__ */ -#define xge_debug_device(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#if (XGE_COMPONENT_OSDEP & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_osdep(xge_debug_level_e level, char *fmt, ...) { - u32 module = XGE_COMPONENT_OSDEP; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_osdep(level, fmt...) \ - xge_debug(XGE_COMPONENT_OSDEP, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_osdep(xge_debug_level_e level, char *fmt, ...) {} -#else /* __GNUC__ */ -#define xge_debug_osdep(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#if (XGE_COMPONENT_LL & XGE_DEBUG_MODULE_MASK) -#ifndef __GNUC__ -static inline void xge_debug_ll(xge_debug_level_e level, char *fmt, ...) -{ - u32 module = XGE_COMPONENT_LL; - xge_debug(module, level, fmt); -} -#else /* __GNUC__ */ -#define xge_debug_ll(level, fmt...) \ - xge_debug(XGE_COMPONENT_LL, level, fmt) -#endif /* __GNUC__ */ -#else -#ifndef __GNUC__ -static inline void xge_debug_ll(xge_debug_level_e level, char *fmt, ...) {} -#else /* __GNUC__ */ -#define xge_debug_ll(level, fmt...) -#endif /* __GNUC__ */ -#endif - -#else - -static inline void xge_debug_interrupt(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_stats(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_queue(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_mm(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_config(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_fifo(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_ring(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_channel(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_device(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_hal(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_osdep(xge_debug_level_e level, char *fmt, ...) {} -static inline void xge_debug_ll(xge_debug_level_e level, char *fmt, ...) {} - -#endif /* end of XGE_DEBUG_*_MASK */ - -#ifdef XGE_DEBUG_ASSERT - -/** - * xge_assert - * @test: C-condition to check - * @fmt: printf like format string - * - * This function implements traditional assert. By default assertions - * are enabled. It can be disabled by defining XGE_DEBUG_ASSERT macro in - * compilation - * time. - */ -#define xge_assert(test) { \ - if (!(test)) xge_os_bug("bad cond: "#test" at %s:%d\n", \ - __FILE__, __LINE__); } -#else -#define xge_assert(test) -#endif /* end of XGE_DEBUG_ASSERT */ - -__EXTERN_END_DECLS - -#endif /* XGE_DEBUG_H */ Property changes on: head/sys/dev/nxge/include/xge-debug.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/include/build-version.h =================================================================== --- head/sys/dev/nxge/include/build-version.h (revision 333387) +++ head/sys/dev/nxge/include/build-version.h (nonexistent) @@ -1,6 +0,0 @@ -#ifndef BUILD_VERSION_H -#define BUILD_VERSION_H -/* Do not edit! Automatically generated when released.*/ -/* $FreeBSD$ */ -#define GENERATED_BUILD_VERSION "11230" -#endif /* BUILD_VERSION_H */ Property changes on: head/sys/dev/nxge/include/build-version.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/if_nxge.h =================================================================== --- head/sys/dev/nxge/if_nxge.h (revision 333387) +++ head/sys/dev/nxge/if_nxge.h (nonexistent) @@ -1,415 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 _IF_XGE_H -#define _IF_XGE_H - -#include -#include - -/* Printing description, Copyright */ -#define XGE_DRIVER_VERSION \ - XGELL_VERSION_MAJOR"."XGELL_VERSION_MINOR"." \ - XGELL_VERSION_FIX"."XGELL_VERSION_BUILD -#define XGE_COPYRIGHT "Copyright(c) 2002-2007 Neterion Inc." - -/* Printing */ -#define xge_trace(trace, fmt, args...) xge_debug_ll(trace, fmt, ## args); - -#define XGE_ALIGN_TO(buffer_length, to) { \ - if((buffer_length % to) != 0) { \ - buffer_length += (to - (buffer_length % to)); \ - } \ -} - -#define XGE_EXIT_ON_ERR(text, label, return_value) { \ - xge_trace(XGE_ERR, "%s (Status: %d)", text, return_value); \ - status = return_value; \ - goto label; \ -} - -#define XGE_SET_BUFFER_MODE_IN_RINGS(mode) { \ - for(index = 0; index < XGE_RING_COUNT; index++) \ - ring_config->queue[index].buffer_mode = mode; \ -} - -#define XGE_DEFAULT_USER_HARDCODED -1 -#define XGE_MAX_SEGS 100 /* Maximum number of segments */ -#define XGE_TX_LEVEL_LOW 16 -#define XGE_FIFO_COUNT XGE_HAL_MIN_FIFO_NUM -#define XGE_RING_COUNT XGE_HAL_MIN_RING_NUM -#define XGE_BUFFER_SIZE 20 -#define XGE_LRO_DEFAULT_ENTRIES 12 -#define XGE_BAUDRATE 1000000000 - -/* Default values to configuration parameters */ -#define XGE_DEFAULT_ENABLED_TSO 1 -#define XGE_DEFAULT_ENABLED_LRO 1 -#define XGE_DEFAULT_ENABLED_MSI 1 -#define XGE_DEFAULT_BUFFER_MODE 1 -#define XGE_DEFAULT_INITIAL_MTU 1500 -#define XGE_DEFAULT_LATENCY_TIMER -1 -#define XGE_DEFAULT_MAX_SPLITS_TRANS -1 -#define XGE_DEFAULT_MMRB_COUNT -1 -#define XGE_DEFAULT_SHARED_SPLITS 0 -#define XGE_DEFAULT_ISR_POLLING_CNT 8 -#define XGE_DEFAULT_STATS_REFRESH_TIME_SEC 4 -#define XGE_DEFAULT_MAC_RMAC_BCAST_EN 1 -#define XGE_DEFAULT_MAC_TMAC_UTIL_PERIOD 5 -#define XGE_DEFAULT_MAC_RMAC_UTIL_PERIOD 5 -#define XGE_DEFAULT_MAC_RMAC_PAUSE_GEN_EN 1 -#define XGE_DEFAULT_MAC_RMAC_PAUSE_RCV_EN 1 -#define XGE_DEFAULT_MAC_RMAC_PAUSE_TIME 65535 -#define XGE_DEFAULT_MAC_MC_PAUSE_THRESHOLD_Q0Q3 187 -#define XGE_DEFAULT_MAC_MC_PAUSE_THRESHOLD_Q4Q7 187 -#define XGE_DEFAULT_FIFO_MEMBLOCK_SIZE PAGE_SIZE -#define XGE_DEFAULT_FIFO_RESERVE_THRESHOLD 0 -#define XGE_DEFAULT_FIFO_MAX_FRAGS 64 -#define XGE_DEFAULT_FIFO_QUEUE_INTR 0 -#define XGE_DEFAULT_FIFO_QUEUE_MAX 2048 -#define XGE_DEFAULT_FIFO_QUEUE_INITIAL 2048 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_URANGE_A 5 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_URANGE_B 10 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_URANGE_C 20 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_UFC_A 15 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_UFC_B 30 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_UFC_C 45 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_UFC_D 60 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_TIMER_CI_EN 1 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_TIMER_AC_EN 1 -#define XGE_DEFAULT_FIFO_QUEUE_TTI_TIMER_VAL_US 8000 -#define XGE_DEFAULT_FIFO_ALIGNMENT_SIZE sizeof(u64) -#define XGE_DEFAULT_RING_MEMBLOCK_SIZE PAGE_SIZE -#define XGE_DEFAULT_RING_STRIP_VLAN_TAG 1 -#define XGE_DEFAULT_RING_QUEUE_MAX 16 -#define XGE_DEFAULT_RING_QUEUE_INITIAL 16 -#define XGE_DEFAULT_RING_QUEUE_DRAM_SIZE_MB 32 -#define XGE_DEFAULT_RING_QUEUE_INDICATE_MAX_PKTS 16 -#define XGE_DEFAULT_RING_QUEUE_BACKOFF_INTERVAL_US 1000 -#define XGE_DEFAULT_RING_QUEUE_RTI_URANGE_A 5 -#define XGE_DEFAULT_RING_QUEUE_RTI_URANGE_B 10 -#define XGE_DEFAULT_RING_QUEUE_RTI_URANGE_C 50 -#define XGE_DEFAULT_RING_QUEUE_RTI_UFC_A 1 -#define XGE_DEFAULT_RING_QUEUE_RTI_UFC_B 8 -#define XGE_DEFAULT_RING_QUEUE_RTI_UFC_C 16 -#define XGE_DEFAULT_RING_QUEUE_RTI_UFC_D 32 -#define XGE_DEFAULT_RING_QUEUE_RTI_TIMER_AC_EN 1 -#define XGE_DEFAULT_RING_QUEUE_RTI_TIMER_VAL_US 250 - -#define XGE_DRV_STATS(param) (lldev->driver_stats.param++) - -#define XGE_SAVE_PARAM(to, what, value) to.what = value; - -#define XGE_GET_PARAM(str_kenv, to, param, hardcode) { \ - static int param##__LINE__; \ - if(testenv(str_kenv) == 1) { \ - getenv_int(str_kenv, ¶m##__LINE__); \ - } \ - else { \ - param##__LINE__ = hardcode; \ - } \ - XGE_SAVE_PARAM(to, param, param##__LINE__); \ -} - -#define XGE_GET_PARAM_MAC(str_kenv, param, hardcode) \ - XGE_GET_PARAM(str_kenv, ((*dconfig).mac), param, hardcode); - -#define XGE_GET_PARAM_FIFO(str_kenv, param, hardcode) \ - XGE_GET_PARAM(str_kenv, ((*dconfig).fifo), param, hardcode); - -#define XGE_GET_PARAM_FIFO_QUEUE(str_kenv, param, qindex, hardcode) \ - XGE_GET_PARAM(str_kenv, ((*dconfig).fifo.queue[qindex]), param, \ - hardcode); - -#define XGE_GET_PARAM_FIFO_QUEUE_TTI(str_kenv, param, qindex, tindex, hardcode)\ - XGE_GET_PARAM(str_kenv, ((*dconfig).fifo.queue[qindex].tti[tindex]), \ - param, hardcode); - -#define XGE_GET_PARAM_RING(str_kenv, param, hardcode) \ - XGE_GET_PARAM(str_kenv, ((*dconfig).ring), param, hardcode); - -#define XGE_GET_PARAM_RING_QUEUE(str_kenv, param, qindex, hardcode) \ - XGE_GET_PARAM(str_kenv, ((*dconfig).ring.queue[qindex]), param, \ - hardcode); - -#define XGE_GET_PARAM_RING_QUEUE_RTI(str_kenv, param, qindex, hardcode) \ - XGE_GET_PARAM(str_kenv, ((*dconfig).ring.queue[qindex].rti), param, \ - hardcode); - -/* Values to identify the requests from getinfo tool in ioctl */ -#define XGE_QUERY_STATS 1 -#define XGE_QUERY_PCICONF 2 -#define XGE_QUERY_DEVSTATS 3 -#define XGE_QUERY_DEVCONF 4 -#define XGE_READ_VERSION 5 -#define XGE_QUERY_SWSTATS 6 -#define XGE_QUERY_DRIVERSTATS 7 -#define XGE_SET_BUFFER_MODE_1 8 -#define XGE_SET_BUFFER_MODE_2 9 -#define XGE_SET_BUFFER_MODE_5 10 -#define XGE_QUERY_BUFFER_MODE 11 - -#define XGE_OFFSET_OF_LAST_REG 0x3180 - -#define VENDOR_ID_AMD 0x1022 -#define DEVICE_ID_8131_PCI_BRIDGE 0x7450 - -typedef struct mbuf *mbuf_t; - -typedef enum xge_lables { - xge_free_all = 0, - xge_free_mutex = 1, - xge_free_terminate_hal_driver = 2, - xge_free_hal_device = 3, - xge_free_pci_info = 4, - xge_free_bar0 = 5, - xge_free_bar0_resource = 6, - xge_free_bar1 = 7, - xge_free_bar1_resource = 8, - xge_free_irq_resource = 9, - xge_free_terminate_hal_device = 10, - xge_free_media_interface = 11, -} xge_lables_e; - -typedef enum xge_option { - XGE_CHANGE_LRO = 0, - XGE_SET_MTU = 1 -} xge_option_e; - -typedef enum xge_event_e { - XGE_LL_EVENT_TRY_XMIT_AGAIN = XGE_LL_EVENT_BASE + 1, - XGE_LL_EVENT_DEVICE_RESETTING = XGE_LL_EVENT_BASE + 2 -} xge_event_e; - -typedef struct xge_msi_info { - u16 msi_control; /* MSI control 0x42 */ - u32 msi_lower_address; /* MSI lower address 0x44 */ - u32 msi_higher_address; /* MSI higher address 0x48 */ - u16 msi_data; /* MSI data */ -} xge_msi_info_t; - -typedef struct xge_driver_stats_t { - /* ISR statistics */ - u64 isr_filter; - u64 isr_line; - u64 isr_msi; - - /* Tx statistics */ - u64 tx_calls; - u64 tx_completions; - u64 tx_desc_compl; - u64 tx_tcode; - u64 tx_defrag; - u64 tx_no_txd; - u64 tx_map_fail; - u64 tx_max_frags; - u64 tx_tso; - u64 tx_posted; - u64 tx_again; - u64 tx_lock_fail; - - /* Rx statistics */ - u64 rx_completions; - u64 rx_desc_compl; - u64 rx_tcode; - u64 rx_no_buf; - u64 rx_map_fail; - - /* LRO statistics */ - u64 lro_uncapable; - u64 lro_begin; - u64 lro_end1; - u64 lro_end2; - u64 lro_end3; - u64 lro_append; - u64 lro_session_exceeded; - u64 lro_close; -} xge_driver_stats_t; - -typedef struct xge_lro_entry_t { - SLIST_ENTRY(xge_lro_entry_t) next; - struct mbuf *m_head; - struct mbuf *m_tail; - struct ip *lro_header_ip; - int timestamp; - u32 tsval; - u32 tsecr; - u32 source_ip; - u32 dest_ip; - u32 next_seq; - u32 ack_seq; - u32 len; - u32 data_csum; - u16 window; - u16 source_port; - u16 dest_port; - u16 append_cnt; - u16 mss; -} xge_lro_entry_t; - -SLIST_HEAD(lro_head, xge_lro_entry_t); - -/* Adapter structure */ -typedef struct xge_lldev_t { - device_t device; /* Device */ - struct ifnet *ifnetp; /* Interface ifnet structure */ - struct resource *irq; /* Resource structure for IRQ */ - void *irqhandle; /* IRQ handle */ - xge_pci_info_t *pdev; /* PCI info */ - xge_hal_device_t *devh; /* HAL: Device Handle */ - struct mtx mtx_drv; /* Mutex - Driver */ - struct mtx mtx_tx[XGE_FIFO_COUNT]; - /* Mutex - Tx */ - char mtx_name_drv[16];/*Mutex Name - Driver */ - char mtx_name_tx[16][XGE_FIFO_COUNT]; - /* Mutex Name - Tx */ - struct callout timer; /* Timer for polling */ - struct ifmedia media; /* In-kernel representation of a */ - /* single supported media type */ - xge_hal_channel_h fifo_channel[XGE_FIFO_COUNT]; - /* FIFO channels */ - xge_hal_channel_h ring_channel[XGE_RING_COUNT]; - /* Ring channels */ - bus_dma_tag_t dma_tag_tx; /* Tag for dtr dma mapping (Tx) */ - bus_dma_tag_t dma_tag_rx; /* Tag for dtr dma mapping (Rx) */ - bus_dmamap_t extra_dma_map; /* Extra DMA map for Rx */ - xge_msi_info_t msi_info; /* MSI info */ - xge_driver_stats_t driver_stats; /* Driver statistics */ - int initialized; /* Flag: Initialized or not */ - int all_multicast; /* All multicast flag */ - int macaddr_count; /* Multicast address count */ - int in_detach; /* To avoid ioctl during detach */ - int buffer_mode; /* Buffer Mode */ - int rxd_mbuf_cnt; /* Number of buffers used */ - int rxd_mbuf_len[5];/* Buffer lengths */ - int enabled_tso; /* Flag: TSO Enabled */ - int enabled_lro; /* Flag: LRO Enabled */ - int enabled_msi; /* Flag: MSI Enabled */ - int mtu; /* Interface MTU */ - int lro_num; /* Number of LRO sessions */ - struct lro_head lro_active; /* Active LRO sessions */ - struct lro_head lro_free; /* Free LRO sessions */ -} xge_lldev_t; - -/* Rx descriptor private structure */ -typedef struct xge_rx_priv_t { - mbuf_t *bufferArray; - xge_dma_mbuf_t dmainfo[5]; -} xge_rx_priv_t; - -/* Tx descriptor private structure */ -typedef struct xge_tx_priv_t { - mbuf_t buffer; - bus_dmamap_t dma_map; -} xge_tx_priv_t; - -/* BAR0 Register */ -typedef struct xge_register_t { - char option[2]; - u64 offset; - u64 value; -}xge_register_t; - -void xge_init_params(xge_hal_device_config_t *, device_t); -void xge_init(void *); -void xge_device_init(xge_lldev_t *, xge_hal_channel_reopen_e); -void xge_device_stop(xge_lldev_t *, xge_hal_channel_reopen_e); -void xge_stop(xge_lldev_t *); -void xge_resources_free(device_t, xge_lables_e); -void xge_callback_link_up(void *); -void xge_callback_link_down(void *); -void xge_callback_crit_err(void *, xge_hal_event_e, u64); -void xge_callback_event(xge_queue_item_t *); -int xge_ifmedia_change(struct ifnet *); -void xge_ifmedia_status(struct ifnet *, struct ifmediareq *); -int xge_ioctl(struct ifnet *, unsigned long, caddr_t); -int xge_ioctl_stats(xge_lldev_t *, struct ifreq *); -int xge_ioctl_registers(xge_lldev_t *, struct ifreq *); -void xge_timer(void *); -int xge_isr_filter(void *); -void xge_isr_line(void *); -void xge_isr_msi(void *); -void xge_enable_msi(xge_lldev_t *); -int xge_rx_open(int, xge_lldev_t *, xge_hal_channel_reopen_e); -int xge_tx_open(xge_lldev_t *, xge_hal_channel_reopen_e); -void xge_channel_close(xge_lldev_t *, xge_hal_channel_reopen_e); -int xge_channel_open(xge_lldev_t *, xge_hal_channel_reopen_e); -xge_hal_status_e xge_rx_compl(xge_hal_channel_h, xge_hal_dtr_h, u8, void *); -xge_hal_status_e xge_tx_compl(xge_hal_channel_h, xge_hal_dtr_h, u8, void *); -xge_hal_status_e xge_tx_initial_replenish(xge_hal_channel_h, xge_hal_dtr_h, - int, void *, xge_hal_channel_reopen_e); -xge_hal_status_e xge_rx_initial_replenish(xge_hal_channel_h, xge_hal_dtr_h, - int, void *, xge_hal_channel_reopen_e); -void xge_rx_term(xge_hal_channel_h, xge_hal_dtr_h, xge_hal_dtr_state_e, - void *, xge_hal_channel_reopen_e); -void xge_tx_term(xge_hal_channel_h, xge_hal_dtr_h, xge_hal_dtr_state_e, - void *, xge_hal_channel_reopen_e); -void xge_set_mbuf_cflags(mbuf_t); -void xge_send(struct ifnet *); -static void inline xge_send_locked(struct ifnet *, int); -int xge_get_buf(xge_hal_dtr_h, xge_rx_priv_t *, xge_lldev_t *, int); -int xge_ring_dtr_get(mbuf_t, xge_hal_channel_h, xge_hal_dtr_h, xge_lldev_t *, - xge_rx_priv_t *); -int xge_get_buf_3b_5b(xge_hal_dtr_h, xge_rx_priv_t *, xge_lldev_t *); -void dmamap_cb(void *, bus_dma_segment_t *, int, int); -void xge_reset(xge_lldev_t *); -void xge_setmulti(xge_lldev_t *); -void xge_enable_promisc(xge_lldev_t *); -void xge_disable_promisc(xge_lldev_t *); -int xge_change_mtu(xge_lldev_t *, int); -void xge_buffer_mode_init(xge_lldev_t *, int); -void xge_initialize(device_t, xge_hal_channel_reopen_e); -void xge_terminate(device_t, xge_hal_channel_reopen_e); -int xge_probe(device_t); -int xge_driver_initialize(void); -void xge_media_init(device_t); -void xge_pci_space_save(device_t); -void xge_pci_space_restore(device_t); -void xge_msi_info_save(xge_lldev_t *); -void xge_msi_info_restore(xge_lldev_t *); -int xge_attach(device_t); -int xge_interface_setup(device_t); -int xge_detach(device_t); -int xge_shutdown(device_t); -void xge_mutex_init(xge_lldev_t *); -void xge_mutex_destroy(xge_lldev_t *); -void xge_print_info(xge_lldev_t *); -void xge_lro_flush_sessions(xge_lldev_t *); -void xge_rx_buffer_sizes_set(xge_lldev_t *, int, int); -void xge_accumulate_large_rx(xge_lldev_t *, struct mbuf *, int, - xge_rx_priv_t *); -xge_hal_status_e xge_create_dma_tags(device_t); -void xge_add_sysctl_handlers(xge_lldev_t *); -void xge_confirm_changes(xge_lldev_t *, xge_option_e); -static int xge_lro_accumulate(xge_lldev_t *, struct mbuf *); -static void xge_lro_flush(xge_lldev_t *, xge_lro_entry_t *); - -#endif // _IF_XGE_H - Property changes on: head/sys/dev/nxge/if_nxge.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/dev/nxge/xgell-version.h =================================================================== --- head/sys/dev/nxge/xgell-version.h (revision 333387) +++ head/sys/dev/nxge/xgell-version.h (nonexistent) @@ -1,42 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGELL_VERSION_H -#define XGELL_VERSION_H - -#define XGELL_VERSION_MAJOR "2" -#define XGELL_VERSION_MINOR "0" -#define XGELL_VERSION_FIX "9" -#define XGELL_VERSION_BUILD GENERATED_BUILD_VERSION -#define XGELL_VERSION XGELL_VERSION_MAJOR"."XGELL_VERSION_MINOR"." \ - GENERATED_BUILD_VERSION -#define XGELL_DESC XGE_DRIVER_NAME" v."XGELL_VERSION - -#endif /* XGELL_VERSION_H */ Property changes on: head/sys/dev/nxge/xgell-version.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/modules/nxge/Makefile =================================================================== --- head/sys/modules/nxge/Makefile (revision 333387) +++ head/sys/modules/nxge/Makefile (nonexistent) @@ -1,50 +0,0 @@ -# $FreeBSD$ - -.PATH: ${SRCTOP}/sys/dev/nxge -.PATH: ${SRCTOP}/sys/dev/nxge/xgehal - -CFLAGS_NXGE = - -# Debugging/Tracing: -# XGE_COMPONENT_HAL_CONFIG 0x1 -# XGE_COMPONENT_HAL_FIFO 0x2 -# XGE_COMPONENT_HAL_RING 0x4 -# XGE_COMPONENT_HAL_CHANNEL 0x8 -# XGE_COMPONENT_HAL_DEVICE 0x10 -# XGE_COMPONENT_HAL_MM 0x20 -# XGE_COMPONENT_HAL_QUEUE 0x40 -# XGE_COMPONENT_HAL_STATS 0x100 -# XGE_COMPONENT_OSDEP 0x10000000 -# XGE_COMPONENT_LL 0x20000000 -# XGE_COMPONENT_ALL 0xffffffff - -CFLAGS_NXGE += -DXGE_DEBUG_MODULE_MASK=XGE_COMPONENT_LL -CFLAGS_NXGE += -DXGE_DEBUG_ERR_MASK=XGE_COMPONENT_LL -#CFLAGS_NXGE += -DXGE_DEBUG_TRACE_MASK=XGE_COMPONENT_LL - -# Check Memory -#CFLAGS_NXGE += -DXGE_OS_MEMORY_CHECK - -# 2-Buffer Mode -#CFLAGS_NXGE += -DXGE_FEATURE_BUFFER_MODE_2 - -CFLAGS += $(CFLAGS_NXGE) - -KMOD= if_nxge -SRCS= if_nxge.c -SRCS+= xgehal-device.c xgehal-mm.c xge-queue.c -SRCS+= xgehal-driver.c xgehal-ring.c xgehal-channel.c -SRCS+= xgehal-fifo.c xgehal-stats.c xgehal-config.c -SRCS+= xgehal-mgmt.c -SRCS+= device_if.h bus_if.h pci_if.h - -.include - -CWARNFLAGS.if_nxge.c= ${NO_WSELF_ASSIGN} -CWARNFLAGS.xgehal-device.c= ${NO_WSELF_ASSIGN} -CWARNFLAGS.xgehal-driver.c= ${NO_WSELF_ASSIGN} -CWARNFLAGS.xgehal-ring.c= ${NO_WSELF_ASSIGN} -CWARNFLAGS.xgehal-channel.c= ${NO_WSELF_ASSIGN} -CWARNFLAGS.xgehal-fifo.c= ${NO_WSELF_ASSIGN} -CWARNFLAGS.xgehal-stats.c= ${NO_WSELF_ASSIGN} -CWARNFLAGS.xgehal-mgmt.c= ${NO_WSELF_ASSIGN} Property changes on: head/sys/modules/nxge/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/sys/modules/Makefile =================================================================== --- head/sys/modules/Makefile (revision 333387) +++ head/sys/modules/Makefile (revision 333388) @@ -1,838 +1,836 @@ # $FreeBSD$ SYSDIR?=${SRCTOP}/sys .include "${SYSDIR}/conf/kern.opts.mk" SUBDIR_PARALLEL= # Modules that include binary-only blobs of microcode should be selectable by # MK_SOURCELESS_UCODE option (see below). .if defined(MODULES_OVERRIDE) && !defined(ALL_MODULES) SUBDIR=${MODULES_OVERRIDE} .else SUBDIR= \ ${_3dfx} \ ${_3dfx_linux} \ ${_aac} \ ${_aacraid} \ accf_data \ accf_dns \ accf_http \ acl_nfs4 \ acl_posix1e \ ${_acpi} \ ae \ ${_aesni} \ age \ ${_agp} \ aha \ ahci \ ${_aic} \ aic7xxx \ alc \ ale \ alq \ ${_amd_ecc_inject} \ ${_amdsbwd} \ ${_amdsmn} \ ${_amdtemp} \ amr \ ${_an} \ ${_aout} \ ${_apm} \ ${_arcmsr} \ ${_armv8crypto} \ ${_asmc} \ ata \ ath \ ath_dfs \ ath_hal \ ath_hal_ar5210 \ ath_hal_ar5211 \ ath_hal_ar5212 \ ath_hal_ar5416 \ ath_hal_ar9300 \ ath_main \ ath_rate \ ath_pci \ ${_autofs} \ ${_auxio} \ ${_bce} \ ${_bcm283x_clkman} \ ${_bcm283x_pwm} \ bfe \ bge \ bhnd \ ${_bxe} \ ${_bios} \ ${_bktr} \ ${_blake2} \ ${_bm} \ bnxt \ bridgestp \ bwi \ bwn \ ${_bytgpio} \ ${_chvgpio} \ cam \ ${_cardbus} \ ${_carp} \ cas \ ${_cbb} \ cc \ ${_ccp} \ cd9660 \ cd9660_iconv \ ${_ce} \ ${_cfi} \ ${_chromebook_platform} \ ${_ciss} \ cloudabi \ ${_cloudabi32} \ ${_cloudabi64} \ ${_cmx} \ ${_coff} \ ${_coretemp} \ ${_cp} \ ${_cpsw} \ ${_cpuctl} \ ${_cpufreq} \ ${_crypto} \ ${_cryptodev} \ ${_cs} \ ${_ctau} \ ctl \ ${_cxgb} \ ${_cxgbe} \ dc \ dcons \ dcons_crom \ de \ ${_dpms} \ ${_dpt} \ ${_drm} \ ${_drm2} \ dummynet \ ${_ed} \ ${_efirt} \ ${_em} \ ${_ena} \ ${_ep} \ ${_epic} \ esp \ ${_et} \ evdev \ ${_ex} \ ${_exca} \ ext2fs \ fdc \ fdescfs \ ${_fe} \ ${_ffec} \ filemon \ firewire \ firmware \ fuse \ ${_fxp} \ gem \ geom \ ${_glxiic} \ ${_glxsb} \ gpio \ hifn \ hme \ ${_hpt27xx} \ ${_hptiop} \ ${_hptmv} \ ${_hptnr} \ ${_hptrr} \ hwpmc \ ${_hwpmc_mips24k} \ ${_hwpmc_mips74k} \ ${_hyperv} \ i2c \ ${_ibcore} \ ${_ibcs2} \ ${_ichwd} \ ${_ida} \ if_bridge \ if_disc \ if_edsc \ ${_if_enc} \ if_epair \ ${_if_gif} \ ${_if_gre} \ ${_if_me} \ if_lagg \ ${_if_ndis} \ ${_if_stf} \ if_tap \ if_tun \ if_vlan \ if_vxlan \ ${_iir} \ imgact_binmisc \ ${_intelspi} \ ${_io} \ ${_ioat} \ ${_ipoib} \ ${_ipdivert} \ ${_ipfilter} \ ${_ipfw} \ ipfw_nat \ ${_ipfw_nat64} \ ${_ipfw_nptv6} \ ${_ipfw_pmod} \ ${_ipmi} \ ip6_mroute_mod \ ip_mroute_mod \ ${_ips} \ ${_ipsec} \ ${_ipw} \ ${_ipwfw} \ ${_isci} \ ${_iser} \ isp \ ${_ispfw} \ ${_iwi} \ ${_iwifw} \ ${_iwm} \ ${_iwmfw} \ ${_iwn} \ ${_iwnfw} \ ${_ix} \ ${_ixv} \ ${_ixl} \ ${_ixlv} \ jme \ joy \ kbdmux \ kgssapi \ kgssapi_krb5 \ khelp \ krpc \ ksyms \ le \ lge \ libalias \ libiconv \ libmchain \ ${_linprocfs} \ ${_linsysfs} \ ${_linux} \ ${_linux_common} \ ${_linux64} \ linuxkpi \ ${_lio} \ lpt \ mac_biba \ mac_bsdextended \ mac_ifoff \ mac_lomac \ mac_mls \ mac_none \ mac_partition \ mac_portacl \ mac_seeotheruids \ mac_stub \ mac_test \ malo \ md \ mdio \ mem \ mfi \ mii \ mlx \ ${_mlx4} \ ${_mlx4ib} \ ${_mlx4en} \ ${_mlx5} \ ${_mlx5en} \ ${_mlx5ib} \ ${_mly} \ mmc \ mmcsd \ mpr \ mps \ mpt \ mqueue \ mrsas \ msdosfs \ msdosfs_iconv \ ${_mse} \ msk \ ${_mthca} \ mvs \ mwl \ ${_mwlfw} \ mxge \ my \ ${_nandfs} \ ${_nandsim} \ ${_ncr} \ ${_nctgpio} \ ${_ncv} \ ${_ndis} \ ${_netgraph} \ ${_nfe} \ nfscl \ nfscommon \ nfsd \ nfslock \ nfslockd \ nfssvc \ nge \ nmdm \ ${_nsp} \ nullfs \ ${_ntb} \ ${_nvd} \ ${_nvme} \ ${_nvram} \ - ${_nxge} \ oce \ ${_ocs_fc} \ otus \ ${_otusfw} \ ow \ ${_padlock} \ ${_padlock_rng} \ ${_pccard} \ ${_pcfclock} \ pcn \ ${_pf} \ ${_pflog} \ ${_pfsync} \ plip \ ${_pms} \ ppbus \ ppc \ ppi \ pps \ procfs \ proto \ pseudofs \ ${_pst} \ pty \ puc \ ${_qlxge} \ ${_qlxgb} \ ${_qlxgbe} \ ${_qlnx} \ ral \ ${_ralfw} \ ${_random_fortuna} \ ${_random_yarrow} \ ${_random_other} \ rc4 \ ${_rdma} \ ${_rdrand_rng} \ re \ rl \ rtwn \ rtwn_pci \ rtwn_usb \ ${_rtwnfw} \ ${_s3} \ ${_safe} \ ${_sbni} \ scc \ ${_scsi_low} \ sdhci \ ${_sdhci_acpi} \ sdhci_pci \ sem \ send \ ${_sf} \ ${_sfxge} \ sge \ ${_sgx} \ ${_sgx_linux} \ siftr \ siis \ sis \ sk \ ${_smartpqi} \ smbfs \ sn \ snp \ sound \ ${_speaker} \ spi \ ${_splash} \ ${_sppp} \ ste \ ${_stg} \ stge \ ${_sym} \ ${_syscons} \ sysvipc \ tcp \ ${_ti} \ tl \ tmpfs \ ${_toecore} \ ${_tpm} \ trm \ ${_twa} \ twe \ tws \ tx \ ${_txp} \ uart \ ubsec \ udf \ udf_iconv \ ufs \ uinput \ unionfs \ usb \ ${_vesa} \ ${_virtio} \ vge \ ${_viawd} \ videomode \ vkbd \ ${_vmm} \ ${_vmware} \ ${_vpo} \ vr \ vte \ vx \ ${_vxge} \ wb \ ${_wbwd} \ ${_wi} \ wlan \ wlan_acl \ wlan_amrr \ wlan_ccmp \ wlan_rssadapt \ wlan_tkip \ wlan_wep \ wlan_xauth \ ${_wpi} \ ${_wpifw} \ ${_x86bios} \ ${_xe} \ xl \ zlib .if ${MK_AUTOFS} != "no" || defined(ALL_MODULES) _autofs= autofs .endif .if ${MK_CDDL} != "no" || defined(ALL_MODULES) .if (${MACHINE_CPUARCH} != "arm" || ${MACHINE_ARCH:Marmv[67]*} != "") && \ ${MACHINE_CPUARCH} != "mips" && \ ${MACHINE_CPUARCH} != "sparc64" SUBDIR+= dtrace .endif SUBDIR+= opensolaris .endif .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) .if exists(${SRCTOP}/sys/opencrypto) _crypto= crypto _cryptodev= cryptodev _random_fortuna=random_fortuna _random_yarrow= random_yarrow _random_other= random_other .endif .endif .if ${MK_CUSE} != "no" || defined(ALL_MODULES) SUBDIR+= cuse .endif .if (${MK_INET_SUPPORT} != "no" || ${MK_INET6_SUPPORT} != "no") || \ defined(ALL_MODULES) _carp= carp _toecore= toecore _if_enc= if_enc _if_gif= if_gif _if_gre= if_gre _ipfw_pmod= ipfw_pmod .if ${MK_IPSEC_SUPPORT} != "no" _ipsec= ipsec .endif .endif .if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \ defined(ALL_MODULES) _if_stf= if_stf .endif .if ${MK_INET_SUPPORT} != "no" || defined(ALL_MODULES) _if_me= if_me _ipdivert= ipdivert _ipfw= ipfw .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES) _ipfw_nat64= ipfw_nat64 .endif .endif .if ${MK_INET6_SUPPORT} != "no" || defined(ALL_MODULES) _ipfw_nptv6= ipfw_nptv6 .endif .if ${MK_IPFILTER} != "no" || defined(ALL_MODULES) _ipfilter= ipfilter .endif .if ${MK_ISCSI} != "no" || defined(ALL_MODULES) SUBDIR+= cfiscsi SUBDIR+= iscsi SUBDIR+= iscsi_initiator .endif .if ${MK_NAND} != "no" || defined(ALL_MODULES) _nandfs= nandfs _nandsim= nandsim .endif .if ${MK_NETGRAPH} != "no" || defined(ALL_MODULES) _netgraph= netgraph .endif .if (${MK_PF} != "no" && (${MK_INET_SUPPORT} != "no" || \ ${MK_INET6_SUPPORT} != "no")) || defined(ALL_MODULES) _pf= pf _pflog= pflog .if ${MK_INET_SUPPORT} != "no" _pfsync= pfsync .endif .endif .if ${MK_SOURCELESS_UCODE} != "no" _bce= bce _fxp= fxp _ispfw= ispfw _sf= sf _ti= ti _txp= txp .if ${MACHINE_CPUARCH} != "mips" _mwlfw= mwlfw _otusfw= otusfw _ralfw= ralfw _rtwnfw= rtwnfw .endif .endif .if ${MK_SOURCELESS_UCODE} != "no" && ${MACHINE_CPUARCH} != "arm" && \ ${MACHINE_CPUARCH} != "mips" && \ ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "powerpcspe" && \ ${MACHINE_CPUARCH} != "riscv" _cxgbe= cxgbe .endif .if ${MK_TESTS} != "no" || defined(ALL_MODULES) SUBDIR+= tests .endif .if ${MK_ZFS} != "no" || defined(ALL_MODULES) SUBDIR+= zfs .endif .if (${MACHINE_CPUARCH} == "mips" && ${MACHINE_ARCH:Mmips64} == "") _hwpmc_mips24k= hwpmc_mips24k _hwpmc_mips74k= hwpmc_mips74k .endif .if ${MACHINE_CPUARCH} != "aarch64" && ${MACHINE_CPUARCH} != "arm" && \ ${MACHINE_CPUARCH} != "mips" && ${MACHINE_CPUARCH} != "powerpc" && \ ${MACHINE_CPUARCH} != "riscv" _syscons= syscons _vpo= vpo .endif .if ${MACHINE_CPUARCH} != "mips" # no BUS_SPACE_UNSPECIFIED # No barrier instruction support (specific to this driver) _sym= sym # intr_disable() is a macro, causes problems .if ${MK_SOURCELESS_UCODE} != "no" _cxgb= cxgb .endif .endif .if ${MACHINE_CPUARCH} == "aarch64" _armv8crypto= armv8crypto _efirt= efirt _em= em .endif .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" _agp= agp _an= an _aout= aout _bios= bios _bktr= bktr .if ${MK_SOURCELESS_UCODE} != "no" _bxe= bxe .endif _cardbus= cardbus _cbb= cbb _cpuctl= cpuctl _cpufreq= cpufreq _cs= cs _dpms= dpms _drm= drm _drm2= drm2 _ed= ed _em= em _ena= ena _ep= ep _et= et _exca= exca _fe= fe .if ${MK_OFED} != "no" || defined(ALL_MODULES) _ibcore= ibcore .endif _if_ndis= if_ndis _io= io .if ${MK_OFED} != "no" || defined(ALL_MODULES) _ipoib= ipoib _iser= iser .endif _ix= ix _ixv= ixv _linprocfs= linprocfs _linsysfs= linsysfs _linux= linux .if ${MK_SOURCELESS_UCODE} != "no" _lio= lio .endif _nctgpio= nctgpio _ndis= ndis _ocs_fc= ocs_fc _pccard= pccard .if ${MK_OFED} != "no" || defined(ALL_MODULES) _rdma= rdma .endif _safe= safe _scsi_low= scsi_low _speaker= speaker _splash= splash _sppp= sppp _vmware= vmware _vxge= vxge _wbwd= wbwd _wi= wi _xe= xe _aac= aac _aacraid= aacraid _acpi= acpi .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) _aesni= aesni .endif _amd_ecc_inject=amd_ecc_inject _amdsbwd= amdsbwd _amdsmn= amdsmn _amdtemp= amdtemp _arcmsr= arcmsr _asmc= asmc .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) _blake2= blake2 .endif _bytgpio= bytgpio _chvgpio= chvgpio _ciss= ciss _chromebook_platform= chromebook_platform _cmx= cmx _coretemp= coretemp .if ${MK_SOURCELESS_HOST} != "no" _hpt27xx= hpt27xx .endif _hptiop= hptiop .if ${MK_SOURCELESS_HOST} != "no" _hptmv= hptmv _hptnr= hptnr _hptrr= hptrr .endif _hyperv= hyperv _ichwd= ichwd _ida= ida _iir= iir _intelspi= intelspi _ipmi= ipmi _ips= ips _isci= isci _ipw= ipw _iwi= iwi _iwm= iwm _iwn= iwn .if ${MK_SOURCELESS_UCODE} != "no" _ipwfw= ipwfw _iwifw= iwifw _iwmfw= iwmfw _iwnfw= iwnfw .endif _mlx4= mlx4 _mlx5= mlx5 .if (${MK_INET_SUPPORT} != "no" && ${MK_INET6_SUPPORT} != "no") || \ defined(ALL_MODULES) _mlx4en= mlx4en _mlx5en= mlx5en .endif .if ${MK_OFED} != "no" || defined(ALL_MODULES) _mthca= mthca _mlx4ib= mlx4ib _mlx5ib= mlx5ib .endif _mly= mly _nfe= nfe _nvd= nvd _nvme= nvme _nvram= nvram -_nxge= nxge .if ${MK_CRYPT} != "no" || defined(ALL_MODULES) _padlock= padlock _padlock_rng= padlock_rng _rdrand_rng= rdrand_rng .endif _s3= s3 _sdhci_acpi= sdhci_acpi _tpm= tpm _twa= twa _vesa= vesa _viawd= viawd _virtio= virtio _wpi= wpi .if ${MK_SOURCELESS_UCODE} != "no" _wpifw= wpifw .endif _x86bios= x86bios .endif .if ${MACHINE_CPUARCH} == "amd64" _ccp= ccp _efirt= efirt _ioat= ioat _ixl= ixl _ixlv= ixlv _linux64= linux64 _linux_common= linux_common _ntb= ntb _pms= pms _qlxge= qlxge _qlxgb= qlxgb .if ${MK_SOURCELESS_UCODE} != "no" _qlxgbe= qlxgbe _qlnx= qlnx .endif _sfxge= sfxge _sgx= sgx _sgx_linux= sgx_linux _smartpqi= smartpqi .if ${MK_BHYVE} != "no" || defined(ALL_MODULES) _vmm= vmm .endif .endif .if ${MACHINE_CPUARCH} == "i386" # XXX some of these can move to the general case when de-i386'ed # XXX some of these can move now, but are untested on other architectures. _3dfx= 3dfx _3dfx_linux= 3dfx_linux _aic= aic _apm= apm .if ${MK_SOURCELESS_UCODE} != "no" _ce= ce .endif _coff= coff .if ${MK_SOURCELESS_UCODE} != "no" _cp= cp .endif _glxiic= glxiic _glxsb= glxsb #_ibcs2= ibcs2 _mse= mse _ncr= ncr _ncv= ncv _nsp= nsp _pcfclock= pcfclock _pst= pst _sbni= sbni _stg= stg .if ${MK_SOURCELESS_UCODE} != "no" _ctau= ctau .endif _dpt= dpt _ex= ex .endif .if ${MACHINE_CPUARCH} == "arm" _cfi= cfi _cpsw= cpsw .endif .if ${MACHINE_CPUARCH} == "powerpc" _agp= agp _an= an _bm= bm _cardbus= cardbus _cbb= cbb _cfi= cfi _cpufreq= cpufreq _drm= drm _exca= exca _ffec= ffec _pccard= pccard _wi= wi .endif .if ${MACHINE_ARCH} == "powerpc64" _drm2= drm2 .endif .if ${MACHINE_ARCH} == "powerpc64" || ${MACHINE_ARCH} == "powerpc" # Don't build powermac_nvram for powerpcspe, it's never supported. _nvram= powermac_nvram .endif .if ${MACHINE_CPUARCH} == "sparc64" _auxio= auxio _em= em _epic= epic .endif .if (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \ ${MACHINE_ARCH:Marmv[67]*} != "" || ${MACHINE_CPUARCH} == "i386") _cloudabi32= cloudabi32 .endif .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" _cloudabi64= cloudabi64 .endif .endif .if ${MACHINE_ARCH:Marmv[67]*} != "" || ${MACHINE_CPUARCH} == "aarch64" _bcm283x_clkman= bcm283x_clkman _bcm283x_pwm= bcm283x_pwm .endif SUBDIR+=${MODULES_EXTRA} .for reject in ${WITHOUT_MODULES} SUBDIR:= ${SUBDIR:N${reject}} .endfor # Calling kldxref(8) for each module is expensive. .if !defined(NO_XREF) .MAKEFLAGS+= -DNO_XREF afterinstall: .PHONY @if type kldxref >/dev/null 2>&1; then \ ${ECHO} kldxref ${DESTDIR}${KMODDIR}; \ kldxref ${DESTDIR}${KMODDIR}; \ fi .endif .include "${SYSDIR}/conf/config.mk" SUBDIR:= ${SUBDIR:u:O} .include Index: head/tools/kerneldoc/subsys/Doxyfile-dev_nxge =================================================================== --- head/tools/kerneldoc/subsys/Doxyfile-dev_nxge (revision 333387) +++ head/tools/kerneldoc/subsys/Doxyfile-dev_nxge (nonexistent) @@ -1,21 +0,0 @@ -# Doxyfile 1.5.2 - -# $FreeBSD$ - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = "FreeBSD kernel NXGE device code" -OUTPUT_DIRECTORY = $(DOXYGEN_DEST_PATH)/dev_nxge/ -EXTRACT_ALL = YES # for undocumented src, no warnings enabled -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = $(DOXYGEN_SRC_PATH)/dev/nxge/ \ - $(NOTREVIEWED) - -GENERATE_TAGFILE = dev_nxge/dev_nxge.tag - -@INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH) -@INCLUDE = common-Doxyfile - Property changes on: head/tools/kerneldoc/subsys/Doxyfile-dev_nxge ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/tools/tools/nxge/xge_log.h =================================================================== --- head/tools/tools/nxge/xge_log.h (revision 333387) +++ head/tools/tools/nxge/xge_log.h (nonexistent) @@ -1,2592 +0,0 @@ -/*- - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_CMN_H -#include "xge_cmn.h" -#endif - -#define XGE_STR_MAX_LEN_REGS 26 -#define XGE_STR_MAX_LEN_STATS 32 -#define XGE_STR_MAX_LEN_PCICONF 20 -#define XGE_STR_MAX_LEN_DEVCONF 32 - -#define XGE_FORMAT_REGS "%s%*s\t0x%.8llX\t0x%.16llX" -#define XGE_FORMAT_PCICONF "%s%*s\t0x%.4llX\t0x%.4llX" -#define XGE_FORMAT_STATS "%s%*s\t%d" -#define XGE_FORMAT_DEVCONF "%s%*s\t%d" - -FILE *fdAll; - -int spaceCount = 0; -char line[68] = \ - "==================================================================="; - -#define XGE_PRINT_HEADER(fd, maxSize, pOffset) { \ - XGE_PRINT_LINE(fd); \ - spaceCount = (maxSize) - 9; \ - if((pOffset) == 1) { \ - XGE_PRINT(fd, "PARAMETER%*s\tOFFSET\tVALUE", spaceCount, " "); \ - } \ - else { \ - XGE_PRINT(fd, "PARAMETER%*s\tVALUE", spaceCount, " "); \ - } \ - XGE_PRINT_LINE(fd); \ -} - -#define XGE_PRINT_READ_HEADER(fd, maxSize, pOffset) { \ - XGE_PRINT_LINE(fd); \ - spaceCount = (maxSize) - 9; \ - if((pOffset) == 1) { \ - XGE_PRINT(fd, "OFFSET\t\tVALUE", spaceCount, " "); \ - } \ - else { \ - XGE_PRINT(fd, "VALUE", spaceCount, " "); \ - } \ - XGE_PRINT_LINE(fd); \ -} - -#define XGE_PRINT_HEADER_REGS(fd) \ - XGE_PRINT_HEADER(fd, XGE_STR_MAX_LEN_REGS, 1); -#define XGE_PRINT_READ_HEADER_REGS(fd) \ - XGE_PRINT_READ_HEADER(fd, XGE_STR_MAX_LEN_REGS, 1); -#define XGE_PRINT_HEADER_PCICONF(fd) \ - XGE_PRINT_HEADER(fd, XGE_STR_MAX_LEN_PCICONF, 1); -#define XGE_PRINT_HEADER_DEVCONF(fd) \ - XGE_PRINT_HEADER(fd, XGE_STR_MAX_LEN_DEVCONF, 0); -#define XGE_PRINT_HEADER_STATS(fd) \ - XGE_PRINT_HEADER(fd, XGE_STR_MAX_LEN_STATS, 0); - -#define XGE_PRINT_REGS(fd, parameter, offset, value) { \ - spaceCount = XGE_STR_MAX_LEN_REGS - strlen(parameter); \ - XGE_PRINT(fd, XGE_FORMAT_REGS, (parameter), (spaceCount), " ", \ - (offset), (value)); \ -} - -#define XGE_PRINT_PCICONF(fd, parameter, offset, value) { \ - spaceCount = XGE_STR_MAX_LEN_PCICONF - strlen(parameter); \ - XGE_PRINT(fd, XGE_FORMAT_PCICONF, (parameter), (spaceCount), " ", \ - (offset), (value)); \ -} - -#define XGE_PRINT_DEVCONF(fd, parameter, value) { \ - spaceCount = XGE_STR_MAX_LEN_DEVCONF - strlen(parameter); \ - XGE_PRINT(fd, XGE_FORMAT_DEVCONF, (parameter), (spaceCount), " ", \ - (value)); \ -} - -#define XGE_PRINT_STATS(fd, parameter, value) { \ - spaceCount = XGE_STR_MAX_LEN_STATS - strlen(parameter); \ - XGE_PRINT(fd, XGE_FORMAT_STATS, (parameter), (spaceCount), " ", \ - (value)); \ -} - -xge_pci_bar0_t regInfo[] = { - {"GENERAL_INT_STATUS", 0x0000, 0, 0}, - {"GENERAL_INT_MASK", 0x0008, 0, 0}, - {"SW_RESET", 0x0100, 0, 0}, - {"ADAPTER_STATUS", 0x0108, 0, 0}, - {"ADAPTER_CONTROL", 0x0110, 0, 0}, - {"SERR_SOURCE", 0x0118, 0, 0}, - {"PCI_MODE", 0x0120, 0, 1}, - {"RIC_STATUS", 0x0160, 0, 1}, - {"MBIST_STATUS", 0x0558, 0, 1}, - {"PIC_INT_STATUS", 0x0800, 0, 0}, - {"PIC_INT_MASK", 0x0808, 0, 0}, - {"TxPIC_INT_REG", 0x0810, 0, 0}, - {"TxPIC_INT_MASK", 0x0818, 0, 0}, - {"TxPIC_INT_ALARM", 0x0820, 0, 0}, - {"RxPIC_INT_REG", 0x0828, 0, 0}, - {"RxPIC_INT_MASK", 0x0830, 0, 0}, - {"RxPIC_INT_ALARM", 0x0838, 0, 0}, - {"FLSH_INT_REG", 0x0840, 0, 0}, - {"FLSH_INT_MASK", 0x0848, 0, 0}, - {"FLSH_INT_ALARM", 0x0850, 0, 0}, - {"MDIO_INT_REG", 0x0858, 0, 0}, - {"MDIO_INT_MASK", 0x0860, 0, 0}, - {"MDIO_INT_ALARM", 0x0868, 0, 0}, - {"IIC_INT_REG", 0x0870, 0, 0}, - {"IIC_INT_MASK", 0x0878, 0, 0}, - {"IIC_INT_ALARM", 0x0880, 0, 0}, - {"MSI_PENDING_REG", 0x0888, 0, 1}, - {"GPIO_INT_REG", 0x0890, 0, 0}, - {"GPIO_INT_MASK", 0x0898, 0, 0}, - {"GPIO_INT_ALARM", 0x08A0, 0, 0}, - {"MISC_INT_REG", 0x0890, 0, 1}, - {"MISC_INT_MASK", 0x0898, 0, 1}, - {"MISC_INT_ALARM", 0x08A0, 0, 1}, - {"MSI_TRIGGERED_REG", 0x08A8, 0, 1}, - {"XFP_GPIO_INT_REG", 0x08B0, 0, 1}, - {"XFP_GPIO_INT_MASK", 0x08B8, 0, 1}, - {"XFP_GPIO_ALARM", 0x08C0, 0, 1}, - {"TX_TRAFFIC_INT", 0x08E0, 0, 0}, - {"TX_TRAFFIC_INT_MASK", 0x08E8, 0, 0}, - {"RX_TRAFFIC_INT", 0x08F0, 0, 0}, - {"RX_TRAFFIC_INT_MASK", 0x08F8, 0, 0}, - {"PIC_CONTROL", 0x0900, 0, 0}, - {"SWAPPER_CTRL", 0x0908, 0, 0}, - {"PIF_RD_SWAPPER_Fb", 0x0910, 0, 0}, - {"SCHEDULED_INT_CTRL", 0x0918, 0, 0}, - {"TxReqTimeOut", 0x0920, 0, 0}, - {"STATSReqTimeOut", 0x0928, 0, 0}, - {"Read_Retry_Delay", 0x0930, 0, 0}, - {"Read_Retry_Acceleration", 0x0938, 0, 0}, - {"Write_Retry_Delay", 0x0940, 0, 0}, - {"Write_Retry_Acceleration", 0x0948, 0, 0}, - {"XMSI_Control", 0x0950, 0, 0}, - {"XMSI_Access", 0x0958, 0, 0}, - {"XMSI_Address", 0x0960, 0, 0}, - {"XMSI_Data", 0x0968, 0, 0}, - {"Rx_MAT", 0x0970, 0, 0}, - {"Tx_MAT0_7", 0x0980, 0, 0}, - {"Tx_MAT8_15", 0x0988, 0, 0}, - {"Tx_MAT16_23", 0x0990, 0, 0}, - {"Tx_MAT24_31", 0x0998, 0, 0}, - {"Tx_MAT32_39", 0x09A0, 0, 0}, - {"Tx_MAT40_47", 0x09A8, 0, 0}, - {"Tx_MAT48_55", 0x09B0, 0, 0}, - {"Tx_MAT56_63", 0x09B8, 0, 0}, - {"XMSI_MASK_REG", 0x09C0, 0, 1}, - {"STAT_BYTE_CNT", 0x09C8, 0, 1}, - {"STAT_CFG", 0x09D0, 0, 0}, - {"STAT_ADDR", 0x09D8, 0, 0}, - {"MDIO_CONTROL", 0x09E0, 0, 0}, - {"DTX_CONTROL", 0x09E8, 0, 0}, - {"I2C_CONTROL", 0x09F0, 0, 0}, - {"GPIO_CONTROL", 0x09F8, 0, 0}, - {"BEACON_CONTROL", 0x09F8, 0, 1}, - {"HOST_SCRATCH", 0x0A00, 0, 0}, - {"MISC_CONTROL", 0x0A00, 0, 1}, - {"XFP_CONTROL", 0x0A08, 0, 1}, - {"GPIO_CONTROL", 0x0A10, 0, 1}, - {"TxFIFO_DW_MASK", 0x0A18, 0, 1}, - {"SPLIT_TABLE_LINE_NO", 0x0A20, 0, 1}, - {"SC_TIMEOUT", 0x0A28, 0, 1}, - {"PIC_CONTROL_2", 0x0A30, 0, 1}, - {"INI_DPERR_CTRL", 0x0A38, 0, 1}, - {"WREQ_SPLIT_MASK", 0x0A40, 0, 1}, - {"QW_PER_RXD", 0x0A48, 0, 1}, - {"PIC_STATUS", 0x0B00, 0, 1}, - {"TXP_STATUS", 0x0B08, 0, 1}, - {"TXP_ERR_CONTEXT", 0x0B10, 0, 1}, - {"SPDM_BIR_OFFSET", 0x0B18, 0, 1}, - {"SPDM_OVERWRITE", 0x0B20, 0, 1}, - {"CFG_ADDR_ON_DPERR", 0x0B28, 0, 1}, - {"PIF_ADDR_ON_DPERR", 0x0B30, 0, 1}, - {"TAGS_IN_USE", 0x0B38, 0, 1}, - {"RD_REQ_TYPES", 0x0B40, 0, 1}, - {"SPLIT_TABLE_LINE", 0x0B48, 0, 1}, - {"UNXP_SPLIT_ADD_PH", 0x0B50, 0, 1}, - {"UNEXP_SPLIT_ATTR_PH", 0x0B58, 0, 1}, - {"SPLIT_MESSAGE", 0x0B60, 0, 1}, - {"SPDM_STRUCTURE", 0x0B68, 0, 1}, - {"TXDW_PTR_CNT_0", 0x0B70, 0, 1}, - {"TXDW_PTR_CNT_1", 0x0B78, 0, 1}, - {"TXDW_PTR_CNT_2", 0x0B80, 0, 1}, - {"TXDW_PTR_CNT_3", 0x0B88, 0, 1}, - {"TXDW_PTR_CNT_4", 0x0B90, 0, 1}, - {"TXDW_PTR_CNT_5", 0x0B98, 0, 1}, - {"TXDW_PTR_CNT_6", 0x0BA0, 0, 1}, - {"TXDW_PTR_CNT_7", 0x0BA8, 0, 1}, - {"RXDW_CNT_RING_0", 0x0BB0, 0, 1}, - {"RXDW_CNT_RING_1", 0x0BB8, 0, 1}, - {"RXDW_CNT_RING_2", 0x0BC0, 0, 1}, - {"RXDW_CNT_RING_3", 0x0BC8, 0, 1}, - {"RXDW_CNT_RING_4", 0x0BD0, 0, 1}, - {"RXDW_CNT_RING_5", 0x0BD8, 0, 1}, - {"RXDW_CNT_RING_6", 0x0BE0, 0, 1}, - {"RXDW_CNT_RING_7", 0x0BE8, 0, 1}, - {"TXDMA_INT_STATUS", 0x1000, 0, 0}, - {"TXDMA_INT_MASK", 0x1008, 0, 0}, - {"PFC_ERR_REG", 0x1010, 0, 0}, - {"PFC_ERR_MASK", 0x1018, 0, 0}, - {"PFC_ERR_ALARM", 0x1020, 0, 0}, - {"TDA_ERR_REG", 0x1028, 0, 0}, - {"TDA_ERR_MASK", 0x1030, 0, 0}, - {"TDA_ERR_ALARM", 0x1038, 0, 0}, - {"PCC_ERR_REG", 0x1040, 0, 0}, - {"PCC_ERR_MASK", 0x1048, 0, 0}, - {"PCC_ERR_ALARM", 0x1050, 0, 0}, - {"TTI_ERR_REG", 0x1058, 0, 0}, - {"TTI_ERR_MASK", 0x1060, 0, 0}, - {"TTI_ERR_ALARM", 0x1068, 0, 0}, - {"LSO_ERR_REG", 0x1070, 0, 0}, - {"LSO_ERR_MASK", 0x1078, 0, 0}, - {"LSO_ERR_ALARM", 0x1080, 0, 0}, - {"TPA_ERR_REG", 0x1088, 0, 0}, - {"TPA_ERR_MASK", 0x1090, 0, 0}, - {"TPA_ERR_ALARM", 0x1098, 0, 0}, - {"SM_ERR_REG", 0x10A0, 0, 0}, - {"SM_ERR_MASK", 0x10A8, 0, 0}, - {"SM_ERR_ALARM", 0x10B0, 0, 0}, - {"TX_FIFO_PARTITION_0", 0x1108, 0, 0}, - {"TX_FIFO_PARTITION_1", 0x1110, 0, 0}, - {"TX_FIFO_PARTITION_2", 0x1118, 0, 0}, - {"TX_FIFO_PARTITION_3", 0x1120, 0, 0}, - {"TX_W_ROUND_ROBIN_0", 0x1128, 0, 0}, - {"TX_W_ROUND_ROBIN_1", 0x1130, 0, 0}, - {"TX_W_ROUND_ROBIN_2", 0x1138, 0, 0}, - {"TX_W_ROUND_ROBIN_3", 0x1140, 0, 0}, - {"TX_W_ROUND_ROBIN_4", 0x1148, 0, 0}, - {"TTI_COMMAND_MEM", 0x1150, 0, 0}, - {"TTI_DATA1_MEM", 0x1158, 0, 0}, - {"TTI_DATA2_MEM", 0x1160, 0, 0}, - {"TX_PA_CFG", 0x1168, 0, 0}, - {"PCC_ENABLE", 0x1170, 0, 0}, - {"PFC_MONITOR_0", 0x1178, 0, 1}, - {"PFC_MONITOR_1", 0x1180, 0, 1}, - {"PFC_MONITOR_2", 0x1188, 0, 1}, - {"PFC_MONITOR_3", 0x1190, 0, 1}, - {"TXD_OWNERSHIP_CTRL", 0x1198, 0, 1}, - {"PFC_READ_CNTRL", 0x11A0, 0, 1}, - {"PFC_READ_DATA", 0x11A8, 0, 1}, - {"RXDMA_INT_STATUS", 0x1800, 0, 0}, - {"RXDMA_INT_MASK", 0x1808, 0, 0}, - {"RDA_ERR_REG", 0x1810, 0, 0}, - {"RDA_ERR_MASK", 0x1818, 0, 0}, - {"RDA_ERR_ALARM", 0x1820, 0, 0}, - {"RC_ERR_REG", 0x1828, 0, 0}, - {"RC_ERR_MASK", 0x1830, 0, 0}, - {"RC_ERR_ALARM", 0x1838, 0, 0}, - {"PRC_PCIX_ERR_REG", 0x1840, 0, 0}, - {"PRC_PCIX_ERR_MASK", 0x1848, 0, 0}, - {"PRC_PCIX_ERR_ALARM", 0x1850, 0, 0}, - {"RPA_ERR_REG", 0x1858, 0, 0}, - {"RPA_ERR_MASK", 0x1860, 0, 0}, - {"RPA_ERR_ALARM", 0x1868, 0, 0}, - {"RTI_ERR_REG", 0x1870, 0, 0}, - {"RTI_ERR_MASK", 0x1878, 0, 0}, - {"RTI_ERR_ALARM", 0x1880, 0, 0}, - {"RX_QUEUE_PRIORITY", 0x1900, 0, 0}, - {"RX_W_ROUND_ROBIN_0", 0x1908, 0, 0}, - {"RX_W_ROUND_ROBIN_1", 0x1910, 0, 0}, - {"RX_W_ROUND_ROBIN_2", 0x1918, 0, 0}, - {"RX_W_ROUND_ROBIN_3", 0x1920, 0, 0}, - {"RX_W_ROUND_ROBIN_4", 0x1928, 0, 0}, - {"PRC_RXD0_0", 0x1930, 0, 0}, - {"PRC_RXD0_1", 0x1938, 0, 0}, - {"PRC_RXD0_2", 0x1940, 0, 0}, - {"PRC_RXD0_3", 0x1948, 0, 0}, - {"PRC_RXD0_4", 0x1950, 0, 0}, - {"PRC_RXD0_5", 0x1958, 0, 0}, - {"PRC_RXD0_6", 0x1960, 0, 0}, - {"PRC_RXD0_7", 0x1968, 0, 0}, - {"PRC_CTRL_0", 0x1970, 0, 0}, - {"PRC_CTRL_1", 0x1978, 0, 0}, - {"PRC_CTRL_2", 0x1980, 0, 0}, - {"PRC_CTRL_3", 0x1988, 0, 0}, - {"PRC_CTRL_4", 0x1990, 0, 0}, - {"PRC_CTRL_5", 0x1998, 0, 0}, - {"PRC_CTRL_6", 0x19A0, 0, 0}, - {"PRC_CTRL_7", 0x19A8, 0, 0}, - {"PRC_ALARM_ACTION", 0x19B0, 0, 0}, - {"RTI_COMMAND_MEM", 0x19B8, 0, 0}, - {"RTI_DATA1_MEM", 0x19C0, 0, 0}, - {"RTI_DATA2_MEM", 0x19C8, 0, 0}, - {"RX_PA_CFG", 0x19D0, 0, 0}, - {"RING_BUMP_COUNTER1", 0x19E0, 0, 1}, - {"RING_BUMP_COUNTER2", 0x19E8, 0, 1}, - {"MAC_INT_STATUS", 0x2000, 0, 0}, - {"MAC_INT_MASK", 0x2008, 0, 0}, - {"MAC_TMAC_ERR_REG", 0x2010, 0, 0}, - {"MAC_TMAC_ERR_MASK", 0x2018, 0, 0}, - {"MAC_TMAC_ERR_ALARM", 0x2020, 0, 0}, - {"MAC_RMAC_ERR_REG", 0x2028, 0, 0}, - {"MAC_RMAC_ERR_MASK", 0x2030, 0, 0}, - {"MAC_RMAC_ERR_ALARM", 0x2038, 0, 0}, - {"MAC_CFG", 0x2100, 0, 0}, - {"TMAC_AVG_IPG", 0x2108, 0, 0}, - {"RMAC_MAX_PYLD_LEN", 0x2110, 0, 0}, - {"RMAC_ERR_CFG", 0x2118, 0, 0}, - {"RMAC_CFG_KEY", 0x2120, 0, 0}, - {"RMAC_ADDR_CMD_MEM", 0x2128, 0, 0}, - {"RMAC_ADDR_DATA0_MEM", 0x2130, 0, 0}, - {"RMAC_ADDR_DATA1_MEM", 0x2138, 0, 0}, - {"TMAC_IPG_CFG", 0x2148, 0, 0}, - {"RMAC_PAUSE_CFG", 0x2150, 0, 0}, - {"RMAC_RED_CFG", 0x2158, 0, 0}, - {"RMAC_RED_RATE_Q0Q3", 0x2160, 0, 0}, - {"RMAC_RED_RATE_Q4Q7", 0x2168, 0, 0}, - {"MAC_LINK_UTIL", 0x2170, 0, 0}, - {"RMAC_INVALID_IPG", 0x2178, 0, 0}, - {"RTS_FRM_LEN_0", 0x2180, 0, 0}, - {"RTS_FRM_LEN_1", 0x2188, 0, 0}, - {"RTS_FRM_LEN_2", 0x2190, 0, 0}, - {"RTS_FRM_LEN_3", 0x2198, 0, 0}, - {"RTS_FRM_LEN_4", 0x21A0, 0, 0}, - {"RTS_FRM_LEN_5", 0x21A8, 0, 0}, - {"RTS_FRM_LEN_6", 0x21B0, 0, 0}, - {"RTS_FRM_LEN_7", 0x21B8, 0, 0}, - {"RTS_QOS_STEERING", 0x21C0, 0, 0}, - {"RTS_DIX_MAP_0", 0x21C8, 0, 0}, - {"RTS_DIX_MAP_1", 0x21D0, 0, 0}, - {"RTS_DIX_MAP_2", 0x21D8, 0, 0}, - {"RTS_DIX_MAP_3", 0x21E0, 0, 0}, - {"RTS_Q_ALTERNATES", 0x21E8, 0, 0}, - {"RTS_DEFAULT_Q", 0x21F0, 0, 1}, - {"RTS_CTRL", 0x21F8, 0, 0}, - {"RTS_PN_CAM_CTRL", 0x2200, 0, 0}, - {"RTS_PN_CAM_DATA", 0x2208, 0, 0}, - {"RTS_DS_MEM_CTRL", 0x2210, 0, 0}, - {"RTS_DS_MEM_DATA", 0x2218, 0, 0}, - {"RTS_VID_MEM_CTRL", 0x2308, 0, 1}, - {"RTS_VID_MEM_DATA", 0x2310, 0, 1}, - {"RTS_P0_P3_MAP", 0x2318, 0, 1}, - {"RTS_P4_P7_MAP", 0x2320, 0, 1}, - {"RTS_P8_P11_MAP", 0x2328, 0, 1}, - {"RTS_P12_P15_MAP", 0x2330, 0, 1}, - {"RTS_DA_CFG", 0x2338, 0, 1}, - {"RTS_RTH_CFG", 0x2380, 0, 1}, - {"RTS_RTH_MAP_MEM_CTRL", 0x2388, 0, 1}, - {"RTS_RTH_MAP_MEM_DATA", 0x2390, 0, 1}, - {"RTS_RTH_SPDM_MEM_CTRL", 0x2398, 0, 1}, - {"RTS_RTH_SPDM_MEM_DATA", 0x23A0, 0, 1}, - {"RTS_RTH_JHASH_CFG", 0x23A8, 0, 1}, - {"RTS_RTH_JHASH_MASK_0", 0x23B0, 0, 1}, - {"RTS_RTH_JHASH_MASK_1", 0x23B8, 0, 1}, - {"RTS_RTH_JHASH_MASK_2", 0x23C0, 0, 1}, - {"RTS_RTH_JHASH_MASK_3", 0x23C8, 0, 1}, - {"RTS_RTH_JHASH_MASK_4", 0x23D0, 0, 1}, - {"RTS_RTH_JHASH_MASK_5", 0x23D8, 0, 1}, - {"RTS_RTH_STATUS", 0x23E0, 0, 1}, - {"RMAC_RED_FINE_Q0Q3", 0x2400, 0, 1}, - {"RMAC_RED_FINE_Q4Q7", 0x2408, 0, 1}, - {"RMAC_PTHRESH_CROSS", 0x2410, 0, 1}, - {"RMAC_RTHRESH_CROSS", 0x2418, 0, 1}, - {"RMAC_PNUM_RANGE_0", 0x2420, 0, 1}, - {"RMAC_PNUM_RANGE_1", 0x2428, 0, 1}, - {"RMAC_PNUM_RANGE_2", 0x2430, 0, 1}, - {"RMAC_PNUM_RANGE_3", 0x2438, 0, 1}, - {"RMAC_PNUM_RANGE_4", 0x2440, 0, 1}, - {"RMAC_PNUM_RANGE_5", 0x2448, 0, 1}, - {"RMAC_PNUM_RANGE_6", 0x2450, 0, 1}, - {"RMAC_PNUM_RANGE_7", 0x2458, 0, 1}, - {"RMAC_PNUM_RANGE_8", 0x2460, 0, 1}, - {"RMAC_PNUM_RANGE_9", 0x2468, 0, 1}, - {"RMAC_PNUM_RANGE_10", 0x2470, 0, 1}, - {"RMAC_PNUM_RANGE_11", 0x2478, 0, 1}, - {"RMAC_PNUM_RANGE_12", 0x2480, 0, 1}, - {"RMAC_PNUM_RANGE_13", 0x2488, 0, 1}, - {"RMAC_PNUM_RANGE_14", 0x2490, 0, 1}, - {"RMAC_PNUM_RANGE_15", 0x2498, 0, 1}, - {"RMAC_PNUM_RANGE_16", 0x24A0, 0, 1}, - {"RMAC_PNUM_RANGE_17", 0x24A8, 0, 1}, - {"RMAC_PNUM_RANGE_18", 0x24B0, 0, 1}, - {"RMAC_PNUM_RANGE_19", 0x24B8, 0, 1}, - {"RMAC_PNUM_RANGE_20", 0x24C0, 0, 1}, - {"RMAC_PNUM_RANGE_21", 0x24C8, 0, 1}, - {"RMAC_PNUM_RANGE_22", 0x24D0, 0, 1}, - {"RMAC_PNUM_RANGE_23", 0x24D8, 0, 1}, - {"RMAC_PNUM_RANGE_24", 0x24E0, 0, 1}, - {"RMAC_PNUM_RANGE_25", 0x24E8, 0, 1}, - {"RMAC_PNUM_RANGE_26", 0x24F0, 0, 1}, - {"RMAC_PNUM_RANGE_27", 0x24F8, 0, 1}, - {"RMAC_PNUM_RANGE_28", 0x2500, 0, 1}, - {"RMAC_PNUM_RANGE_29", 0x2508, 0, 1}, - {"RMAC_PNUM_RANGE_30", 0x2510, 0, 1}, - {"RMAC_PNUM_RANGE_31", 0x2518, 0, 1}, - {"RMAC_MP_CRC_0", 0x2520, 0, 1}, - {"RMAC_MP_MASK_A_0", 0x2528, 0, 1}, - {"RMAC_MP_MASK_B_0", 0x2530, 0, 1}, - {"RMAC_MP_CRC_1", 0x2538, 0, 1}, - {"RMAC_MP_MASK_A_1", 0x2540, 0, 1}, - {"RMAC_MP_MASK_B_1", 0x2548, 0, 1}, - {"RMAC_MP_CRC_2", 0x2550, 0, 1}, - {"RMAC_MP_MASK_A_2", 0x2558, 0, 1}, - {"RMAC_MP_MASK_B_2", 0x2560, 0, 1}, - {"RMAC_MP_CRC_3", 0x2568, 0, 1}, - {"RMAC_MP_MASK_A_3", 0x2570, 0, 1}, - {"RMAC_MP_MASK_B_3", 0x2578, 0, 1}, - {"RMAC_MP_CRC_4", 0x2580, 0, 1}, - {"RMAC_MP_MASK_A_4", 0x2588, 0, 1}, - {"RMAC_MP_MASK_B_4", 0x2590, 0, 1}, - {"RMAC_MP_CRC_5", 0x2598, 0, 1}, - {"RMAC_MP_MASK_A_5", 0x25A0, 0, 1}, - {"RMAC_MP_MASK_B_5", 0x25A8, 0, 1}, - {"RMAC_MP_CRC_6", 0x25B0, 0, 1}, - {"RMAC_MP_MASK_A_6", 0x25B8, 0, 1}, - {"RMAC_MP_MASK_B_6", 0x25C0, 0, 1}, - {"RMAC_MP_CRC_7", 0x25C8, 0, 1}, - {"RMAC_MP_MASK_A_7", 0x25D0, 0, 1}, - {"RMAC_MP_MASK_B_7", 0x25D8, 0, 1}, - {"MAC_CTRL", 0x25E0, 0, 1}, - {"ACTIVITY_CONTROL", 0x25E8, 0, 1}, - {"MC_INT_STATUS", 0x2800, 0, 0}, - {"MC_INT_MASK", 0x2808, 0, 0}, - {"MC_ERR_REG", 0x2810, 0, 0}, - {"MC_ERR_MASK", 0x2818, 0, 0}, - {"MC_ERR_ALARM", 0x2820, 0, 0}, - {"RX_QUEUE_CFG", 0x2900, 0, 0}, - {"MC_RLDRAM_MRS", 0x2908, 0, 0}, - {"MC_RLDRAM_INTERLEAVE", 0x2910, 0, 0}, - {"MC_PAUSE_THRESH_Q0Q3", 0x2918, 0, 0}, - {"MC_PAUSE_THRESH_Q4Q7", 0x2920, 0, 0}, - {"MC_RED_THRESH_Q0", 0x2928, 0, 0}, - {"MC_RED_THRESH_Q1", 0x2930, 0, 0}, - {"MC_RED_THRESH_Q2", 0x2938, 0, 0}, - {"MC_RED_THRESH_Q3", 0x2940, 0, 0}, - {"MC_RED_THRESH_Q4", 0x2948, 0, 0}, - {"MC_RED_THRESH_Q5", 0x2950, 0, 0}, - {"MC_RED_THRESH_Q6", 0x2958, 0, 0}, - {"MC_RED_THRESH_Q7", 0x2960, 0, 0}, - {"MC_RLDRAM_REF_PER", 0x2A00, 0, 0}, - {"MC_RLDRAM_TEST_CTRL", 0x2A20, 0, 0}, - {"MC_RLDRAM_TEST_ADD", 0x2A40, 0, 0}, - {"MC_RLDRAM_TEST_D0", 0x2A60, 0, 0}, - {"MC_RLDRAM_TEST_D1", 0x2A80, 0, 0}, - {"MC_RLDRAM_TEST_D2", 0x2B00, 0, 0}, - {"MC_RLDRAM_TEST_READ_D0", 0x2C00, 0, 1}, - {"MC_RLDRAM_TEST_RAED_D1", 0x2C20, 0, 1}, - {"MC_RLDRAM_TEST_READ_D2", 0x2C40, 0, 1}, - {"MC_RLDRAM_TEST_ADD_BKG", 0x2C60, 0, 1}, - {"MC_RLDRAM_TEST_D0_BKG", 0x2C80, 0, 1}, - {"MC_RLDRAM_TEST_D1_BKG", 0x2D00, 0, 1}, - {"MC_RLDRAM_TEST_D2_BKG", 0x2D20, 0, 1}, - {"MC_RLDRAM_TEST_READ_D0_BKG", 0x2D40, 0, 1}, - {"MC_RLDRAM_TEST_READ_D1_BKG", 0x2D60, 0, 1}, - {"MC_RLDRAM_TEST_READ_D2_BKG", 0x2D80, 0, 1}, - {"MC_RLDRAM_GENERATION", 0x2E00, 0, 1}, - {"MC_DRIVER", 0x2E20, 0, 1}, - {"XGXS_INT_STATUS", 0x3000, 0, 0}, - {"XGXS_INT_MASK", 0x3008, 0, 0}, - {"XGXS_TXGXS_ERR_REG", 0x3010, 0, 0}, - {"XGXS_TXGXS_ERR_MASK", 0x3018, 0, 0}, - {"XGXS_TXGXS_ERR_ALARM", 0x3020, 0, 0}, - {"XGXS_RXGXS_ERR_REG", 0x3028, 0, 0}, - {"XGXS_RXGXS_ERR_MASK", 0x3030, 0, 0}, - {"XGXS_RXGXS_ERR_ALARM", 0x3038, 0, 0}, - {"SPI_ERR_REG", 0x3040, 0, 1}, - {"SPI_ERR_MASK", 0x3048, 0, 1}, - {"SPI_ERR_ALARM", 0x3050, 0, 1}, - {"XGXS_CFG", 0x3100, 0, 0}, - {"XGXS_STATUS", 0x3108, 0, 0}, - {"XGXS_CFG_KEY", 0x3110, 0, 0}, - {"XGXS_EFIFO_CFG", 0x3118, 0, 0}, - {"RXGXS_BER_0", 0x3120, 0, 0}, - {"RXGXS_BER_1", 0x3128, 0, 0}, - {"SPI_CONTROL", 0x3130, 0, 1}, - {"SPI_DATA", 0x3138, 0, 1}, - {"SPI_WRITE_PROTECT", 0x3140, 0, 1}, - {"XGXS_CFG_1", 0x3180, 0, 1} -}; - -xge_stats_hw_info_t statsInfo[] = -{ - /* Tx MAC statistics counters */ - {"tmac_frms", 0x0000, 0x0004, 4, 0}, - {"tmac_data_octets", 0x0004, 0x0000, 4, 0}, - {"tmac_drop_frms", 0x0008, 0x0008, 8, 0}, - {"tmac_mcst_frms", 0x0010, 0x0014, 4, 0}, - {"tmac_bcst_frms", 0x0014, 0x0010, 4, 0}, - {"tmac_pause_ctrl_frms", 0x0018, 0x0018, 8, 0}, - {"tmac_ttl_octets", 0x0020, 0x0024, 4, 0}, - {"tmac_ucst_frms", 0x0024, 0x0020, 4, 0}, - {"tmac_nucst_frms", 0x0028, 0x002C, 4, 0}, - {"tmac_any_err_frms", 0x002C, 0x0028, 4, 0}, - {"tmac_ttl_less_fb_octets", 0x0030, 0x0030, 8, 0}, - {"tmac_vld_ip_octets", 0x0038, 0x0038, 8, 0}, - {"tmac_vld_ip", 0x0040, 0x0044, 4, 0}, - {"tmac_drop_ip", 0x0044, 0x0040, 4, 0}, - {"tmac_icmp", 0x0048, 0x004C, 4, 0}, - {"tmac_rst_tcp", 0x004C, 0x0048, 4, 0}, - {"tmac_tcp", 0x0050, 0x0050, 8, 0}, - {"tmac_udp", 0x0058, 0x005C, 4, 0}, - {"reserved_0", 0x005C, 0x0058, 4, 0}, - - /* Rx MAC Statistics counters. */ - {"rmac_vld_frms", 0x0060, 0x0064, 4, 0}, - {"rmac_data_octets", 0x006C, 0x0060, 4, 0}, - {"rmac_fcs_err_frms", 0x0068, 0x0068, 8, 0}, - {"rmac_drop_frms", 0x0070, 0x0070, 8, 0}, - {"rmac_vld_mcst_frms", 0x0078, 0x007C, 4, 0}, - {"rmac_vld_bcst_frms", 0x007C, 0x0078, 4, 0}, - {"rmac_in_rng_len_err_frms", 0x0080, 0x0084, 4, 0}, - {"rmac_out_rng_len_err_frms", 0x0084, 0x0080, 4, 0}, - {"rmac_long_frms", 0x0088, 0x0088, 8, 0}, - {"rmac_pause_ctrl_frms", 0x0090, 0x0090, 8, 0}, - {"rmac_unsup_ctrl_frms", 0x0098, 0x0098, 8, 0}, - {"rmac_ttl_octets", 0x00A0, 0x00A4, 4, 0}, - {"rmac_accepted_ucst_frms", 0x00A4, 0x00A0, 4, 0}, - {"rmac_accepted_nucst_frms", 0x00A8, 0x00AC, 4, 0}, - {"rmac_discarded_frms", 0x00AC, 0x00A8, 4, 0}, - {"rmac_drop_events", 0x00B0, 0x00B4, 4, 0}, - {"reserved_1", 0x00B4, 0x00B0, 4, 0}, - {"rmac_ttl_less_fb_octets", 0x00B8, 0x00B8, 8, 0}, - {"rmac_ttl_frms", 0x00C0, 0x00C0, 8, 0}, - {"reserved_2", 0x00C8, 0x00C8, 8, 0}, - {"reserved_3", 0x00D0, 0x00D4, 4, 0}, - {"rmac_usized_frms", 0x00D4, 0x00D0, 4, 0}, - {"rmac_osized_frms", 0x00D8, 0x00DC, 4, 0}, - {"rmac_frag_frms", 0x00DC, 0x00D8, 4, 0}, - {"rmac_jabber_frms", 0x00E0, 0x00E4, 4, 0}, - {"reserved_4", 0x00E4, 0x00E0, 4, 0}, - {"rmac_ttl_64_frms", 0x00E8, 0x00E8, 8, 0}, - {"rmac_ttl_65_127_frms", 0x00F0, 0x00F0, 8, 0}, - {"reserved_5", 0x00F8, 0x00F8, 8, 0}, - {"rmac_ttl_128_255_frms", 0x0100, 0x0100, 8, 0}, - {"rmac_ttl_256_511_frms", 0x0108, 0x0108, 8, 0}, - {"reserved_6", 0x0110, 0x0110, 8, 0}, - {"rmac_ttl_512_1023_frms", 0x0118, 0x0118, 8, 0}, - {"rmac_ttl_1024_1518_frms", 0x0120, 0x0120, 8, 0}, - {"reserved_7", 0x0128, 0x012C, 4, 0}, - {"rmac_ip", 0x012C, 0x0128, 4, 0}, - {"rmac_ip_octets", 0x0130, 0x0130, 8, 0}, - {"rmac_hdr_err_ip", 0x0138, 0x013C, 4, 0}, - {"rmac_drop_ip", 0x013C, 0x0138, 4, 0}, - {"rmac_icmp", 0x0140, 0x0144, 4, 0}, - {"reserved_8", 0x0144, 0x0140, 4, 0}, - {"rmac_tcp", 0x0148, 0x0148, 8, 0}, - {"rmac_udp", 0x0150, 0x0154, 4, 0}, - {"rmac_err_drp_udp", 0x0154, 0x0150, 4, 0}, - {"rmac_xgmii_err_sym", 0x0158, 0x0158, 8, 0}, - {"rmac_frms_q0", 0x0160, 0x0160, 8, 0}, - {"rmac_frms_q1", 0x0168, 0x0168, 8, 0}, - {"rmac_frms_q2", 0x0170, 0x0170, 8, 0}, - {"rmac_frms_q3", 0x0178, 0x0178, 8, 0}, - {"rmac_frms_q4", 0x0180, 0x0180, 8, 0}, - {"rmac_frms_q5", 0x0188, 0x0188, 8, 0}, - {"rmac_frms_q6", 0x0190, 0x0190, 8, 0}, - {"rmac_frms_q7", 0x0198, 0x0198, 8, 0}, - {"rmac_full_q0", 0x01A0, 0x01A6, 2, 0}, - {"rmac_full_q1", 0x01A2, 0x01A4, 2, 0}, - {"rmac_full_q2", 0x01A4, 0x01A2, 2, 0}, - {"rmac_full_q3", 0x01A6, 0x01A0, 2, 0}, - {"rmac_full_q4", 0x01A8, 0x01AE, 2, 0}, - {"rmac_full_q5", 0x01AA, 0x01AC, 2, 0}, - {"rmac_full_q6", 0x01AB, 0x01AA, 2, 0}, - {"rmac_full_q7", 0x01AC, 0x01A8, 2, 0}, - {"rmac_pause_cnt", 0x01B0, 0x01B4, 4, 0}, - {"reserved_9", 0x01B4, 0x01B0, 4, 0}, - {"rmac_xgmii_data_err_cnt", 0x01B8, 0x01B8, 8, 0}, - {"rmac_xgmii_ctrl_err_cnt", 0x01C0, 0x01C0, 8, 0}, - {"rmac_accepted_ip", 0x01C8, 0x01CC, 4, 0}, - {"rmac_err_tcp", 0x01CC, 0x01C8, 4, 0}, - - /* PCI/PCI-X Read transaction statistics. */ - {"rd_req_cnt", 0x01D0, 0x01D4, 4, 0}, - {"new_rd_req_cnt", 0x01D4, 0x01D0, 4, 0}, - {"new_rd_req_rtry_cnt", 0x01D8, 0x01DC, 4, 0}, - {"rd_rtry_cnt", 0x01DC, 0x01D8, 4, 0}, - {"wr_rtry_rd_ack_cnt", 0x01E0, 0x01E4, 4, 0}, - - /* PCI/PCI-X write transaction statistics. */ - {"wr_req_cnt", 0x01E4, 0x01E0, 4, 0}, - {"new_wr_req_cnt", 0x01E8, 0x01EC, 4, 0}, - {"new_wr_req_rtry_cnt", 0x01EC, 0x01E8, 4, 0}, - {"wr_rtry_cnt", 0x01F0, 0x01F4, 4, 0}, - {"wr_disc_cnt", 0x01F4, 0x01F0, 4, 0}, - {"rd_rtry_wr_ack_cnt", 0x01F8, 0x01FC, 4, 0}, - - /* DMA Transaction statistics. */ - {"txp_wr_cnt", 0x01FC, 0x01F8, 4, 0}, - {"txd_rd_cnt", 0x0200, 0x0204, 4, 0}, - {"txd_wr_cnt", 0x0204, 0x0200, 4, 0}, - {"rxd_rd_cnt", 0x0208, 0x020C, 4, 0}, - {"rxd_wr_cnt", 0x020C, 0x0208, 4, 0}, - {"txf_rd_cnt", 0x0210, 0x0214, 4, 0}, - {"rxf_wr_cnt", 0x0214, 0x0210, 4, 0}, - - /* Enhanced Herc statistics */ - {"tmac_frms_oflow", 0x0218, 0x021C, 4, 0}, - {"tmac_data_octets_oflow", 0x021C, 0x0218, 4, 0}, - {"tmac_mcst_frms_oflow", 0x0220, 0x0224, 4, 0}, - {"tmac_bcst_frms_oflow", 0x0224, 0x0220, 4, 0}, - {"tmac_ttl_octets_oflow", 0x0228, 0x022C, 4, 0}, - {"tmac_ucst_frms_oflow", 0x022C, 0x0228, 4, 0}, - {"tmac_nucst_frms_oflow", 0x0230, 0x0234, 4, 0}, - {"tmac_any_err_frms_oflow", 0x0234, 0x0230, 4, 0}, - {"tmac_vlan_frms", 0x0238, 0x0238, 8, 0}, - {"tmac_vld_ip_oflow", 0x0240, 0x0244, 4, 0}, - {"tmac_drop_ip_oflow", 0x0244, 0x0240, 4, 0}, - {"tmac_icmp_oflow", 0x0248, 0x024C, 4, 0}, - {"tmac_rst_tcp_oflow", 0x024C, 0x0248, 4, 0}, - {"tmac_udp_oflow", 0x0250, 0x0254, 4, 0}, - {"tpa_unknown_protocol", 0x0254, 0x0250, 4, 0}, - {"tpa_parse_failure", 0x0258, 0x025C, 4, 0}, - {"reserved_10", 0x025C, 0x0258, 4, 0}, - {"rmac_vld_frms_oflow", 0x0260, 0x0264, 4, 0}, - {"rmac_data_octets_oflow", 0x0264, 0x0260, 4, 0}, - {"rmac_vld_mcst_frms_oflow", 0x0268, 0x026C, 4, 0}, - {"rmac_vld_bcst_frms_oflow", 0x026C, 0x0268, 4, 0}, - {"rmac_ttl_octets_oflow", 0x0270, 0x0274, 4, 0}, - {"rmac_accepted_ucst_frms_oflow", 0x0274, 0x0270, 4, 0}, - {"rmac_accepted_nucst_frms_oflow", 0x0278, 0x027C, 4, 0}, - {"rmac_discarded_frms_oflow", 0x027C, 0x0278, 4, 0}, - {"rmac_drop_events_oflow", 0x0280, 0x0284, 4, 0}, - {"rmac_usized_frms_oflow", 0x0284, 0x0280, 4, 0}, - {"rmac_osized_frms_oflow", 0x0288, 0x028C, 4, 0}, - {"rmac_frag_frms_oflow", 0x028C, 0x0288, 4, 0}, - {"rmac_jabber_frms_oflow", 0x0290, 0x0294, 4, 0}, - {"rmac_ip_oflow", 0x0294, 0x0290, 4, 0}, - {"rmac_drop_ip_oflow", 0x0298, 0x029C, 4, 0}, - {"rmac_icmp_oflow", 0x029C, 0x0298, 4, 0}, - {"rmac_udp_oflow", 0x02A0, 0x02A4, 4, 0}, - {"rmac_err_drp_udp_oflow", 0x02A4, 0x02A0, 4, 0}, - {"rmac_pause_cnt_oflow", 0x02A8, 0x02AC, 4, 0}, - {"reserved_11", 0x02AC, 0x02A8, 4, 0}, - {"rmac_ttl_1519_4095_frms", 0x02B0, 0x02B0, 8, 0}, - {"rmac_ttl_4096_8191_frms", 0x02B8, 0x02B8, 8, 0}, - {"rmac_ttl_8192_max_frms", 0x02C0, 0x02C0, 8, 0}, - {"rmac_ttl_gt_max_frms", 0x02C8, 0x02C8, 8, 0}, - {"rmac_osized_alt_frms", 0x02D0, 0x02D0, 8, 0}, - {"rmac_jabber_alt_frms", 0x02D8, 0x02D8, 8, 0}, - {"rmac_gt_max_alt_frms", 0x02E0, 0x02E0, 8, 0}, - {"rmac_vlan_frms", 0x02E8, 0x02E8, 8, 0}, - {"rmac_fcs_discard", 0x02F0, 0x02F4, 4, 0}, - {"rmac_len_discard", 0x02F4, 0x02F0, 4, 0}, - {"rmac_da_discard", 0x02F8, 0x02FC, 4, 0}, - {"rmac_pf_discard", 0x02FC, 0x02F8, 4, 0}, - {"rmac_rts_discard", 0x0300, 0x0304, 4, 0}, - {"rmac_wol_discard", 0x0304, 0x0300, 4, 0}, - {"rmac_red_discard", 0x0308, 0x030C, 4, 0}, - {"rmac_ingm_full_discard", 0x030C, 0x0308, 4, 0}, - {"rmac_accepted_ip_oflow", 0x0310, 0x0314, 4, 0}, - {"reserved_12", 0x0314, 0x0310, 4, 0}, - {"link_fault_cnt", 0x0318, 0x031C, 4, 0}, - {"reserved_13", 0x031C, 0x0318, 4, 0} -}; - -xge_pci_config_t pciconfInfo[] = { - {"device_id", 0x0002, 0x0002, 0}, - {"vendor_id", 0x0000, 0x0000, 0}, - {"status", 0x0006, 0x0006, 0}, - {"command", 0x0004, 0x0004, 0}, - {"pciClass", 0x000B, 0x0009, 0}, - {"revision", 0x0008, 0x0008, 0}, - {"bist", 0x000F, 0x000F, 0}, - {"header_type", 0x000E, 0x000E, 0}, - {"latency_timer", 0x000D, 0x000D, 0}, - {"cache_line_size", 0x000C, 0x000C, 0}, - {"base_addr0_lo", 0x0010, 0x0010, 0}, - {"base_addr0_hi", 0x0014, 0x0014, 0}, - {"base_addr1_lo", 0x0018, 0x0018, 0}, - {"base_addr1_hi", 0x001C, 0x001C, 0}, - {"not_Implemented1", 0x0020, 0x0020, 0}, - {"not_Implemented2", 0x0024, 0x0024, 0}, - {"cardbus_cis_pointer", 0x0028, 0x0028, 0}, - {"subsystem_id", 0x002E, 0x002E, 0}, - {"subsystem_vendor_id", 0x002C, 0x002C, 0}, - {"rom_base", 0x0030, 0x0030, 0}, - {"rsvd_35", 0x0035, 0x0035, 0}, - {"capabilities_pointer", 0x0034, 0x0034, 0}, - {"rsvd_38", 0x0038, 0x0038, 0}, - {"max_latency", 0x003F, 0x003F, 0}, - {"min_grant", 0x003E, 0x003E, 0}, - {"interrupt_pin", 0x003D, 0x003D, 0}, - {"interrupt_line", 0x003C, 0x003C, 0}, - {"msi_control", 0x0042, 0x0042, 0}, - {"msi_next_ptr", 0x0041, 0x0041, 0}, - {"msi_cap_id", 0x0040, 0x0040, 0}, - {"msi_lower_address", 0x0044, 0x0044, 0}, - {"msi_higher_address", 0x0048, 0x0048, 0}, - {"msi_unused", 0x004E, 0x004E, 0}, - {"msi_data", 0x004C, 0x004C, 0}, - {"vpd_addr", 0x0052, 0x0052, 0}, - {"vpd_next_cap", 0x0051, 0x0051, 0}, - {"vpd_cap_id", 0x0050, 0x0050, 0}, - {"vpd_data", 0x0054, 0x0054, 0}, - {"rsvd_b0", 0x0058, 0x0058, 0}, - {"pcix_command", 0x0062, 0x0062, 0}, - {"pcix_next_cap", 0x0061, 0x0061, 0}, - {"pcix_cap", 0x0060, 0x0060, 0}, - {"pcix_status", 0x0064, 0x0064, 0} -}; - -xge_device_config_t devconfInfo[] = -{ - {"mtu", 0}, - {"isr_polling_cnt", 0}, - {"latency_timer", 0}, - {"napi_weight", 0}, - {"max_splits_trans", 0}, - {"mmrb_count", 0}, - {"shared_splits", 0}, - {"stats_refresh_time_sec", 0}, - {"pci_freq_mherz", 0}, - {"intr_mode", 0}, - {"sched_timer_us", 0}, - {"sched_timer_one_shot", 0}, - - {"ring_memblock_size", 0}, - {"ring_scatter_mode", 0}, - {"ring_strip_vlan_tag", 0}, - - {"ring_queue0_max", 0}, - {"ring_queue0_initial", 0}, - {"ring_queue0_buffer_mode", 0}, - {"ring_queue0_dram_size_mb", 0}, - {"ring_queue0_intr_vector", 0}, - {"ring_queue0_backoff_interval_us", 0}, - {"ring_queue0_max_frm_len", 0}, - {"ring_queue0_priority", 0}, - {"ring_queue0_no_snoop_bits", 0}, - {"ring_queue0_indicate_max_pkts", 0}, - {"ring_queue0_configured", 0}, - {"ring_queue0_rts_mac_en", 0}, - {"ring_queue0_rth_en", 0}, - {"ring_queue0_rts_port_en", 0}, - {"ring_queue0_rts_port0_num", 0}, - {"ring_queue0_rts_port0_udp", 0}, - {"ring_queue0_rts_port0_src", 0}, - {"ring_queue0_rts_port1_num", 0}, - {"ring_queue0_rts_port1_udp", 0}, - {"ring_queue0_rts_port1_src", 0}, - {"ring_queue0_rts_port2_num", 0}, - {"ring_queue0_rts_port2_udp", 0}, - {"ring_queue0_rts_port2_src", 0}, - {"ring_queue0_rts_port3_num", 0}, - {"ring_queue0_rts_port3_udp", 0}, - {"ring_queue0_rts_port3_src", 0}, - {"ring_queue0_rts_port4_num", 0}, - {"ring_queue0_rts_port4_udp", 0}, - {"ring_queue0_rts_port4_src", 0}, - {"ring_queue0_rts_port5_num", 0}, - {"ring_queue0_rts_port5_udp", 0}, - {"ring_queue0_rts_port5_src", 0}, - {"ring_queue0_rts_port6_num", 0}, - {"ring_queue0_rts_port6_udp", 0}, - {"ring_queue0_rts_port6_src", 0}, - {"ring_queue0_rts_port7_num", 0}, - {"ring_queue0_rts_port7_udp", 0}, - {"ring_queue0_rts_port7_src", 0}, - {"ring_queue0_rts_port8_num", 0}, - {"ring_queue0_rts_port8_udp", 0}, - {"ring_queue0_rts_port8_src", 0}, - {"ring_queue0_rts_port9_num", 0}, - {"ring_queue0_rts_port9_udp", 0}, - {"ring_queue0_rts_port9_src", 0}, - {"ring_queue0_rts_port10_num", 0}, - {"ring_queue0_rts_port10_udp", 0}, - {"ring_queue0_rts_port10_src", 0}, - {"ring_queue0_rts_port11_num", 0}, - {"ring_queue0_rts_port11_udp", 0}, - {"ring_queue0_rts_port11_src", 0}, - {"ring_queue0_rts_port12_num", 0}, - {"ring_queue0_rts_port12_udp", 0}, - {"ring_queue0_rts_port12_src", 0}, - {"ring_queue0_rts_port13_num", 0}, - {"ring_queue0_rts_port13_udp", 0}, - {"ring_queue0_rts_port13_src", 0}, - {"ring_queue0_rts_port14_num", 0}, - {"ring_queue0_rts_port14_udp", 0}, - {"ring_queue0_rts_port14_src", 0}, - {"ring_queue0_rts_port15_num", 0}, - {"ring_queue0_rts_port15_udp", 0}, - {"ring_queue0_rts_port15_src", 0}, - {"ring_queue0_rts_port16_num", 0}, - {"ring_queue0_rts_port16_udp", 0}, - {"ring_queue0_rts_port16_src", 0}, - {"ring_queue0_rts_port17_num", 0}, - {"ring_queue0_rts_port17_udp", 0}, - {"ring_queue0_rts_port17_src", 0}, - {"ring_queue0_rts_port18_num", 0}, - {"ring_queue0_rts_port18_udp", 0}, - {"ring_queue0_rts_port18_src", 0}, - {"ring_queue0_rts_port19_num", 0}, - {"ring_queue0_rts_port19_udp", 0}, - {"ring_queue0_rts_port19_src", 0}, - {"ring_queue0_rts_port20_num", 0}, - {"ring_queue0_rts_port20_udp", 0}, - {"ring_queue0_rts_port20_src", 0}, - {"ring_queue0_rts_port21_num", 0}, - {"ring_queue0_rts_port21_udp", 0}, - {"ring_queue0_rts_port21_src", 0}, - {"ring_queue0_rts_port22_num", 0}, - {"ring_queue0_rts_port22_udp", 0}, - {"ring_queue0_rts_port22_src", 0}, - {"ring_queue0_rts_port23_num", 0}, - {"ring_queue0_rts_port23_udp", 0}, - {"ring_queue0_rts_port23_src", 0}, - {"ring_queue0_rts_port24_num", 0}, - {"ring_queue0_rts_port24_udp", 0}, - {"ring_queue0_rts_port24_src", 0}, - {"ring_queue0_rts_port25_num", 0}, - {"ring_queue0_rts_port25_udp", 0}, - {"ring_queue0_rts_port25_src", 0}, - {"ring_queue0_rts_port26_num", 0}, - {"ring_queue0_rts_port26_udp", 0}, - {"ring_queue0_rts_port26_src", 0}, - {"ring_queue0_rts_port27_num", 0}, - {"ring_queue0_rts_port27_udp", 0}, - {"ring_queue0_rts_port27_src", 0}, - {"ring_queue0_rts_port28_num", 0}, - {"ring_queue0_rts_port28_udp", 0}, - {"ring_queue0_rts_port28_src", 0}, - {"ring_queue0_rts_port29_num", 0}, - {"ring_queue0_rts_port29_udp", 0}, - {"ring_queue0_rts_port29_src", 0}, - {"ring_queue0_rts_port30_num", 0}, - {"ring_queue0_rts_port30_udp", 0}, - {"ring_queue0_rts_port30_src", 0}, - {"ring_queue0_rts_port31_num", 0}, - {"ring_queue0_rts_port31_udp", 0}, - {"ring_queue0_rts_port31_src", 0}, - {"ring_queue0_rti_urange_a", 0}, - {"ring_queue0_rti_ufc_a", 0}, - {"ring_queue0_rti_urange_b", 0}, - {"ring_queue0_rti_ufc_b", 0}, - {"ring_queue0_rti_urange_c", 0}, - {"ring_queue0_rti_ufc_c", 0}, - {"ring_queue0_rti_ufc_d", 0}, - {"ring_queue0_rti_timer_ac_en", 0}, - {"ring_queue0_rti_timer_val_us", 0}, - - {"ring_queue1_max", 0}, - {"ring_queue1_initial", 0}, - {"ring_queue1_buffer_mode", 0}, - {"ring_queue1_dram_size_mb", 0}, - {"ring_queue1_intr_vector", 0}, - {"ring_queue1_backoff_interval_us", 0}, - {"ring_queue1_max_frm_len", 0}, - {"ring_queue1_priority", 0}, - {"ring_queue1_no_snoop_bits", 0}, - {"ring_queue1_indicate_max_pkts", 0}, - {"ring_queue1_configured", 0}, - {"ring_queue1_rts_mac_en", 0}, - {"ring_queue1_rth_en", 0}, - {"ring_queue1_rts_port_en", 0}, - {"ring_queue1_rts_port0_num", 0}, - {"ring_queue1_rts_port0_udp", 0}, - {"ring_queue1_rts_port0_src", 0}, - {"ring_queue1_rts_port1_num", 0}, - {"ring_queue1_rts_port1_udp", 0}, - {"ring_queue1_rts_port1_src", 0}, - {"ring_queue1_rts_port2_num", 0}, - {"ring_queue1_rts_port2_udp", 0}, - {"ring_queue1_rts_port2_src", 0}, - {"ring_queue1_rts_port3_num", 0}, - {"ring_queue1_rts_port3_udp", 0}, - {"ring_queue1_rts_port3_src", 0}, - {"ring_queue1_rts_port4_num", 0}, - {"ring_queue1_rts_port4_udp", 0}, - {"ring_queue1_rts_port4_src", 0}, - {"ring_queue1_rts_port5_num", 0}, - {"ring_queue1_rts_port5_udp", 0}, - {"ring_queue1_rts_port5_src", 0}, - {"ring_queue1_rts_port6_num", 0}, - {"ring_queue1_rts_port6_udp", 0}, - {"ring_queue1_rts_port6_src", 0}, - {"ring_queue1_rts_port7_num", 0}, - {"ring_queue1_rts_port7_udp", 0}, - {"ring_queue1_rts_port7_src", 0}, - {"ring_queue1_rts_port8_num", 0}, - {"ring_queue1_rts_port8_udp", 0}, - {"ring_queue1_rts_port8_src", 0}, - {"ring_queue1_rts_port9_num", 0}, - {"ring_queue1_rts_port9_udp", 0}, - {"ring_queue1_rts_port9_src", 0}, - {"ring_queue1_rts_port10_num", 0}, - {"ring_queue1_rts_port10_udp", 0}, - {"ring_queue1_rts_port10_src", 0}, - {"ring_queue1_rts_port11_num", 0}, - {"ring_queue1_rts_port11_udp", 0}, - {"ring_queue1_rts_port11_src", 0}, - {"ring_queue1_rts_port12_num", 0}, - {"ring_queue1_rts_port12_udp", 0}, - {"ring_queue1_rts_port12_src", 0}, - {"ring_queue1_rts_port13_num", 0}, - {"ring_queue1_rts_port13_udp", 0}, - {"ring_queue1_rts_port13_src", 0}, - {"ring_queue1_rts_port14_num", 0}, - {"ring_queue1_rts_port14_udp", 0}, - {"ring_queue1_rts_port14_src", 0}, - {"ring_queue1_rts_port15_num", 0}, - {"ring_queue1_rts_port15_udp", 0}, - {"ring_queue1_rts_port15_src", 0}, - {"ring_queue1_rts_port16_num", 0}, - {"ring_queue1_rts_port16_udp", 0}, - {"ring_queue1_rts_port16_src", 0}, - {"ring_queue1_rts_port17_num", 0}, - {"ring_queue1_rts_port17_udp", 0}, - {"ring_queue1_rts_port17_src", 0}, - {"ring_queue1_rts_port18_num", 0}, - {"ring_queue1_rts_port18_udp", 0}, - {"ring_queue1_rts_port18_src", 0}, - {"ring_queue1_rts_port19_num", 0}, - {"ring_queue1_rts_port19_udp", 0}, - {"ring_queue1_rts_port19_src", 0}, - {"ring_queue1_rts_port20_num", 0}, - {"ring_queue1_rts_port20_udp", 0}, - {"ring_queue1_rts_port20_src", 0}, - {"ring_queue1_rts_port21_num", 0}, - {"ring_queue1_rts_port21_udp", 0}, - {"ring_queue1_rts_port21_src", 0}, - {"ring_queue1_rts_port22_num", 0}, - {"ring_queue1_rts_port22_udp", 0}, - {"ring_queue1_rts_port22_src", 0}, - {"ring_queue1_rts_port23_num", 0}, - {"ring_queue1_rts_port23_udp", 0}, - {"ring_queue1_rts_port23_src", 0}, - {"ring_queue1_rts_port24_num", 0}, - {"ring_queue1_rts_port24_udp", 0}, - {"ring_queue1_rts_port24_src", 0}, - {"ring_queue1_rts_port25_num", 0}, - {"ring_queue1_rts_port25_udp", 0}, - {"ring_queue1_rts_port25_src", 0}, - {"ring_queue1_rts_port26_num", 0}, - {"ring_queue1_rts_port26_udp", 0}, - {"ring_queue1_rts_port26_src", 0}, - {"ring_queue1_rts_port27_num", 0}, - {"ring_queue1_rts_port27_udp", 0}, - {"ring_queue1_rts_port27_src", 0}, - {"ring_queue1_rts_port28_num", 0}, - {"ring_queue1_rts_port28_udp", 0}, - {"ring_queue1_rts_port28_src", 0}, - {"ring_queue1_rts_port29_num", 0}, - {"ring_queue1_rts_port29_udp", 0}, - {"ring_queue1_rts_port29_src", 0}, - {"ring_queue1_rts_port30_num", 0}, - {"ring_queue1_rts_port30_udp", 0}, - {"ring_queue1_rts_port30_src", 0}, - {"ring_queue1_rts_port31_num", 0}, - {"ring_queue1_rts_port31_udp", 0}, - {"ring_queue1_rts_port31_src", 0}, - {"ring_queue1_rti_urange_a", 0}, - {"ring_queue1_rti_ufc_a", 0}, - {"ring_queue1_rti_urange_b", 0}, - {"ring_queue1_rti_ufc_b", 0}, - {"ring_queue1_rti_urange_c", 0}, - {"ring_queue1_rti_ufc_c", 0}, - {"ring_queue1_rti_ufc_d", 0}, - {"ring_queue1_rti_timer_ac_en", 0}, - {"ring_queue1_rti_timer_val_us", 0}, - - {"ring_queue2_max", 0}, - {"ring_queue2_initial", 0}, - {"ring_queue2_buffer_mode", 0}, - {"ring_queue2_dram_size_mb", 0}, - {"ring_queue2_intr_vector", 0}, - {"ring_queue2_backoff_interval_us", 0}, - {"ring_queue2_max_frm_len", 0}, - {"ring_queue2_priority", 0}, - {"ring_queue2_no_snoop_bits", 0}, - {"ring_queue2_indicate_max_pkts", 0}, - {"ring_queue2_configured", 0}, - {"ring_queue2_rts_mac_en", 0}, - {"ring_queue2_rth_en", 0}, - {"ring_queue2_rts_port_en", 0}, - {"ring_queue2_rts_port0_num", 0}, - {"ring_queue2_rts_port0_udp", 0}, - {"ring_queue2_rts_port0_src", 0}, - {"ring_queue2_rts_port1_num", 0}, - {"ring_queue2_rts_port1_udp", 0}, - {"ring_queue2_rts_port1_src", 0}, - {"ring_queue2_rts_port2_num", 0}, - {"ring_queue2_rts_port2_udp", 0}, - {"ring_queue2_rts_port2_src", 0}, - {"ring_queue2_rts_port3_num", 0}, - {"ring_queue2_rts_port3_udp", 0}, - {"ring_queue2_rts_port3_src", 0}, - {"ring_queue2_rts_port4_num", 0}, - {"ring_queue2_rts_port4_udp", 0}, - {"ring_queue2_rts_port4_src", 0}, - {"ring_queue2_rts_port5_num", 0}, - {"ring_queue2_rts_port5_udp", 0}, - {"ring_queue2_rts_port5_src", 0}, - {"ring_queue2_rts_port6_num", 0}, - {"ring_queue2_rts_port6_udp", 0}, - {"ring_queue2_rts_port6_src", 0}, - {"ring_queue2_rts_port7_num", 0}, - {"ring_queue2_rts_port7_udp", 0}, - {"ring_queue2_rts_port7_src", 0}, - {"ring_queue2_rts_port8_num", 0}, - {"ring_queue2_rts_port8_udp", 0}, - {"ring_queue2_rts_port8_src", 0}, - {"ring_queue2_rts_port9_num", 0}, - {"ring_queue2_rts_port9_udp", 0}, - {"ring_queue2_rts_port9_src", 0}, - {"ring_queue2_rts_port10_num", 0}, - {"ring_queue2_rts_port10_udp", 0}, - {"ring_queue2_rts_port10_src", 0}, - {"ring_queue2_rts_port11_num", 0}, - {"ring_queue2_rts_port11_udp", 0}, - {"ring_queue2_rts_port11_src", 0}, - {"ring_queue2_rts_port12_num", 0}, - {"ring_queue2_rts_port12_udp", 0}, - {"ring_queue2_rts_port12_src", 0}, - {"ring_queue2_rts_port13_num", 0}, - {"ring_queue2_rts_port13_udp", 0}, - {"ring_queue2_rts_port13_src", 0}, - {"ring_queue2_rts_port14_num", 0}, - {"ring_queue2_rts_port14_udp", 0}, - {"ring_queue2_rts_port14_src", 0}, - {"ring_queue2_rts_port15_num", 0}, - {"ring_queue2_rts_port15_udp", 0}, - {"ring_queue2_rts_port15_src", 0}, - {"ring_queue2_rts_port16_num", 0}, - {"ring_queue2_rts_port16_udp", 0}, - {"ring_queue2_rts_port16_src", 0}, - {"ring_queue2_rts_port17_num", 0}, - {"ring_queue2_rts_port17_udp", 0}, - {"ring_queue2_rts_port17_src", 0}, - {"ring_queue2_rts_port18_num", 0}, - {"ring_queue2_rts_port18_udp", 0}, - {"ring_queue2_rts_port18_src", 0}, - {"ring_queue2_rts_port19_num", 0}, - {"ring_queue2_rts_port19_udp", 0}, - {"ring_queue2_rts_port19_src", 0}, - {"ring_queue2_rts_port20_num", 0}, - {"ring_queue2_rts_port20_udp", 0}, - {"ring_queue2_rts_port20_src", 0}, - {"ring_queue2_rts_port21_num", 0}, - {"ring_queue2_rts_port21_udp", 0}, - {"ring_queue2_rts_port21_src", 0}, - {"ring_queue2_rts_port22_num", 0}, - {"ring_queue2_rts_port22_udp", 0}, - {"ring_queue2_rts_port22_src", 0}, - {"ring_queue2_rts_port23_num", 0}, - {"ring_queue2_rts_port23_udp", 0}, - {"ring_queue2_rts_port23_src", 0}, - {"ring_queue2_rts_port24_num", 0}, - {"ring_queue2_rts_port24_udp", 0}, - {"ring_queue2_rts_port24_src", 0}, - {"ring_queue2_rts_port25_num", 0}, - {"ring_queue2_rts_port25_udp", 0}, - {"ring_queue2_rts_port25_src", 0}, - {"ring_queue2_rts_port26_num", 0}, - {"ring_queue2_rts_port26_udp", 0}, - {"ring_queue2_rts_port26_src", 0}, - {"ring_queue2_rts_port27_num", 0}, - {"ring_queue2_rts_port27_udp", 0}, - {"ring_queue2_rts_port27_src", 0}, - {"ring_queue2_rts_port28_num", 0}, - {"ring_queue2_rts_port28_udp", 0}, - {"ring_queue2_rts_port28_src", 0}, - {"ring_queue2_rts_port29_num", 0}, - {"ring_queue2_rts_port29_udp", 0}, - {"ring_queue2_rts_port29_src", 0}, - {"ring_queue2_rts_port30_num", 0}, - {"ring_queue2_rts_port30_udp", 0}, - {"ring_queue2_rts_port30_src", 0}, - {"ring_queue2_rts_port31_num", 0}, - {"ring_queue2_rts_port31_udp", 0}, - {"ring_queue2_rts_port31_src", 0}, - {"ring_queue2_rti_urange_a", 0}, - {"ring_queue2_rti_ufc_a", 0}, - {"ring_queue2_rti_urange_b", 0}, - {"ring_queue2_rti_ufc_b", 0}, - {"ring_queue2_rti_urange_c", 0}, - {"ring_queue2_rti_ufc_c", 0}, - {"ring_queue2_rti_ufc_d", 0}, - {"ring_queue2_rti_timer_ac_en", 0}, - {"ring_queue2_rti_timer_val_us", 0}, - - {"ring_queue3_max", 0}, - {"ring_queue3_initial", 0}, - {"ring_queue3_buffer_mode", 0}, - {"ring_queue3_dram_size_mb", 0}, - {"ring_queue3_intr_vector", 0}, - {"ring_queue3_backoff_interval_us", 0}, - {"ring_queue3_max_frm_len", 0}, - {"ring_queue3_priority", 0}, - {"ring_queue3_no_snoop_bits", 0}, - {"ring_queue3_indicate_max_pkts", 0}, - {"ring_queue3_configured", 0}, - {"ring_queue3_rts_mac_en", 0}, - {"ring_queue3_rth_en", 0}, - {"ring_queue3_rts_port_en", 0}, - {"ring_queue3_rts_port0_num", 0}, - {"ring_queue3_rts_port0_udp", 0}, - {"ring_queue3_rts_port0_src", 0}, - {"ring_queue3_rts_port1_num", 0}, - {"ring_queue3_rts_port1_udp", 0}, - {"ring_queue3_rts_port1_src", 0}, - {"ring_queue3_rts_port2_num", 0}, - {"ring_queue3_rts_port2_udp", 0}, - {"ring_queue3_rts_port2_src", 0}, - {"ring_queue3_rts_port3_num", 0}, - {"ring_queue3_rts_port3_udp", 0}, - {"ring_queue3_rts_port3_src", 0}, - {"ring_queue3_rts_port4_num", 0}, - {"ring_queue3_rts_port4_udp", 0}, - {"ring_queue3_rts_port4_src", 0}, - {"ring_queue3_rts_port5_num", 0}, - {"ring_queue3_rts_port5_udp", 0}, - {"ring_queue3_rts_port5_src", 0}, - {"ring_queue3_rts_port6_num", 0}, - {"ring_queue3_rts_port6_udp", 0}, - {"ring_queue3_rts_port6_src", 0}, - {"ring_queue3_rts_port7_num", 0}, - {"ring_queue3_rts_port7_udp", 0}, - {"ring_queue3_rts_port7_src", 0}, - {"ring_queue3_rts_port8_num", 0}, - {"ring_queue3_rts_port8_udp", 0}, - {"ring_queue3_rts_port8_src", 0}, - {"ring_queue3_rts_port9_num", 0}, - {"ring_queue3_rts_port9_udp", 0}, - {"ring_queue3_rts_port9_src", 0}, - {"ring_queue3_rts_port10_num", 0}, - {"ring_queue3_rts_port10_udp", 0}, - {"ring_queue3_rts_port10_src", 0}, - {"ring_queue3_rts_port11_num", 0}, - {"ring_queue3_rts_port11_udp", 0}, - {"ring_queue3_rts_port11_src", 0}, - {"ring_queue3_rts_port12_num", 0}, - {"ring_queue3_rts_port12_udp", 0}, - {"ring_queue3_rts_port12_src", 0}, - {"ring_queue3_rts_port13_num", 0}, - {"ring_queue3_rts_port13_udp", 0}, - {"ring_queue3_rts_port13_src", 0}, - {"ring_queue3_rts_port14_num", 0}, - {"ring_queue3_rts_port14_udp", 0}, - {"ring_queue3_rts_port14_src", 0}, - {"ring_queue3_rts_port15_num", 0}, - {"ring_queue3_rts_port15_udp", 0}, - {"ring_queue3_rts_port15_src", 0}, - {"ring_queue3_rts_port16_num", 0}, - {"ring_queue3_rts_port16_udp", 0}, - {"ring_queue3_rts_port16_src", 0}, - {"ring_queue3_rts_port17_num", 0}, - {"ring_queue3_rts_port17_udp", 0}, - {"ring_queue3_rts_port17_src", 0}, - {"ring_queue3_rts_port18_num", 0}, - {"ring_queue3_rts_port18_udp", 0}, - {"ring_queue3_rts_port18_src", 0}, - {"ring_queue3_rts_port19_num", 0}, - {"ring_queue3_rts_port19_udp", 0}, - {"ring_queue3_rts_port19_src", 0}, - {"ring_queue3_rts_port20_num", 0}, - {"ring_queue3_rts_port20_udp", 0}, - {"ring_queue3_rts_port20_src", 0}, - {"ring_queue3_rts_port21_num", 0}, - {"ring_queue3_rts_port21_udp", 0}, - {"ring_queue3_rts_port21_src", 0}, - {"ring_queue3_rts_port22_num", 0}, - {"ring_queue3_rts_port22_udp", 0}, - {"ring_queue3_rts_port22_src", 0}, - {"ring_queue3_rts_port23_num", 0}, - {"ring_queue3_rts_port23_udp", 0}, - {"ring_queue3_rts_port23_src", 0}, - {"ring_queue3_rts_port24_num", 0}, - {"ring_queue3_rts_port24_udp", 0}, - {"ring_queue3_rts_port24_src", 0}, - {"ring_queue3_rts_port25_num", 0}, - {"ring_queue3_rts_port25_udp", 0}, - {"ring_queue3_rts_port25_src", 0}, - {"ring_queue3_rts_port26_num", 0}, - {"ring_queue3_rts_port26_udp", 0}, - {"ring_queue3_rts_port26_src", 0}, - {"ring_queue3_rts_port27_num", 0}, - {"ring_queue3_rts_port27_udp", 0}, - {"ring_queue3_rts_port27_src", 0}, - {"ring_queue3_rts_port28_num", 0}, - {"ring_queue3_rts_port28_udp", 0}, - {"ring_queue3_rts_port28_src", 0}, - {"ring_queue3_rts_port29_num", 0}, - {"ring_queue3_rts_port29_udp", 0}, - {"ring_queue3_rts_port29_src", 0}, - {"ring_queue3_rts_port30_num", 0}, - {"ring_queue3_rts_port30_udp", 0}, - {"ring_queue3_rts_port30_src", 0}, - {"ring_queue3_rts_port31_num", 0}, - {"ring_queue3_rts_port31_udp", 0}, - {"ring_queue3_rts_port31_src", 0}, - {"ring_queue3_rti_urange_a", 0}, - {"ring_queue3_rti_ufc_a", 0}, - {"ring_queue3_rti_urange_b", 0}, - {"ring_queue3_rti_ufc_b", 0}, - {"ring_queue3_rti_urange_c", 0}, - {"ring_queue3_rti_ufc_c", 0}, - {"ring_queue3_rti_ufc_d", 0}, - {"ring_queue3_rti_timer_ac_en", 0}, - {"ring_queue3_rti_timer_val_us", 0}, - - {"ring_queue4_max", 0}, - {"ring_queue4_initial", 0}, - {"ring_queue4_buffer_mode", 0}, - {"ring_queue4_dram_size_mb", 0}, - {"ring_queue4_intr_vector", 0}, - {"ring_queue4_backoff_interval_us", 0}, - {"ring_queue4_max_frm_len", 0}, - {"ring_queue4_priority", 0}, - {"ring_queue4_no_snoop_bits", 0}, - {"ring_queue4_indicate_max_pkts", 0}, - {"ring_queue4_configured", 0}, - {"ring_queue4_rts_mac_en", 0}, - {"ring_queue4_rth_en", 0}, - {"ring_queue4_rts_port_en", 0}, - {"ring_queue4_rts_port0_num", 0}, - {"ring_queue4_rts_port0_udp", 0}, - {"ring_queue4_rts_port0_src", 0}, - {"ring_queue4_rts_port1_num", 0}, - {"ring_queue4_rts_port1_udp", 0}, - {"ring_queue4_rts_port1_src", 0}, - {"ring_queue4_rts_port2_num", 0}, - {"ring_queue4_rts_port2_udp", 0}, - {"ring_queue4_rts_port2_src", 0}, - {"ring_queue4_rts_port3_num", 0}, - {"ring_queue4_rts_port3_udp", 0}, - {"ring_queue4_rts_port3_src", 0}, - {"ring_queue4_rts_port4_num", 0}, - {"ring_queue4_rts_port4_udp", 0}, - {"ring_queue4_rts_port4_src", 0}, - {"ring_queue4_rts_port5_num", 0}, - {"ring_queue4_rts_port5_udp", 0}, - {"ring_queue4_rts_port5_src", 0}, - {"ring_queue4_rts_port6_num", 0}, - {"ring_queue4_rts_port6_udp", 0}, - {"ring_queue4_rts_port6_src", 0}, - {"ring_queue4_rts_port7_num", 0}, - {"ring_queue4_rts_port7_udp", 0}, - {"ring_queue4_rts_port7_src", 0}, - {"ring_queue4_rts_port8_num", 0}, - {"ring_queue4_rts_port8_udp", 0}, - {"ring_queue4_rts_port8_src", 0}, - {"ring_queue4_rts_port9_num", 0}, - {"ring_queue4_rts_port9_udp", 0}, - {"ring_queue4_rts_port9_src", 0}, - {"ring_queue4_rts_port10_num", 0}, - {"ring_queue4_rts_port10_udp", 0}, - {"ring_queue4_rts_port10_src", 0}, - {"ring_queue4_rts_port11_num", 0}, - {"ring_queue4_rts_port11_udp", 0}, - {"ring_queue4_rts_port11_src", 0}, - {"ring_queue4_rts_port12_num", 0}, - {"ring_queue4_rts_port12_udp", 0}, - {"ring_queue4_rts_port12_src", 0}, - {"ring_queue4_rts_port13_num", 0}, - {"ring_queue4_rts_port13_udp", 0}, - {"ring_queue4_rts_port13_src", 0}, - {"ring_queue4_rts_port14_num", 0}, - {"ring_queue4_rts_port14_udp", 0}, - {"ring_queue4_rts_port14_src", 0}, - {"ring_queue4_rts_port15_num", 0}, - {"ring_queue4_rts_port15_udp", 0}, - {"ring_queue4_rts_port15_src", 0}, - {"ring_queue4_rts_port16_num", 0}, - {"ring_queue4_rts_port16_udp", 0}, - {"ring_queue4_rts_port16_src", 0}, - {"ring_queue4_rts_port17_num", 0}, - {"ring_queue4_rts_port17_udp", 0}, - {"ring_queue4_rts_port17_src", 0}, - {"ring_queue4_rts_port18_num", 0}, - {"ring_queue4_rts_port18_udp", 0}, - {"ring_queue4_rts_port18_src", 0}, - {"ring_queue4_rts_port19_num", 0}, - {"ring_queue4_rts_port19_udp", 0}, - {"ring_queue4_rts_port19_src", 0}, - {"ring_queue4_rts_port20_num", 0}, - {"ring_queue4_rts_port20_udp", 0}, - {"ring_queue4_rts_port20_src", 0}, - {"ring_queue4_rts_port21_num", 0}, - {"ring_queue4_rts_port21_udp", 0}, - {"ring_queue4_rts_port21_src", 0}, - {"ring_queue4_rts_port22_num", 0}, - {"ring_queue4_rts_port22_udp", 0}, - {"ring_queue4_rts_port22_src", 0}, - {"ring_queue4_rts_port23_num", 0}, - {"ring_queue4_rts_port23_udp", 0}, - {"ring_queue4_rts_port23_src", 0}, - {"ring_queue4_rts_port24_num", 0}, - {"ring_queue4_rts_port24_udp", 0}, - {"ring_queue4_rts_port24_src", 0}, - {"ring_queue4_rts_port25_num", 0}, - {"ring_queue4_rts_port25_udp", 0}, - {"ring_queue4_rts_port25_src", 0}, - {"ring_queue4_rts_port26_num", 0}, - {"ring_queue4_rts_port26_udp", 0}, - {"ring_queue4_rts_port26_src", 0}, - {"ring_queue4_rts_port27_num", 0}, - {"ring_queue4_rts_port27_udp", 0}, - {"ring_queue4_rts_port27_src", 0}, - {"ring_queue4_rts_port28_num", 0}, - {"ring_queue4_rts_port28_udp", 0}, - {"ring_queue4_rts_port28_src", 0}, - {"ring_queue4_rts_port29_num", 0}, - {"ring_queue4_rts_port29_udp", 0}, - {"ring_queue4_rts_port29_src", 0}, - {"ring_queue4_rts_port30_num", 0}, - {"ring_queue4_rts_port30_udp", 0}, - {"ring_queue4_rts_port30_src", 0}, - {"ring_queue4_rts_port31_num", 0}, - {"ring_queue4_rts_port31_udp", 0}, - {"ring_queue4_rts_port31_src", 0}, - {"ring_queue4_rti_urange_a", 0}, - {"ring_queue4_rti_ufc_a", 0}, - {"ring_queue4_rti_urange_b", 0}, - {"ring_queue4_rti_ufc_b", 0}, - {"ring_queue4_rti_urange_c", 0}, - {"ring_queue4_rti_ufc_c", 0}, - {"ring_queue4_rti_ufc_d", 0}, - {"ring_queue4_rti_timer_ac_en", 0}, - {"ring_queue4_rti_timer_val_us", 0}, - - {"ring_queue5_max", 0}, - {"ring_queue5_initial", 0}, - {"ring_queue5_buffer_mode", 0}, - {"ring_queue5_dram_size_mb", 0}, - {"ring_queue5_intr_vector", 0}, - {"ring_queue5_backoff_interval_us", 0}, - {"ring_queue5_max_frm_len", 0}, - {"ring_queue5_priority", 0}, - {"ring_queue5_no_snoop_bits", 0}, - {"ring_queue5_indicate_max_pkts", 0}, - {"ring_queue5_configured", 0}, - {"ring_queue5_rts_mac_en", 0}, - {"ring_queue5_rth_en", 0}, - {"ring_queue5_rts_port_en", 0}, - {"ring_queue5_rts_port0_num", 0}, - {"ring_queue5_rts_port0_udp", 0}, - {"ring_queue5_rts_port0_src", 0}, - {"ring_queue5_rts_port1_num", 0}, - {"ring_queue5_rts_port1_udp", 0}, - {"ring_queue5_rts_port1_src", 0}, - {"ring_queue5_rts_port2_num", 0}, - {"ring_queue5_rts_port2_udp", 0}, - {"ring_queue5_rts_port2_src", 0}, - {"ring_queue5_rts_port3_num", 0}, - {"ring_queue5_rts_port3_udp", 0}, - {"ring_queue5_rts_port3_src", 0}, - {"ring_queue5_rts_port4_num", 0}, - {"ring_queue5_rts_port4_udp", 0}, - {"ring_queue5_rts_port4_src", 0}, - {"ring_queue5_rts_port5_num", 0}, - {"ring_queue5_rts_port5_udp", 0}, - {"ring_queue5_rts_port5_src", 0}, - {"ring_queue5_rts_port6_num", 0}, - {"ring_queue5_rts_port6_udp", 0}, - {"ring_queue5_rts_port6_src", 0}, - {"ring_queue5_rts_port7_num", 0}, - {"ring_queue5_rts_port7_udp", 0}, - {"ring_queue5_rts_port7_src", 0}, - {"ring_queue5_rts_port8_num", 0}, - {"ring_queue5_rts_port8_udp", 0}, - {"ring_queue5_rts_port8_src", 0}, - {"ring_queue5_rts_port9_num", 0}, - {"ring_queue5_rts_port9_udp", 0}, - {"ring_queue5_rts_port9_src", 0}, - {"ring_queue5_rts_port10_num", 0}, - {"ring_queue5_rts_port10_udp", 0}, - {"ring_queue5_rts_port10_src", 0}, - {"ring_queue5_rts_port11_num", 0}, - {"ring_queue5_rts_port11_udp", 0}, - {"ring_queue5_rts_port11_src", 0}, - {"ring_queue5_rts_port12_num", 0}, - {"ring_queue5_rts_port12_udp", 0}, - {"ring_queue5_rts_port12_src", 0}, - {"ring_queue5_rts_port13_num", 0}, - {"ring_queue5_rts_port13_udp", 0}, - {"ring_queue5_rts_port13_src", 0}, - {"ring_queue5_rts_port14_num", 0}, - {"ring_queue5_rts_port14_udp", 0}, - {"ring_queue5_rts_port14_src", 0}, - {"ring_queue5_rts_port15_num", 0}, - {"ring_queue5_rts_port15_udp", 0}, - {"ring_queue5_rts_port15_src", 0}, - {"ring_queue5_rts_port16_num", 0}, - {"ring_queue5_rts_port16_udp", 0}, - {"ring_queue5_rts_port16_src", 0}, - {"ring_queue5_rts_port17_num", 0}, - {"ring_queue5_rts_port17_udp", 0}, - {"ring_queue5_rts_port17_src", 0}, - {"ring_queue5_rts_port18_num", 0}, - {"ring_queue5_rts_port18_udp", 0}, - {"ring_queue5_rts_port18_src", 0}, - {"ring_queue5_rts_port19_num", 0}, - {"ring_queue5_rts_port19_udp", 0}, - {"ring_queue5_rts_port19_src", 0}, - {"ring_queue5_rts_port20_num", 0}, - {"ring_queue5_rts_port20_udp", 0}, - {"ring_queue5_rts_port20_src", 0}, - {"ring_queue5_rts_port21_num", 0}, - {"ring_queue5_rts_port21_udp", 0}, - {"ring_queue5_rts_port21_src", 0}, - {"ring_queue5_rts_port22_num", 0}, - {"ring_queue5_rts_port22_udp", 0}, - {"ring_queue5_rts_port22_src", 0}, - {"ring_queue5_rts_port23_num", 0}, - {"ring_queue5_rts_port23_udp", 0}, - {"ring_queue5_rts_port23_src", 0}, - {"ring_queue5_rts_port24_num", 0}, - {"ring_queue5_rts_port24_udp", 0}, - {"ring_queue5_rts_port24_src", 0}, - {"ring_queue5_rts_port25_num", 0}, - {"ring_queue5_rts_port25_udp", 0}, - {"ring_queue5_rts_port25_src", 0}, - {"ring_queue5_rts_port26_num", 0}, - {"ring_queue5_rts_port26_udp", 0}, - {"ring_queue5_rts_port26_src", 0}, - {"ring_queue5_rts_port27_num", 0}, - {"ring_queue5_rts_port27_udp", 0}, - {"ring_queue5_rts_port27_src", 0}, - {"ring_queue5_rts_port28_num", 0}, - {"ring_queue5_rts_port28_udp", 0}, - {"ring_queue5_rts_port28_src", 0}, - {"ring_queue5_rts_port29_num", 0}, - {"ring_queue5_rts_port29_udp", 0}, - {"ring_queue5_rts_port29_src", 0}, - {"ring_queue5_rts_port30_num", 0}, - {"ring_queue5_rts_port30_udp", 0}, - {"ring_queue5_rts_port30_src", 0}, - {"ring_queue5_rts_port31_num", 0}, - {"ring_queue5_rts_port31_udp", 0}, - {"ring_queue5_rts_port31_src", 0}, - {"ring_queue5_rti_urange_a", 0}, - {"ring_queue5_rti_ufc_a", 0}, - {"ring_queue5_rti_urange_b", 0}, - {"ring_queue5_rti_ufc_b", 0}, - {"ring_queue5_rti_urange_c", 0}, - {"ring_queue5_rti_ufc_c", 0}, - {"ring_queue5_rti_ufc_d", 0}, - {"ring_queue5_rti_timer_ac_en", 0}, - {"ring_queue5_rti_timer_val_us", 0}, - - {"ring_queue6_max", 0}, - {"ring_queue6_initial", 0}, - {"ring_queue6_buffer_mode", 0}, - {"ring_queue6_dram_size_mb", 0}, - {"ring_queue6_intr_vector", 0}, - {"ring_queue6_backoff_interval_us", 0}, - {"ring_queue6_max_frm_len", 0}, - {"ring_queue6_priority", 0}, - {"ring_queue6_no_snoop_bits", 0}, - {"ring_queue6_indicate_max_pkts", 0}, - {"ring_queue6_configured", 0}, - {"ring_queue6_rts_mac_en", 0}, - {"ring_queue6_rth_en", 0}, - {"ring_queue6_rts_port_en", 0}, - {"ring_queue6_rts_port0_num", 0}, - {"ring_queue6_rts_port0_udp", 0}, - {"ring_queue6_rts_port0_src", 0}, - {"ring_queue6_rts_port1_num", 0}, - {"ring_queue6_rts_port1_udp", 0}, - {"ring_queue6_rts_port1_src", 0}, - {"ring_queue6_rts_port2_num", 0}, - {"ring_queue6_rts_port2_udp", 0}, - {"ring_queue6_rts_port2_src", 0}, - {"ring_queue6_rts_port3_num", 0}, - {"ring_queue6_rts_port3_udp", 0}, - {"ring_queue6_rts_port3_src", 0}, - {"ring_queue6_rts_port4_num", 0}, - {"ring_queue6_rts_port4_udp", 0}, - {"ring_queue6_rts_port4_src", 0}, - {"ring_queue6_rts_port5_num", 0}, - {"ring_queue6_rts_port5_udp", 0}, - {"ring_queue6_rts_port5_src", 0}, - {"ring_queue6_rts_port6_num", 0}, - {"ring_queue6_rts_port6_udp", 0}, - {"ring_queue6_rts_port6_src", 0}, - {"ring_queue6_rts_port7_num", 0}, - {"ring_queue6_rts_port7_udp", 0}, - {"ring_queue6_rts_port7_src", 0}, - {"ring_queue6_rts_port8_num", 0}, - {"ring_queue6_rts_port8_udp", 0}, - {"ring_queue6_rts_port8_src", 0}, - {"ring_queue6_rts_port9_num", 0}, - {"ring_queue6_rts_port9_udp", 0}, - {"ring_queue6_rts_port9_src", 0}, - {"ring_queue6_rts_port10_num", 0}, - {"ring_queue6_rts_port10_udp", 0}, - {"ring_queue6_rts_port10_src", 0}, - {"ring_queue6_rts_port11_num", 0}, - {"ring_queue6_rts_port11_udp", 0}, - {"ring_queue6_rts_port11_src", 0}, - {"ring_queue6_rts_port12_num", 0}, - {"ring_queue6_rts_port12_udp", 0}, - {"ring_queue6_rts_port12_src", 0}, - {"ring_queue6_rts_port13_num", 0}, - {"ring_queue6_rts_port13_udp", 0}, - {"ring_queue6_rts_port13_src", 0}, - {"ring_queue6_rts_port14_num", 0}, - {"ring_queue6_rts_port14_udp", 0}, - {"ring_queue6_rts_port14_src", 0}, - {"ring_queue6_rts_port15_num", 0}, - {"ring_queue6_rts_port15_udp", 0}, - {"ring_queue6_rts_port15_src", 0}, - {"ring_queue6_rts_port16_num", 0}, - {"ring_queue6_rts_port16_udp", 0}, - {"ring_queue6_rts_port16_src", 0}, - {"ring_queue6_rts_port17_num", 0}, - {"ring_queue6_rts_port17_udp", 0}, - {"ring_queue6_rts_port17_src", 0}, - {"ring_queue6_rts_port18_num", 0}, - {"ring_queue6_rts_port18_udp", 0}, - {"ring_queue6_rts_port18_src", 0}, - {"ring_queue6_rts_port19_num", 0}, - {"ring_queue6_rts_port19_udp", 0}, - {"ring_queue6_rts_port19_src", 0}, - {"ring_queue6_rts_port20_num", 0}, - {"ring_queue6_rts_port20_udp", 0}, - {"ring_queue6_rts_port20_src", 0}, - {"ring_queue6_rts_port21_num", 0}, - {"ring_queue6_rts_port21_udp", 0}, - {"ring_queue6_rts_port21_src", 0}, - {"ring_queue6_rts_port22_num", 0}, - {"ring_queue6_rts_port22_udp", 0}, - {"ring_queue6_rts_port22_src", 0}, - {"ring_queue6_rts_port23_num", 0}, - {"ring_queue6_rts_port23_udp", 0}, - {"ring_queue6_rts_port23_src", 0}, - {"ring_queue6_rts_port24_num", 0}, - {"ring_queue6_rts_port24_udp", 0}, - {"ring_queue6_rts_port24_src", 0}, - {"ring_queue6_rts_port25_num", 0}, - {"ring_queue6_rts_port25_udp", 0}, - {"ring_queue6_rts_port25_src", 0}, - {"ring_queue6_rts_port26_num", 0}, - {"ring_queue6_rts_port26_udp", 0}, - {"ring_queue6_rts_port26_src", 0}, - {"ring_queue6_rts_port27_num", 0}, - {"ring_queue6_rts_port27_udp", 0}, - {"ring_queue6_rts_port27_src", 0}, - {"ring_queue6_rts_port28_num", 0}, - {"ring_queue6_rts_port28_udp", 0}, - {"ring_queue6_rts_port28_src", 0}, - {"ring_queue6_rts_port29_num", 0}, - {"ring_queue6_rts_port29_udp", 0}, - {"ring_queue6_rts_port29_src", 0}, - {"ring_queue6_rts_port30_num", 0}, - {"ring_queue6_rts_port30_udp", 0}, - {"ring_queue6_rts_port30_src", 0}, - {"ring_queue6_rts_port31_num", 0}, - {"ring_queue6_rts_port31_udp", 0}, - {"ring_queue6_rts_port31_src", 0}, - {"ring_queue6_rti_urange_a", 0}, - {"ring_queue6_rti_ufc_a", 0}, - {"ring_queue6_rti_urange_b", 0}, - {"ring_queue6_rti_ufc_b", 0}, - {"ring_queue6_rti_urange_c", 0}, - {"ring_queue6_rti_ufc_c", 0}, - {"ring_queue6_rti_ufc_d", 0}, - {"ring_queue6_rti_timer_ac_en", 0}, - {"ring_queue6_rti_timer_val_us", 0}, - - {"ring_queue7_max", 0}, - {"ring_queue7_initial", 0}, - {"ring_queue7_buffer_mode", 0}, - {"ring_queue7_dram_size_mb", 0}, - {"ring_queue7_intr_vector", 0}, - {"ring_queue7_backoff_interval_us", 0}, - {"ring_queue7_max_frm_len", 0}, - {"ring_queue7_priority", 0}, - {"ring_queue7_no_snoop_bits", 0}, - {"ring_queue7_indicate_max_pkts", 0}, - {"ring_queue7_configured", 0}, - {"ring_queue7_rts_mac_en", 0}, - {"ring_queue7_rth_en", 0}, - {"ring_queue7_rts_port_en", 0}, - {"ring_queue7_rts_port0_num", 0}, - {"ring_queue7_rts_port0_udp", 0}, - {"ring_queue7_rts_port0_src", 0}, - {"ring_queue7_rts_port1_num", 0}, - {"ring_queue7_rts_port1_udp", 0}, - {"ring_queue7_rts_port1_src", 0}, - {"ring_queue7_rts_port2_num", 0}, - {"ring_queue7_rts_port2_udp", 0}, - {"ring_queue7_rts_port2_src", 0}, - {"ring_queue7_rts_port3_num", 0}, - {"ring_queue7_rts_port3_udp", 0}, - {"ring_queue7_rts_port3_src", 0}, - {"ring_queue7_rts_port4_num", 0}, - {"ring_queue7_rts_port4_udp", 0}, - {"ring_queue7_rts_port4_src", 0}, - {"ring_queue7_rts_port5_num", 0}, - {"ring_queue7_rts_port5_udp", 0}, - {"ring_queue7_rts_port5_src", 0}, - {"ring_queue7_rts_port6_num", 0}, - {"ring_queue7_rts_port6_udp", 0}, - {"ring_queue7_rts_port6_src", 0}, - {"ring_queue7_rts_port7_num", 0}, - {"ring_queue7_rts_port7_udp", 0}, - {"ring_queue7_rts_port7_src", 0}, - {"ring_queue7_rts_port8_num", 0}, - {"ring_queue7_rts_port8_udp", 0}, - {"ring_queue7_rts_port8_src", 0}, - {"ring_queue7_rts_port9_num", 0}, - {"ring_queue7_rts_port9_udp", 0}, - {"ring_queue7_rts_port9_src", 0}, - {"ring_queue7_rts_port10_num", 0}, - {"ring_queue7_rts_port10_udp", 0}, - {"ring_queue7_rts_port10_src", 0}, - {"ring_queue7_rts_port11_num", 0}, - {"ring_queue7_rts_port11_udp", 0}, - {"ring_queue7_rts_port11_src", 0}, - {"ring_queue7_rts_port12_num", 0}, - {"ring_queue7_rts_port12_udp", 0}, - {"ring_queue7_rts_port12_src", 0}, - {"ring_queue7_rts_port13_num", 0}, - {"ring_queue7_rts_port13_udp", 0}, - {"ring_queue7_rts_port13_src", 0}, - {"ring_queue7_rts_port14_num", 0}, - {"ring_queue7_rts_port14_udp", 0}, - {"ring_queue7_rts_port14_src", 0}, - {"ring_queue7_rts_port15_num", 0}, - {"ring_queue7_rts_port15_udp", 0}, - {"ring_queue7_rts_port15_src", 0}, - {"ring_queue7_rts_port16_num", 0}, - {"ring_queue7_rts_port16_udp", 0}, - {"ring_queue7_rts_port16_src", 0}, - {"ring_queue7_rts_port17_num", 0}, - {"ring_queue7_rts_port17_udp", 0}, - {"ring_queue7_rts_port17_src", 0}, - {"ring_queue7_rts_port18_num", 0}, - {"ring_queue7_rts_port18_udp", 0}, - {"ring_queue7_rts_port18_src", 0}, - {"ring_queue7_rts_port19_num", 0}, - {"ring_queue7_rts_port19_udp", 0}, - {"ring_queue7_rts_port19_src", 0}, - {"ring_queue7_rts_port20_num", 0}, - {"ring_queue7_rts_port20_udp", 0}, - {"ring_queue7_rts_port20_src", 0}, - {"ring_queue7_rts_port21_num", 0}, - {"ring_queue7_rts_port21_udp", 0}, - {"ring_queue7_rts_port21_src", 0}, - {"ring_queue7_rts_port22_num", 0}, - {"ring_queue7_rts_port22_udp", 0}, - {"ring_queue7_rts_port22_src", 0}, - {"ring_queue7_rts_port23_num", 0}, - {"ring_queue7_rts_port23_udp", 0}, - {"ring_queue7_rts_port23_src", 0}, - {"ring_queue7_rts_port24_num", 0}, - {"ring_queue7_rts_port24_udp", 0}, - {"ring_queue7_rts_port24_src", 0}, - {"ring_queue7_rts_port25_num", 0}, - {"ring_queue7_rts_port25_udp", 0}, - {"ring_queue7_rts_port25_src", 0}, - {"ring_queue7_rts_port26_num", 0}, - {"ring_queue7_rts_port26_udp", 0}, - {"ring_queue7_rts_port26_src", 0}, - {"ring_queue7_rts_port27_num", 0}, - {"ring_queue7_rts_port27_udp", 0}, - {"ring_queue7_rts_port27_src", 0}, - {"ring_queue7_rts_port28_num", 0}, - {"ring_queue7_rts_port28_udp", 0}, - {"ring_queue7_rts_port28_src", 0}, - {"ring_queue7_rts_port29_num", 0}, - {"ring_queue7_rts_port29_udp", 0}, - {"ring_queue7_rts_port29_src", 0}, - {"ring_queue7_rts_port30_num", 0}, - {"ring_queue7_rts_port30_udp", 0}, - {"ring_queue7_rts_port30_src", 0}, - {"ring_queue7_rts_port31_num", 0}, - {"ring_queue7_rts_port31_udp", 0}, - {"ring_queue7_rts_port31_src", 0}, - {"ring_queue7_rti_urange_a", 0}, - {"ring_queue7_rti_ufc_a", 0}, - {"ring_queue7_rti_urange_b", 0}, - {"ring_queue7_rti_ufc_b", 0}, - {"ring_queue7_rti_urange_c", 0}, - {"ring_queue7_rti_ufc_c", 0}, - {"ring_queue7_rti_ufc_d", 0}, - {"ring_queue7_rti_timer_ac_en", 0}, - {"ring_queue7_rti_timer_val_us", 0}, - - {"mac_media", 0}, - {"mac_tmac_util_period", 0}, - {"mac_rmac_util_period", 0}, - {"mac_rmac_bcast_en", 0}, - {"mac_rmac_pause_gen_en", 0}, - {"mac_rmac_pause_rcv_en", 0}, - {"mac_rmac_pause_time", 0}, - {"mac_mc_pause_threshold_q0q3", 0}, - {"mac_mc_pause_threshold_q4q7", 0}, - - {"fifo_max_frags", 0}, - {"fifo_reserve_threshold", 0}, - {"fifo_memblock_size", 0}, - {"fifo_alignment_size", 0}, - {"fifo_max_aligned_frags", 0}, - - {"fifo_queue0_max", 0}, - {"fifo_queue0_initial", 0}, - {"fifo_queue0_intr", 0}, - {"fifo_queue0_intr_vector", 0}, - {"fifo_queue0_no_snoop_bits", 0}, - {"fifo_queue0_priority", 0}, - {"fifo_queue0_configured", 0}, - - {"fifo_queue0_tti0_enabled", 0}, - {"fifo_queue0_tti0_urange_a", 0}, - {"fifo_queue0_tti0_ufc_a", 0}, - {"fifo_queue0_tti0_urange_b", 0}, - {"fifo_queue0_tti0_ufc_b", 0}, - {"fifo_queue0_tti0_urange_c", 0}, - {"fifo_queue0_tti0_ufc_c", 0}, - {"fifo_queue0_tti0_ufc_d", 0}, - {"fifo_queue0_tti0_timer_val_us", 0}, - {"fifo_queue0_tti0_timer_ac_en", 0}, - {"fifo_queue0_tti0_timer_ci_en", 0}, - - {"fifo_queue0_tti1_enabled", 0}, - {"fifo_queue0_tti1_urange_a", 0}, - {"fifo_queue0_tti1_ufc_a", 0}, - {"fifo_queue0_tti1_urange_b", 0}, - {"fifo_queue0_tti1_ufc_b", 0}, - {"fifo_queue0_tti1_urange_c", 0}, - {"fifo_queue0_tti1_ufc_c", 0}, - {"fifo_queue0_tti1_ufc_d", 0}, - {"fifo_queue0_tti1_timer_val_us", 0}, - {"fifo_queue0_tti1_timer_ac_en", 0}, - {"fifo_queue0_tti1_timer_ci_en", 0}, - - {"fifo_queue0_tti2_enabled", 0}, - {"fifo_queue0_tti2_urange_a", 0}, - {"fifo_queue0_tti2_ufc_a", 0}, - {"fifo_queue0_tti2_urange_b", 0}, - {"fifo_queue0_tti2_ufc_b", 0}, - {"fifo_queue0_tti2_urange_c", 0}, - {"fifo_queue0_tti2_ufc_c", 0}, - {"fifo_queue0_tti2_ufc_d", 0}, - {"fifo_queue0_tti2_timer_val_us", 0}, - {"fifo_queue0_tti2_timer_ac_en", 0}, - {"fifo_queue0_tti2_timer_ci_en", 0}, - - {"fifo_queue0_tti3_enabled", 0}, - {"fifo_queue0_tti3_urange_a", 0}, - {"fifo_queue0_tti3_ufc_a", 0}, - {"fifo_queue0_tti3_urange_b", 0}, - {"fifo_queue0_tti3_ufc_b", 0}, - {"fifo_queue0_tti3_urange_c", 0}, - {"fifo_queue0_tti3_ufc_c", 0}, - {"fifo_queue0_tti3_ufc_d", 0}, - {"fifo_queue0_tti3_timer_val_us", 0}, - {"fifo_queue0_tti3_timer_ac_en", 0}, - {"fifo_queue0_tti3_timer_ci_en", 0}, - - {"fifo_queue0_tti4_enabled", 0}, - {"fifo_queue0_tti4_urange_a", 0}, - {"fifo_queue0_tti4_ufc_a", 0}, - {"fifo_queue0_tti4_urange_b", 0}, - {"fifo_queue0_tti4_ufc_b", 0}, - {"fifo_queue0_tti4_urange_c", 0}, - {"fifo_queue0_tti4_ufc_c", 0}, - {"fifo_queue0_tti4_ufc_d", 0}, - {"fifo_queue0_tti4_timer_val_us", 0}, - {"fifo_queue0_tti4_timer_ac_en", 0}, - {"fifo_queue0_tti4_timer_ci_en", 0}, - - {"fifo_queue0_tti5_enabled", 0}, - {"fifo_queue0_tti5_urange_a", 0}, - {"fifo_queue0_tti5_ufc_a", 0}, - {"fifo_queue0_tti5_urange_b", 0}, - {"fifo_queue0_tti5_ufc_b", 0}, - {"fifo_queue0_tti5_urange_c", 0}, - {"fifo_queue0_tti5_ufc_c", 0}, - {"fifo_queue0_tti5_ufc_d", 0}, - {"fifo_queue0_tti5_timer_val_us", 0}, - {"fifo_queue0_tti5_timer_ac_en", 0}, - {"fifo_queue0_tti5_timer_ci_en", 0}, - - {"fifo_queue0_tti6_enabled", 0}, - {"fifo_queue0_tti6_urange_a", 0}, - {"fifo_queue0_tti6_ufc_a", 0}, - {"fifo_queue0_tti6_urange_b", 0}, - {"fifo_queue0_tti6_ufc_b", 0}, - {"fifo_queue0_tti6_urange_c", 0}, - {"fifo_queue0_tti6_ufc_c", 0}, - {"fifo_queue0_tti6_ufc_d", 0}, - {"fifo_queue0_tti6_timer_val_us", 0}, - {"fifo_queue0_tti6_timer_ac_en", 0}, - {"fifo_queue0_tti6_timer_ci_en", 0}, - - {"fifo_queue1_max", 0}, - {"fifo_queue1_initial", 0}, - {"fifo_queue1_intr", 0}, - {"fifo_queue1_intr_vector", 0}, - {"fifo_queue1_no_snoop_bits", 0}, - {"fifo_queue1_priority", 0}, - {"fifo_queue1_configured", 0}, - - {"fifo_queue1_tti0_enabled", 0}, - {"fifo_queue1_tti0_urange_a", 0}, - {"fifo_queue1_tti0_ufc_a", 0}, - {"fifo_queue1_tti0_urange_b", 0}, - {"fifo_queue1_tti0_ufc_b", 0}, - {"fifo_queue1_tti0_urange_c", 0}, - {"fifo_queue1_tti0_ufc_c", 0}, - {"fifo_queue1_tti0_ufc_d", 0}, - {"fifo_queue1_tti0_timer_val_us", 0}, - {"fifo_queue1_tti0_timer_ac_en", 0}, - {"fifo_queue1_tti0_timer_ci_en", 0}, - - {"fifo_queue1_tti1_enabled", 0}, - {"fifo_queue1_tti1_urange_a", 0}, - {"fifo_queue1_tti1_ufc_a", 0}, - {"fifo_queue1_tti1_urange_b", 0}, - {"fifo_queue1_tti1_ufc_b", 0}, - {"fifo_queue1_tti1_urange_c", 0}, - {"fifo_queue1_tti1_ufc_c", 0}, - {"fifo_queue1_tti1_ufc_d", 0}, - {"fifo_queue1_tti1_timer_val_us", 0}, - {"fifo_queue1_tti1_timer_ac_en", 0}, - {"fifo_queue1_tti1_timer_ci_en", 0}, - - {"fifo_queue1_tti2_enabled", 0}, - {"fifo_queue1_tti2_urange_a", 0}, - {"fifo_queue1_tti2_ufc_a", 0}, - {"fifo_queue1_tti2_urange_b", 0}, - {"fifo_queue1_tti2_ufc_b", 0}, - {"fifo_queue1_tti2_urange_c", 0}, - {"fifo_queue1_tti2_ufc_c", 0}, - {"fifo_queue1_tti2_ufc_d", 0}, - {"fifo_queue1_tti2_timer_val_us", 0}, - {"fifo_queue1_tti2_timer_ac_en", 0}, - {"fifo_queue1_tti2_timer_ci_en", 0}, - - {"fifo_queue1_tti3_enabled", 0}, - {"fifo_queue1_tti3_urange_a", 0}, - {"fifo_queue1_tti3_ufc_a", 0}, - {"fifo_queue1_tti3_urange_b", 0}, - {"fifo_queue1_tti3_ufc_b", 0}, - {"fifo_queue1_tti3_urange_c", 0}, - {"fifo_queue1_tti3_ufc_c", 0}, - {"fifo_queue1_tti3_ufc_d", 0}, - {"fifo_queue1_tti3_timer_val_us", 0}, - {"fifo_queue1_tti3_timer_ac_en", 0}, - {"fifo_queue1_tti3_timer_ci_en", 0}, - - {"fifo_queue1_tti4_enabled", 0}, - {"fifo_queue1_tti4_urange_a", 0}, - {"fifo_queue1_tti4_ufc_a", 0}, - {"fifo_queue1_tti4_urange_b", 0}, - {"fifo_queue1_tti4_ufc_b", 0}, - {"fifo_queue1_tti4_urange_c", 0}, - {"fifo_queue1_tti4_ufc_c", 0}, - {"fifo_queue1_tti4_ufc_d", 0}, - {"fifo_queue1_tti4_timer_val_us", 0}, - {"fifo_queue1_tti4_timer_ac_en", 0}, - {"fifo_queue1_tti4_timer_ci_en", 0}, - - {"fifo_queue1_tti5_enabled", 0}, - {"fifo_queue1_tti5_urange_a", 0}, - {"fifo_queue1_tti5_ufc_a", 0}, - {"fifo_queue1_tti5_urange_b", 0}, - {"fifo_queue1_tti5_ufc_b", 0}, - {"fifo_queue1_tti5_urange_c", 0}, - {"fifo_queue1_tti5_ufc_c", 0}, - {"fifo_queue1_tti5_ufc_d", 0}, - {"fifo_queue1_tti5_timer_val_us", 0}, - {"fifo_queue1_tti5_timer_ac_en", 0}, - {"fifo_queue1_tti5_timer_ci_en", 0}, - - {"fifo_queue1_tti6_enabled", 0}, - {"fifo_queue1_tti6_urange_a", 0}, - {"fifo_queue1_tti6_ufc_a", 0}, - {"fifo_queue1_tti6_urange_b", 0}, - {"fifo_queue1_tti6_ufc_b", 0}, - {"fifo_queue1_tti6_urange_c", 0}, - {"fifo_queue1_tti6_ufc_c", 0}, - {"fifo_queue1_tti6_ufc_d", 0}, - {"fifo_queue1_tti6_timer_val_us", 0}, - {"fifo_queue1_tti6_timer_ac_en", 0}, - {"fifo_queue1_tti6_timer_ci_en", 0}, - - {"fifo_queue2_max", 0}, - {"fifo_queue2_initial", 0}, - {"fifo_queue2_intr", 0}, - {"fifo_queue2_intr_vector", 0}, - {"fifo_queue2_no_snoop_bits", 0}, - {"fifo_queue2_priority", 0}, - {"fifo_queue2_configured", 0}, - - {"fifo_queue2_tti0_enabled", 0}, - {"fifo_queue2_tti0_urange_a", 0}, - {"fifo_queue2_tti0_ufc_a", 0}, - {"fifo_queue2_tti0_urange_b", 0}, - {"fifo_queue2_tti0_ufc_b", 0}, - {"fifo_queue2_tti0_urange_c", 0}, - {"fifo_queue2_tti0_ufc_c", 0}, - {"fifo_queue2_tti0_ufc_d", 0}, - {"fifo_queue2_tti0_timer_val_us", 0}, - {"fifo_queue2_tti0_timer_ac_en", 0}, - {"fifo_queue2_tti0_timer_ci_en", 0}, - - {"fifo_queue2_tti1_enabled", 0}, - {"fifo_queue2_tti1_urange_a", 0}, - {"fifo_queue2_tti1_ufc_a", 0}, - {"fifo_queue2_tti1_urange_b", 0}, - {"fifo_queue2_tti1_ufc_b", 0}, - {"fifo_queue2_tti1_urange_c", 0}, - {"fifo_queue2_tti1_ufc_c", 0}, - {"fifo_queue2_tti1_ufc_d", 0}, - {"fifo_queue2_tti1_timer_val_us", 0}, - {"fifo_queue2_tti1_timer_ac_en", 0}, - {"fifo_queue2_tti1_timer_ci_en", 0}, - - {"fifo_queue2_tti2_enabled", 0}, - {"fifo_queue2_tti2_urange_a", 0}, - {"fifo_queue2_tti2_ufc_a", 0}, - {"fifo_queue2_tti2_urange_b", 0}, - {"fifo_queue2_tti2_ufc_b", 0}, - {"fifo_queue2_tti2_urange_c", 0}, - {"fifo_queue2_tti2_ufc_c", 0}, - {"fifo_queue2_tti2_ufc_d", 0}, - {"fifo_queue2_tti2_timer_val_us", 0}, - {"fifo_queue2_tti2_timer_ac_en", 0}, - {"fifo_queue2_tti2_timer_ci_en", 0}, - - {"fifo_queue2_tti3_enabled", 0}, - {"fifo_queue2_tti3_urange_a", 0}, - {"fifo_queue2_tti3_ufc_a", 0}, - {"fifo_queue2_tti3_urange_b", 0}, - {"fifo_queue2_tti3_ufc_b", 0}, - {"fifo_queue2_tti3_urange_c", 0}, - {"fifo_queue2_tti3_ufc_c", 0}, - {"fifo_queue2_tti3_ufc_d", 0}, - {"fifo_queue2_tti3_timer_val_us", 0}, - {"fifo_queue2_tti3_timer_ac_en", 0}, - {"fifo_queue2_tti3_timer_ci_en", 0}, - - {"fifo_queue2_tti4_enabled", 0}, - {"fifo_queue2_tti4_urange_a", 0}, - {"fifo_queue2_tti4_ufc_a", 0}, - {"fifo_queue2_tti4_urange_b", 0}, - {"fifo_queue2_tti4_ufc_b", 0}, - {"fifo_queue2_tti4_urange_c", 0}, - {"fifo_queue2_tti4_ufc_c", 0}, - {"fifo_queue2_tti4_ufc_d", 0}, - {"fifo_queue2_tti4_timer_val_us", 0}, - {"fifo_queue2_tti4_timer_ac_en", 0}, - {"fifo_queue2_tti4_timer_ci_en", 0}, - - {"fifo_queue2_tti5_enabled", 0}, - {"fifo_queue2_tti5_urange_a", 0}, - {"fifo_queue2_tti5_ufc_a", 0}, - {"fifo_queue2_tti5_urange_b", 0}, - {"fifo_queue2_tti5_ufc_b", 0}, - {"fifo_queue2_tti5_urange_c", 0}, - {"fifo_queue2_tti5_ufc_c", 0}, - {"fifo_queue2_tti5_ufc_d", 0}, - {"fifo_queue2_tti5_timer_val_us", 0}, - {"fifo_queue2_tti5_timer_ac_en", 0}, - {"fifo_queue2_tti5_timer_ci_en", 0}, - - {"fifo_queue2_tti6_enabled", 0}, - {"fifo_queue2_tti6_urange_a", 0}, - {"fifo_queue2_tti6_ufc_a", 0}, - {"fifo_queue2_tti6_urange_b", 0}, - {"fifo_queue2_tti6_ufc_b", 0}, - {"fifo_queue2_tti6_urange_c", 0}, - {"fifo_queue2_tti6_ufc_c", 0}, - {"fifo_queue2_tti6_ufc_d", 0}, - {"fifo_queue2_tti6_timer_val_us", 0}, - {"fifo_queue2_tti6_timer_ac_en", 0}, - {"fifo_queue2_tti6_timer_ci_en", 0}, - - {"fifo_queue3_max", 0}, - {"fifo_queue3_initial", 0}, - {"fifo_queue3_intr", 0}, - {"fifo_queue3_intr_vector", 0}, - {"fifo_queue3_no_snoop_bits", 0}, - {"fifo_queue3_priority", 0}, - {"fifo_queue3_configured", 0}, - - {"fifo_queue3_tti0_enabled", 0}, - {"fifo_queue3_tti0_urange_a", 0}, - {"fifo_queue3_tti0_ufc_a", 0}, - {"fifo_queue3_tti0_urange_b", 0}, - {"fifo_queue3_tti0_ufc_b", 0}, - {"fifo_queue3_tti0_urange_c", 0}, - {"fifo_queue3_tti0_ufc_c", 0}, - {"fifo_queue3_tti0_ufc_d", 0}, - {"fifo_queue3_tti0_timer_val_us", 0}, - {"fifo_queue3_tti0_timer_ac_en", 0}, - {"fifo_queue3_tti0_timer_ci_en", 0}, - - {"fifo_queue3_tti1_enabled", 0}, - {"fifo_queue3_tti1_urange_a", 0}, - {"fifo_queue3_tti1_ufc_a", 0}, - {"fifo_queue3_tti1_urange_b", 0}, - {"fifo_queue3_tti1_ufc_b", 0}, - {"fifo_queue3_tti1_urange_c", 0}, - {"fifo_queue3_tti1_ufc_c", 0}, - {"fifo_queue3_tti1_ufc_d", 0}, - {"fifo_queue3_tti1_timer_val_us", 0}, - {"fifo_queue3_tti1_timer_ac_en", 0}, - {"fifo_queue3_tti1_timer_ci_en", 0}, - - {"fifo_queue3_tti2_enabled", 0}, - {"fifo_queue3_tti2_urange_a", 0}, - {"fifo_queue3_tti2_ufc_a", 0}, - {"fifo_queue3_tti2_urange_b", 0}, - {"fifo_queue3_tti2_ufc_b", 0}, - {"fifo_queue3_tti2_urange_c", 0}, - {"fifo_queue3_tti2_ufc_c", 0}, - {"fifo_queue3_tti2_ufc_d", 0}, - {"fifo_queue3_tti2_timer_val_us", 0}, - {"fifo_queue3_tti2_timer_ac_en", 0}, - {"fifo_queue3_tti2_timer_ci_en", 0}, - - {"fifo_queue3_tti3_enabled", 0}, - {"fifo_queue3_tti3_urange_a", 0}, - {"fifo_queue3_tti3_ufc_a", 0}, - {"fifo_queue3_tti3_urange_b", 0}, - {"fifo_queue3_tti3_ufc_b", 0}, - {"fifo_queue3_tti3_urange_c", 0}, - {"fifo_queue3_tti3_ufc_c", 0}, - {"fifo_queue3_tti3_ufc_d", 0}, - {"fifo_queue3_tti3_timer_val_us", 0}, - {"fifo_queue3_tti3_timer_ac_en", 0}, - {"fifo_queue3_tti3_timer_ci_en", 0}, - - {"fifo_queue3_tti4_enabled", 0}, - {"fifo_queue3_tti4_urange_a", 0}, - {"fifo_queue3_tti4_ufc_a", 0}, - {"fifo_queue3_tti4_urange_b", 0}, - {"fifo_queue3_tti4_ufc_b", 0}, - {"fifo_queue3_tti4_urange_c", 0}, - {"fifo_queue3_tti4_ufc_c", 0}, - {"fifo_queue3_tti4_ufc_d", 0}, - {"fifo_queue3_tti4_timer_val_us", 0}, - {"fifo_queue3_tti4_timer_ac_en", 0}, - {"fifo_queue3_tti4_timer_ci_en", 0}, - - {"fifo_queue3_tti5_enabled", 0}, - {"fifo_queue3_tti5_urange_a", 0}, - {"fifo_queue3_tti5_ufc_a", 0}, - {"fifo_queue3_tti5_urange_b", 0}, - {"fifo_queue3_tti5_ufc_b", 0}, - {"fifo_queue3_tti5_urange_c", 0}, - {"fifo_queue3_tti5_ufc_c", 0}, - {"fifo_queue3_tti5_ufc_d", 0}, - {"fifo_queue3_tti5_timer_val_us", 0}, - {"fifo_queue3_tti5_timer_ac_en", 0}, - {"fifo_queue3_tti5_timer_ci_en", 0}, - - {"fifo_queue3_tti6_enabled", 0}, - {"fifo_queue3_tti6_urange_a", 0}, - {"fifo_queue3_tti6_ufc_a", 0}, - {"fifo_queue3_tti6_urange_b", 0}, - {"fifo_queue3_tti6_ufc_b", 0}, - {"fifo_queue3_tti6_urange_c", 0}, - {"fifo_queue3_tti6_ufc_c", 0}, - {"fifo_queue3_tti6_ufc_d", 0}, - {"fifo_queue3_tti6_timer_val_us", 0}, - {"fifo_queue3_tti6_timer_ac_en", 0}, - {"fifo_queue3_tti6_timer_ci_en", 0}, - - {"fifo_queue4_max", 0}, - {"fifo_queue4_initial", 0}, - {"fifo_queue4_intr", 0}, - {"fifo_queue4_intr_vector", 0}, - {"fifo_queue4_no_snoop_bits", 0}, - {"fifo_queue4_priority", 0}, - {"fifo_queue4_configured", 0}, - - {"fifo_queue4_tti0_enabled", 0}, - {"fifo_queue4_tti0_urange_a", 0}, - {"fifo_queue4_tti0_ufc_a", 0}, - {"fifo_queue4_tti0_urange_b", 0}, - {"fifo_queue4_tti0_ufc_b", 0}, - {"fifo_queue4_tti0_urange_c", 0}, - {"fifo_queue4_tti0_ufc_c", 0}, - {"fifo_queue4_tti0_ufc_d", 0}, - {"fifo_queue4_tti0_timer_val_us", 0}, - {"fifo_queue4_tti0_timer_ac_en", 0}, - {"fifo_queue4_tti0_timer_ci_en", 0}, - - {"fifo_queue4_tti1_enabled", 0}, - {"fifo_queue4_tti1_urange_a", 0}, - {"fifo_queue4_tti1_ufc_a", 0}, - {"fifo_queue4_tti1_urange_b", 0}, - {"fifo_queue4_tti1_ufc_b", 0}, - {"fifo_queue4_tti1_urange_c", 0}, - {"fifo_queue4_tti1_ufc_c", 0}, - {"fifo_queue4_tti1_ufc_d", 0}, - {"fifo_queue4_tti1_timer_val_us", 0}, - {"fifo_queue4_tti1_timer_ac_en", 0}, - {"fifo_queue4_tti1_timer_ci_en", 0}, - - {"fifo_queue4_tti2_enabled", 0}, - {"fifo_queue4_tti2_urange_a", 0}, - {"fifo_queue4_tti2_ufc_a", 0}, - {"fifo_queue4_tti2_urange_b", 0}, - {"fifo_queue4_tti2_ufc_b", 0}, - {"fifo_queue4_tti2_urange_c", 0}, - {"fifo_queue4_tti2_ufc_c", 0}, - {"fifo_queue4_tti2_ufc_d", 0}, - {"fifo_queue4_tti2_timer_val_us", 0}, - {"fifo_queue4_tti2_timer_ac_en", 0}, - {"fifo_queue4_tti2_timer_ci_en", 0}, - - {"fifo_queue4_tti3_enabled", 0}, - {"fifo_queue4_tti3_urange_a", 0}, - {"fifo_queue4_tti3_ufc_a", 0}, - {"fifo_queue4_tti3_urange_b", 0}, - {"fifo_queue4_tti3_ufc_b", 0}, - {"fifo_queue4_tti3_urange_c", 0}, - {"fifo_queue4_tti3_ufc_c", 0}, - {"fifo_queue4_tti3_ufc_d", 0}, - {"fifo_queue4_tti3_timer_val_us", 0}, - {"fifo_queue4_tti3_timer_ac_en", 0}, - {"fifo_queue4_tti3_timer_ci_en", 0}, - - {"fifo_queue4_tti4_enabled", 0}, - {"fifo_queue4_tti4_urange_a", 0}, - {"fifo_queue4_tti4_ufc_a", 0}, - {"fifo_queue4_tti4_urange_b", 0}, - {"fifo_queue4_tti4_ufc_b", 0}, - {"fifo_queue4_tti4_urange_c", 0}, - {"fifo_queue4_tti4_ufc_c", 0}, - {"fifo_queue4_tti4_ufc_d", 0}, - {"fifo_queue4_tti4_timer_val_us", 0}, - {"fifo_queue4_tti4_timer_ac_en", 0}, - {"fifo_queue4_tti4_timer_ci_en", 0}, - - {"fifo_queue4_tti5_enabled", 0}, - {"fifo_queue4_tti5_urange_a", 0}, - {"fifo_queue4_tti5_ufc_a", 0}, - {"fifo_queue4_tti5_urange_b", 0}, - {"fifo_queue4_tti5_ufc_b", 0}, - {"fifo_queue4_tti5_urange_c", 0}, - {"fifo_queue4_tti5_ufc_c", 0}, - {"fifo_queue4_tti5_ufc_d", 0}, - {"fifo_queue4_tti5_timer_val_us", 0}, - {"fifo_queue4_tti5_timer_ac_en", 0}, - {"fifo_queue4_tti5_timer_ci_en", 0}, - - {"fifo_queue4_tti6_enabled", 0}, - {"fifo_queue4_tti6_urange_a", 0}, - {"fifo_queue4_tti6_ufc_a", 0}, - {"fifo_queue4_tti6_urange_b", 0}, - {"fifo_queue4_tti6_ufc_b", 0}, - {"fifo_queue4_tti6_urange_c", 0}, - {"fifo_queue4_tti6_ufc_c", 0}, - {"fifo_queue4_tti6_ufc_d", 0}, - {"fifo_queue4_tti6_timer_val_us", 0}, - {"fifo_queue4_tti6_timer_ac_en", 0}, - {"fifo_queue4_tti6_timer_ci_en", 0}, - - {"fifo_queue5_max", 0}, - {"fifo_queue5_initial", 0}, - {"fifo_queue5_intr", 0}, - {"fifo_queue5_intr_vector", 0}, - {"fifo_queue5_no_snoop_bits", 0}, - {"fifo_queue5_priority", 0}, - {"fifo_queue5_configured", 0}, - - {"fifo_queue5_tti0_enabled", 0}, - {"fifo_queue5_tti0_urange_a", 0}, - {"fifo_queue5_tti0_ufc_a", 0}, - {"fifo_queue5_tti0_urange_b", 0}, - {"fifo_queue5_tti0_ufc_b", 0}, - {"fifo_queue5_tti0_urange_c", 0}, - {"fifo_queue5_tti0_ufc_c", 0}, - {"fifo_queue5_tti0_ufc_d", 0}, - {"fifo_queue5_tti0_timer_val_us", 0}, - {"fifo_queue5_tti0_timer_ac_en", 0}, - {"fifo_queue5_tti0_timer_ci_en", 0}, - - {"fifo_queue5_tti1_enabled", 0}, - {"fifo_queue5_tti1_urange_a", 0}, - {"fifo_queue5_tti1_ufc_a", 0}, - {"fifo_queue5_tti1_urange_b", 0}, - {"fifo_queue5_tti1_ufc_b", 0}, - {"fifo_queue5_tti1_urange_c", 0}, - {"fifo_queue5_tti1_ufc_c", 0}, - {"fifo_queue5_tti1_ufc_d", 0}, - {"fifo_queue5_tti1_timer_val_us", 0}, - {"fifo_queue5_tti1_timer_ac_en", 0}, - {"fifo_queue5_tti1_timer_ci_en", 0}, - - {"fifo_queue5_tti2_enabled", 0}, - {"fifo_queue5_tti2_urange_a", 0}, - {"fifo_queue5_tti2_ufc_a", 0}, - {"fifo_queue5_tti2_urange_b", 0}, - {"fifo_queue5_tti2_ufc_b", 0}, - {"fifo_queue5_tti2_urange_c", 0}, - {"fifo_queue5_tti2_ufc_c", 0}, - {"fifo_queue5_tti2_ufc_d", 0}, - {"fifo_queue5_tti2_timer_val_us", 0}, - {"fifo_queue5_tti2_timer_ac_en", 0}, - {"fifo_queue5_tti2_timer_ci_en", 0}, - - {"fifo_queue5_tti3_enabled", 0}, - {"fifo_queue5_tti3_urange_a", 0}, - {"fifo_queue5_tti3_ufc_a", 0}, - {"fifo_queue5_tti3_urange_b", 0}, - {"fifo_queue5_tti3_ufc_b", 0}, - {"fifo_queue5_tti3_urange_c", 0}, - {"fifo_queue5_tti3_ufc_c", 0}, - {"fifo_queue5_tti3_ufc_d", 0}, - {"fifo_queue5_tti3_timer_val_us", 0}, - {"fifo_queue5_tti3_timer_ac_en", 0}, - {"fifo_queue5_tti3_timer_ci_en", 0}, - - {"fifo_queue5_tti4_enabled", 0}, - {"fifo_queue5_tti4_urange_a", 0}, - {"fifo_queue5_tti4_ufc_a", 0}, - {"fifo_queue5_tti4_urange_b", 0}, - {"fifo_queue5_tti4_fc_b", 0}, - {"fifo_queue5_tti4_urange_c", 0}, - {"fifo_queue5_tti4_ufc_c", 0}, - {"fifo_queue5_tti4_ufc_d", 0}, - {"fifo_queue5_tti4_timer_val_us", 0}, - {"fifo_queue5_tti4_timer_ac_en", 0}, - {"fifo_queue5_tti4_timer_ci_en", 0}, - - {"fifo_queue5_tti5_enabled", 0}, - {"fifo_queue5_tti5_urange_a", 0}, - {"fifo_queue5_tti5_ufc_a", 0}, - {"fifo_queue5_tti5_urange_b", 0}, - {"fifo_queue5_tti5_ufc_b", 0}, - {"fifo_queue5_tti5_urange_c", 0}, - {"fifo_queue5_tti5_ufc_c", 0}, - {"fifo_queue5_tti5_ufc_d", 0}, - {"fifo_queue5_tti5_timer_val_us", 0}, - {"fifo_queue5_tti5_timer_ac_en", 0}, - {"fifo_queue5_tti5_timer_ci_en", 0}, - - {"fifo_queue5_tti6_enabled", 0}, - {"fifo_queue5_tti6_urange_a", 0}, - {"fifo_queue5_tti6_ufc_a", 0}, - {"fifo_queue5_tti6_urange_b", 0}, - {"fifo_queue5_tti6_ufc_b", 0}, - {"fifo_queue5_tti6_urange_c", 0}, - {"fifo_queue5_tti6_ufc_c", 0}, - {"fifo_queue5_tti6_ufc_d", 0}, - {"fifo_queue5_tti6_timer_val_us", 0}, - {"fifo_queue5_tti6_timer_ac_en", 0}, - {"fifo_queue5_tti6_timer_ci_en", 0}, - - {"fifo_queue6_max", 0}, - {"fifo_queue6_initial", 0}, - {"fifo_queue6_intr", 0}, - {"fifo_queue6_intr_vector", 0}, - {"fifo_queue6_no_snoop_bits", 0}, - {"fifo_queue6_priority", 0}, - {"fifo_queue6_configured", 0}, - - {"fifo_queue6_tti0_enabled", 0}, - {"fifo_queue6_tti0_urange_a", 0}, - {"fifo_queue6_tti0_ufc_a", 0}, - {"fifo_queue6_tti0_urange_b", 0}, - {"fifo_queue6_tti0_ufc_b", 0}, - {"fifo_queue6_tti0_urange_c", 0}, - {"fifo_queue6_tti0_ufc_c", 0}, - {"fifo_queue6_tti0_ufc_d", 0}, - {"fifo_queue6_tti0_timer_val_us", 0}, - {"fifo_queue6_tti0_timer_ac_en", 0}, - {"fifo_queue6_tti0_timer_ci_en", 0}, - - {"fifo_queue6_tti1_enabled", 0}, - {"fifo_queue6_tti1_urange_a", 0}, - {"fifo_queue6_tti1_ufc_a", 0}, - {"fifo_queue6_tti1_urange_b", 0}, - {"fifo_queue6_tti1_ufc_b", 0}, - {"fifo_queue6_tti1_urange_c", 0}, - {"fifo_queue6_tti1_ufc_c", 0}, - {"fifo_queue6_tti1_ufc_d", 0}, - {"fifo_queue6_tti1_timer_val_us", 0}, - {"fifo_queue6_tti1_timer_ac_en", 0}, - {"fifo_queue6_tti1_timer_ci_en", 0}, - - {"fifo_queue6_tti2_enabled", 0}, - {"fifo_queue6_tti2_urange_a", 0}, - {"fifo_queue6_tti2_ufc_a", 0}, - {"fifo_queue6_tti2_urange_b", 0}, - {"fifo_queue6_tti2_ufc_b", 0}, - {"fifo_queue6_tti2_urange_c", 0}, - {"fifo_queue6_tti2_ufc_c", 0}, - {"fifo_queue6_tti2_ufc_d", 0}, - {"fifo_queue6_tti2_timer_val_us", 0}, - {"fifo_queue6_tti2_timer_ac_en", 0}, - {"fifo_queue6_tti2_timer_ci_en", 0}, - - {"fifo_queue6_tti3_enabled", 0}, - {"fifo_queue6_tti3_urange_a", 0}, - {"fifo_queue6_tti3_ufc_a", 0}, - {"fifo_queue6_tti3_urange_b", 0}, - {"fifo_queue6_tti3_ufc_b", 0}, - {"fifo_queue6_tti3_urange_c", 0}, - {"fifo_queue6_tti3_ufc_c", 0}, - {"fifo_queue6_tti3_ufc_d", 0}, - {"fifo_queue6_tti3_timer_val_us", 0}, - {"fifo_queue6_tti3_timer_ac_en", 0}, - {"fifo_queue6_tti3_timer_ci_en", 0}, - - {"fifo_queue6_tti4_enabled", 0}, - {"fifo_queue6_tti4_urange_a", 0}, - {"fifo_queue6_tti4_ufc_a", 0}, - {"fifo_queue6_tti4_urange_b", 0}, - {"fifo_queue6_tti4_ufc_b", 0}, - {"fifo_queue6_tti4_urange_c", 0}, - {"fifo_queue6_tti4_ufc_c", 0}, - {"fifo_queue6_tti4_ufc_d", 0}, - {"fifo_queue6_tti4_timer_val_us", 0}, - {"fifo_queue6_tti4_timer_ac_en", 0}, - {"fifo_queue6_tti4_timer_ci_en", 0}, - - {"fifo_queue6_tti5_enabled", 0}, - {"fifo_queue6_tti5_urange_a", 0}, - {"fifo_queue6_tti5_ufc_a", 0}, - {"fifo_queue6_tti5_urange_b", 0}, - {"fifo_queue6_tti5_ufc_b", 0}, - {"fifo_queue6_tti5_urange_c", 0}, - {"fifo_queue6_tti5_ufc_c", 0}, - {"fifo_queue6_tti5_ufc_d", 0}, - {"fifo_queue6_tti5_timer_val_us", 0}, - {"fifo_queue6_tti5_timer_ac_en", 0}, - {"fifo_queue6_tti5_timer_ci_en", 0}, - - {"fifo_queue6_tti6_enabled", 0}, - {"fifo_queue6_tti6_urange_a", 0}, - {"fifo_queue6_tti6_ufc_a", 0}, - {"fifo_queue6_tti6_urange_b", 0}, - {"fifo_queue6_tti6_ufc_b", 0}, - {"fifo_queue6_tti6_urange_c", 0}, - {"fifo_queue6_tti6_ufc_c", 0}, - {"fifo_queue6_tti6_ufc_d", 0}, - {"fifo_queue6_tti6_timer_val_us", 0}, - {"fifo_queue6_tti6_timer_ac_en", 0}, - {"fifo_queue6_tti6_timer_ci_en", 0}, - - {"fifo_queue7_max", 0}, - {"fifo_queue7_initial", 0}, - {"fifo_queue7_intr", 0}, - {"fifo_queue7_intr_vector", 0}, - {"fifo_queue7_no_snoop_bits", 0}, - {"fifo_queue7_priority", 0}, - {"fifo_queue7_configured", 0}, - - {"fifo_queue7_tti0_enabled", 0}, - {"fifo_queue7_tti0_urange_a", 0}, - {"fifo_queue7_tti0_ufc_a", 0}, - {"fifo_queue7_tti0_urange_b", 0}, - {"fifo_queue7_tti0_ufc_b", 0}, - {"fifo_queue7_tti0_urange_c", 0}, - {"fifo_queue7_tti0_ufc_c", 0}, - {"fifo_queue7_tti0_ufc_d", 0}, - {"fifo_queue7_tti0_timer_val_us", 0}, - {"fifo_queue7_tti0_timer_ac_en", 0}, - {"fifo_queue7_tti0_timer_ci_en", 0}, - - {"fifo_queue7_tti1_enabled", 0}, - {"fifo_queue7_tti1_urange_a", 0}, - {"fifo_queue7_tti1_ufc_a", 0}, - {"fifo_queue7_tti1_urange_b", 0}, - {"fifo_queue7_tti1_ufc_b", 0}, - {"fifo_queue7_tti1_urange_c", 0}, - {"fifo_queue7_tti1_ufc_c", 0}, - {"fifo_queue7_tti1_ufc_d", 0}, - {"fifo_queue7_tti1_timer_val_us", 0}, - {"fifo_queue7_tti1_timer_ac_en", 0}, - {"fifo_queue7_tti1_timer_ci_en", 0}, - - {"fifo_queue7_tti2_enabled", 0}, - {"fifo_queue7_tti2_urange_a", 0}, - {"fifo_queue7_tti2_ufc_a", 0}, - {"fifo_queue7_tti2_urange_b", 0}, - {"fifo_queue7_tti2_ufc_b", 0}, - {"fifo_queue7_tti2_urange_c", 0}, - {"fifo_queue7_tti2_ufc_c", 0}, - {"fifo_queue7_tti2_ufc_d", 0}, - {"fifo_queue7_tti2_timer_val_us", 0}, - {"fifo_queue7_tti2_timer_ac_en", 0}, - {"fifo_queue7_tti2_timer_ci_en", 0}, - - {"fifo_queue7_tti3_enabled", 0}, - {"fifo_queue7_tti3_urange_a", 0}, - {"fifo_queue7_tti3_ufc_a", 0}, - {"fifo_queue7_tti3_urange_b", 0}, - {"fifo_queue7_tti3_ufc_b", 0}, - {"fifo_queue7_tti3_urange_c", 0}, - {"fifo_queue7_tti3_ufc_c", 0}, - {"fifo_queue7_tti3_ufc_d", 0}, - {"fifo_queue7_tti3_timer_val_us", 0}, - {"fifo_queue7_tti3_timer_ac_en", 0}, - {"fifo_queue7_tti3_timer_ci_en", 0}, - - {"fifo_queue7_tti4_enabled", 0}, - {"fifo_queue7_tti4_urange_a", 0}, - {"fifo_queue7_tti4_ufc_a", 0}, - {"fifo_queue7_tti4_urange_b", 0}, - {"fifo_queue7_tti4_ufc_b", 0}, - {"fifo_queue7_tti4_urange_c", 0}, - {"fifo_queue7_tti4_ufc_c", 0}, - {"fifo_queue7_tti4_ufc_d", 0}, - {"fifo_queue7_tti4_timer_val_us", 0}, - {"fifo_queue7_tti4_timer_ac_en", 0}, - {"fifo_queue7_tti4_timer_ci_en", 0}, - - {"fifo_queue7_tti5_enabled", 0}, - {"fifo_queue7_tti5_urange_a", 0}, - {"fifo_queue7_tti5_ufc_a", 0}, - {"fifo_queue7_tti5_urange_b", 0}, - {"fifo_queue7_tti5_ufc_b", 0}, - {"fifo_queue7_tti5_urange_c", 0}, - {"fifo_queue7_tti5_ufc_c", 0}, - {"fifo_queue7_tti5_ufc_d", 0}, - {"fifo_queue7_tti5_timer_val_us", 0}, - {"fifo_queue7_tti5_timer_ac_en", 0}, - {"fifo_queue7_tti5_timer_ci_en", 0}, - - {"fifo_queue7_tti6_enabled", 0}, - {"fifo_queue7_tti6_urange_a", 0}, - {"fifo_queue7_tti6_ufc_a", 0}, - {"fifo_queue7_tti6_urange_b", 0}, - {"fifo_queue7_tti6_ufc_b", 0}, - {"fifo_queue7_tti6_urange_c", 0}, - {"fifo_queue7_tti6_ufc_c", 0}, - {"fifo_queue7_tti6_ufc_d", 0}, - {"fifo_queue7_tti6_timer_val_us", 0}, - {"fifo_queue7_tti6_timer_ac_en", 0}, - {"fifo_queue7_tti6_timer_ci_en", 0}, - - {"dump_on_serr", 0}, - {"dump_on_eccerr", 0}, - {"dump_on_parityerr", 0}, - {"rth_en", 0}, - {"rth_bucket_size", 0}, - {"rth_spdm_en", 0}, - {"rth_spdm_use_l4", 0}, - {"rxufca_intr_thres", 0}, - {"rxufca_lo_lim", 0}, - {"rxufca_hi_lim", 0}, - {"rxufca_lbolt_period", 0}, - {"link_valid_cnt", 0}, - {"link_retry_cnt", 0}, - {"link_stability_period", 0}, - {"device_poll_millis", 0}, - {"no_isr_events", 0}, - {"lro_sg_size", 0}, - {"lro_frm_len", 0}, - {"bimodal_interrupts", 0}, - {"bimodal_timer_lo_us", 0}, - {"bimodal_timer_hi_us", 0}, - {"rts_mac_en", 0}, - {"rts_qos_en", 0}, - {"rts_port_en", 0}, -}; - -xge_stats_intr_info_t intrInfo[] = { - {"rx_traffic_intr_cnt", 0}, - {"tx_traffic_intr_cnt", 0}, - {"txpic_intr_cnt", 0}, - {"txdma_intr_cnt", 0}, - {"txmac_intr_cnt", 0}, - {"txxgxs_intr_cnt", 0}, - {"rxpic_intr_cnt", 0}, - {"rxdma_intr_cnt", 0}, - {"rxmac_intr_cnt", 0}, - {"rxxgxs_intr_cnt", 0}, - {"mc_intr_cnt", 0}, - {"not_traffic_intr_cnt", 0}, - {"not_xge_intr_cnt", 0}, - {"traffic_intr_cnt", 0}, - {"total_intr_cnt", 0}, - {"soft_reset_cnt", 0}, - {"rxufca_hi_adjust_cnt", 0}, - {"rxufca_lo_adjust_cnt", 0}, - {"bimodal_hi_adjust_cnt", 0}, - {"bimodal_lo_adjust_cnt", 0}, -#ifdef CONFIG_LRO - {"tot_frms_lroised", 0}, - {"tot_lro_sessions", 0}, - {"lro_frm_len_exceed_cnt", 0}, - {"lro_sg_exceed_cnt", 0}, - {"lro_out_of_seq_pkt_cnt", 0}, - {"lro_dup_pkt_cnt", 0} -#endif -}; - -xge_stats_tcode_info_t tcodeInfo[] = { - {"sm_err_cnt", 0, 4, 0}, - {"single_ecc_err_cnt", 0, 4, 0}, - {"double_ecc_err_cnt", 0, 4, 0}, - {"ecc_err_cnt", 0, 4, 0}, - {"parity_err_cnt", 0, 4, 0}, - {"serr_cnt", 0, 4, 0}, - {"rxd_t_code_transfer_ok", 0, 4, 1}, - {"rxd_t_code_parity", 0, 4, 0}, - {"rxd_t_code_abort", 0, 4, 0}, - {"rxd_t_code_parity_abort", 0, 4, 0}, - {"rxd_t_code_rda_failure", 0, 4, 0}, - {"rxd_t_code_unknown_proto", 0, 4, 0}, - {"rxd_t_code_bad_fcs", 0, 4, 0}, - {"rxd_t_code_buff_size", 0, 4, 0}, - {"rxd_t_code_bad_ecc", 0, 4, 0}, - {"rxd_t_code_unused_9", 0, 4, 1}, - {"rxd_t_code_unused_a", 0, 4, 1}, - {"rxd_t_code_unused_b", 0, 4, 1}, - {"rxd_t_code_unused_c", 0, 4, 1}, - {"rxd_t_code_unused_d", 0, 4, 1}, - {"rxd_t_code_unused_e", 0, 4, 1}, - {"rxd_t_code_unknown", 0, 4, 0}, - {"txd_t_code_transfer_ok", 0, 4, 1}, - {"txd_t_code_unused_1", 0, 4, 1}, - {"txd_t_code_abort_buffer", 0, 4, 0}, - {"txd_t_code_abort_dtor", 0, 4, 0}, - {"txd_t_code_unused_4", 0, 4, 1}, - {"txd_t_code_unused_5", 0, 4, 1}, - {"txd_t_code_unused_6", 0, 4, 1}, - {"txd_t_code_parity", 0, 4, 0}, - {"txd_t_code_unused_8", 0, 4, 1}, - {"txd_t_code_unused_9", 0, 4, 1}, - {"txd_t_code_loss_of_link", 0, 4, 0}, - {"txd_t_code_unused_a", 0, 4, 1}, - {"txd_t_code_unused_b", 0, 4, 1}, - {"txd_t_code_unused_c", 0, 4, 1}, - {"txd_t_code_unused_d", 0, 4, 1}, - {"txd_t_code_general_err", 0, 4, 0}, - {"alarm_transceiver_temp_high", 0, 4, 0}, - {"alarm_transceiver_temp_low", 0, 4, 0}, - {"alarm_laser_bias_current_high", 0, 4, 0}, - {"alarm_laser_bias_current_low", 0, 4, 0}, - {"alarm_laser_output_power_high", 0, 4, 0}, - {"alarm_laser_output_power_low", 0, 4, 0}, - {"warn_transceiver_temp_high", 0, 4, 0}, - {"warn_transceiver_temp_low", 0, 4, 0}, - {"warn_laser_bias_current_high", 0, 4, 0}, - {"warn_laser_bias_current_low", 0, 4, 0}, - {"warn_laser_output_power_high", 0, 4, 0}, - {"warn_laser_output_power_low", 0, 4, 0}, - {"excess_temp", 0, 2, 0}, - {"excess_bias_current", 0, 2, 0}, - {"excess_laser_output", 0, 2, 0}, - {"tick_period", 0, 2, 0} -}; - -xge_stats_driver_info_t driverInfo[] = { - {"isr_filter", 0}, - {"isr_line", 0}, - {"isr_msi", 0}, - {"tx_calls", 0}, - {"tx_completions", 0}, - {"tx_desc_compl", 0}, - {"tx_tcode", 0}, - {"tx_defrag", 0}, - {"tx_no_txd", 0}, - {"tx_map_fail", 0}, - {"tx_max_frags", 0}, - {"tx_tso", 0}, - {"tx_posted", 0}, - {"tx_again", 0}, - {"rx_completions", 0}, - {"rx_desc_compl", 0}, - {"rx_tcode", 0}, - {"rx_no_buf", 0}, - {"rx_map_fail", 0}, - {"lro_uncapable", 0}, - {"lro_begin", 0}, - {"lro_end1", 0}, - {"lro_end2", 0}, - {"lro_end3", 0}, - {"lro_append", 0}, - {"lro_session_exceeded", 0}, - {"lro_close", 0} -}; Property changes on: head/tools/tools/nxge/xge_log.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/tools/nxge/xge_info.c =================================================================== --- head/tools/tools/nxge/xge_info.c (revision 333387) +++ head/tools/tools/nxge/xge_info.c (nonexistent) @@ -1,606 +0,0 @@ -/*- - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 "xge_info.h" - -int -main( int argc, char *argv[] ) -{ - int status = EXIT_FAILURE; - - if(argc >= 4) { - if(!((strcmp(argv[2], "getregister") == 0) || - (strcmp(argv[2], "setregister") == 0) || - (strcmp(argv[2], "setbufmode") == 0))) { - goto out; - } - } - else { - if(argc != 3) { - goto out; - } - else { - if(!((strcmp(argv[2], "hwstats") == 0) || - (strcmp(argv[2], "pciconf") == 0) || - (strcmp(argv[2], "devconf") == 0) || - (strcmp(argv[2], "registers") == 0) || - (strcmp(argv[2], "version") == 0) || - (strcmp(argv[2], "swstats") == 0) || - (strcmp(argv[2], "drvstats") == 0) || - (strcmp(argv[2], "getbufmode") == 0) || - (strcmp(argv[2], "devstats") == 0))) { - goto out; - } - } - } - - if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { - printf("Creating socket failed\n"); - goto _exit; - } - - ifreqp.ifr_addr.sa_family = AF_INET; - strcpy(ifreqp.ifr_name, argv[1]); - - if (strcmp(argv[2], "pciconf") == 0) - status = xge_get_pciconf(); - else if(strcmp(argv[2], "devconf") == 0) - status = xge_get_devconf(); - else if(strcmp(argv[2], "hwstats") == 0) - status = xge_get_hwstats(); - else if(strcmp(argv[2], "registers") == 0) - status = xge_get_registers(); - else if(strcmp(argv[2], "devstats") == 0) - status = xge_get_devstats(); - else if(strcmp(argv[2], "swstats") == 0) - status = xge_get_swstats(); - else if(strcmp(argv[2], "drvstats") == 0) - status = xge_get_drvstats(); - else if(strcmp(argv[2], "version") == 0) - status = xge_get_drv_version(); - else if(strcmp(argv[2], "getbufmode") == 0) - status = xge_get_buffer_mode(); - else if(strcmp(argv[2], "getregister") == 0) - status = xge_get_register(argv[3]); - else if(strcmp(argv[2], "setregister") == 0) - status = xge_set_register(argv[3], argv[4]); - else if(strcmp(argv[2], "setbufmode") == 0) - status = xge_change_buffer_mode(argv[3]); - goto _exit; - -out: - printf("Usage: "); - printf("getinfo [hwstats] [swstats] [devstats] "); - printf("[drvstats] [version] [registers] [getregister offset] "); - printf("[setregister offset value] [pciconf] [devconf] [getbufmode] "); - printf("[setbufmode]\n"); - printf("\tINTERFACE : Interface (nxge0, nxge1, nxge2, ..) \n"); - printf("\thwstats : Prints hardware statistics \n"); - printf("\tswstats : Prints software statistics \n"); - printf("\tdevstats : Prints device statistics \n"); - printf("\tdrvstats : Prints driver statistics \n"); - printf("\tversion : Prints driver version \n"); - printf("\tregisters : Prints register values \n"); - printf("\tgetregister : Read a register \n"); - printf("\tsetregister : Write to a register \n"); - printf("\tpciconf : Prints PCI configuration space \n"); - printf("\tdevconf : Prints device configuration \n"); - printf("\tgetbufmode : Prints Buffer Mode \n"); - printf("\tsetbufmode : Changes buffer mode \n"); - -_exit: - return status; -} - -/** - * xge_get_hwstats - * Gets hardware statistics - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_hwstats(void) -{ - char *hw_stats = NULL, *pci_cfg = NULL; - unsigned short device_id; - int index = 0; - int status = EXIT_FAILURE; - - buffer_size = GET_OFFSET_STATS(XGE_COUNT_STATS - 1) + 8; - - hw_stats = (char *)malloc(buffer_size); - if(!hw_stats) { - printf("Allocating memory for hardware statistics failed\n"); - goto _exit; - } - *hw_stats = XGE_QUERY_STATS; - ifreqp.ifr_data = (caddr_t) hw_stats; - - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Getting hardware statistics failed\n"); - goto _exit1; - } - - buffer_size = GET_OFFSET_PCICONF(XGE_COUNT_PCICONF - 1) + 8; - pci_cfg = (void *)malloc(buffer_size); - if(!pci_cfg) { - printf("Allocating memory for PCI configuration failed\n"); - goto _exit1; - } - - *pci_cfg = XGE_QUERY_PCICONF; - ifreqp.ifr_data = (caddr_t)pci_cfg; - - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Getting pci configuration space failed\n"); - goto _exit2; - } - device_id = *((u16 *)((unsigned char *)pci_cfg + - GET_OFFSET_PCICONF(index))); - - xge_print_hwstats(hw_stats,device_id); - status = EXIT_SUCCESS; - -_exit2: - free(pci_cfg); - -_exit1: - free(hw_stats); - -_exit: - return status; -} - -/** - * xge_get_pciconf - * Gets PCI configuration space - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_pciconf(void) -{ - char *pci_cfg = NULL; - int status = EXIT_FAILURE; - - buffer_size = GET_OFFSET_PCICONF(XGE_COUNT_PCICONF - 1) + 8; - - pci_cfg = (char *)malloc(buffer_size); - if(!pci_cfg) { - printf("Allocating memory for PCI configuration failed\n"); - goto _exit; - } - - *pci_cfg = XGE_QUERY_PCICONF; - ifreqp.ifr_data = (caddr_t)pci_cfg; - - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Getting PCI configuration space failed\n"); - goto _exit1; - } - - xge_print_pciconf( pci_cfg ); - status = EXIT_SUCCESS; - -_exit1: - free(pci_cfg); - -_exit: - return status; -} - -/** - * xge_get_devconf - * Gets device configuration - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_devconf(void) -{ - char *device_cfg = NULL; - int status = EXIT_FAILURE; - - buffer_size = XGE_COUNT_DEVCONF * sizeof(int); - - device_cfg = (char *)malloc(buffer_size); - if(!device_cfg) { - printf("Allocating memory for device configuration failed\n"); - goto _exit; - } - - *device_cfg = XGE_QUERY_DEVCONF; - ifreqp.ifr_data = (caddr_t)device_cfg; - - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Getting Device Configuration failed\n"); - goto _exit1; - } - - xge_print_devconf( device_cfg ); - status = EXIT_SUCCESS; - -_exit1: - free(device_cfg); - -_exit: - return status; -} - -/** - * xge_get_buffer_mode - * Get current Rx buffer mode - * - * Return EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_buffer_mode(void) -{ - char *buf_mode = NULL; - int status = EXIT_FAILURE; - - buf_mode = (char *)malloc(sizeof(int)); - if(!buf_mode) { - printf("Allocating memory for buffer mode failed\n"); - goto _exit; - } - - *buf_mode = XGE_QUERY_BUFFER_MODE; - ifreqp.ifr_data = (void *)buf_mode; - - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Getting Buffer Mode failed\n"); - goto _exit1; - } - printf("Rx Buffer Mode: %d\n", *ifreqp.ifr_data); - status = EXIT_SUCCESS; - -_exit1: - free(buf_mode); - -_exit: - return status; -} - -/** - * xge_change_buffer_mode - * Change Rx buffer mode - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_change_buffer_mode(char *bufmode) -{ - char *print_msg = NULL; - int status = EXIT_FAILURE; - - print_msg = (char *)malloc(sizeof(char)); - if(print_msg == NULL) { - printf("Allocation of memory for message failed\n"); - goto _exit; - } - - if (*bufmode == '1') *print_msg = XGE_SET_BUFFER_MODE_1; - else if(*bufmode == '2') *print_msg = XGE_SET_BUFFER_MODE_2; - else if(*bufmode == '5') *print_msg = XGE_SET_BUFFER_MODE_5; - else { - printf("Invalid Buffer mode\n"); - goto _exit1; - } - - ifreqp.ifr_data = (char *)print_msg; - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Changing buffer mode failed\n"); - goto _exit1; - } - - if(*print_msg == 'Y') { - printf("Requested buffer mode was already enabled\n"); - } - else if(*print_msg == 'N') { - printf("Requested buffer mode is not implemented OR\n"); - printf("Dynamic buffer changing is not supported in this driver\n"); - } - else if(*print_msg == 'C') { - printf("Buffer mode changed to %c\n", *bufmode); - } - status = EXIT_SUCCESS; - -_exit1: - free(print_msg); - -_exit: - return status; -} - - -/** - * xge_get_registers - * Gets register values - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_registers(void) -{ - void *registers = NULL; - int status = EXIT_FAILURE; - - buffer_size = regInfo[XGE_COUNT_REGS - 1].offset + 8; - - registers = (void *)malloc(buffer_size); - if(!registers) { - printf("Allocating memory for register dump failed\n"); - goto _exit; - } - - ifreqp.ifr_data = (caddr_t)registers; - if(ioctl(sockfd, SIOCGPRIVATE_1, &ifreqp) < 0) { - printf("Getting register values failed\n"); - goto _exit1; - } - - xge_print_registers(registers); - status = EXIT_SUCCESS; - -_exit1: - free(registers); - -_exit: - return status; -} - -/** - * xge_get_register - * Reads a register specified offset - * - * @offset Offset of register from base address - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_register(char *offset) -{ - xge_register_info_t *register_info = NULL; - int status = EXIT_FAILURE; - - register_info = - (xge_register_info_t *)malloc(sizeof(xge_register_info_t)); - if(!register_info) { - printf("Allocating memory for register info failed\n"); - goto _exit; - } - - strcpy(register_info->option, "-r"); - sscanf(offset, "%x", ®ister_info->offset); - ifreqp.ifr_data = (caddr_t)register_info; - - if(ioctl(sockfd, SIOCGPRIVATE_1, &ifreqp) < 0) { - printf("Reading register failed\n"); - goto _exit1; - } - - xge_print_register(register_info->offset, register_info->value); - status = EXIT_SUCCESS; - -_exit1: - free(register_info); - -_exit: - return status; -} - -/** - * xge_set_register - * Writes to a register specified offset - * - * @offset Offset of register from base address - * @value Value to write to - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_set_register(char *offset, char *value) -{ - xge_register_info_t *register_info = NULL; - int status = EXIT_FAILURE; - - register_info = - (xge_register_info_t *)malloc(sizeof(xge_register_info_t)); - if(!register_info) { - printf("Allocating memory for register info failed\n"); - goto _exit; - } - - strcpy(register_info->option, "-w"); - sscanf(offset, "%x", ®ister_info->offset); - sscanf(value, "%llx", ®ister_info->value); - - ifreqp.ifr_data = (caddr_t)register_info; - if(ioctl(sockfd, SIOCGPRIVATE_1, &ifreqp) < 0) { - printf("Writing register failed\n"); - goto _exit1; - } - status = EXIT_SUCCESS; - -_exit1: - free(register_info); - -_exit: - return status; -} - -/** - * xge_get_devstats - * Gets device statistics - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_devstats(void) -{ - char *dev_stats = NULL; - int status = EXIT_FAILURE; - - buffer_size = XGE_COUNT_INTRSTAT * sizeof(u32); - - dev_stats = (char *)malloc(buffer_size); - if(!dev_stats) { - printf("Allocating memory for device statistics failed\n"); - goto _exit; - } - - *dev_stats = XGE_QUERY_DEVSTATS; - ifreqp.ifr_data = (caddr_t)dev_stats; - - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Getting device statistics failed\n"); - goto _exit1; - } - - xge_print_devstats(dev_stats); - status = EXIT_SUCCESS; - -_exit1: - free(dev_stats); - -_exit: - return status; -} - -/** - * xge_get_swstats - * Gets software statistics - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_swstats(void) -{ - char *sw_stats = NULL; - int status = EXIT_FAILURE; - - buffer_size = XGE_COUNT_SWSTAT * sizeof(u32); - - sw_stats = (char *) malloc(buffer_size); - if(!sw_stats) { - printf("Allocating memory for software statistics failed\n"); - goto _exit; - } - - *sw_stats = XGE_QUERY_SWSTATS; - ifreqp.ifr_data = (caddr_t)sw_stats; - - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Getting software statistics failed\n"); - goto _exit1; - } - - xge_print_swstats(sw_stats); - status = EXIT_SUCCESS; - -_exit1: - free(sw_stats); - -_exit: - return status; -} - -/** - * xge_get_drv_version - * Gets driver version - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_drv_version(void) -{ - char *version = NULL; - int status = EXIT_FAILURE; - - buffer_size = 20; - version = (char *)malloc(buffer_size); - if(!version) { - printf("Allocating memory for driver version failed\n"); - goto _exit; - } - - *version = XGE_READ_VERSION; - ifreqp.ifr_data = ( caddr_t )version; - - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Getting driver version failed\n"); - goto _exit1; - } - xge_print_drv_version(version); - status = EXIT_SUCCESS; - -_exit1: - free(version); - -_exit: - return status; -} - -/** - * xge_get_drvstats - * Gets driver statistics - * - * Returns EXIT_SUCCESS or EXIT_FAILURE - */ -int -xge_get_drvstats(void) -{ - char *driver_stats = NULL; - int status = EXIT_FAILURE; - - buffer_size = XGE_COUNT_DRIVERSTATS * sizeof(u64); - - driver_stats = (char *)malloc(buffer_size); - if(!driver_stats) { - printf("Allocating memory for driver statistics failed\n"); - goto _exit; - } - - *driver_stats = XGE_QUERY_DRIVERSTATS; - ifreqp.ifr_data = (caddr_t)driver_stats; - - if(ioctl(sockfd, SIOCGPRIVATE_0, &ifreqp) < 0) { - printf("Getting Driver Statistics failed\n"); - goto _exit1; - } - - xge_print_drvstats(driver_stats); - status = EXIT_SUCCESS; - -_exit1: - free(driver_stats); - -_exit: - return status; -} Property changes on: head/tools/tools/nxge/xge_info.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/tools/nxge/xge_cmn.h =================================================================== --- head/tools/tools/nxge/xge_cmn.h (revision 333387) +++ head/tools/tools/nxge/xge_cmn.h (nonexistent) @@ -1,150 +0,0 @@ -/*- - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_CMN_H -#define XGE_CMN_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if BYTE_ORDER == BIG_ENDIAN -#define XGE_OS_HOST_BIG_ENDIAN 1 -#endif - -#define u64 unsigned long long -#define u32 unsigned int -#define u16 unsigned short -#define u8 unsigned char - -#define XGE_COUNT_REGS 386 -#define XGE_COUNT_STATS 160 -#define XGE_COUNT_PCICONF 43 -#define XGE_COUNT_DEVCONF 1677 -#ifdef CONFIG_LRO -#define XGE_COUNT_INTRSTAT 26 -#else -#define XGE_COUNT_INTRSTAT 20 -#endif -#define XGE_COUNT_SWSTAT 54 -#define XGE_COUNT_DRIVERSTATS 27 -#define DEVICE_ID_XFRAME_II 0x5832 -#define XGE_COUNT_EXTENDED_STATS 56 - -#define XGE_PRINT(fd, fmt...) { \ - fprintf(fd, fmt); \ - fprintf(fd, "\n"); \ - printf(fmt); \ - printf("\n"); \ -} - -#define XGE_PRINT_LINE(fd) XGE_PRINT(fd, line); - -/* Read & Write Register */ -typedef struct barregister -{ - char option[2]; - u64 offset; - u64 value; -}xge_register_info_t; - -/* Register Dump */ -typedef struct xge_pci_bar0_t -{ - u8 name[32]; /* Register name as in user guides */ - u64 offset; /* Offset from base address */ - u64 value; /* Value */ - char type; /* 1: XframeII, 0: Common */ -} xge_pci_bar0_t; - -/* Hardware Statistics */ -typedef struct xge_stats_hw_info_t -{ - u8 name[32]; /* Statistics name */ - u64 be_offset; /* Offset from base address (BE) */ - u64 le_offset; /* Offset from base address (LE) */ - u8 type; /* Type: 1, 2, 3 or 4 bytes */ - u64 value; /* Value */ -} xge_stats_hw_info_t; - -/* PCI Configuration Space */ -typedef struct xge_pci_config_t -{ - u8 name[32]; /* Pci conf. name */ - u64 be_offset; /* Offset from base address (BE) */ - u64 le_offset; /* Offset from base address (LE) */ - u64 value; /* Value */ -} xge_pci_config_t; - -/* Device Configuration */ -typedef struct xge_device_config_t -{ - u8 name[32]; /* Device conf. name */ - u64 value; /* Value */ -} xge_device_config_t; - -/* Interrupt Statistics */ -typedef struct xge_stats_intr_info_t -{ - u8 name[32]; /* Interrupt entry name */ - u64 value; /* Value (count) */ -} xge_stats_intr_info_t; - -/* Tcode Statistics */ -typedef struct xge_stats_tcode_info_t -{ - u8 name[32]; /* Tcode entry name */ - u64 value; /* Value (count) */ - u8 type; /* Type: 1, 2, 3 or 4 bytes */ - u16 flag; -}xge_stats_tcode_info_t; - -typedef struct xge_stats_driver_info_t -{ - u8 name[32]; /* Driver statistics name */ - u64 value; /* Value */ -} xge_stats_driver_info_t; - -#ifdef XGE_OS_HOST_BIG_ENDIAN -#define GET_OFFSET_STATS(index) statsInfo[(index)].be_offset -#define GET_OFFSET_PCICONF(index) pciconfInfo[(index)].be_offset -#else -#define GET_OFFSET_STATS(index) statsInfo[(index)].le_offset -#define GET_OFFSET_PCICONF(index) pciconfInfo[(index)].le_offset -#endif - -#endif //XGE_CMN_H Property changes on: head/tools/tools/nxge/xge_cmn.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/tools/nxge/xge_info.h =================================================================== --- head/tools/tools/nxge/xge_info.h (revision 333387) +++ head/tools/tools/nxge/xge_info.h (nonexistent) @@ -1,79 +0,0 @@ -/*- - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 XGE_CMN_H -#include "xge_cmn.h" -#endif - -#define XGE_QUERY_STATS 1 -#define XGE_QUERY_PCICONF 2 -#define XGE_QUERY_DEVSTATS 3 -#define XGE_QUERY_DEVCONF 4 -#define XGE_READ_VERSION 5 -#define XGE_QUERY_SWSTATS 6 -#define XGE_QUERY_DRIVERSTATS 7 -#define XGE_SET_BUFFER_MODE_1 8 -#define XGE_SET_BUFFER_MODE_2 9 -#define XGE_SET_BUFFER_MODE_5 10 -#define XGE_QUERY_BUFFER_MODE 11 - - -/* Function declerations */ -int xge_get_pciconf(void); -int xge_get_devconf(void); -int xge_get_hwstats(void); -int xge_get_registers(void); -int xge_get_devstats(void); -int xge_get_swstats(void); -int xge_get_drvstats(void); -int xge_get_register(char *); -int xge_set_register(char *,char *); -int xge_get_drv_version(void); -int xge_get_buffer_mode(void); -int xge_change_buffer_mode(char *); -void xge_print_hwstats(void *,unsigned short); -void xge_print_pciconf(void *); -void xge_print_devconf(void *); -void xge_print_registers(void *); -void xge_print_register(u64,u64); -void xge_print_devstats(void *); -void xge_print_swstats(void *); -void xge_print_drvstats(void *); -void xge_print_drv_version(char *); - -extern xge_pci_bar0_t regInfo[]; -extern xge_pci_config_t pciconfInfo[]; -extern xge_stats_hw_info_t statsInfo[]; -extern xge_device_config_t devconfInfo[]; -extern xge_stats_intr_info_t intrInfo[]; -extern xge_stats_tcode_info_t tcodeInfo[]; -extern xge_stats_driver_info_t driverInfo[]; - -struct ifreq ifreqp; -int sockfd, indexer, buffer_size = 0; - Property changes on: head/tools/tools/nxge/xge_info.h ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/tools/nxge/xge_log.c =================================================================== --- head/tools/tools/nxge/xge_log.c (revision 333387) +++ head/tools/tools/nxge/xge_log.c (nonexistent) @@ -1,321 +0,0 @@ -/*- - * Copyright (c) 2002-2007 Neterion, Inc. - * 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 "xge_log.h" - -/** - * xge_print_hwstats - * Prints/logs hardware statistics - * - * @hw_stats Hardware statistics - * @device_id Device ID - */ -void -xge_print_hwstats(void *hw_stats, unsigned short device_id) -{ - int index = 0, count = 0; - - count = XGE_COUNT_STATS - - ((device_id == DEVICE_ID_XFRAME_II) ? 0 : XGE_COUNT_EXTENDED_STATS); - - fdAll = fopen("stats.log", "w+"); - if(!fdAll) - goto _exit; - - XGE_PRINT_HEADER_STATS(fdAll); - for(index = 0; index < count ; index++) { - switch(statsInfo[index].type) { - case 2: - statsInfo[index].value = - *((u16 *)((unsigned char *)hw_stats + - GET_OFFSET_STATS(index))); - break; - case 4: - statsInfo[index].value = - *((u32 *)((unsigned char *) hw_stats + - GET_OFFSET_STATS(index))); - break; - case 8: - statsInfo[index].value = - *((u64 *)((unsigned char *)hw_stats + - GET_OFFSET_STATS(index))); - break; - } - - XGE_PRINT_STATS(fdAll,(const char *) statsInfo[index].name, - statsInfo[index].value); - } - XGE_PRINT_LINE(fdAll); - fclose(fdAll); -_exit: - return; -} - -/** - * xge_print_pciconf - * Prints/logs PCI configuration space - * - * @pci_conf PCI Configuration - */ -void -xge_print_pciconf(void * pci_conf) -{ - int index = 0; - - fdAll = fopen("pciconf.log", "w+"); - if(!fdAll) - goto _exit; - - XGE_PRINT_HEADER_PCICONF(fdAll); - for(index = 0; index < XGE_COUNT_PCICONF; index++) { - pciconfInfo[index].value = *((u16 *)((unsigned char *)pci_conf + - GET_OFFSET_PCICONF(index))); - XGE_PRINT_PCICONF(fdAll,(const char *) pciconfInfo[index].name, - GET_OFFSET_PCICONF(index), pciconfInfo[index].value); - } - - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - -_exit: - return; -} - -/** - * xge_print_devconf - * Prints/logs Device Configuration - * - * @dev_conf Device Configuration - */ -void -xge_print_devconf(void * dev_conf) -{ - int index = 0; - - fdAll = fopen("devconf.log", "w+"); - if(!fdAll) - goto _exit; - - XGE_PRINT_HEADER_DEVCONF(fdAll); - - for(index = 0; index < XGE_COUNT_DEVCONF; index++) { - devconfInfo[index].value = *((u32 *)((unsigned char *)dev_conf + - (index * (sizeof(int))))); - XGE_PRINT_DEVCONF(fdAll,(const char *) devconfInfo[index].name, - devconfInfo[index].value); - } - - XGE_PRINT_LINE(fdAll); - fclose( fdAll ); - -_exit: - return; -} - -/** - * xge_print_registers - * Prints/logs Register values - * - * @registers Register values - */ -void -xge_print_registers(void * registers) -{ - int index = 0; - - fdAll = fopen("reginfo.log", "w+"); - if(!fdAll) - goto _exit; - - XGE_PRINT_HEADER_REGS(fdAll); - - for(index = 0; index < XGE_COUNT_REGS; index++) { - regInfo[index].value = *((u64 *)((unsigned char *)registers + - regInfo[index].offset)); - XGE_PRINT_REGS(fdAll,(const char *) regInfo[index].name, - regInfo[index].offset, regInfo[index].value); - } - - XGE_PRINT_LINE(fdAll); - fclose(fdAll); -_exit: - return; -} - -/** - * xge_print_register - * Prints/logs a register value - * - * @offset Offset of the register - * @temp??? - */ -void -xge_print_register(u64 offset, u64 value) -{ - int index = 0; - - fdAll = fopen("readreg.log", "w+"); - if(!fdAll) - goto _exit; - - XGE_PRINT_READ_HEADER_REGS(fdAll); - regInfo[index].offset = offset; - regInfo[index].value = value; - printf("0x%.8X\t0x%.16llX\n", regInfo[index].offset, - regInfo[index].value); - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - -_exit: - return; -} - -/** - * xge_print_devstats - * Prints Device Statistics - * - * @dev_stats Device Statistics - */ -void -xge_print_devstats(void *dev_stats) -{ - int index = 0; - - fdAll = fopen("intrstats.log", "w+"); - if(!fdAll) - goto _exit; - - XGE_PRINT_HEADER_STATS(fdAll); - for(index = 0; index < XGE_COUNT_INTRSTAT; index++) { - intrInfo[index].value = *((u32 *)((unsigned char *)dev_stats + - (index * (sizeof(u32))))); - XGE_PRINT_STATS(fdAll,(const char *) intrInfo[index].name, - intrInfo[index].value); - } - - XGE_PRINT_LINE(fdAll); - fclose(fdAll); -_exit: - return; -} - -/** - * xge_print_swstats - * Prints/logs Software Statistics - * - * @sw_stats Software statistics - */ -void -xge_print_swstats(void * sw_stats) -{ - int index = 0; - - fdAll = fopen("tcodestats.log", "w+"); - if(!fdAll) - goto _exit; - - XGE_PRINT_HEADER_STATS(fdAll); - for(index = 0; index < XGE_COUNT_SWSTAT; index++) { - if(!(tcodeInfo[index].flag)) { - switch(tcodeInfo[index].type) { - case 2: - tcodeInfo[index].value = - *((u16 *)((unsigned char *)sw_stats + - (index * (sizeof(u16))))); - break; - case 4: - tcodeInfo[index].value = - *((u32 *)((unsigned char *)sw_stats + - (index * (sizeof(u32))))); - break; - } - XGE_PRINT_STATS(fdAll,(const char *) tcodeInfo[index].name, - tcodeInfo[index].value); - } - } - - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - -_exit: - return; -} - -/** - * xge_print_drv_version - * Prints/logs driver version - * - * @version Driver version - */ -void -xge_print_drv_version(char *version) -{ - fdAll = fopen("driverinfo.log", "w+"); - if(!fdAll) - goto _exit; - - XGE_PRINT_LINE(fdAll); - printf("Driver Version: %s\n", version); - XGE_PRINT_LINE(fdAll); - fclose(fdAll); - -_exit: - return; -} - -/** - * xge_print_drvstats - * Prints/logs Driver Statistics - * - * @driver_stats Driver Statistics - */ -void -xge_print_drvstats(void * driver_stats) -{ - int index = 0; - - fdAll = fopen("driver_stats.log", "w+"); - if(!fdAll) - goto _exit; - - XGE_PRINT_HEADER_STATS(fdAll); - - for(index = 0; index < XGE_COUNT_DRIVERSTATS; index++) { - driverInfo[index].value = *((u64 *)((unsigned char *)driver_stats + - (index * (sizeof(u64))))); - XGE_PRINT_STATS(fdAll,(const char *) driverInfo[index].name, - driverInfo[index].value); - } - - XGE_PRINT_LINE(fdAll); - fclose( fdAll ); - -_exit: - return; -} - Property changes on: head/tools/tools/nxge/xge_log.c ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/tools/nxge/Makefile =================================================================== --- head/tools/tools/nxge/Makefile (revision 333387) +++ head/tools/tools/nxge/Makefile (nonexistent) @@ -1,7 +0,0 @@ -# $FreeBSD$ - -PROG= xgeinfo -SRCS= xge_info.c xge_log.c -MAN= - -.include Property changes on: head/tools/tools/nxge/Makefile ___________________________________________________________________ Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Index: head/tools/tools/README =================================================================== --- head/tools/tools/README (revision 333387) +++ head/tools/tools/README (revision 333388) @@ -1,68 +1,67 @@ # $FreeBSD$ This directory is for tools. A tool is something which is sometimes useful, and doesn't fit any of the other categories. Please make a subdir per program, and add a brief description to this file. ansify Convert K&R-style function definitions to ANSI style ath Tools specific to the Atheros 802.11 support cfi Common Flash Interface (CFI) tool commitsdb A tool for reconstructing commit history using md5 checksums of the commit logs. crypto Test and exercise tools related to the crypto framework cxgbetool A tool for the cxgbe(4) driver. cxgbtool A tool for the cxgb(4) driver. drm Tools specific to the DRM/KMS device drivers. editing Editor modes and the like to help editing FreeBSD code. epfe Extract printing filter examples from printing.sgml. ether_reflect An Ethernet packet reflector for low level testing. find-sb Scan a disk for possible filesystem superblocks. gdb_regofs A simple tool that prints out a register offset table for mapping gdb(1) register numbers to struct reg and struct fpreg offsets. The tool is useful on selected platforms only. genericize Turn a kernel config into something that can more easily be diffed against the appropriate GENERIC. git Tools to simplify the use of git by committers. hcomp Compress header files by removing comments and whitespace. html-mv Rename HTML generated filenames to human readable filenames. ifinfo Uses the interface MIB to print out all the information an interface exports in an ugly form. indent_wrapper Tool for style(9) checking SVN/GIT patches. iso Tool to compare the iso3166 and iso639 files in /usr/share/misc with the data from the master sites. iwi Tools specific to the Intel PRO/Wireless 2200BG/2225BG/2915ABG support. kdrv KernelDriver; add/list/remove third-party kernel driver source to/in/from a kernel source tree. kernelcruft Shellscript to find orphaned *.c files in /sys kerninclude Shellscript to find unused #includes in the kernel. kernxref Shellscript to cross reference symbols in the LINT kernel. kttcp An in-kernel version of the ttcp network performance tool mctest A multicast test program mid Create a Message-ID database for mailing lists. mwl Tools specific to the Marvell 88W8363 support ncpus Count the number of processors netmap Test applications for netmap(4) notescheck Check for missing devices and options in NOTES files. npe Tools specific to the Intel IXP4XXX NPE device -nxge A diagnostic tool for the nxge(4) driver pciid Generate src/share/misc/pci_vendors. pciroms A tool for dumping PCI ROM images. WARNING: alpha quality. pirtool A tool for dumping the $PIR table on i386 machines at runtime. portsinfo Generate list of new ports for last two weeks. scsi-defects Get at the primary or grown defect list of a SCSI disk. sysdoc Build a manual page with available sysctls for a specific kernel configuration. tinybsd Script to build FreeBSD embedded systems. track Track the progress of a world / kernel build vimage An interim utility for managing the virtualized network stack infrastructure. vop_table Generates a HTML document that shows all the VOP's in the kernel. vxge A diagnostic tool for the vxge(4) driver whereintheworld Summarizes "make world" output. Index: head/usr.sbin/bsdconfig/share/device.subr =================================================================== --- head/usr.sbin/bsdconfig/share/device.subr (revision 333387) +++ head/usr.sbin/bsdconfig/share/device.subr (revision 333388) @@ -1,1394 +1,1393 @@ if [ ! "$_DEVICE_SUBR" ]; then _DEVICE_SUBR=1 # # Copyright (c) 2012-2016 Devin Teske # 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$ # ############################################################ INCLUDES BSDCFG_SHARE="/usr/share/bsdconfig" . $BSDCFG_SHARE/common.subr || exit 1 f_dprintf "%s: loading includes..." device.subr f_include $BSDCFG_SHARE/dialog.subr f_include $BSDCFG_SHARE/geom.subr f_include $BSDCFG_SHARE/strings.subr f_include $BSDCFG_SHARE/struct.subr BSDCFG_LIBE="/usr/libexec/bsdconfig" f_include_lang $BSDCFG_LIBE/include/messages.subr ############################################################ GLOBALS NDEVICES=0 # Set by f_device_register(), used by f_device_*() # # A "device" from legacy sysinstall's point of view (mostly) # # NB: Disk devices have their `private' property set to GEOM ident # NB: USB devices have their `private' property set to USB disk device name # f_struct_define DEVICE \ capacity \ desc \ devname \ enabled \ flags \ get \ init \ name \ private \ shutdown \ type \ volume # Network devices have their `private' property set to this f_struct_define DEVICE_INFO \ extras \ ipaddr \ ipv6addr \ netmask \ use_dhcp \ use_rtsol # # Device types for f_device_register(), f_device_find(), et al. # setvar DEVICE_TYPE_ANY "any" # Any setvar DEVICE_TYPE_NONE "NONE" # Unknown setvar DEVICE_TYPE_DISK "DISK" # GEOM `DISK' setvar DEVICE_TYPE_FLOPPY "FD" # GEOM `FD' setvar DEVICE_TYPE_FTP "FTP" # Dynamic network device setvar DEVICE_TYPE_NETWORK "NETWORK" # See f_device_get_all_network setvar DEVICE_TYPE_CDROM "CDROM" # GEOM `DISK' setvar DEVICE_TYPE_USB "USB" # GEOM `PART' setvar DEVICE_TYPE_DOS "DOS" # GEOM `DISK' `PART' or `LABEL' setvar DEVICE_TYPE_UFS "UFS" # GEOM `DISK' `PART' or `LABEL' setvar DEVICE_TYPE_NFS "NFS" # Dynamic network device setvar DEVICE_TYPE_HTTP_PROXY "HTTP_PROXY" # Dynamic network device setvar DEVICE_TYPE_HTTP "HTTP" # Dynamic network device # Network devices have the following flags available setvar IF_ETHERNET 1 setvar IF_WIRELESS 2 setvar IF_ACTIVE 4 # # Default behavior is to call f_device_get_all() automatically when loaded. # : ${DEVICE_SELF_SCAN_ALL=1} # # Device Catalog variables # DEVICE_CATALOG_APPEND_ONLY= # Used by f_device_catalog_set() NCATALOG_DEVICES=0 # Used by f_device_catalog_*() and MAIN # # A ``catalog'' device is for mapping GEOM devices to media devices (for # example, determining if a $GEOM_CLASS_DISK geom is $DEVICE_TYPE_CDROM or # $DEVICE_TYPE_DISK) and also getting default descriptions for devices that # either lack a GEOM provided description or lack a presence in GEOM) # f_struct_define CATALOG_DEVICE \ desc \ name \ type ############################################################ FUNCTIONS # f_device_register $var_to_set $name $desc $devname $type $enabled # $init_function $get_function $shutdown_function # $private $capacity # # Register a device. A `structure' (see struct.subr) is created and if # $var_to_set is non-NULL, upon success holds the name of the struct created. # The remaining positional arguments correspond to the properties of the # `DEVICE' structure-type to be assigned (defined above). # # If not already registered (based on $name and $type), a new device is created # and $NDEVICES is incremented. # f_device_register() { local __var_to_set="$1" __name="$2" __desc="$3" __devname="$4" local __type="$5" __enabled="$6" __init_func="$7" __get_func="$8" local __shutdown_func="$9" __private="${10}" __capacity="${11}" # Required parameter(s) [ "$__name" ] || return $FAILURE if [ "$__var_to_set" ]; then setvar "$__var_to_set" "" || return $FAILURE fi local __device if f_device_find -1 "$__name" "$__type" __device; then f_struct_free "$__device" f_struct_new DEVICE "$__device" || return $FAILURE else __device=device_$(( NDEVICES + 1 )) f_struct_new DEVICE "$__device" || return $FAILURE NDEVICES=$(( $NDEVICES + 1 )) fi $__device set name "$__name" $__device set desc "$__desc" $__device set devname "$__devname" $__device set type "$__type" $__device set enabled "$__enabled" $__device set init "$__init_func" $__device set get "$__get_func" $__device set shutdown "$__shutdown_func" $__device set private "$__private" $__device set capacity "$__capacity" [ "$__var_to_set" ] && setvar "$__var_to_set" "$__device" return $SUCCESS } # f_device_reset # # Reset the registered device chain. # f_device_reset() { local n=1 while [ $n -le $NDEVICES ]; do f_device_shutdown device_$n # # XXX This potentially leaks $dev->private if it's being # used to point to something dynamic, but you're not supposed # to call this routine at such times that some open instance # has its private member pointing somewhere anyway. # f_struct_free device_$n n=$(( $n + 1 )) done NDEVICES=0 } # f_device_reset_network # # Reset the registered network device chain. # f_device_reset_network() { local n=1 device type private i while [ $n -le $NDEVICES ]; do device=device_$n f_struct $device || continue $device get type type [ "$type" = "$DEVICE_TYPE_NETWORK" ] || continue # # Leave the device up (don't call shutdown routine) # # Network devices may have DEVICE_INFO private member $device get private private [ "$private" ] && f_struct_free "$private" # Free the network device f_struct_free $device # Fill the gap we just created i=$n while [ $i -lt $NDEVICES ]; do f_struct_copy device_$(( $i + 1 )) device_$i done f_struct_free device_$NDEVICES # Finally decrement the number of devices NDEVICES=$(( $NDEVICES - 1 )) n=$(( $n + 1 )) done } # f_device_get_all # # Get all device information for all devices. # f_device_get_all() { local devname type desc capacity f_dprintf "f_device_get_all: Probing devices..." f_dialog_info "$msg_probing_devices_please_wait_this_can_take_a_while" # First go for the network interfaces f_device_get_all_network # Next, go for the GEOM devices we might want to use as media local geom geoms geom_name debug= f_geom_find "" $GEOM_CLASS_DEV geoms for geom in $geoms; do if ! f_device_probe_geom $geom; then debug= $geom get name geom_name f_dprintf "WARNING! Unable to classify %s as %s" \ "GEOM device $geom_name" "media source" fi done } # f_device_get_all_network # # Get all network device information for attached network devices. # f_device_get_all_network() { local devname desc device flags for devname in $( ifconfig -l ); do # Eliminate network devices that don't make sense case "$devname" in lo*) continue ;; esac # Try and find its description f_device_desc "$devname" $DEVICE_TYPE_NETWORK desc f_dprintf "Found network device named %s" "$devname" debug= f_device_register device $devname "$desc" \ "$devname" $DEVICE_TYPE_NETWORK 1 \ f_media_init_network "" f_media_shutdown_network "" -1 # Set flags based on media and status flags=0 eval "$( ifconfig $devname 2> /dev/null | awk -v var=flags ' function _or(var, mask) { printf "%s=$(( $%s | $%s ))\n", var, var, mask } BEGIN { S = "[[:space:]]+" } { if (!match($0, "^" S "(media|status):" S)) next value = substr($0, RLENGTH + 1) if ($1 == "media:") { if (value ~ /Ethernet/) _or(var, "IF_ETHERNET") if (value ~ /802\.11/) _or(var, "IF_WIRELESS") } else if ($1 == "status:") { if (value ~ /^active/) _or(var, "IF_ACTIVE") } }' )" $device set flags $flags done } # f_device_rescan # # Rescan all devices, after closing previous set - convenience function. # f_device_rescan() { f_device_reset f_geom_rescan f_device_get_all } # f_device_rescan_network # # Rescan all network devices, after closing previous set - for convenience. # f_device_rescan_network() { f_device_reset_network f_device_get_all_network } # f_device_probe_geom $geom # # Probe a single GEOM device and if it can be classified as a media source, # register it using f_device_register() with known type-specific arguments. # f_device_probe_geom() { local geom="$1" f_struct "$geom" || return $FAILURE # geom associated variables local geom_name geom_consumer provider_ref geom_provider= local provider_geom provider_config provider_class= local provider_config_type catalog_struct catalog_type local disk_ident # gnop(8)/geli(8) associated variables (p for `parent device') local p_devname p_geom p_consumer p_provider_ref p_provider local p_provider_config p_provider_geom p_provider_class # md(4) associated variables local config config_type config_file magic= # Temporarily disable debugging to keep debug output light local old_debug="$debug" debug= # # Get the GEOM name (for use below in device registration) # $geom get name devname || continue # # Attempt to get the consumer, provider, provider config, and # provider class for this geom (errors ignored). # # NB: Each GEOM in the `DEV' class should have one consumer. # That consumer should have a reference to its provider. # $geom get consumer1 geom_consumer f_struct "$geom_consumer" get provider_ref provider_ref && f_geom_find_by id "$provider_ref" provider geom_provider if f_struct "$geom_provider"; then $geom_provider get config provider_config f_geom_parent $geom_provider provider_geom && f_geom_parent $provider_geom provider_class fi # # Get values for device registration (errors ignored) # f_struct "$provider_class" get name type f_struct "$geom_provider" get mediasize capacity f_struct "$provider_config" get descr desc # # For gnop(8), geli(8), or combination thereof, change device type to # that of the consumer # p_devname= p_geom= p_provider= p_provider_config= case "$devname" in *.nop.eli) p_devname="${devname%.nop.eli}" ;; *.eli.nop) p_devname="${devname%.eli.nop}" ;; *.eli) p_devname="${devname%.eli}" ;; *.nop) p_devname="${devname%.nop}" ;; esac [ "$p_devname" ] && f_geom_find "$p_devname" $GEOM_CLASS_DEV p_geom if [ "${p_geom:-$geom}" != "$geom" ]; then f_struct "$p_geom" get consumer1 p_consumer f_struct "$p_consumer" get provider_ref p_provider_ref && f_geom_find_by id "$p_provider_ref" provider p_provider if f_struct "$p_provider"; then $p_provider get config p_provider_config f_geom_parent $p_provider p_provider_geom && f_geom_parent $p_provider_geom p_provider_class fi f_struct "$p_provider_class" get name type fi # Look up geom device in device catalog for default description f_device_catalog_get \ $DEVICE_TYPE_ANY "${p_devname:-$devname}" catalog_struct [ "$desc" ] || f_struct "catalog_device_$catalog_struct" get desc desc # Use device catalog entry for potential re-classification(s) f_struct "catalog_device_$catalog_struct" get type catalog_type # Restore debugging for this next part (device registration) debug="$old_debug" # # Register the device # local retval device case "$type" in $GEOM_CLASS_DISK) # First attempt to classify by device catalog (see MAIN) case "$catalog_type" in $DEVICE_TYPE_CDROM) f_dprintf "Found CDROM device for disk %s" "$devname" debug= f_device_register device "$devname" "$desc" \ "/dev/$devname" $DEVICE_TYPE_CDROM 1 \ f_media_init_cdrom f_media_get_cdrom \ f_media_shutdown_cdrom "" "$capacity" && return $SUCCESS ;; esac # Fall back to register label device as a disk and taste it f_dprintf "Found disk device named %s" "$devname" debug= f_struct "$p_provider_config" get \ ident disk_ident || debug= f_struct "$provider_config" get \ ident disk_ident debug= f_device_register device "$devname" "$desc" \ "/dev/$devname" $DEVICE_TYPE_DISK 1 \ "" "" "" "$disk_ident" "$capacity" retval=$? # Detect ``dangerously dedicated'' filesystems (errors ignored) f_device_probe_disk_fs device "$devname" "$capacity" && retval=$SUCCESS return $retval ;; $GEOM_CLASS_FD) f_dprintf "Found floppy device named %s" "$devname" debug= f_device_register device "$devname" "$desc" \ "/dev/$devname" $DEVICE_TYPE_FLOPPY 1 \ f_media_init_floppy f_media_get_floppy \ f_media_shutdown_floppy "" "$capacity" return $? ;; $GEOM_CLASS_LABEL) : fall through to below section # reduces indentation level ;; $GEOM_CLASS_MD) f_dprintf "Found disk device named %s" "$devname" debug= f_device_register device "$devname" "$desc" \ "/dev/$devname" $DEVICE_TYPE_DISK 1 \ "" "" "" "" "$capacity" retval=$? # # Attempt to get file(1) magic to potentially classify as # alternate media type. If unable to get magic, fall back to # md(4) characteristics (such as vnode filename). # [ -r "/dev/$devname" ] && magic=$( file -bs "/dev/$devname" 2> /dev/null ) if [ ! "$magic" ]; then # Fall back to md(4) characteristics if f_struct "$p_provider_config"; then config="$p_provider_config" else config="$provider_config" fi debug= f_struct "$config" get type config_type debug= f_struct "$config" get file config_file # Substitute magic for below based on type and file case "$config_type=$config_file" in vnode=*.iso) magic="ISO 9660" ;; esac fi f_device_probe_disk_fs device \ "$devname" "$capacity" "$magic" && retval=$SUCCESS # Errors ignored return $retval ;; $GEOM_CLASS_PART) if f_struct "$p_provider_config"; then config="$p_provider_config" else config="$provider_config" fi debug= f_struct "$config" get type provider_config_type f_device_probe_geom_part device \ "$provider_config_type" "$devname" "$capacity" retval=$? device_type=$DEVICE_TYPE_NONE [ $retval -eq $SUCCESS ] && debug= f_struct "$device" get type device_type # Potentially re-classify as USB device if [ "$device_type" = "$DEVICE_TYPE_UFS" -a \ "$catalog_type" = "$DEVICE_TYPE_USB" ] then f_dprintf "Found USB device for partition %s" \ "$devname" debug= f_struct "$p_provider_geom" get \ name disk_name || debug= f_struct "$provider_geom" get \ name disk_name debug= f_device_register device "$devname" "$desc" \ "/dev/$devname" $DEVICE_TYPE_USB 1 \ f_media_init_usb f_media_get_usb \ f_media_shutdown_usb "$disk_name" "$capacity" retval=$? fi return $retval ;; $GEOM_CLASS_RAID) # Use the provider geom name as the description if [ ! "$desc" ]; then f_struct "$p_provider_geom" get name desc || f_struct "$provider_geom" get name desc fi f_dprintf "Found disk device named %s" "$devname" debug= f_device_register device \ "$devname" "${desc:-GEOM RAID device}" \ "/dev/$devname" $DEVICE_TYPE_DISK 1 \ "" "" "" "" "$capacity" retval=$? # Detect ``dangerously dedicated'' filesystems f_device_probe_disk_fs device "$devname" "$capacity" && retval=$SUCCESS # Errors ignored return $retval ;; $GEOM_CLASS_ZFS_ZVOL) f_dprintf "Found disk device named %s" "$devname" debug= f_device_register device \ "$devname" "${desc:-GEOM ZFS::ZVOL device}" \ "/dev/$devname" $DEVICE_TYPE_DISK 1 \ "" "" "" "" "$capacity" retval=$? # Detect ``dangerously dedicated'' filesystems f_device_probe_disk_fs device "$devname" "$capacity" && retval=$SUCCESS # Errors ignored return $retval ;; *) return $FAILURE # Unknown GEOM class esac # # Still here? Must be $GEOM_CLASS_LABEL # local label_geom label_devname label_devgeom= label_devconsumer local label_devprovider= label_devprovider_ref label_devprovider_config local label_gpart_type if f_struct "$p_provider"; then label_geom="$p_provider_geom" else label_geom="$provider_geom" fi case "$devname" in gpt/*|gptid/*) # # Attempt to get the partition type by getting the `config' # member of the provider for our device (which is named in the # parent geom of our current provider). # debug= f_struct "$label_geom" get name label_devname && debug= f_geom_find "$label_devname" $GEOM_CLASS_DEV \ label_devgeom debug= f_struct "$label_devgeom" get \ consumer1 label_devconsumer debug= f_struct "$label_devconsumer" get \ provider_ref label_devprovider_ref && debug= f_geom_find_by id "$label_devprovider_ref" \ provider label_devprovider debug= f_struct "$label_devprovider" get \ config label_devprovider_config debug= f_struct "$label_devprovider_config" get \ type label_gpart_type # # Register device label based on partition type # f_device_probe_geom_part device \ "$label_gpart_type" "$devname" "$capacity" return $? ;; iso9660/*) f_dprintf "Found CDROM device labeled %s" "$devname" debug= f_device_register device \ "$devname" "ISO9660 file system" \ "/dev/$devname" $DEVICE_TYPE_CDROM 1 \ f_media_init_cdrom f_media_get_cdrom \ f_media_shutdown_cdrom "" "$capacity" return $? ;; label/*) # For generic labels, use provider geom name as real device debug= f_struct "$label_geom" get name label_devname # Look up label geom device in device catalog for default desc debug= f_device_catalog_get \ $DEVICE_TYPE_ANY "$label_devname" catalog_struct [ "$desc" ] || debug= f_struct \ "catalog_device_$catalog_struct" get desc desc # Use device catalog entry for potential re-classification(s) debug= f_struct "catalog_device_$catalog_struct" get \ type catalog_type # First attempt to classify by device catalog (see MAIN) case "$catalog_type" in $DEVICE_TYPE_CDROM) f_dprintf "Found CDROM device for disk %s" "$devname" debug= f_device_register device "$devname" "$desc" \ "/dev/$devname" $DEVICE_TYPE_CDROM 1 \ f_media_init_cdrom f_media_get_cdrom \ f_media_shutdown_cdrom "" "$capacity" && return $SUCCESS ;; esac # Fall back to register label device as a disk and taste it f_dprintf "Found disk device labeled %s" "$devname" debug= f_device_register device \ "$devname" "GEOM LABEL device" \ "/dev/$devname" $DEVICE_TYPE_DISK 1 \ "" "" "" "" "$capacity" retval=$? # Detect ``dangerously dedicated'' filesystems (errors ignored) f_device_probe_disk_fs device "$devname" "$capacity" && retval=$SUCCESS return $retval ;; msdosfs/*) f_dprintf "Found DOS partition labeled %s" "$devname" debug= f_device_register device "$devname" "DOS file system" \ "/dev/$devname" $DEVICE_TYPE_DOS 1 \ f_media_init_dos f_media_get_dos \ f_media_shutdown_dos "" "$capacity" return $? ;; ufs/*|ufsid/*) f_dprintf "Found UFS partition labeled %s" "$devname" debug= f_device_register device "$devname" "UFS file system" \ "/dev/$devname" $DEVICE_TYPE_UFS 1 \ f_media_init_ufs f_media_get_ufs \ f_media_shutdown_ufs "" "$capacity" return $? ;; ext2fs/*|ntfs/*|reiserfs/*) return $FAILURE # No media device handlers for these labels ;; esac # Unable to classify GEOM label return $FAILURE } # f_device_probe_geom_part $var_to_set $gpart_type $devname $capacity [$magic] # # Given a gpart(8) partition type and a device name, register the device if it # is a known partition type that we can handle. If $var_to_set is non-NULL, # upon success holds the DEVICE struct name of the registered device. # # Returns success if the device was successfully registered, failure otherwise. # f_device_probe_geom_part() { local __var_to_set="$1" __gpart_type="$2" __devname="$3" local __capacity="${4:--1}" __magic="$5" # # Register device based on partition type # NB: !0 equates to `unused' bsdlabel # case "$__gpart_type" in fat16|fat32) f_dprintf "Found DOS partition named %s" "$__devname" debug= f_device_register "$__var_to_set" \ "$__devname" "DOS file system" \ "/dev/$__devname" $DEVICE_TYPE_DOS 1 \ f_media_init_dos f_media_get_dos \ f_media_shutdown_dos "" "$__capacity" return $? ;; freebsd|!0) # Commonly used inappropriately, taste for FreeBSD [ -r "/dev/$__devname" -a ! "$__magic" ] && __magic=$( file -bs "/dev/$__devname" 2> /dev/null ) case "$__magic" in *"Unix Fast File system"*) f_dprintf "Found UFS partition named %s" "$__devname" debug= f_device_register "$__var_to_set" \ "$__devname" "UFS file system" \ "/dev/$__devname" $DEVICE_TYPE_UFS 1 \ f_media_init_ufs f_media_get_ufs \ f_media_shutdown_ufs "" "$__capacity" return $? esac return $FAILURE ;; freebsd-ufs) f_dprintf "Found UFS partition named %s" "$__devname" debug= f_device_register "$__var_to_set" \ "$__devname" "UFS file system" \ "/dev/$__devname" $DEVICE_TYPE_UFS 1 \ f_media_init_ufs f_media_get_ufs \ f_media_shutdown_ufs "" "$__capacity" return $? ;; apple-*|linux-*|ms-*|netbsd-*|ntfs|vmware-*) return $FAILURE # No device types for these ;; bios-*|ebr|efi|mbr|freebsd-boot|freebsd-swap) return $FAILURE # Not a source for media ;; freebsd-nandfs|freebsd-vinum|freebsd-zfs) return $FAILURE # Unsupported as media source ;; esac return $FAILURE # Unknown partition type } # f_device_probe_disk_fs $var_to_set $devname [$capacity [$magic]] # # Given a device name, taste it and register the device if it is a so-called # ``dangerously dedicated'' file system written without a partition table. # Tasting is done using file(1) (specifically `file -bs') but if $magic is # present and non-NULL it is used instead. If $var_to_set is non-NULL, upon # success holds the DEVICE struct name of the registered device. # # Returns success if the device was successfully registered, failure otherwise. # f_device_probe_disk_fs() { local __var_to_set="$1" __devname="$2" __capacity="${3:--1}" local __magic="$4" [ -r "/dev/${__devname#/dev/}" -a ! "$__magic" ] && __magic=$( file -bs "/dev/$__devname" 2> /dev/null ) case "$__magic" in *"ISO 9660"*) f_dprintf "Found CDROM device for disk %s" "$__devname" debug= f_device_register "$__var_to_set" \ "$__devname" "ISO9660 file system" \ "/dev/$__devname" $DEVICE_TYPE_CDROM 1 \ f_media_init_cdrom f_media_get_cdrom \ f_media_shutdown_cdrom "" "$__capacity" return $? ;; *"Unix Fast File system"*) f_dprintf "Found UFS device for disk %s" "$__devname" debug= f_device_register "$__var_to_set" \ "$__devname" "UFS file system" \ "/dev/$__devname" $DEVICE_TYPE_UFS 1 \ f_media_init_ufs f_media_get_ufs \ f_media_shutdown_ufs "" "$__capacity" return $? ;; *"FAT (12 bit)"*|*"FAT (16 bit)"*|*"FAT (32 bit)"*) f_dprintf "Found DOS device for disk %s" "$__devname" debug= f_device_register "$__var_to_set" \ "$__devname" "DOS file system" \ "/dev/$__devname" $DEVICE_TYPE_DOS 1 \ f_media_init_dos f_media_get_dos \ f_media_shutdown_dos "" "$__capacity" return $? ;; esac return $FAILURE # Unknown file system type } # f_device_catalog_get $type $name [$var_to_set] # # Fetch the struct name of the catalog device matching device $name. If $type # is either NULL, missing, or set to $DEVICE_TYPE_ANY then only $name is used. # Returns success if a match was found, otherwise failure. # # If $var_to_set is missing or NULL, the struct name is printed to standard out # for capturing in a sub-shell (which is less-recommended because of # performance degredation; for example, when called in a loop). # f_device_catalog_get() { local __type="$1" __name="$2" __var_to_set="$3" local __dname= # Return failure if no $name [ "$__name" ] || return $FAILURE # Disable debugging to keep debug output light local debug= # # Attempt to create an alternate-form of $__name that contains the # first contiguous string of numbers replaced with `%d' for comparison # against stored pattern names (see MAIN). # local __left="${__name%%[0-9]*}" __right="${__name#*[0-9]}" if [ "$__left" != "$__name" ]; then # Chop leading digits from right 'til we hit first non-digit while :; do case "$__right" in [0-9]*) __right="${__right#[0-9]}" ;; *) break esac done __dname="${__left}%d$__right" fi [ "$__type" = "$DEVICE_TYPE_ANY" ] && __type= local __dev __dev_name __dev_type for __dev in $DEVICE_CATALOG; do catalog_device_$__dev get name __dev_name [ "$__dev_name" = "$__name" -o "$__dev_name" = "$__dname" ] || continue catalog_device_$__dev get type __dev_type [ "${__type:-$__dev_type}" = "$__dev_type" ] || continue if [ "$__var_to_set" ]; then setvar "$__var_to_set" $__dev else echo $__dev fi return $? done [ "$__var_to_set" ] && setvar "$__var_to_set" "" return $FAILURE } # f_device_catalog_set $type $name $desc # # Store a description (desc) in-association with device $type and $name. # Returns success unless $name is NULL or missing. Use f_device_catalog_get() # routine with the same $name and optionally $type to retrieve catalog device # structure (see CATALOG_DEVICE struct definition in GLOBALS section). # f_device_catalog_set() { local type="$1" name="$2" desc="$3" local struct dev dev_type found= [ "$name" ] || return $FAILURE # Disable debugging to keep debug output light local debug= f_str2varname "$name" struct if [ ! "$DEVICE_CATALOG_APPEND_ONLY" ]; then for dev in $DEVICE_CATALOG; do [ "$dev" = "$struct" ] || continue found=1 break done fi if [ "$found" ]; then f_struct_free "catalog_device_$struct" else DEVICE_CATALOG="$DEVICE_CATALOG $struct" fi f_struct_new CATALOG_DEVICE "catalog_device_$struct" || return $FAILURE catalog_device_$struct set type "$type" catalog_device_$struct set name "$name" catalog_device_$struct set desc "$desc" return $SUCCESS } # f_device_desc $device_name $device_type [$var_to_set] # # Print a description for a device name (eg., `fxp0') given a specific device # type/class. # # If $var_to_set is missing or NULL, the device description is printed to # standard out for capturing in a sub-shell (which is less-recommended because # of performance degredation; for example, when called in a loop). # f_device_desc() { local __name="$1" __type="$2" __var_to_set="$3" local __devname __devunit __cp # Check variables [ "$__name" ] || return $SUCCESS [ "$__type" = "$DEVICE_TYPE_ANY" ] && type= [ "$__var_to_set" ] && { setvar "$__var_to_set" "" || return; } # # Return sysctl MIB dev.NAME.UNIT.%desc if it exists, otherwise fall # through to further alternate methods. # if f_have sysctl; then __devname="${__name%%[0-9]*}" __devunit="${__name#$__devname}" __devunit="${__devunit%%[!0-9]*}" if [ "$__var_to_set" ]; then if __cp=$( sysctl -n "dev.$__devname.$__devunit.%desc" \ 2> /dev/null ); then setvar "$__var_to_set" "$__cp" && return $SUCCESS fi else sysctl -n "dev.$__devname.$__devunit.%desc" \ 2> /dev/null && return $SUCCESS fi fi # Look up device in catalog for default description local __catalog_struct debug= f_device_catalog_get "$__type" "$__name" __catalog_struct debug= f_struct "catalog_device_$__catalog_struct" get \ desc "$__var_to_set" && return $SUCCESS # # Sensible fall-backs for specific types # case "$__type" in $DEVICE_TYPE_CDROM) __cp="" ;; $DEVICE_TYPE_DISK) __cp="" ;; $DEVICE_TYPE_FLOPPY) __cp="" ;; $DEVICE_TYPE_USB) __cp="" ;; $DEVICE_TYPE_NETWORK) __cp="" ;; *) __cp="" esac if [ "$__var_to_set" ]; then setvar "$__var_to_set" "$__cp" else echo "$__cp" fi return $FAILURE } # f_device_is_ethernet $device # # Returns true if $device is a wired Ethernet network interface. Otherwise # returns false. Example wired interfaces include: fxp0 em0 bge0 rl0 etc. # f_device_is_ethernet() { local dev="$1" type flags # Make sure we have an actual device by that name f_struct "$dev" || return $FAILURE # Make sure that the device is a network device $dev get type type [ "$type" = "$DEVICE_TYPE_NETWORK" ] || return $FAILURE # Make sure that the media flags indicate that it is Ethernet $dev get flags flags [ $(( ${flags:-0} & $IF_ETHERNET )) -eq $IF_ETHERNET ] } # f_device_is_wireless $device # # Returns true if $device is a Wireless network interface. Otherwise returns # false. Examples of wireless interfaces include: iwn0 # f_device_is_wireless() { local dev="$1" type flags # Make sure we have an actual device by that name f_struct "$dev" || return $FAILURE # Make sure that the device is a network device $dev get type type [ "$type" = "$DEVICE_TYPE_NETWORK" ] || return $FAILURE # Make sure that the media flags indicate that it is 802.11 wireless $dev get flags flags [ $(( ${flags:-0} & $IF_WIRELESS )) -eq $IF_WIRELESS ] } # f_device_is_active $device # # Returns true if $device is active. Otherwise returns false. Currently this # only works for network interfaces. # f_device_is_active() { local dev="$1" type flags=0 # Make sure we have an actual device by that name f_struct "$dev" || return $FAILURE $dev get type type case "$type" in $DEVICE_TYPE_NETWORK) # Make sure that the media flags indicate that it is active $dev get flags flags [ $(( ${flags:-0} & $IF_ACTIVE )) -eq $IF_ACTIVE ] ;; *) return $FAILURE esac } # f_device_find [-1] $name [$type [$var_to_set]] # # Find one or more registered devices by name, type, or both. Returns a space- # separated list of devices matching the search criterion. # # If `-1' option flag is given, only the first matching device is returned. # # If $var_to_set is missing or NULL, the device name(s) are printed to standard # out for capturing in a sub-shell (which is less-recommended because of # performance degredation; for example, when called in a loop). # f_device_find() { local OPTIND=1 OPTARG flag only_one= while getopts 1 flag; do case "$flag" in 1) only_one=1 ;; esac done shift $(( $OPTIND - 1 )) local __name="$1" __type="${2:-$DEVICE_TYPE_ANY}" __var_to_set="$3" local __n=1 __devname __devtype __found= while [ $__n -le $NDEVICES ]; do device_$__n get name __devname device_$__n get type __devtype if [ "$__name" = "$__devname" -o ! "$__name" ] && [ "$__type" = "$DEVICE_TYPE_ANY" -o \ "$__type" = "$__devtype" ] then __found="$__found device_$__n" [ "$only_one" ] && break fi __n=$(( $__n + 1 )) done if [ "$__var_to_set" ]; then setvar "$__var_to_set" "${__found# }" else echo $__found fi [ "$__found" ] # Return status } # f_device_init $device # # Initialize a device by evaluating its `init' function. The $device argument # is a DEVICE struct name. # f_device_init() { local device="$1" init_func f_struct "$device" || return $? $device get init init_func ${init_func:-:} "$device" } # f_device_get $device $file [$probe] # # Read $file by evaluating the device's `get' function. The file is commonly # produced on standard output (but it truly depends on the function called). # The $device argument is a DEVICE struct name. # f_device_get() { local device="$1" file="$2" probe="$3" get_func f_struct "$device" || return $? $device get get get_func ${get_func:-:} "$device" "$file" ${3+"$probe"} } # f_device_shutdown $device # # Shutdown a device by evaluating its `shutdown' function. The $device argument # is a DEVICE struct name. # f_device_shutdown() { local device="$1" shutdown_func f_struct "$device" || return $? $device get shutdown shutdown_func ${shutdown_func:-:} "$device" } # f_devices_sort_by $property $var_to_get [$var_to_set] # # Take list of devices from $var_to_get (separated by whitespace, newline # included) and sort them by $property (e.g., `name'). The sorted list of # DEVICE struct names is returned on standard output separated by whitespace # (newline to be specific) unless $var_to_set is present and non-NULL. # # This function is a two-parter. Below is the awk(1) portion of the function, # afterward is the sh(1) function which utilizes the below awk script. # f_device_sort_by_awk=' # Variables that should be defined on the invocation line: # -v prop="property" function _asorti(src, dest) { k = nitems = 0 for (i in src) dest[++nitems] = i for (i = 1; i <= nitems; k = i++) { idx = dest[i] while ((k > 0) && (dest[k] > idx)) { dest[k+1] = dest[k]; k-- } dest[k+1] = idx } return nitems } { split($0, devs, FS) for (d in devs) { name = ENVIRON["_struct_value_" devs[d] "_" prop] devices[name] = devs[d] } } END { nitems = _asorti(devices, devices_sorted) for (i = 1; i <= nitems; i++) print devices[devices_sorted[i]] } ' f_device_sort_by() { local __property="${1:-name}" __var_to_get="$2" __var_to_set="$3" f_isset "$__var_to_get" || return $FAILURE local __dev for __dev in $( f_getvar "$__var_to_get" ); do export _struct_value_${__dev}_$__property done local __cp setvar "${__var_to_set:-__cp}" "$( f_getvar "$__var_to_get" | awk -v prop="$__property" "$f_device_sort_by_awk" )" [ "$__var_to_set" ] || echo "$__cp" } # f_device_menu $title $prompt $hline $device_type [$helpfile] # # Display a menu listing all the devices of a certain type in the system. # f_device_menu() { f_dialog_title "$1" local title="$DIALOG_TITLE" btitle="$DIALOG_BACKTITLE" f_dialog_title_restore local prompt="$2" hline="$3" type="$4" helpfile="$5" local devs f_device_find "" "$type" devs || return $DIALOG_CANCEL local name desc menu_list= f_device_sort_by name devs devs for dev in $devs; do $dev get name name $dev get desc desc f_shell_escape "$name" name f_shell_escape "$desc" desc menu_list="$menu_list '$name' '$desc'" # END-QUOTE done menu_list="${menu_list#$NL}" local height width rows eval f_dialog_menu_size height width rows \ \"\$title\" \ \"\$btitle\" \ \"\$prompt\" \ \"\$hline\" \ $menu_list local errexit= case $- in *e*) errexit=1; esac set +e local mtag while :; do mtag=$( eval $DIALOG \ --title \"\$title\" \ --backtitle \"\$btitle\" \ --hline \"\$hline\" \ --ok-label \"\$msg_ok\" \ --cancel-label \"\$msg_cancel\" \ ${helpfile:+ \ --help-button \ --help-label \"\$msg_help\" \ ${USE_XDIALOG:+--help \"\"} \ } \ --menu \"\$prompt\" \ $height $width $rows \ $menu_list \ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD ) local retval=$? [ $retval -ne $DIALOG_HELP ] && break # Otherwise, the Help button was pressed f_show_help "$helpfile" # ...then loop back to menu done f_dprintf "retval=%u mtag=[%s]" $retval "$mtag" [ "$errexit" ] && set -e if [ $retval -eq $DIALOG_OK ]; then # Clean up the output of [X]dialog(1) f_dialog_data_sanitize mtag # Map the user's choice back to a struct name local index device index=$( eval f_dialog_menutag2index \"\$mtag\" $menu_list ) device=$( set -- $devs; eval echo \${$index} ) echo "$device" >&2 fi return $retval } # # Short-hand # f_cdrom() { f_device_catalog_set $DEVICE_TYPE_CDROM "$1" "$2"; } f_disk() { f_device_catalog_set $DEVICE_TYPE_DISK "$1" "$2"; } f_floppy() { f_device_catalog_set $DEVICE_TYPE_FLOPPY "$1" "$2"; } f_usb() { f_device_catalog_set $DEVICE_TYPE_USB "$1" "$2"; } f_network() { f_device_catalog_set $DEVICE_TYPE_NETWORK "$1" "$2"; } ############################################################ MAIN # # The below classifications allow us to re-group the GEOM devices from the # `DEV' GEOM class appropriately while providing fall-back descriptions both # for making the below code more maintainable and handling the rare case the # GEOM device lacks a description. # DEVICE_CATALOG_APPEND_ONLY=1 # Make initial loading faster # CDROM, Disk, Floppy, and USB devices/names f_cdrom "cd%d" "SCSI CDROM drive" f_cdrom "mcd%d" "Mitsumi (old model) CDROM drive" f_cdrom "scd%d" "Sony CDROM drive - CDU31/33A type" f_disk "aacd%d" "Adaptec FSA RAID array" f_disk "ada%d" "ATA/SATA disk device" f_disk "amrd%d" "AMI MegaRAID drive" f_disk "da%d" "SCSI disk device" f_disk "idad%d" "Compaq RAID array" f_disk "ipsd%d" "IBM ServeRAID RAID array" f_disk "md%d" "md(4) disk device" f_disk "mfid%d" "LSI MegaRAID SAS array" f_disk "mlxd%d" "Mylex RAID disk" f_disk "twed%d" "3ware ATA RAID array" f_disk "vtbd%d" "VirtIO Block Device" f_floppy "fd%d" "Floppy Drive unit A" f_usb "da%da" "USB Mass Storage Device" # Network interfaces/names f_network "ae%d" "Attansic/Atheros L2 Fast Ethernet" f_network "age%d" "Attansic/Atheros L1 Gigabit Ethernet" f_network "alc%d" "Atheros AR8131/AR8132 PCIe Ethernet" f_network "ale%d" "Atheros AR8121/AR8113/AR8114 PCIe Ethernet" f_network "an%d" "Aironet 4500/4800 802.11 wireless adapter" f_network "ath%d" "Atheros IEEE 802.11 wireless adapter" f_network "aue%d" "ADMtek USB Ethernet adapter" f_network "axe%d" "ASIX Electronics USB Ethernet adapter" f_network "bce%d" "Broadcom NetXtreme II Gigabit Ethernet card" f_network "bfe%d" "Broadcom BCM440x PCI Ethernet card" f_network "bge%d" "Broadcom BCM570x PCI Gigabit Ethernet card" f_network "bm%d" "Apple BMAC Built-in Ethernet" f_network "bwn%d" "Broadcom BCM43xx IEEE 802.11 wireless adapter" f_network "cas%d" "Sun Cassini/Cassini+ or NS DP83065 Saturn Ethernet" f_network "cc3i%d" "SDL HSSI sync serial PCI card" f_network "cue%d" "CATC USB Ethernet adapter" f_network "cxgb%d" "Chelsio T3 10Gb Ethernet card" f_network "dc%d" "DEC/Intel 21143 (and clones) PCI Fast Ethernet card" f_network "de%d" "DEC DE435 PCI NIC or other DC21040-AA based card" f_network "disc%d" "Software discard network interface" f_network "ed%d" "Novell NE1000/2000; 3C503; NE2000-compatible PCMCIA" f_network "el%d" "3Com 3C501 Ethernet card" f_network "em%d" "Intel(R) PRO/1000 Ethernet card" f_network "ep%d" "3Com 3C509 Ethernet card/3C589 PCMCIA" f_network "et%d" "Agere ET1310 based PCI Express Gigabit Ethernet card" f_network "ex%d" "Intel EtherExpress Pro/10 Ethernet card" f_network "fe%d" "Fujitsu MB86960A/MB86965A Ethernet card" f_network "fpa%d" "DEC DEFPA PCI FDDI card" f_network "fwe%d" "FireWire Ethernet emulation" f_network "fwip%d" "IP over FireWire" f_network "fxp%d" "Intel EtherExpress Pro/100B PCI Fast Ethernet card" f_network "gem%d" "Apple GMAC or Sun ERI/GEM Ethernet adapter" f_network "hme%d" "Sun HME (Happy Meal Ethernet) Ethernet adapter" f_network "ie%d" "AT&T StarLAN 10 and EN100; 3Com 3C507; NI5210" f_network "igb%d" "Intel(R) PRO/1000 PCI Express Gigabit Ethernet card" f_network "ipw%d" "Intel PRO/Wireless 2100 IEEE 802.11 adapter" f_network "iwi%d" "Intel PRO/Wireless 2200BG/2225BG/2915ABG adapter" f_network "iwn%d" "Intel Wireless WiFi Link 4965AGN IEEE 802.11n adapter" f_network "ix%d" "Intel Etherexpress Ethernet card" f_network "ixgbe%d" "Intel(R) PRO/10Gb Ethernet card" f_network "jme%d" "JMicron JMC250 Gigabit/JMC260 Fast Ethernet" f_network "kue%d" "Kawasaki LSI USB Ethernet adapter" f_network "le%d" "AMD Am7900 LANCE or Am79C9xx PCnet Ethernet adapter" f_network "lge%d" "Level 1 LXT1001 Gigabit Ethernet card" f_network "lnc%d" "Lance/PCnet (Isolan/Novell NE2100/NE32-VL) Ethernet" f_network "lo%d" "Loop-back (local) network interface" f_network "lp%d" "Parallel Port IP (PLIP) peer connection" f_network "malo%d" "Marvell Libertas 88W8335 802.11 wireless adapter" f_network "msk%d" "Marvell/SysKonnect Yukon II Gigabit Ethernet" f_network "mxge%d" "Myricom Myri10GE 10Gb Ethernet card" f_network "nfe%d" "NVIDIA nForce MCP Ethernet" f_network "ng%d" "Vimage netgraph(4) bridged Ethernet device" f_network "nge%d" "NatSemi PCI Gigabit Ethernet card" f_network "nve%d" "NVIDIA nForce MCP Ethernet" -f_network "nxge%d" "Neterion Xframe 10GbE Server/Storage adapter" f_network "pcn%d" "AMD Am79c79x PCI Ethernet card" f_network "plip%d" "Parallel Port IP (PLIP) peer connection" f_network "ral%d" "Ralink Technology IEEE 802.11 wireless adapter" f_network "ray%d" "Raytheon Raylink 802.11 wireless adapter" f_network "re%d" "RealTek 8139C+/8169/8169S/8110S PCI Ethernet adapter" f_network "rl%d" "RealTek 8129/8139 PCI Ethernet card" f_network "rue%d" "RealTek USB Ethernet card" f_network "rum%d" "Ralink Technology USB IEEE 802.11 wireless adapter" f_network "sf%d" "Adaptec AIC-6915 PCI Ethernet card" f_network "sge%d" "Silicon Integrated Systems SiS190/191 Ethernet" f_network "sis%d" "SiS 900/SiS 7016 PCI Ethernet card" f_network "sk%d" "SysKonnect PCI Gigabit Ethernet card" f_network "sn%d" "SMC/Megahertz Ethernet card" f_network "snc%d" "SONIC Ethernet card" f_network "sr%d" "SDL T1/E1 sync serial PCI card" f_network "ste%d" "Sundance ST201 PCI Ethernet card" f_network "stge%d" "Sundance/Tamarack TC9021 Gigabit Ethernet" f_network "ti%d" "Alteon Networks PCI Gigabit Ethernet card" f_network "tl%d" "Texas Instruments ThunderLAN PCI Ethernet card" f_network "tx%d" "SMC 9432TX Ethernet card" f_network "txp%d" "3Com 3cR990 Ethernet card" f_network "uath%d" "Atheros AR5005UG and AR5005UX USB wireless adapter" f_network "upgt%d" "Conexant/Intersil PrismGT USB wireless adapter" f_network "ural%d" "Ralink Technology RT2500USB 802.11 wireless adapter" f_network "urtw%d" "Realtek 8187L USB wireless adapter" f_network "vge%d" "VIA VT612x PCI Gigabit Ethernet card" f_network "vlan%d" "IEEE 802.1Q VLAN network interface" f_network "vr%d" "VIA VT3043/VT86C100A Rhine PCI Ethernet card" f_network "vx%d" "3COM 3c590 / 3c595 Ethernet card" f_network "wb%d" "Winbond W89C840F PCI Ethernet card" f_network "wi%d" "Lucent WaveLAN/IEEE 802.11 wireless adapter" f_network "wpi%d" "Intel 3945ABG IEEE 802.11 wireless adapter" f_network "wx%d" "Intel Gigabit Ethernet (82452) card" f_network "xe%d" "Xircom/Intel EtherExpress Pro100/16 Ethernet card" f_network "xl%d" "3COM 3c90x / 3c90xB PCI Ethernet card" f_network "zyd%d" "ZyDAS ZD1211/ZD1211B USB 802.11 wireless adapter" DEVICE_CATALOG_APPEND_ONLY= # Additional loading modifies existing devices f_count NCATALOG_DEVICES $DEVICE_CATALOG f_dprintf "%s: Initialized device catalog with %u names/descriptions." \ device.subr $NCATALOG_DEVICES # # Scan for the above devices unless requeted otherwise # f_dprintf "%s: DEVICE_SELF_SCAN_ALL=[%s]" device.subr "$DEVICE_SELF_SCAN_ALL" case "$DEVICE_SELF_SCAN_ALL" in ""|0|[Nn][Oo]|[Oo][Ff][Ff]|[Ff][Aa][Ll][Ss][Ee]) : do nothing ;; *) f_device_get_all esac f_dprintf "%s: Successfully loaded." device.subr fi # ! $_DEVICE_SUBR