wanpipe-3.5.15.tgz

This commit is contained in:
Harald Welte 2021-12-29 18:43:21 +01:00
parent 83c99f95f1
commit ada29bf89d
118 changed files with 2363 additions and 1759 deletions

View File

@ -1 +1 @@
wanpipe-3.5.14
wanpipe-3.5.15

View File

@ -8,6 +8,19 @@ Copyright (c) 1995-2010 Sangoma Technologies Inc.
For more info visit: http://wiki.sangoma.com
------------------------------------------------------------------------------
* Fri Aug 27 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.14
===================================================================
- Fixed B600 and B601 warning messages introduced in 3.5.14
- New Firmware for A108&A104 V43
Fixes PCI parity errors on new dell,ibm boxes
- Libsangoma added rw fe reg, and rx/tx gains
- Build script does not polute the linux source any more.
- Bug fix in B800 detect code
- Fixed wanfcg_fs for freeswitch
-
* Tue Jun 29 2010 Nenad Corbic <ncorbic@sangoma.com> - 3.5.14
===================================================================

View File

@ -179,6 +179,9 @@ openzap: all_src all_lib
freetdm: all_src all_lib
@touch .all_lib .openzap
fs: all_src all_lib
@touch .all_lib .openzap
g3ti: all_src all_lib
@touch .all_lib .openzap
@ -306,7 +309,9 @@ _checkzap:
#Install all utilities etc and modules
install: install_util install_etc install_kmod install_inc
@if [ -e .all_lib ] ; then \
$(MAKE) -C api/libsangoma install; \
$(MAKE) -C api/libsangoma install DESTDIR=$(INSTALLPREFIX); \
$(MAKE) -C api/libstelephony install DESTDIR=$(INSTALLPREFIX); \
ldconfig; \
fi

245
Setup
View File

@ -837,6 +837,7 @@ update_wanpipe_drivers ()
{
local res=;
echo
echo -n "Upgrading ${DISTR_NAME} kernel documentation ..."
cd $PROD_HOME
@ -855,7 +856,7 @@ update_wanpipe_drivers ()
echo -e "Done.\n"
echo
echo -n "Upgrading ${DISTR_NAME} kernel headers ..."
echo -n "Installing ${DISTR_NAME} include headers ..."
if [ ! -d $SOURCEDIR/include/linux ]; then
echo
@ -865,168 +866,10 @@ update_wanpipe_drivers ()
return 1
fi
eval "./patches/clean_old_wanpipe.sh $DRIVER_INC_DIR $SOURCEDIR/include/linux"
wan_update_headers;
cd $DRIVER_UPDATE_DIR/include/
echo -n "Upgrading ${DISTR_NAME} kernel drivers ..."
if [ -d $SOURCEDIR/$LINUXDRIVERS_WAN ]; then
cd $DRIVER_UPDATE_DIR/src/wanrouter
echo $PROD_VER > $SOURCEDIR/net/wanrouter/patchlevel
eval "cp -f *.c $SOURCEDIR/$LINUXDRIVERS_WAN 2> /dev/null"
if [ $? -ne 0 ]; then
echo -e "Failed!\n"
return 1
fi
fi
if [ -d $SOURCEDIR/$LINUXDRIVERS_NET ]; then
cd $DRIVER_UPDATE_DIR/src/net
eval "cp -f *.c $SOURCEDIR/$LINUXDRIVERS_NET 2> /dev/null"
if [ $? -eq 0 ]; then
echo -e "Done.\n"
else
echo -e "Failed!\n"
return 1
fi
else
echo -e "Done.\n"
fi
#The latest release 2.2.3 and above contain two extra files
#sdla_te1.c sdla_56k.c. The kernel make files must be updated
#when we perform the module updates.
cd $SOURCEDIR
if [ $KPATCH -eq 2 ]; then
res=`grep sdla_56k.o drivers/net/Makefile`
if [ "$res" = "" ]; then
echo "Updating $SOURCEDIR/drivers/net/Makefile"
\cp -f $PROD_HOME/patches/$MAKE_PATCH_22X .
patch -p1 < $MAKE_PATCH_22X > /dev/null 2> /dev/null
\rm -f $MAKE_PATCH_22X
fi
res=`grep wanpipe_utils.o drivers/net/Makefile`
if [ "$res" = "" ]; then
echo "Updating $SOURCEDIR/drivers/net/Makefile"
\cp -f $PROD_HOME/patches/$MAKE_UTILS_PATCH_22X .
patch -p1 < $MAKE_UTILS_PATCH_22X > /dev/null 2> /dev/null
rm -f $MAKE_UTILS_PATCH_22X
fi
elif [ $KPATCH -eq 4 ]; then
ORIGMAKE="drivers/net/wan/Makefile"
NEWMAKE="drivers/net/wan/Makefile.nex"
cp $ORIGMAKE $ORIGMAKE.orig
res=`grep sdla_56k.o drivers/net/wan/Makefile`
if [ "$res" = "" ]; then
echo "Updating T1/E1 in $SOURCEDIR/drivers/net/wan/Makefile"
cat $ORIGMAKE | awk '{ gsub("sdla_ft1.o", "sdla_ft1.o sdla_56k.o sdla_te1.o ") ; print }' > $NEWMAKE
mv $NEWMAKE $ORIGMAKE
fi
res=`grep wanpipe_utils.o drivers/net/wan/Makefile`
if [ "$res" = "" ]; then
echo "Updating Utils in $SOURCEDIR/drivers/net/wan/Makefile"
cat $ORIGMAKE | awk '{ gsub("sdla_ft1.o", "sdla_ft1.o wanpipe_utils.o ") ; print }' > $NEWMAKE
mv $NEWMAKE $ORIGMAKE
fi
res=`grep wanpipe_abstr.o drivers/net/wan/Makefile`
if [ "$res" = "" ]; then
echo "Updating Abstr in $SOURCEDIR/drivers/net/wan/Makefile"
cat $ORIGMAKE | awk '{ gsub("sdla_ft1.o", "sdla_ft1.o wanpipe_abstr.o ") ; print }' > $NEWMAKE
mv $NEWMAKE $ORIGMAKE
fi
res=`grep wanpipe_syncppp.o drivers/net/wan/Makefile`
if [ "$res" = "" ]; then
echo "Updating Syncppp in $SOURCEDIR/drivers/net/wan/Makefile"
cat $ORIGMAKE | awk '{ gsub("export-objs.*=\t", "export-objs =\twanpipe_syncppp.o ") ; print }' > $NEWMAKE
mv $NEWMAKE $ORIGMAKE
fi
res=`grep wanpipe_multppp.o drivers/net/wan/Makefile`
if [ $? -ne 0 ]; then
echo "Updating MultPPP in $SOURCEDIR/drivers/net/wan/Makefile"
cat $ORIGMAKE | awk '{ gsub("sdla_ppp.o", "sdla_ppp.o\nwanpipe-$(CONFIG_WANPIPE_MULTPPP) += wanpipe_multppp.o"); print }' > $NEWMAKE
mv $NEWMAKE $ORIGMAKE
fi
res=`grep sdla_mp_fr.o drivers/net/wan/Makefile`
if [ "$res" = "" ]; then
echo "Updating MultFR in $SOURCEDIR/drivers/net/wan/Makefile"
cat $ORIGMAKE | awk '{ gsub("wanpipe_multppp.o", "wanpipe_multppp.o\nwanpipe-$(CONFIG_WANPIPE_MULTFR) += sdla_mp_fr.o"); print }' > $NEWMAKE
mv $NEWMAKE $ORIGMAKE
fi
rm -f $NEWMAKE
ORIGMAKE=net/wanrouter/Makefile
NEWMAKE=net/wanrouter/Makefile.nex
cp $ORIGMAKE $ORIGMAKE.orig
res=`grep af_wanpipe net/wanrouter/Makefile`
if [ "$res" = "" ]; then
cat $ORIGMAKE | awk '{ gsub("obj-m.*:=", "obj-m := af_wanpipe.o"); print }' > $NEWMAKE
mv $NEWMAKE $ORIGMAKE
echo "Updating af_wanpipe in $SOURCEDIR/net/wanrouter/Makefile"
fi
res=`grep waniface.o net/wanrouter/Makefile`
if [ "$res" = "" ]; then
cat $ORIGMAKE | awk '{ gsub("obj-y.*:=", "obj-y := waniface.o"); print }' > $NEWMAKE
mv $NEWMAKE $ORIGMAKE
cat $ORIGMAKE | awk '{ gsub("export-objs.*:=", "export-objs := waniface.o"); print }' > $NEWMAKE
mv $NEWMAKE $ORIGMAKE
echo "Updating Waniface in $SOURCEDIR/net/wanrouter/Makefile"
fi
rm -f $NEWMAKE
fi
cd $PROD_HOME
return 0
}
@ -2114,7 +1957,7 @@ WARNING: The Linux source in $SOURCEDIR has not been configured.
echo -e "\n\t\t!!! ${DISTR_NAME} Tools Compilation Failed !!!"
echo -e "\tPossible solution:"
echo -e "\t\t Wanpipe header files were not installed properly"
echo -e "\t\t in $SOURCEDIR/include directory"
echo -e "\t\t in $WANPIPE_INCLUDE_DIR directory"
echo -e "\tPlease contact Sangoma Tech. at 905 474-1990\n"
pause
return 1
@ -2315,6 +2158,7 @@ clean_up ()
[ -f "/etc/router.rc" ] && rm -f /etc/router.rc
eval "./patches/restore_wanrouter.sh"
}
get_distrib()
@ -2472,11 +2316,11 @@ function wan_get_kernel_flags()
tmp1=$tmp;
tmp=${tmp1//-Iinclude\//-I$SOURCEDIR\/include/}
tmp=${tmp1//-Iinclude\//-I$WANPIPE_INCLUDE_DIR -I$SOURCEDIR\/include/}
CFLAGS_EXTRA=$tmp
CFLAGS_EXTRA=$tmp
if [ $DISABLE_GCC_DEBUG -gt 0 ]; then
if [ $DISABLE_GCC_DEBUG -gt 0 ]; then
tmp=${CFLAGS_EXTRA//-g/}
CFLAGS_EXTRA=$tmp
fi
@ -3278,26 +3122,20 @@ function wan_update_headers ()
eval "\cp -f *.h $WANPIPE_INCLUDE_DIR/ 2> /dev/null"
cd $DRIVER_UPDATE_DIR/wanec
if [ $REL = "3.7" ]; then
eval "\cp -rf oct61xx/oct6100_api/include/* $WANPIPE_INCLUDE_DIR/ 2> /dev/null"
eval "\cp -rf *.h $SOURCEDIR/include/linux 2> /dev/null"
eval "\cp -rf *.h $WANPIPE_INCLUDE_DIR/ 2> /dev/null"
else
eval "\cp -rf oct6100_api/include/ $WANPIPE_INCLUDE_DIR/oct6100_api 2> /dev/null"
eval "\cp -rf wanec_iface.h $SOURCEDIR/include/linux 2> /dev/null"
eval "\cp -rf *.h $WANPIPE_INCLUDE_DIR/ 2> /dev/null"
fi
cd $DRIVER_UPDATE_DIR/include/
if [ $superuser = "YES" ] && [ -e /usr/include/linux ]; then
eval "\cp -f *.h /usr/include/linux/ 2> /dev/null"
fi
if [ -e $DRIVER_UPDATE_DIR/include/annexg ]; then
cd $DRIVER_UPDATE_DIR/include/annexg
eval "\cp -f *.h $WANPIPE_INCLUDE_DIR/ 2> /dev/null"
fi
eval "\cp -f *.h $SOURCEDIR/include/linux/ 2> /dev/null"
if [ $? -eq 0 ]; then
echo -e "Done.\n"
else
@ -3305,19 +3143,6 @@ function wan_update_headers ()
return 1
fi
if [ -e $DRIVER_UPDATE_DIR/include/annexg ]; then
cd $DRIVER_UPDATE_DIR/include/annexg
if [ -e /usr/include/linux ]; then
eval "\cp -f *.h /usr/include/linux/ 2> /dev/null"
fi
eval "\cp -f *.h $WANPIPE_INCLUDE_DIR/ 2> /dev/null"
eval "\cp -f *.h $SOURCEDIR/include/linux/ 2> /dev/null"
fi
WAN_HEADERS_UPDATED=YES
return 0
@ -3462,23 +3287,23 @@ ENDOFTEXT
if [ ! -d $SOURCEDIR/include/asm ] || [ ! -f $SOURCEDIR/include/linux/autoconf.h ]; then
echo -e "\n"
echo "ERROR: The $SOURCEDIR contains a fresh, unconfigured kernel!"
echo ""
echo " If you already have a working kernel image, a"
echo " simple kernel configuration can solve this problem"
echo " In linux source dirctory run: "
echo
echo " make dep modules"
echo
echo " Then retry the Setup script !!"
echo ""
echo " If you are still expriencing problems please contact"
echo " Sangoma Tech Support"
pause
return 1
fi
# if [ ! -d $SOURCEDIR/include/asm ] || [ ! -f $SOURCEDIR/include/linux/autoconf.h ]; then
# echo -e "\n"
# echo "ERROR: The $SOURCEDIR contains a fresh, unconfigured kernel!"
# echo ""
# echo " If you already have a working kernel image, a"
# echo " simple kernel configuration can solve this problem"
# echo " In linux source dirctory run: "
# echo
# echo " make dep modules"
# echo
# echo " Then retry the Setup script !!"
# echo ""
# echo " If you are still expriencing problems please contact"
# echo " Sangoma Tech Support"
# pause
# return 1
# fi
# if [ $KERN_VER -ne 26 ] && [ ! -f $SOURCEDIR/include/linux/modversions.h ]; then
# echo -e "\n"
@ -3643,7 +3468,7 @@ ENDOFTEXT
#Setup the COMPILATOIN FLAGS depending on the kernel type
if [ $KERN_VER -eq 26 ]; then
if [ "$USE_CFLAGS" = "" ]; then
CFLAGS="$CC -Wp,-MD,.wanpipe.o.d -nostdinc -iwithprefix include -D__LINUX__ -Dlinux -D__KERNEL__ -I$SOURCEDIR/include -DMODULE $CFLAGS"
CFLAGS="$CC -Wp,-MD,.wanpipe.o.d -nostdinc -iwithprefix include -D__LINUX__ -Dlinux -D__KERNEL__ -I$WANPIPE_INCLUDE_DIR -I$SOURCEDIR/include -DMODULE $CFLAGS"
wan_get_kernel_flags
CFLAGS="$CFLAGS $CFLAGS_EXTRA"
fi
@ -3737,14 +3562,14 @@ CFLAGS="$CC -Wp,-MD,.wanpipe.o.d -nostdinc -iwithprefix include -D__LINUX__ -Dli
case $ARCH in
x86_64*)
CFLAGS="$CC -D__LINUX__ -Dlinux -D__KERNEL__ -I$SOURCEDIR/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Wno-unused -fomit-frame-pointer -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks -finline-limit=2000 -fno-strength-reduce -fno-asynchronous-unwind-tables -nostdinc -iwithprefix include -DMODULE -DEXPORT_SYMTAB"
CFLAGS="$CC -D__LINUX__ -Dlinux -D__KERNEL__ -I$WANPIPE_INCLUDE_DIR -I$SOURCEDIR/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Wno-unused -fomit-frame-pointer -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks -finline-limit=2000 -fno-strength-reduce -fno-asynchronous-unwind-tables -nostdinc -iwithprefix include -DMODULE -DEXPORT_SYMTAB"
;;
*)
if [ $KLVL -lt 32 ]; then
CFLAGS="$CC -D__LINUX__ -Dlinux -D__KERNEL__ -I$SOURCEDIR/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -march=$ARCH -DMODULE -DEXPORT_SYMTAB"
CFLAGS="$CC -D__LINUX__ -Dlinux -D__KERNEL__ -I$WANPIPE_INCLUDE_DIR -I$SOURCEDIR/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -march=$ARCH -DMODULE -DEXPORT_SYMTAB"
else
CFLAGS="$CC -D__LINUX__ -Dlinux -D__KERNEL__ -I$SOURCEDIR/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=$ARCH -fno-unit-at-a-time -DMODULE -nostdinc -iwithprefix include -DMODULE -DEXPORT_SYMTAB"
CFLAGS="$CC -D__LINUX__ -Dlinux -D__KERNEL__ -I$WANPIPE_INCLUDE_DIR -I$SOURCEDIR/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=$ARCH -fno-unit-at-a-time -DMODULE -nostdinc -iwithprefix include -DMODULE -DEXPORT_SYMTAB"
fi
#Old gcc do not have this option, thus we must check for it.
@ -7454,7 +7279,7 @@ KERNEL_UNAME=`uname -r`
PKG_NAME=wanpipe
DISTR_NAME="WANPIPE"
PROD=wanrouter
PROD_VER=3.5.14
PROD_VER=3.5.15
PROD_HOME=`pwd`
META_CONF=$PROD_HOME/$PROD.rc
WAN_INTR_DIR=$PROD_HOME/interfaces

View File

@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 34
/svn/libsangoma/!svn/ver/293/trunk
/svn/libsangoma/!svn/ver/308/trunk
END
init-automake.sh
K 25
@ -19,13 +19,13 @@ Makefile.in
K 25
svn:wc:ra_dav:version-url
V 46
/svn/libsangoma/!svn/ver/222/trunk/Makefile.in
/svn/libsangoma/!svn/ver/298/trunk/Makefile.in
END
sources
K 25
svn:wc:ra_dav:version-url
V 42
/svn/libsangoma/!svn/ver/286/trunk/sources
/svn/libsangoma/!svn/ver/306/trunk/sources
END
AUTHORS
K 25
@ -67,7 +67,7 @@ libsangoma.c
K 25
svn:wc:ra_dav:version-url
V 47
/svn/libsangoma/!svn/ver/293/trunk/libsangoma.c
/svn/libsangoma/!svn/ver/308/trunk/libsangoma.c
END
compile.bat
K 25
@ -85,7 +85,7 @@ libsangoma.h
K 25
svn:wc:ra_dav:version-url
V 47
/svn/libsangoma/!svn/ver/293/trunk/libsangoma.h
/svn/libsangoma/!svn/ver/299/trunk/libsangoma.h
END
libsangoma_hwec.c
K 25
@ -211,7 +211,7 @@ Makefile.am
K 25
svn:wc:ra_dav:version-url
V 46
/svn/libsangoma/!svn/ver/197/trunk/Makefile.am
/svn/libsangoma/!svn/ver/298/trunk/Makefile.am
END
missing
K 25
@ -231,6 +231,12 @@ svn:wc:ra_dav:version-url
V 51
/svn/libsangoma/!svn/ver/276/trunk/libsangoma-pvt.h
END
libsangoma_utils.c
K 25
svn:wc:ra_dav:version-url
V 53
/svn/libsangoma/!svn/ver/307/trunk/libsangoma_utils.c
END
install-sh
K 25
svn:wc:ra_dav:version-url

View File

@ -1,14 +1,14 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk
https://www.sangomapbx.com/svn/libsangoma
2010-06-21T23:50:48.868158Z
293
2010-08-24T18:59:15.202283Z
308
ncorbic
has-props
@ -58,10 +58,10 @@ file
2010-04-09T15:03:42.000000Z
782866a28766db490d5e05eb04cb657f
2009-08-12T18:36:20.606028Z
222
2010-08-19T22:39:57.000000Z
a8dfea1c867ff132bf1ce1af2f45286a
2010-08-13T00:22:43.027397Z
298
ncorbic
sample_cpp
@ -73,11 +73,11 @@ file
2010-06-14T16:38:14.000000Z
2e406647b2e26265446b40f8fbfb411b
2010-06-10T21:10:51.668331Z
286
davidr
2010-08-19T22:39:57.000000Z
5cddf7c651ff3b0830cde10dd67f6a99
2010-08-18T18:10:06.530845Z
306
jpatel
AUTHORS
file
@ -176,10 +176,10 @@ file
2010-06-21T23:23:59.000000Z
d0bb1eca5add6b5bb865bd85ec350af8
2010-06-21T23:50:48.868158Z
293
2010-08-27T23:02:11.000000Z
75258501ea3f09d08bc9932151e359cd
2010-08-24T18:59:15.202283Z
308
ncorbic
has-props
@ -202,10 +202,10 @@ file
2010-06-21T23:23:59.000000Z
49584fbd77f3529c93cfb5a46fe3467d
2010-06-21T23:50:48.868158Z
293
2010-08-13T21:40:10.000000Z
71bdfb513775b3a4cf3d0cfeba2bc0a7
2010-08-13T22:34:32.754036Z
299
ncorbic
has-props
@ -477,10 +477,10 @@ file
2009-08-25T20:44:41.000000Z
e91d44c5f7c7b260b98044016baacad9
2009-06-26T19:19:31.981035Z
197
2010-08-12T23:16:44.000000Z
b703c5ae18162e30d2fb09df9eae7c98
2010-08-13T00:22:43.027397Z
298
ncorbic
libsangoma.def
@ -508,6 +508,18 @@ ef10b7962e2dbe7feebcec6c47467ad7
davidr
has-props
libsangoma_utils.c
file
2010-08-19T22:39:57.000000Z
4e6cc58c45255d7146cfd349385a7f51
2010-08-18T18:12:26.768369Z
307
jpatel
examples
dir

View File

@ -11,7 +11,7 @@ AM_CFLAGS += -Wall -Wwrite-strings -Wunused-variable -Wstrict-prototypes -Wmissi
#ACLOCAL_AMFLAGS = -I m4
LIB_SOURCES = libsangoma.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
if LIBPRI
LIB_SOURCES += sangoma_pri.c sangoma_pri.h

View File

@ -77,12 +77,14 @@ libsangoma_a_OBJECTS = $(am_libsangoma_a_OBJECTS)
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libsangoma_la_LIBADD =
am__libsangoma_la_SOURCES_DIST = libsangoma.c libsangoma.h \
libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c \
libhpsangoma_priv.h sangoma_pri.c sangoma_pri.h
am__libsangoma_la_SOURCES_DIST = libsangoma.c libsangoma_utils.c \
libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h \
libhpsangoma_priv.c libhpsangoma_priv.h sangoma_pri.c \
sangoma_pri.h
@LIBPRI_TRUE@am__objects_1 = libsangoma_la-sangoma_pri.lo
am__objects_2 = libsangoma_la-libsangoma.lo \
libsangoma_la-libhpsangoma.lo \
libsangoma_la-libsangoma_utils.lo \
libsangoma_la-libsangoma_hwec.lo libsangoma_la-libhpsangoma.lo \
libsangoma_la-libhpsangoma_priv.lo $(am__objects_1)
am_libsangoma_la_OBJECTS = $(am__objects_2)
libsangoma_la_OBJECTS = $(am_libsangoma_la_OBJECTS)
@ -233,8 +235,9 @@ AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g \
$(am__append_3)
#ACLOCAL_AMFLAGS = -I m4
LIB_SOURCES = libsangoma.c libsangoma.h libhpsangoma.c libhpsangoma.h \
libhpsangoma_priv.c libhpsangoma_priv.h $(am__append_1)
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_hwec.c \
libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c \
libhpsangoma_priv.h $(am__append_1)
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h libhpsangoma.h $(am__append_2)
lib_LTLIBRARIES = libsangoma.la
@ -373,6 +376,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libhpsangoma.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_hwec.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-sangoma_pri.Plo@am__quote@
.c.o:
@ -403,6 +408,20 @@ libsangoma_la-libsangoma.lo: libsangoma.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma.lo `test -f 'libsangoma.c' || echo '$(srcdir)/'`libsangoma.c
libsangoma_la-libsangoma_utils.lo: libsangoma_utils.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma_utils.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma_utils.Tpo" -c -o libsangoma_la-libsangoma_utils.lo `test -f 'libsangoma_utils.c' || echo '$(srcdir)/'`libsangoma_utils.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libsangoma_utils.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma_utils.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma_utils.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsangoma_utils.c' object='libsangoma_la-libsangoma_utils.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma_utils.lo `test -f 'libsangoma_utils.c' || echo '$(srcdir)/'`libsangoma_utils.c
libsangoma_la-libsangoma_hwec.lo: libsangoma_hwec.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma_hwec.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo" -c -o libsangoma_la-libsangoma_hwec.lo `test -f 'libsangoma_hwec.c' || echo '$(srcdir)/'`libsangoma_hwec.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsangoma_hwec.c' object='libsangoma_la-libsangoma_hwec.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma_hwec.lo `test -f 'libsangoma_hwec.c' || echo '$(srcdir)/'`libsangoma_hwec.c
libsangoma_la-libhpsangoma.lo: libhpsangoma.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libhpsangoma.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libhpsangoma.Tpo" -c -o libsangoma_la-libhpsangoma.lo `test -f 'libhpsangoma.c' || echo '$(srcdir)/'`libhpsangoma.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libhpsangoma.Tpo" "$(DEPDIR)/libsangoma_la-libhpsangoma.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libhpsangoma.Tpo"; exit 1; fi

View File

@ -689,6 +689,12 @@ static int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_
return iReturnCode;
}
iReturnCode = registry_set_integer_value(hPortRegistryKey, "HWEC_CLKSRC", wandev_conf->hwec_conf.clk_src /* is this port the HWEC clock source - WANOPT_NO/WANOPT_YES */);
if(iReturnCode){
return iReturnCode;
}
/* set Media specific values. */
switch(sdla_fe_cfg->media)
{
@ -1073,10 +1079,10 @@ void _LIBSNG_CALL sangoma_reset_port_numbers()
2. for each Card, search Ports (Bus/Slot must match)
3. based on number of installed Ports, set SerialNumbersRange of the Card
This way the "UserWanpipeNumber" can be set to zero and Span numbers will be
seqencial automatically.
This way the WP_REGSTR_USER_SPECIFIED_WANPIPE_NUMBER can be set to zero and Span numbers will be
sequencial automatically.
*/
iRegistryReturnCode = registry_set_integer_value(hKeyTmp, "UserWanpipeNumber", iPortCounter);
iRegistryReturnCode = registry_set_integer_value(hKeyTmp, WP_REGSTR_USER_SPECIFIED_WANPIPE_NUMBER, iPortCounter);
if(iRegistryReturnCode){
continue;
}
@ -1212,6 +1218,32 @@ sangoma_status_t _LIBSNG_CALL sangoma_set_driver_mode_of_all_hw_devices(int driv
* Common Linux & Windows Code
*************************************************************************/
/*************************************************/
/* private functions for accessing wan_udp_hdr_t */
/*************************************************/
/* return POINTER to DATA at offset 'off' */
static unsigned char* sangoma_get_wan_udphdr_data_ptr(wan_udp_hdr_t *wan_udp_ptr, unsigned char off)
{
unsigned char *p_data = &wan_udp_ptr->wan_udphdr_data[0];
p_data += off;
return p_data;
}
/* set a single byte of DATA at offset 'off' */
static unsigned char sangoma_set_wan_udphdr_data_byte(wan_udp_hdr_t *wan_udp_ptr, unsigned char off, unsigned char data)
{
unsigned char *p_data = &wan_udp_ptr->wan_udphdr_data[0];
p_data[off] = data;
return 0;
}
/* return a single byte of DATA at offset 'off' */
static unsigned char sangoma_get_wan_udphdr_data_byte(wan_udp_hdr_t *wan_udp_ptr, unsigned char off)
{
unsigned char *p_data = &wan_udp_ptr->wan_udphdr_data[0];
return p_data[off];
}
/*************************************************/
/************************************************************//**
@ -1826,6 +1858,8 @@ int _LIBSNG_CALL sangoma_readmsg(sng_fd_t fd, void *hdrbuf, int hdrlen, void *da
return -1;
}
wp_api_element.hdr.operation_status = SANG_STATUS_IO_ERROR;
if(DoReadCommand(fd, &wp_api_element)){
/*error*/
DBG_ERR("DoReadCommand() failed! Check messages log.\n");
@ -1877,7 +1911,7 @@ int _LIBSNG_CALL sangoma_readmsg(sng_fd_t fd, void *hdrbuf, int hdrlen, void *da
return -EINVAL;
}
rx_len-=sizeof(wp_api_hdr_t);
rx_len -= sizeof(wp_api_hdr_t);
#endif
return rx_len;
}
@ -2754,7 +2788,7 @@ int _LIBSNG_CALL sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_api_t *tdm
int _LIBSNG_CALL sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_api_t *tdm_api)
{
WANPIPE_API_INIT_CHAN(tdm_api, 0);
/* intentionally NOT initializing chan - caller must do it */
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = WP_API_CMD_ENABLE_HWEC;
return sangoma_cmd_exec(fd,tdm_api);
@ -2762,7 +2796,7 @@ int _LIBSNG_CALL sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_api_t *tdm_api)
int _LIBSNG_CALL sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_api_t *tdm_api)
{
WANPIPE_API_INIT_CHAN(tdm_api, 0);
/* intentionally NOT initializing chan - caller must do it */
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = WP_API_CMD_DISABLE_HWEC;
return sangoma_cmd_exec(fd,tdm_api);
@ -2977,6 +3011,116 @@ int _LIBSNG_CALL sangoma_get_cpld_version(sng_fd_t fd, wanpipe_api_t *tdm_api, u
return err;
}
int _LIBSNG_CALL sangoma_get_aft_customer_id(sng_fd_t fd, unsigned char *out_customer_id)
{
wan_udp_hdr_t wan_udp;
memset(&wan_udp, 0x00, sizeof(wan_udp));
wan_udp.wan_udphdr_command = WANPIPEMON_AFT_CUSTOMER_ID;
wan_udp.wan_udphdr_return_code = SANG_STATUS_UNSUPPORTED_FUNCTION;
wan_udp.wan_udphdr_data_len = 0;
if (sangoma_mgmt_cmd(fd, &wan_udp)) {
return SANG_STATUS_IO_ERROR;
}
if (wan_udp.wan_udphdr_return_code) {
return SANG_STATUS_UNSUPPORTED_FUNCTION;
}
*out_customer_id = sangoma_get_wan_udphdr_data_byte(&wan_udp, 0);
return 0;
}
#ifdef WP_API_FEATURE_FE_RW
int _LIBSNG_CALL sangoma_fe_reg_write(sng_fd_t fd, uint32_t offset, uint8_t data)
{
int chan=0;
wan_udp_hdr_t wan_udp;
sdla_fe_debug_t *fe_debug;
memset(&wan_udp, 0x00, sizeof(wan_udp));
{
int err;
wanpipe_api_t tdm_api;
memset(&tdm_api,0,sizeof(tdm_api));
err=sangoma_get_full_cfg(fd, &tdm_api);
if (err) {
return err;
}
chan=tdm_api.wp_cmd.chan;
if (chan)
chan--;
}
wan_udp.wan_udphdr_command = WAN_FE_SET_DEBUG_MODE;
wan_udp.wan_udphdr_data_len = sizeof(sdla_fe_debug_t);
wan_udp.wan_udphdr_return_code = 0xaa;
fe_debug = (sdla_fe_debug_t*)wan_udp.wan_udphdr_data;
fe_debug->type = WAN_FE_DEBUG_REG;
fe_debug->mod_no = chan;
fe_debug->fe_debug_reg.reg = offset;
fe_debug->fe_debug_reg.value = data;
fe_debug->fe_debug_reg.read = 0;
if (sangoma_mgmt_cmd(fd, &wan_udp)) {
return SANG_STATUS_IO_ERROR;
}
if (wan_udp.wan_udphdr_return_code) {
return SANG_STATUS_UNSUPPORTED_FUNCTION;
}
return 0;
}
int _LIBSNG_CALL sangoma_fe_reg_read(sng_fd_t fd, uint32_t offset, uint8_t *data)
{
int chan=0;
wan_udp_hdr_t wan_udp;
sdla_fe_debug_t *fe_debug;
memset(&wan_udp, 0x00, sizeof(wan_udp));
{
int err;
wanpipe_api_t tdm_api;
memset(&tdm_api,0,sizeof(tdm_api));
err=sangoma_get_full_cfg(fd, &tdm_api);
if (err) {
return err;
}
chan=tdm_api.wp_cmd.chan;
if (chan)
chan--;
}
wan_udp.wan_udphdr_command = WAN_FE_SET_DEBUG_MODE;
wan_udp.wan_udphdr_data_len = sizeof(sdla_fe_debug_t);
wan_udp.wan_udphdr_return_code = 0xaa;
fe_debug = (sdla_fe_debug_t*)wan_udp.wan_udphdr_data;
fe_debug->type = WAN_FE_DEBUG_REG;
fe_debug->mod_no = chan;
fe_debug->fe_debug_reg.reg = offset;
fe_debug->fe_debug_reg.read = 1;
if (sangoma_mgmt_cmd(fd, &wan_udp)) {
return SANG_STATUS_IO_ERROR;
}
if (wan_udp.wan_udphdr_return_code) {
return SANG_STATUS_UNSUPPORTED_FUNCTION;
}
*data = fe_debug->fe_debug_reg.value;
return 0;
}
#endif
int _LIBSNG_CALL sangoma_get_stats(sng_fd_t fd, wanpipe_api_t *tdm_api, wanpipe_chan_stats_t *stats)
{
int err;
@ -3173,6 +3317,7 @@ sng_fd_t _LIBSNG_CALL sangoma_open_driver_ctrl(int port_no)
return sangoma_open_dev_by_name(tmp_fname);
}
int _LIBSNG_CALL sangoma_mgmt_cmd(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
{
int err=0;

View File

@ -377,6 +377,17 @@ typedef enum _sangoma_wait_obj_flags {
SANG_WAIT_OBJ_IS_SIGNALED = 0x400 /* matches GNU extension POLLMSG */
} sangoma_wait_obj_flags_t;
/*
* Note for data format of Input/Output and Bit-order in libsangoma API.
* The bit-order depends on Span/Channel configuration.
*
* TDM_CHAN_VOICE_API - expected input is ulaw/alaw, output is ulaw/alaw,
* TDM_SPAN_VOICE_API - expected input is ulaw/alaw, output is ulaw/alaw
*
* DATA_API - data can be in any format, not bitswapped by AFT hardware
* API - data can be in any format, not bitswapped by AFT hardware
*/
/************************************************************//**
* Device OPEN / CLOSE Functions
***************************************************************/
@ -1257,14 +1268,48 @@ int _LIBSNG_CALL sangoma_get_firmware_version(sng_fd_t fd, wanpipe_api_t *tdm_ap
/*!
\fn int sangoma_get_cpld_version(sng_fd_t fd, wanpipe_api_t *tdm_api, unsigned char *ver)
\brief Get Hardare/CPLD Version
\brief Get AFT CPLD Version
\param fd device file descriptor
\param tdm_api tdm api command structure
\param ver hardware/cpld version number
\param ver AFT CPLD version number
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_get_cpld_version(sng_fd_t fd, wanpipe_api_t *tdm_api, unsigned char *ver);
/*!
\fn int _LIBSNG_CALL sangoma_get_aft_customer_id(sng_fd_t fd, unsigned char *out_customer_id)
\brief Get Customer-specific ID from AFT hardware, the default value is 0xFF, any change
requires special arrangement with Sangoma Technologies.
\param fd device file descriptor
\param out_customer_id AFT Customer ID
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_get_aft_customer_id(sng_fd_t fd, unsigned char *out_customer_id);
#ifdef WP_API_FEATURE_FE_RW
/*!
\fn int sangoma_fe_reg_write(sng_fd_t fd, uint32_t offset, uint8_t data)
\brief Write to a front end register
\param fd device file descriptor
\param offset offset of front end register
\param data value to write
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_fe_reg_write(sng_fd_t fd, uint32_t offset, uint8_t data);
/*!
\fn int sangoma_fe_reg_read(sng_fd_t fd, uint32_t offset, uint8_t *data)
\brief Read front end register
\param fd device file descriptor
\param offset offset of front end register
\param data value of the read register
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_fe_reg_read(sng_fd_t fd, uint32_t offset, uint8_t *data);
#endif
/*!
\fn int sangoma_get_stats(sng_fd_t fd, wanpipe_api_t *tdm_api, wanpipe_chan_stats_t *stats)
@ -1273,7 +1318,7 @@ int _LIBSNG_CALL sangoma_get_cpld_version(sng_fd_t fd, wanpipe_api_t *tdm_api, u
\param tdm_api tdm api command structure
\param stats stats structure will be filled with device stats. (Optional, can be left NULL)
\return non-zero = error, 0 = ok
*/
*/
int _LIBSNG_CALL sangoma_get_stats(sng_fd_t fd, wanpipe_api_t *tdm_api, wanpipe_chan_stats_t *stats);
/*!
@ -1452,6 +1497,47 @@ sangoma_status_t _LIBSNG_CALL sangoma_logger_set_logger_level(sng_fd_t fd, wp_lo
#endif /* WP LOGGER FEATURE */
#ifdef WP_API_FEATURE_DRIVER_GAIN
/*!
\fn int sangoma_set_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, floag gain_val)
\brief set driver tx gain for this tdm device
\param fd device file descriptor
\param tdm_api tdm api command structure
\param value txgain (0.0 - 10.0) db
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_set_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, float gain_val);
/*!
\fn int sangoma_set_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, floag gain_val)
\brief set driver rx gain for this tdm device
\param fd device file descriptor
\param tdm_api tdm api command structure
\param value txgain (0.0 - 10.0) db
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_set_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, float gain_val);
/*!
\fn int sangoma_clear_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api)
\brief Clear tx gain from device, set it to 0.0
\param fd device file descriptor
\param tdm_api tdm api command structure
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_clear_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api);
/*!
\fn int sangoma_clear_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api)
\brief Clear rx gain from device, set it to 0.0
\param fd device file descriptor
\param tdm_api tdm api command structure
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_clear_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api);
#endif
#ifndef LIBSANGOMA_LIGHT
/************************************************************//**
@ -1695,6 +1781,8 @@ int _LIBSNG_CALL sangoma_tdm_set_power_level(sng_fd_t fd, wanpipe_api_t *tdm_api
int _LIBSNG_CALL sangoma_tdm_get_power_level(sng_fd_t fd, wanpipe_api_t *tdm_api);
#ifdef WP_API_FEATURE_LIBSNG_HWEC
/*!
@ -1827,10 +1915,10 @@ sangoma_status_t _LIBSNG_CALL sangoma_hwec_enable(char *device_name, unsigned i
\brief Force AFT FPGA to bypass the echo canceller.
This command effectively disables echo cancellation since
data will not flowing through the ec chip.
data will not be flowing through the ec chip.
Data will not be modified by the echo canceller.
This command is recommened for fast disabling of Echo Cancelation.
Note: sangoma_tdm_disable_hwec() function can be use to achive
Note: sangoma_tdm_disable_hwec() function can be used to achive
the same functionality based on file descriptor versus
channel map.

View File

@ -0,0 +1,145 @@
/*******************************************************************************//**
* \file libsangoma.c
* \brief Wanpipe API Code Library for Sangoma AFT T1/E1/Analog/BRI/Serial hardware
*
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
* David Rokhvarg <davidr@sangoma.com>
* Michael Jerris <mike@jerris.com>
* Anthony Minessale II <anthmct@yahoo.com>
*
* Copyright: (c) 2005-2008 Nenad Corbic <ncorbic@sangoma.com>
*
* * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * 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.
* * Neither the name of the Sangoma Technologies nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY Sangoma Technologies ``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 Sangoma Technologies 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
*******************************************************************************
*/
#include "libsangoma-pvt.h"
#include "libsangoma.h"
#include "g711.h"
#include "math.h"
#ifdef WP_API_FEATURE_DRIVER_GAIN
static __inline int sangoma_set_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, int cmd, float gain_val)
{
unsigned char *gain;
int x;
float gain_lin = powf(10.0, gain_val / 20.0);
int i;
int coding=-1;
{
wanpipe_api_t tmp_tdm_api;
memset(&tmp_tdm_api,0,sizeof(wanpipe_api_t));
coding = sangoma_get_hw_coding(fd,&tmp_tdm_api);
if (coding < 0) {
return coding;
}
}
WANPIPE_API_INIT_CHAN(tdm_api, 0);
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = cmd;
gain = tdm_api->wp_cmd.data;
tdm_api->wp_cmd.data_len=256;
switch (coding) {
case WP_MULAW:
for (i = 0; i < 256; i++) {
if (gain_val) {
x = (int) (((float) ulaw_to_linear(i)) * gain_lin);
if (x > 32767) x = 32767;
if (x < -32767) x = -32767;
gain[i] = linear_to_ulaw(x);
} else {
gain[i] = i;
}
}
break;
case WP_ALAW:
for (i = 0; i < 256; i++) {
if (gain_val) {
x = (int) (((float) alaw_to_linear(i)) * gain_lin);
if (x > 32767) x = 32767;
if (x < -32767) x = -32767;
gain[i] = linear_to_alaw(x);
} else {
gain[i] = i;
}
}
break;
default:
return -1;
}
#if 0
{
int i;
printf("Data size = %i\n",sizeof(tdm_api->wp_cmd.data));
for (i=0;i<256;i++) {
printf("Set Gain Coding=%i: [%03i]=%03i\n", coding, i, gain[i]);
}
}
#endif
return sangoma_cmd_exec(fd, tdm_api);
}
int _LIBSNG_CALL sangoma_set_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, float gain_val)
{
return sangoma_set_gain(fd,tdm_api, WP_API_CMD_SET_TX_GAINS, gain_val);
}
int _LIBSNG_CALL sangoma_set_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, float gain_val)
{
return sangoma_set_gain(fd,tdm_api,WP_API_CMD_SET_RX_GAINS,gain_val);
}
int _LIBSNG_CALL sangoma_clear_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api)
{
WANPIPE_API_INIT_CHAN(tdm_api, 0);
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = WP_API_CMD_CLEAR_TX_GAINS;
return sangoma_cmd_exec(fd, tdm_api);
}
int _LIBSNG_CALL sangoma_clear_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api)
{
WANPIPE_API_INIT_CHAN(tdm_api, 0);
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = WP_API_CMD_CLEAR_RX_GAINS;
return sangoma_cmd_exec(fd, tdm_api);
}
#endif

View File

@ -28,5 +28,5 @@ $(SDK_LIB_PATH)\SetupApi.lib \
$(SDK_LIB_PATH)\Advapi32.lib \
$(SANG_WP_DEVEL)\wanpipe_common\wantools\wanec_apilib\$(O)\waneclib.lib
SOURCES=libsangoma.c libsangoma.rc libsangoma_hwec.c
SOURCES=libsangoma.c libsangoma.rc libsangoma_hwec.c libsangoma_utils.c

View File

@ -11,7 +11,7 @@ AM_CFLAGS += -Wall -Wwrite-strings -Wunused-variable -Wstrict-prototypes -Wmissi
#ACLOCAL_AMFLAGS = -I m4
LIB_SOURCES = libsangoma.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
if LIBPRI
LIB_SOURCES += sangoma_pri.c sangoma_pri.h

View File

@ -77,12 +77,14 @@ libsangoma_a_OBJECTS = $(am_libsangoma_a_OBJECTS)
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libsangoma_la_LIBADD =
am__libsangoma_la_SOURCES_DIST = libsangoma.c libsangoma.h \
libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c \
libhpsangoma_priv.h sangoma_pri.c sangoma_pri.h
am__libsangoma_la_SOURCES_DIST = libsangoma.c libsangoma_utils.c \
libsangoma_hwec.c libsangoma.h libhpsangoma.c libhpsangoma.h \
libhpsangoma_priv.c libhpsangoma_priv.h sangoma_pri.c \
sangoma_pri.h
@LIBPRI_TRUE@am__objects_1 = libsangoma_la-sangoma_pri.lo
am__objects_2 = libsangoma_la-libsangoma.lo \
libsangoma_la-libhpsangoma.lo \
libsangoma_la-libsangoma_utils.lo \
libsangoma_la-libsangoma_hwec.lo libsangoma_la-libhpsangoma.lo \
libsangoma_la-libhpsangoma_priv.lo $(am__objects_1)
am_libsangoma_la_OBJECTS = $(am__objects_2)
libsangoma_la_OBJECTS = $(am_libsangoma_la_OBJECTS)
@ -233,8 +235,9 @@ AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g \
$(am__append_3)
#ACLOCAL_AMFLAGS = -I m4
LIB_SOURCES = libsangoma.c libsangoma.h libhpsangoma.c libhpsangoma.h \
libhpsangoma_priv.c libhpsangoma_priv.h $(am__append_1)
LIB_SOURCES = libsangoma.c libsangoma_utils.c libsangoma_hwec.c \
libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c \
libhpsangoma_priv.h $(am__append_1)
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h libhpsangoma.h $(am__append_2)
lib_LTLIBRARIES = libsangoma.la
@ -373,6 +376,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libhpsangoma.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_hwec.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-libsangoma_utils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsangoma_la-sangoma_pri.Plo@am__quote@
.c.o:
@ -403,6 +408,20 @@ libsangoma_la-libsangoma.lo: libsangoma.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma.lo `test -f 'libsangoma.c' || echo '$(srcdir)/'`libsangoma.c
libsangoma_la-libsangoma_utils.lo: libsangoma_utils.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma_utils.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma_utils.Tpo" -c -o libsangoma_la-libsangoma_utils.lo `test -f 'libsangoma_utils.c' || echo '$(srcdir)/'`libsangoma_utils.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libsangoma_utils.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma_utils.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma_utils.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsangoma_utils.c' object='libsangoma_la-libsangoma_utils.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma_utils.lo `test -f 'libsangoma_utils.c' || echo '$(srcdir)/'`libsangoma_utils.c
libsangoma_la-libsangoma_hwec.lo: libsangoma_hwec.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma_hwec.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo" -c -o libsangoma_la-libsangoma_hwec.lo `test -f 'libsangoma_hwec.c' || echo '$(srcdir)/'`libsangoma_hwec.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma_hwec.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsangoma_hwec.c' object='libsangoma_la-libsangoma_hwec.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libsangoma_hwec.lo `test -f 'libsangoma_hwec.c' || echo '$(srcdir)/'`libsangoma_hwec.c
libsangoma_la-libhpsangoma.lo: libhpsangoma.c
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libhpsangoma.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libhpsangoma.Tpo" -c -o libsangoma_la-libhpsangoma.lo `test -f 'libhpsangoma.c' || echo '$(srcdir)/'`libhpsangoma.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libhpsangoma.Tpo" "$(DEPDIR)/libsangoma_la-libhpsangoma.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libhpsangoma.Tpo"; exit 1; fi

View File

@ -1,7 +1,7 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk/docs
https://www.sangomapbx.com/svn/libsangoma

View File

@ -1,7 +1,7 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk/docs/doxygen
https://www.sangomapbx.com/svn/libsangoma

View File

@ -1,7 +1,7 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk/examples
https://www.sangomapbx.com/svn/libsangoma

View File

@ -1,7 +1,7 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/hptdm_api
https://www.sangomapbx.com/svn/libsangoma

View File

@ -1,7 +1,7 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/hptdm_api/docs
https://www.sangomapbx.com/svn/libsangoma

View File

@ -1,7 +1,7 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/hptdm_api/docs/doxygen
https://www.sangomapbx.com/svn/libsangoma

View File

@ -1,7 +1,7 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/priserver
https://www.sangomapbx.com/svn/libsangoma

View File

@ -689,6 +689,12 @@ static int registry_write_front_end_cfg(HKEY hPortRegistryKey, port_cfg_t *port_
return iReturnCode;
}
iReturnCode = registry_set_integer_value(hPortRegistryKey, "HWEC_CLKSRC", wandev_conf->hwec_conf.clk_src /* is this port the HWEC clock source - WANOPT_NO/WANOPT_YES */);
if(iReturnCode){
return iReturnCode;
}
/* set Media specific values. */
switch(sdla_fe_cfg->media)
{
@ -1073,10 +1079,10 @@ void _LIBSNG_CALL sangoma_reset_port_numbers()
2. for each Card, search Ports (Bus/Slot must match)
3. based on number of installed Ports, set SerialNumbersRange of the Card
This way the "UserWanpipeNumber" can be set to zero and Span numbers will be
seqencial automatically.
This way the WP_REGSTR_USER_SPECIFIED_WANPIPE_NUMBER can be set to zero and Span numbers will be
sequencial automatically.
*/
iRegistryReturnCode = registry_set_integer_value(hKeyTmp, "UserWanpipeNumber", iPortCounter);
iRegistryReturnCode = registry_set_integer_value(hKeyTmp, WP_REGSTR_USER_SPECIFIED_WANPIPE_NUMBER, iPortCounter);
if(iRegistryReturnCode){
continue;
}
@ -1212,6 +1218,32 @@ sangoma_status_t _LIBSNG_CALL sangoma_set_driver_mode_of_all_hw_devices(int driv
* Common Linux & Windows Code
*************************************************************************/
/*************************************************/
/* private functions for accessing wan_udp_hdr_t */
/*************************************************/
/* return POINTER to DATA at offset 'off' */
static unsigned char* sangoma_get_wan_udphdr_data_ptr(wan_udp_hdr_t *wan_udp_ptr, unsigned char off)
{
unsigned char *p_data = &wan_udp_ptr->wan_udphdr_data[0];
p_data += off;
return p_data;
}
/* set a single byte of DATA at offset 'off' */
static unsigned char sangoma_set_wan_udphdr_data_byte(wan_udp_hdr_t *wan_udp_ptr, unsigned char off, unsigned char data)
{
unsigned char *p_data = &wan_udp_ptr->wan_udphdr_data[0];
p_data[off] = data;
return 0;
}
/* return a single byte of DATA at offset 'off' */
static unsigned char sangoma_get_wan_udphdr_data_byte(wan_udp_hdr_t *wan_udp_ptr, unsigned char off)
{
unsigned char *p_data = &wan_udp_ptr->wan_udphdr_data[0];
return p_data[off];
}
/*************************************************/
/************************************************************//**
@ -1826,6 +1858,8 @@ int _LIBSNG_CALL sangoma_readmsg(sng_fd_t fd, void *hdrbuf, int hdrlen, void *da
return -1;
}
wp_api_element.hdr.operation_status = SANG_STATUS_IO_ERROR;
if(DoReadCommand(fd, &wp_api_element)){
/*error*/
DBG_ERR("DoReadCommand() failed! Check messages log.\n");
@ -1877,7 +1911,7 @@ int _LIBSNG_CALL sangoma_readmsg(sng_fd_t fd, void *hdrbuf, int hdrlen, void *da
return -EINVAL;
}
rx_len-=sizeof(wp_api_hdr_t);
rx_len -= sizeof(wp_api_hdr_t);
#endif
return rx_len;
}
@ -2754,7 +2788,7 @@ int _LIBSNG_CALL sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_api_t *tdm
int _LIBSNG_CALL sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_api_t *tdm_api)
{
WANPIPE_API_INIT_CHAN(tdm_api, 0);
/* intentionally NOT initializing chan - caller must do it */
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = WP_API_CMD_ENABLE_HWEC;
return sangoma_cmd_exec(fd,tdm_api);
@ -2762,7 +2796,7 @@ int _LIBSNG_CALL sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_api_t *tdm_api)
int _LIBSNG_CALL sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_api_t *tdm_api)
{
WANPIPE_API_INIT_CHAN(tdm_api, 0);
/* intentionally NOT initializing chan - caller must do it */
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = WP_API_CMD_DISABLE_HWEC;
return sangoma_cmd_exec(fd,tdm_api);
@ -2977,6 +3011,116 @@ int _LIBSNG_CALL sangoma_get_cpld_version(sng_fd_t fd, wanpipe_api_t *tdm_api, u
return err;
}
int _LIBSNG_CALL sangoma_get_aft_customer_id(sng_fd_t fd, unsigned char *out_customer_id)
{
wan_udp_hdr_t wan_udp;
memset(&wan_udp, 0x00, sizeof(wan_udp));
wan_udp.wan_udphdr_command = WANPIPEMON_AFT_CUSTOMER_ID;
wan_udp.wan_udphdr_return_code = SANG_STATUS_UNSUPPORTED_FUNCTION;
wan_udp.wan_udphdr_data_len = 0;
if (sangoma_mgmt_cmd(fd, &wan_udp)) {
return SANG_STATUS_IO_ERROR;
}
if (wan_udp.wan_udphdr_return_code) {
return SANG_STATUS_UNSUPPORTED_FUNCTION;
}
*out_customer_id = sangoma_get_wan_udphdr_data_byte(&wan_udp, 0);
return 0;
}
#ifdef WP_API_FEATURE_FE_RW
int _LIBSNG_CALL sangoma_fe_reg_write(sng_fd_t fd, uint32_t offset, uint8_t data)
{
int chan=0;
wan_udp_hdr_t wan_udp;
sdla_fe_debug_t *fe_debug;
memset(&wan_udp, 0x00, sizeof(wan_udp));
{
int err;
wanpipe_api_t tdm_api;
memset(&tdm_api,0,sizeof(tdm_api));
err=sangoma_get_full_cfg(fd, &tdm_api);
if (err) {
return err;
}
chan=tdm_api.wp_cmd.chan;
if (chan)
chan--;
}
wan_udp.wan_udphdr_command = WAN_FE_SET_DEBUG_MODE;
wan_udp.wan_udphdr_data_len = sizeof(sdla_fe_debug_t);
wan_udp.wan_udphdr_return_code = 0xaa;
fe_debug = (sdla_fe_debug_t*)wan_udp.wan_udphdr_data;
fe_debug->type = WAN_FE_DEBUG_REG;
fe_debug->mod_no = chan;
fe_debug->fe_debug_reg.reg = offset;
fe_debug->fe_debug_reg.value = data;
fe_debug->fe_debug_reg.read = 0;
if (sangoma_mgmt_cmd(fd, &wan_udp)) {
return SANG_STATUS_IO_ERROR;
}
if (wan_udp.wan_udphdr_return_code) {
return SANG_STATUS_UNSUPPORTED_FUNCTION;
}
return 0;
}
int _LIBSNG_CALL sangoma_fe_reg_read(sng_fd_t fd, uint32_t offset, uint8_t *data)
{
int chan=0;
wan_udp_hdr_t wan_udp;
sdla_fe_debug_t *fe_debug;
memset(&wan_udp, 0x00, sizeof(wan_udp));
{
int err;
wanpipe_api_t tdm_api;
memset(&tdm_api,0,sizeof(tdm_api));
err=sangoma_get_full_cfg(fd, &tdm_api);
if (err) {
return err;
}
chan=tdm_api.wp_cmd.chan;
if (chan)
chan--;
}
wan_udp.wan_udphdr_command = WAN_FE_SET_DEBUG_MODE;
wan_udp.wan_udphdr_data_len = sizeof(sdla_fe_debug_t);
wan_udp.wan_udphdr_return_code = 0xaa;
fe_debug = (sdla_fe_debug_t*)wan_udp.wan_udphdr_data;
fe_debug->type = WAN_FE_DEBUG_REG;
fe_debug->mod_no = chan;
fe_debug->fe_debug_reg.reg = offset;
fe_debug->fe_debug_reg.read = 1;
if (sangoma_mgmt_cmd(fd, &wan_udp)) {
return SANG_STATUS_IO_ERROR;
}
if (wan_udp.wan_udphdr_return_code) {
return SANG_STATUS_UNSUPPORTED_FUNCTION;
}
*data = fe_debug->fe_debug_reg.value;
return 0;
}
#endif
int _LIBSNG_CALL sangoma_get_stats(sng_fd_t fd, wanpipe_api_t *tdm_api, wanpipe_chan_stats_t *stats)
{
int err;
@ -3173,6 +3317,7 @@ sng_fd_t _LIBSNG_CALL sangoma_open_driver_ctrl(int port_no)
return sangoma_open_dev_by_name(tmp_fname);
}
int _LIBSNG_CALL sangoma_mgmt_cmd(sng_fd_t fd, wan_udp_hdr_t* wan_udp)
{
int err=0;

View File

@ -377,6 +377,17 @@ typedef enum _sangoma_wait_obj_flags {
SANG_WAIT_OBJ_IS_SIGNALED = 0x400 /* matches GNU extension POLLMSG */
} sangoma_wait_obj_flags_t;
/*
* Note for data format of Input/Output and Bit-order in libsangoma API.
* The bit-order depends on Span/Channel configuration.
*
* TDM_CHAN_VOICE_API - expected input is ulaw/alaw, output is ulaw/alaw,
* TDM_SPAN_VOICE_API - expected input is ulaw/alaw, output is ulaw/alaw
*
* DATA_API - data can be in any format, not bitswapped by AFT hardware
* API - data can be in any format, not bitswapped by AFT hardware
*/
/************************************************************//**
* Device OPEN / CLOSE Functions
***************************************************************/
@ -1257,14 +1268,48 @@ int _LIBSNG_CALL sangoma_get_firmware_version(sng_fd_t fd, wanpipe_api_t *tdm_ap
/*!
\fn int sangoma_get_cpld_version(sng_fd_t fd, wanpipe_api_t *tdm_api, unsigned char *ver)
\brief Get Hardare/CPLD Version
\brief Get AFT CPLD Version
\param fd device file descriptor
\param tdm_api tdm api command structure
\param ver hardware/cpld version number
\param ver AFT CPLD version number
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_get_cpld_version(sng_fd_t fd, wanpipe_api_t *tdm_api, unsigned char *ver);
/*!
\fn int _LIBSNG_CALL sangoma_get_aft_customer_id(sng_fd_t fd, unsigned char *out_customer_id)
\brief Get Customer-specific ID from AFT hardware, the default value is 0xFF, any change
requires special arrangement with Sangoma Technologies.
\param fd device file descriptor
\param out_customer_id AFT Customer ID
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_get_aft_customer_id(sng_fd_t fd, unsigned char *out_customer_id);
#ifdef WP_API_FEATURE_FE_RW
/*!
\fn int sangoma_fe_reg_write(sng_fd_t fd, uint32_t offset, uint8_t data)
\brief Write to a front end register
\param fd device file descriptor
\param offset offset of front end register
\param data value to write
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_fe_reg_write(sng_fd_t fd, uint32_t offset, uint8_t data);
/*!
\fn int sangoma_fe_reg_read(sng_fd_t fd, uint32_t offset, uint8_t *data)
\brief Read front end register
\param fd device file descriptor
\param offset offset of front end register
\param data value of the read register
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_fe_reg_read(sng_fd_t fd, uint32_t offset, uint8_t *data);
#endif
/*!
\fn int sangoma_get_stats(sng_fd_t fd, wanpipe_api_t *tdm_api, wanpipe_chan_stats_t *stats)
@ -1273,7 +1318,7 @@ int _LIBSNG_CALL sangoma_get_cpld_version(sng_fd_t fd, wanpipe_api_t *tdm_api, u
\param tdm_api tdm api command structure
\param stats stats structure will be filled with device stats. (Optional, can be left NULL)
\return non-zero = error, 0 = ok
*/
*/
int _LIBSNG_CALL sangoma_get_stats(sng_fd_t fd, wanpipe_api_t *tdm_api, wanpipe_chan_stats_t *stats);
/*!
@ -1452,6 +1497,47 @@ sangoma_status_t _LIBSNG_CALL sangoma_logger_set_logger_level(sng_fd_t fd, wp_lo
#endif /* WP LOGGER FEATURE */
#ifdef WP_API_FEATURE_DRIVER_GAIN
/*!
\fn int sangoma_set_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, floag gain_val)
\brief set driver tx gain for this tdm device
\param fd device file descriptor
\param tdm_api tdm api command structure
\param value txgain (0.0 - 10.0) db
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_set_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, float gain_val);
/*!
\fn int sangoma_set_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, floag gain_val)
\brief set driver rx gain for this tdm device
\param fd device file descriptor
\param tdm_api tdm api command structure
\param value txgain (0.0 - 10.0) db
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_set_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, float gain_val);
/*!
\fn int sangoma_clear_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api)
\brief Clear tx gain from device, set it to 0.0
\param fd device file descriptor
\param tdm_api tdm api command structure
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_clear_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api);
/*!
\fn int sangoma_clear_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api)
\brief Clear rx gain from device, set it to 0.0
\param fd device file descriptor
\param tdm_api tdm api command structure
\return non-zero = error, 0 = ok
*/
int _LIBSNG_CALL sangoma_clear_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api);
#endif
#ifndef LIBSANGOMA_LIGHT
/************************************************************//**
@ -1695,6 +1781,8 @@ int _LIBSNG_CALL sangoma_tdm_set_power_level(sng_fd_t fd, wanpipe_api_t *tdm_api
int _LIBSNG_CALL sangoma_tdm_get_power_level(sng_fd_t fd, wanpipe_api_t *tdm_api);
#ifdef WP_API_FEATURE_LIBSNG_HWEC
/*!
@ -1827,10 +1915,10 @@ sangoma_status_t _LIBSNG_CALL sangoma_hwec_enable(char *device_name, unsigned i
\brief Force AFT FPGA to bypass the echo canceller.
This command effectively disables echo cancellation since
data will not flowing through the ec chip.
data will not be flowing through the ec chip.
Data will not be modified by the echo canceller.
This command is recommened for fast disabling of Echo Cancelation.
Note: sangoma_tdm_disable_hwec() function can be use to achive
Note: sangoma_tdm_disable_hwec() function can be used to achive
the same functionality based on file descriptor versus
channel map.

View File

@ -0,0 +1,145 @@
/*******************************************************************************//**
* \file libsangoma.c
* \brief Wanpipe API Code Library for Sangoma AFT T1/E1/Analog/BRI/Serial hardware
*
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
* David Rokhvarg <davidr@sangoma.com>
* Michael Jerris <mike@jerris.com>
* Anthony Minessale II <anthmct@yahoo.com>
*
* Copyright: (c) 2005-2008 Nenad Corbic <ncorbic@sangoma.com>
*
* * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * 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.
* * Neither the name of the Sangoma Technologies nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY Sangoma Technologies ``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 Sangoma Technologies 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
*******************************************************************************
*/
#include "libsangoma-pvt.h"
#include "libsangoma.h"
#include "g711.h"
#include "math.h"
#ifdef WP_API_FEATURE_DRIVER_GAIN
static __inline int sangoma_set_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, int cmd, float gain_val)
{
unsigned char *gain;
int x;
float gain_lin = powf(10.0, gain_val / 20.0);
int i;
int coding=-1;
{
wanpipe_api_t tmp_tdm_api;
memset(&tmp_tdm_api,0,sizeof(wanpipe_api_t));
coding = sangoma_get_hw_coding(fd,&tmp_tdm_api);
if (coding < 0) {
return coding;
}
}
WANPIPE_API_INIT_CHAN(tdm_api, 0);
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = cmd;
gain = tdm_api->wp_cmd.data;
tdm_api->wp_cmd.data_len=256;
switch (coding) {
case WP_MULAW:
for (i = 0; i < 256; i++) {
if (gain_val) {
x = (int) (((float) ulaw_to_linear(i)) * gain_lin);
if (x > 32767) x = 32767;
if (x < -32767) x = -32767;
gain[i] = linear_to_ulaw(x);
} else {
gain[i] = i;
}
}
break;
case WP_ALAW:
for (i = 0; i < 256; i++) {
if (gain_val) {
x = (int) (((float) alaw_to_linear(i)) * gain_lin);
if (x > 32767) x = 32767;
if (x < -32767) x = -32767;
gain[i] = linear_to_alaw(x);
} else {
gain[i] = i;
}
}
break;
default:
return -1;
}
#if 0
{
int i;
printf("Data size = %i\n",sizeof(tdm_api->wp_cmd.data));
for (i=0;i<256;i++) {
printf("Set Gain Coding=%i: [%03i]=%03i\n", coding, i, gain[i]);
}
}
#endif
return sangoma_cmd_exec(fd, tdm_api);
}
int _LIBSNG_CALL sangoma_set_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, float gain_val)
{
return sangoma_set_gain(fd,tdm_api, WP_API_CMD_SET_TX_GAINS, gain_val);
}
int _LIBSNG_CALL sangoma_set_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api, float gain_val)
{
return sangoma_set_gain(fd,tdm_api,WP_API_CMD_SET_RX_GAINS,gain_val);
}
int _LIBSNG_CALL sangoma_clear_tx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api)
{
WANPIPE_API_INIT_CHAN(tdm_api, 0);
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = WP_API_CMD_CLEAR_TX_GAINS;
return sangoma_cmd_exec(fd, tdm_api);
}
int _LIBSNG_CALL sangoma_clear_rx_gain(sng_fd_t fd, wanpipe_api_t *tdm_api)
{
WANPIPE_API_INIT_CHAN(tdm_api, 0);
SANGOMA_INIT_TDM_API_CMD_RESULT(*tdm_api);
tdm_api->wp_cmd.cmd = WP_API_CMD_CLEAR_RX_GAINS;
return sangoma_cmd_exec(fd, tdm_api);
}
#endif

View File

@ -1,13 +1,13 @@
K 25
svn:wc:ra_dav:version-url
V 43
/svn/libsangoma/!svn/ver/292/trunk/sample_c
/svn/libsangoma/!svn/ver/299/trunk/sample_c
END
lib_api.c
K 25
svn:wc:ra_dav:version-url
V 53
/svn/libsangoma/!svn/ver/289/trunk/sample_c/lib_api.c
/svn/libsangoma/!svn/ver/299/trunk/sample_c/lib_api.c
END
sample-doxygen.config
K 25
@ -19,7 +19,7 @@ sample.c
K 25
svn:wc:ra_dav:version-url
V 52
/svn/libsangoma/!svn/ver/292/trunk/sample_c/sample.c
/svn/libsangoma/!svn/ver/299/trunk/sample_c/sample.c
END
sources
K 25
@ -31,7 +31,7 @@ lib_api.h
K 25
svn:wc:ra_dav:version-url
V 53
/svn/libsangoma/!svn/ver/289/trunk/sample_c/lib_api.h
/svn/libsangoma/!svn/ver/299/trunk/sample_c/lib_api.h
END
Makefile.Linux
K 25

View File

@ -1,14 +1,14 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk/sample_c
https://www.sangomapbx.com/svn/libsangoma
2010-06-17T18:02:18.733671Z
292
2010-08-13T22:34:32.754036Z
299
ncorbic
has-props
@ -32,10 +32,10 @@ file
2010-06-14T20:01:26.000000Z
0d8197d3f408802760d39c2c5ef70299
2010-06-15T00:59:38.715189Z
289
2010-08-13T21:40:10.000000Z
59948395132a296c50cbb7ff1e14da23
2010-08-13T22:34:32.754036Z
299
ncorbic
sample-doxygen.config
@ -56,10 +56,10 @@ file
2010-06-17T18:13:17.000000Z
c291876c4c6d01386787a8ca925c2363
2010-06-17T18:02:18.733671Z
292
2010-08-13T21:40:10.000000Z
9a26d40d7a66a72f05e24e068fa9f982
2010-08-13T22:34:32.754036Z
299
ncorbic
sources
@ -80,10 +80,10 @@ file
2010-06-14T20:01:44.000000Z
2226e4aee423aa808e5002b1c95e20eb
2010-06-15T00:59:38.715189Z
289
2010-08-13T21:40:10.000000Z
9aa9d412a59978edf49a9e1287629af9
2010-08-13T22:34:32.754036Z
299
ncorbic
Makefile.Linux

View File

@ -30,6 +30,17 @@ int tx_delay=0;
int tx_data=-1;
int buffer_multiplier=0;
int fe_read_cmd=0;
uint32_t fe_read_reg=0;
int fe_write_cmd=0;
uint32_t fe_write_reg=0;
uint32_t fe_write_data=0;
float rx_gain=0;
float tx_gain=0;
int rx_gain_cmd=0;
int tx_gain_cmd=0;
unsigned char tx_file[WAN_IFNAME_SZ];
unsigned char rx_file[WAN_IFNAME_SZ];
@ -363,8 +374,36 @@ int init_args(int argc, char *argv[])
rbs_events = 1;
}else if(!strcmp(argv[i],"-rx2tx")){
rx2tx = 1;
}else if(!strcmp(argv[i],"-fe_reg_read")) {
if (i+1 > argc-1){
printf("ERROR: Invalid 'flush_period' value!\n");
}else{
fe_read_cmd=1;
sscanf(argv[i+1],"%x",(uint32_t*)&fe_read_reg);
}
}else if(!strcmp(argv[i],"-fe_reg_write")) {
if (i+2 > argc-1){
printf("ERROR: Invalid 'flush_period' value!\n");
}else{
fe_write_cmd=1;
sscanf(argv[i+1],"%x",(uint32_t*)&fe_write_reg);
sscanf(argv[i+2],"%x",(uint32_t*)&fe_write_data);
}
}else if (!strcmp(argv[i],"-rx_gain")) {
if (i+1 > argc-1){
printf("ERROR: Invalid 'rx_gain' value!\n");
}else{
rx_gain_cmd=1;
sscanf(argv[i+1],"%f",&rx_gain);
}
}else if (!strcmp(argv[i],"-tx_gain")) {
if (i+1 > argc-1){
printf("ERROR: Invalid 'tx_gain' value!\n");
}else{
tx_gain_cmd=1;
sscanf(argv[i+1],"%f",&tx_gain);
}
}
}
if (!wanpipe_port_no || !wanpipe_if_no){

View File

@ -51,6 +51,17 @@ extern int stats_period;
extern int hdlc_repeat;
extern int buffer_multiplier;
extern int fe_read_cmd;
extern uint32_t fe_read_reg;
extern int fe_write_cmd;
extern uint32_t fe_write_reg;
extern uint32_t fe_write_data;
extern float rx_gain;
extern float tx_gain;
extern int rx_gain_cmd;
extern int tx_gain_cmd;
extern unsigned char tx_file[WAN_IFNAME_SZ];
extern unsigned char rx_file[WAN_IFNAME_SZ];

View File

@ -521,6 +521,39 @@ int handle_tdm_event(uint32_t dev_index)
return 0;
}
int handle_fe_rw (void)
{
sng_fd_t dev_fd = sangoma_wait_obj_get_fd(sangoma_wait_objects[0]);
uint8_t data=0;
int err;
if (fe_read_cmd) {
err=sangoma_fe_reg_read(dev_fd,fe_read_reg,&data);
if (err) {
fprintf(stderr,"Error, sangoma_fe_reg_read failed %i\n",err);
return err;
}
printf("FE READ Reg=0x%04X Data=%02X\n", fe_read_reg,data);
}
if (fe_write_cmd) {
printf("FE WRITE Reg=0x%04X Data=%02X\n", fe_write_reg,fe_write_data);
err=sangoma_fe_reg_write(dev_fd,fe_write_reg,fe_write_data);
if (err) {
fprintf(stderr,"Error, sangoma_fe_reg_write failed %i\n",err);
return err;
}
}
return 0;
}
/*!
\fn void handle_span_chan(int open_device_counter)
\brief Write data buffer into a file
@ -772,6 +805,20 @@ int open_sangoma_device()
}
}
if (rx_gain_cmd) {
printf("Setting rx gain : %f\n", rx_gain);
if (sangoma_set_rx_gain(dev_fd,&tdm_api,rx_gain)) {
return 1;
}
}
if (tx_gain_cmd) {
printf("Setting tx gain : %f\n", rx_gain);
if (sangoma_set_tx_gain(dev_fd,&tdm_api,tx_gain)) {
return 1;
}
}
if(set_codec_slinear || usr_period || set_codec_none){
/* display new configuration AFTER it was changed */
if((err=sangoma_get_full_cfg(dev_fd, &tdm_api))){
@ -908,8 +955,14 @@ int __cdecl main(int argc, char* argv[])
}
}
if (fe_read_cmd || fe_write_cmd) {
handle_fe_rw();
goto done;
}
handle_span_chan(1 /* handle a single device */);
done:
/* returned from main loop, do the cleanup before exiting: */
cleanup();

View File

@ -30,6 +30,17 @@ int tx_delay=0;
int tx_data=-1;
int buffer_multiplier=0;
int fe_read_cmd=0;
uint32_t fe_read_reg=0;
int fe_write_cmd=0;
uint32_t fe_write_reg=0;
uint32_t fe_write_data=0;
float rx_gain=0;
float tx_gain=0;
int rx_gain_cmd=0;
int tx_gain_cmd=0;
unsigned char tx_file[WAN_IFNAME_SZ];
unsigned char rx_file[WAN_IFNAME_SZ];
@ -363,8 +374,36 @@ int init_args(int argc, char *argv[])
rbs_events = 1;
}else if(!strcmp(argv[i],"-rx2tx")){
rx2tx = 1;
}else if(!strcmp(argv[i],"-fe_reg_read")) {
if (i+1 > argc-1){
printf("ERROR: Invalid 'flush_period' value!\n");
}else{
fe_read_cmd=1;
sscanf(argv[i+1],"%x",(uint32_t*)&fe_read_reg);
}
}else if(!strcmp(argv[i],"-fe_reg_write")) {
if (i+2 > argc-1){
printf("ERROR: Invalid 'flush_period' value!\n");
}else{
fe_write_cmd=1;
sscanf(argv[i+1],"%x",(uint32_t*)&fe_write_reg);
sscanf(argv[i+2],"%x",(uint32_t*)&fe_write_data);
}
}else if (!strcmp(argv[i],"-rx_gain")) {
if (i+1 > argc-1){
printf("ERROR: Invalid 'rx_gain' value!\n");
}else{
rx_gain_cmd=1;
sscanf(argv[i+1],"%f",&rx_gain);
}
}else if (!strcmp(argv[i],"-tx_gain")) {
if (i+1 > argc-1){
printf("ERROR: Invalid 'tx_gain' value!\n");
}else{
tx_gain_cmd=1;
sscanf(argv[i+1],"%f",&tx_gain);
}
}
}
if (!wanpipe_port_no || !wanpipe_if_no){

View File

@ -51,6 +51,17 @@ extern int stats_period;
extern int hdlc_repeat;
extern int buffer_multiplier;
extern int fe_read_cmd;
extern uint32_t fe_read_reg;
extern int fe_write_cmd;
extern uint32_t fe_write_reg;
extern uint32_t fe_write_data;
extern float rx_gain;
extern float tx_gain;
extern int rx_gain_cmd;
extern int tx_gain_cmd;
extern unsigned char tx_file[WAN_IFNAME_SZ];
extern unsigned char rx_file[WAN_IFNAME_SZ];

View File

@ -521,6 +521,39 @@ int handle_tdm_event(uint32_t dev_index)
return 0;
}
int handle_fe_rw (void)
{
sng_fd_t dev_fd = sangoma_wait_obj_get_fd(sangoma_wait_objects[0]);
uint8_t data=0;
int err;
if (fe_read_cmd) {
err=sangoma_fe_reg_read(dev_fd,fe_read_reg,&data);
if (err) {
fprintf(stderr,"Error, sangoma_fe_reg_read failed %i\n",err);
return err;
}
printf("FE READ Reg=0x%04X Data=%02X\n", fe_read_reg,data);
}
if (fe_write_cmd) {
printf("FE WRITE Reg=0x%04X Data=%02X\n", fe_write_reg,fe_write_data);
err=sangoma_fe_reg_write(dev_fd,fe_write_reg,fe_write_data);
if (err) {
fprintf(stderr,"Error, sangoma_fe_reg_write failed %i\n",err);
return err;
}
}
return 0;
}
/*!
\fn void handle_span_chan(int open_device_counter)
\brief Write data buffer into a file
@ -772,6 +805,20 @@ int open_sangoma_device()
}
}
if (rx_gain_cmd) {
printf("Setting rx gain : %f\n", rx_gain);
if (sangoma_set_rx_gain(dev_fd,&tdm_api,rx_gain)) {
return 1;
}
}
if (tx_gain_cmd) {
printf("Setting tx gain : %f\n", rx_gain);
if (sangoma_set_tx_gain(dev_fd,&tdm_api,tx_gain)) {
return 1;
}
}
if(set_codec_slinear || usr_period || set_codec_none){
/* display new configuration AFTER it was changed */
if((err=sangoma_get_full_cfg(dev_fd, &tdm_api))){
@ -908,8 +955,14 @@ int __cdecl main(int argc, char* argv[])
}
}
if (fe_read_cmd || fe_write_cmd) {
handle_fe_rw();
goto done;
}
handle_span_chan(1 /* handle a single device */);
done:
/* returned from main loop, do the cleanup before exiting: */
cleanup();

View File

@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 45
/svn/libsangoma/!svn/ver/291/trunk/sample_cpp
/svn/libsangoma/!svn/ver/294/trunk/sample_cpp
END
sangoma_port.h
K 25
@ -9,23 +9,23 @@ svn:wc:ra_dav:version-url
V 60
/svn/libsangoma/!svn/ver/278/trunk/sample_cpp/sangoma_port.h
END
sources
K 25
svn:wc:ra_dav:version-url
V 53
/svn/libsangoma/!svn/ver/291/trunk/sample_cpp/sources
END
sample.vcproj
K 25
svn:wc:ra_dav:version-url
V 59
/svn/libsangoma/!svn/ver/248/trunk/sample_cpp/sample.vcproj
END
sources
K 25
svn:wc:ra_dav:version-url
V 53
/svn/libsangoma/!svn/ver/291/trunk/sample_cpp/sources
END
sangoma_interface.cpp
K 25
svn:wc:ra_dav:version-url
V 67
/svn/libsangoma/!svn/ver/288/trunk/sample_cpp/sangoma_interface.cpp
/svn/libsangoma/!svn/ver/294/trunk/sample_cpp/sangoma_interface.cpp
END
sample_linux_compat.h
K 25

View File

@ -1,14 +1,14 @@
8
dir
293
308
https://www.sangomapbx.com/svn/libsangoma/trunk/sample_cpp
https://www.sangomapbx.com/svn/libsangoma
2010-06-16T16:45:22.358768Z
291
2010-07-07T16:06:03.386686Z
294
davidr
has-props
@ -38,6 +38,18 @@ f3310f38d215e71ef19ee59d33c0c458
278
davidr
sources
file
2010-06-17T04:11:26.000000Z
1b8b6c522d904f33d986cb1c667d37e6
2010-06-16T16:45:22.358768Z
291
davidr
sample.vcproj
file
@ -51,28 +63,16 @@ file
davidr
has-props
sources
file
2010-06-17T04:11:26.000000Z
1b8b6c522d904f33d986cb1c667d37e6
2010-06-16T16:45:22.358768Z
291
davidr
sangoma_interface.cpp
file
2010-06-15T17:24:48.000000Z
24af2258baf4305756df5b3f7f0ead6b
2010-06-14T19:08:36.321535Z
288
2010-08-12T23:16:44.000000Z
4a1150aa704318ece5224e3411b6847a
2010-07-07T16:06:03.386686Z
294
davidr
sample_linux_compat.h

View File

@ -855,7 +855,6 @@ int sangoma_interface::get_interface_configuration(if_cfg_t *wanif_conf_ptr)
void sangoma_interface::get_api_driver_version (PDRIVER_VERSION version)
{
int err;
SANGOMA_INIT_TDM_API_CMD(wp_api);
@ -864,30 +863,18 @@ void sangoma_interface::get_api_driver_version (PDRIVER_VERSION version)
ERR_IFACE("Error: command READ_CODE_VERSION failed!\n");
return;
}
INFO_IFACE("\nAPI version\t: %d,%d,%d,%d\n",
version->major, version->minor, version->minor1, version->minor2);
INFO_IFACE("\n");
INFO_IFACE("Command READ_CODE_VERSION was successful.\n");
}
void sangoma_interface::get_card_customer_id(u_int8_t *customer_id)
{
wan_udp.wan_udphdr_command = WANPIPEMON_AFT_CUSTOMER_ID;
wan_udp.wan_udphdr_data_len = 0;
int err;
DO_COMMAND(wan_udp);
if(wan_udp.wan_udphdr_return_code){
ERR_IFACE("Error: command SIOC_AFT_CUSTOMER_ID failed!\n");
err = sangoma_get_aft_customer_id(sangoma_dev, customer_id);
if (err) {
ERR_IFACE("Error: sangoma_get_aft_customer_id() failed! err: %s (%d)\n",
SDLA_DECODE_SANG_STATUS(err), err);
return;
}
*customer_id = get_wan_udphdr_data_byte(0);
INFO_IFACE("\nCard Customer ID\t: 0x%02X\n", *customer_id);
INFO_IFACE("Command SIOC_AFT_CUSTOMER_ID was successful.\n");
}
int sangoma_interface::get_open_handles_counter()

View File

@ -855,7 +855,6 @@ int sangoma_interface::get_interface_configuration(if_cfg_t *wanif_conf_ptr)
void sangoma_interface::get_api_driver_version (PDRIVER_VERSION version)
{
int err;
SANGOMA_INIT_TDM_API_CMD(wp_api);
@ -864,30 +863,18 @@ void sangoma_interface::get_api_driver_version (PDRIVER_VERSION version)
ERR_IFACE("Error: command READ_CODE_VERSION failed!\n");
return;
}
INFO_IFACE("\nAPI version\t: %d,%d,%d,%d\n",
version->major, version->minor, version->minor1, version->minor2);
INFO_IFACE("\n");
INFO_IFACE("Command READ_CODE_VERSION was successful.\n");
}
void sangoma_interface::get_card_customer_id(u_int8_t *customer_id)
{
wan_udp.wan_udphdr_command = WANPIPEMON_AFT_CUSTOMER_ID;
wan_udp.wan_udphdr_data_len = 0;
int err;
DO_COMMAND(wan_udp);
if(wan_udp.wan_udphdr_return_code){
ERR_IFACE("Error: command SIOC_AFT_CUSTOMER_ID failed!\n");
err = sangoma_get_aft_customer_id(sangoma_dev, customer_id);
if (err) {
ERR_IFACE("Error: sangoma_get_aft_customer_id() failed! err: %s (%d)\n",
SDLA_DECODE_SANG_STATUS(err), err);
return;
}
*customer_id = get_wan_udphdr_data_byte(0);
INFO_IFACE("\nCard Customer ID\t: 0x%02X\n", *customer_id);
INFO_IFACE("Command SIOC_AFT_CUSTOMER_ID was successful.\n");
}
int sangoma_interface::get_open_handles_counter()

View File

@ -28,5 +28,5 @@ $(SDK_LIB_PATH)\SetupApi.lib \
$(SDK_LIB_PATH)\Advapi32.lib \
$(SANG_WP_DEVEL)\wanpipe_common\wantools\wanec_apilib\$(O)\waneclib.lib
SOURCES=libsangoma.c libsangoma.rc libsangoma_hwec.c
SOURCES=libsangoma.c libsangoma.rc libsangoma_hwec.c libsangoma_utils.c

View File

@ -1,5 +1,5 @@
Package: wanpipe
Version: 3.5.14-0
Version: 3.5.15-0
Section: networking
Priority: optional
Architecture: all

View File

@ -1,5 +1,6 @@
#!/bin/sh
if [ ! -e patches ]; then
echo "Error: This script must be run from wanpipe/ directory!"
exit 1
@ -23,16 +24,21 @@ W_H_FILES=`find $LWH_DIR -name "*.h" | xargs`
for file_raw in $W_H_FILES
do
file=${file_raw##*\/}
if [ $file = "wanrouter.h" ]; then
continue;
fi
if [ -e $KWH_DIR/$file ]; then
rm -f $KWH_DIR/$file
fi
if [ $superuser = "YES" ]; then
if [ -e $KWH_INC_DIR/$file ]; then
rm -f $KWH_INC_DIR/$file
rm -f $KWH_INC_DIR/$file
fi
if [ -e $WH_INC_DIR/$file ]; then
rm -f $WH_INC_DIR/$file
rm -f $WH_INC_DIR/$file
fi
fi
done
@ -43,3 +49,4 @@ if [ $superuser = "YES" ]; then
\mkdir -p $WH_INC_DIR
fi
fi

View File

@ -92,6 +92,10 @@
/* compile AFT Serial code */
# define CONFIG_PRODUCT_WANPIPE_AFT_SERIAL
/* compile AFT Analog (2/4 FXO or 2/4 FXS) code */
# define CONFIG_PRODUCT_WANPIPE_AFT_B800
# define WAN_IS_TASKQ_SCHEDULE 1
/* compile TDM Voice API in wanpipe_tdm_api.c */

View File

@ -11,7 +11,7 @@
# include "wanpipe_defines.h"
# include "wanpipe_common.h"
# include "wanpipe_cfg.h"
# include "wanrouter.h"
# include "wanpipe_wanrouter.h"
# include "wanpipe_api_iface.h"
# include "sdlasfm.h"
# include "sdla_front_end.h"

View File

@ -17,9 +17,9 @@
# define __SDLA_USB_REMORA_H
#ifdef __SDLA_REMORA_SRC
# define EXTERN
# define WP_EXTERN
#else
# define EXTERN extern
# define WP_EXTERN extern
#endif
/*******************************************************************************
@ -110,5 +110,5 @@
*******************************************************************************/
extern int wp_usb_remora_iface_init(void*, void*);
#undef EXTERN
#undef WP_EXTERN
#endif /* __SDLA_USB_REMORA_H */

View File

@ -88,14 +88,14 @@
#define AFT_A600_SUBSYS_VENDOR 0xA600 /* AFT-600 Series board */
#define AFT_B601_SUBSYS_VENDOR 0xA601 /* AFT-600 Series board */
/* DAVIDY change to B800 ID when B800 ID is ready */
#define AFT_B800_SUBSYS_VENDOR 0xB800 /* AFT-800 Series board */
#define AFT_B800_SUBSYS_VENDOR 0xB800 /* AFT-B800 2/4 FXO or 2/4 FXS board */
#define AFT_2SERIAL_V35X21_SUBSYS_VENDOR 0xA031 /* AFT-A142 2 Port V.35/X.21 board */
#define AFT_4SERIAL_V35X21_SUBSYS_VENDOR 0xA032 /* AFT-A144 4 Port V.35/X.21 board */
#define AFT_2SERIAL_RS232_SUBSYS_VENDOR 0xA033 /* AFT-A142 2 Port RS232 board */
#define AFT_4SERIAL_RS232_SUBSYS_VENDOR 0xA034 /* AFT-A144 4 Port RS232 board */
#define AFT_CORE_ID_MASK 0x00FF
#define AFT_CORE_REV_MASK 0xFF00
#define AFT_CORE_REV_SHIFT 8

View File

@ -49,7 +49,7 @@
#include "wanpipe_common.h"
#include "wanpipe_events.h"
#include "wanpipe_cfg.h"
#include "wanrouter.h"
#include "wanpipe_wanrouter.h"
#if defined(__WINDOWS__) && defined (__KERNEL__)

View File

@ -89,6 +89,8 @@ typedef int sng_fd_t;
#if defined(__WINDOWS__)
#define WP_API_FEATURE_LIBSNG_HWEC 1
#endif
#define WP_API_FEATURE_DRIVER_GAIN 1
#define WP_API_FEATURE_FE_RW 1
/*!
\enum WANPIPE_IOCTL_CODE
@ -329,7 +331,7 @@ enum wanpipe_api_events
WP_API_EVENT_POLARITY_REVERSE, /*!< */
WP_API_EVENT_FAX_DETECT, /*!< Enable Disable HW Fax Detection */
WP_API_EVENT_SET_RM_TX_GAIN, /*!< Set Tx Gain for FXO/FXS */
WP_API_EVENT_SET_RM_RX_GAIN /*!< Set Rx Gain for FXO/FXS */
WP_API_EVENT_SET_RM_RX_GAIN, /*!< Set Rx Gain for FXO/FXS */
};

View File

@ -50,6 +50,12 @@ For example: a number of DLCIs. */
#define LOWEST_VALID_DLCI 16
/********** end of sprotocol.dll definitions ************/
/* string definitions shared with the Driver via Registry */
#define WP_REGSTR_USER_SPECIFIED_WANPIPE_NUMBER "UserWanpipeNumber"
#pragma warning( disable : 4200 ) /* zero-sized array in struct */
#endif/* __WINDOWS__ */
@ -564,12 +570,12 @@ typedef struct x25_parms_struct {
unsigned short CCITT_facilities_supported;
unsigned short non_X25_facilities_supported;
unsigned short CCITT_compatibility;
unsigned short T10_T20;
unsigned short T11_T21;
unsigned short T12_T22;
unsigned short T13_T23;
unsigned short T16_T26;
unsigned short T28;
unsigned int T10_T20;
unsigned int T11_T21;
unsigned int T12_T22;
unsigned int T13_T23;
unsigned int T16_T26;
unsigned int T28;
unsigned short R10_R20;
unsigned short R12_R22;
unsigned short R13_R23;

View File

@ -2617,7 +2617,7 @@ static __inline unsigned int wan_netif_flags(netdevice_t* dev)
static __inline int wan_netif_mcount(netdevice_t* dev)
{
#if defined(__LINUX__)
return dev->mc_count;
return netdev_mc_count(dev);
#elif defined(__FreeBSD__)
return dev->if_amcount;
#elif defined(__OpenBSD__) || defined(__NetBSD__)

View File

@ -67,6 +67,23 @@
#define WAN_DEV_NAME(device) device->dev.bus_id
#endif
/////////////2.6.35//////////////////////////////
#ifndef netdev_mc_count
# define netdev_mc_count(dev) dev->mc_count
#endif
#ifdef CONFIG_RPS
# define WAN_MC_LIST_ADDR(mclist) mclist->addr
# define WAN_SK_SLEEP(sk) sk_sleep(sk)
#else
# define WAN_MC_LIST_ADDR(mclist) mclist->dmi_addr
# define WAN_SK_SLEEP(sk) sk->sk_sleep
#endif
////////////////////////////////////////////////
//////////////////////
#ifdef HAVE_NET_DEVICE_OPS
#define WAN_DECLARE_NETDEV_OPS(_ops_name) static struct net_device_ops _ops_name = {0};
@ -149,22 +166,6 @@ typedef int (wan_get_info_t)(char *, char **, off_t, int);
#define IRQF_SHARED SA_SHIRQ
#endif
static inline int wp_linux_strncasecmp(const char *s1, const char *s2, size_t n)
{
if (n == 0)
return 0;
while (n-- != 0 && tolower(*s1) == tolower(*s2))
{
if (n == 0 || *s1 == '\0' || *s2 == '\0')
break;
s1++;
s2++;
}
return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2);
}
/*==========================================================================
KERNEL 2.6.
*==========================================================================*/
@ -760,6 +761,22 @@ typedef struct wan_msghdr {
#endif
}wan_msghdr_t;
static inline int wp_linux_strncasecmp(const char *s1, const char *s2, size_t n)
{
if (n == 0)
return 0;
while (n-- != 0 && tolower(*s1) == tolower(*s2))
{
if (n == 0 || *s1 == '\0' || *s2 == '\0')
break;
s1++;
s2++;
}
return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2);
}
#pragma pack()
#if defined(__KERNEL__)

View File

@ -10,7 +10,7 @@
#define WANPIPE_COMPANY "Sangoma Technologies Inc"
/********** LINUX **********/
#define WANPIPE_VERSION "3.5.14"
#define WANPIPE_VERSION "3.5.15"
#define WANPIPE_SUB_VERSION "0"
#define WANPIPE_LITE_VERSION "1.1.1"
@ -42,7 +42,7 @@
# define WANPIPE_VERSION_MAJOR 6 /* major upgrade */
# define WANPIPE_VERSION_MINOR 0
# define WANPIPE_VERSION_MINOR1 30 /* frozen feature number */
# define WANPIPE_VERSION_MINOR1 31 /* frozen feature number */
# define WANPIPE_VERSION_MINOR2 0 /* patch number for WANPIPE_VERSION_MINOR1 */
# undef VER_PRODUCTVERSION
@ -50,9 +50,9 @@
# undef VER_PRODUCTNAME_STR
# undef VER_COMPANYNAME_STR
# define VER_PRODUCTVERSION 6,0,30,0
# define VER_PRODUCTVERSION_STR "6.0.30.0"
# define __BUILDDATE__ June 22, 2010
# define VER_PRODUCTVERSION 6,0,31,0
# define VER_PRODUCTVERSION_STR "6.0.31.0"
# define __BUILDDATE__ July 6, 2010
# define VER_COMPANYNAME_STR "Sangoma Technologies Corporation"
# define VER_LEGALCOPYRIGHT_YEARS "1984-2010"
@ -63,7 +63,7 @@
# undef WANPIPE_VERSION_BETA
# undef WANPIPE_SUB_VERSION
# define WANPIPE_VERSION_Windows "6.0.30"
# define WANPIPE_VERSION_Windows "6.0.31"
# define WANPIPE_SUB_VERSION_Windows "0"
# define WANPIPE_VERSION_BETA_Windows 0

View File

@ -0,0 +1,483 @@
/*****************************************************************************
* wanpipe_wanrouter.h Definitions for the WAN Multiprotocol Router Module.
* This module provides API and common services for WAN Link
* Drivers and is completely hardware-independent.
*
* Author: Nenad Corbic <ncorbic@sangoma.com>
* Alex Feldman <al.feldman@sangoma.com>
* David Rokhvarg <davidr@sangoma.com>
* Gideon Hack
* Additions: Arnaldo Melo
*
* Copyright: (c) 1995-2000 Sangoma Technologies Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
* ============================================================================
* Nov 27, 2007 David Rokhvarg Implemented functions/definitions for
* Sangoma MS Windows Driver and API.
*
* May 25, 2001 Alex Feldman Added T1/E1 support (TE1).
* Jul 21, 2000 Nenad Corbic Added WAN_FT1_READY State
* Feb 24, 2000 Nenad Corbic Added support for socket based x25api
* Jan 28, 2000 Nenad Corbic Added support for the ASYNC protocol.
* Oct 04, 1999 Nenad Corbic Updated for 2.1.0 release
* Jun 02, 1999 Gideon Hack Added support for the S514 adapter.
* May 23, 1999 Arnaldo Melo Added local_addr to wanif_conf_t
* WAN_DISCONNECTING state added
* Jul 20, 1998 David Fong Added Inverse ARP options to 'wanif_conf_t'
* Jun 12, 1998 David Fong Added Cisco HDLC support.
* Dec 16, 1997 Jaspreet Singh Moved 'enable_IPX' and 'network_number' to
* 'wanif_conf_t'
* Dec 05, 1997 Jaspreet Singh Added 'pap', 'chap' to 'wanif_conf_t'
* Added 'authenticator' to 'wan_ppp_conf_t'
* Nov 06, 1997 Jaspreet Singh Changed Router Driver version to 1.1 from 1.0
* Oct 20, 1997 Jaspreet Singh Added 'cir','bc','be' and 'mc' to 'wanif_conf_t'
* Added 'enable_IPX' and 'network_number' to
* 'wan_device_t'. Also added defines for
* UDP PACKET TYPE, Interrupt test, critical values
* for RACE conditions.
* Oct 05, 1997 Jaspreet Singh Added 'dlci_num' and 'dlci[100]' to
* 'wan_fr_conf_t' to configure a list of dlci(s)
* for a NODE
* Jul 07, 1997 Jaspreet Singh Added 'ttl' to 'wandev_conf_t' & 'wan_device_t'
* May 29, 1997 Jaspreet Singh Added 'tx_int_enabled' to 'wan_device_t'
* May 21, 1997 Jaspreet Singh Added 'udp_port' to 'wan_device_t'
* Apr 25, 1997 Farhan Thawar Added 'udp_port' to 'wandev_conf_t'
* Jan 16, 1997 Gene Kozin router_devlist made public
* Jan 02, 1997 Gene Kozin Initial version (based on wanpipe.h).
*****************************************************************************/
#ifndef _WANPIPE_ROUTER_H
#define _WANPIPE_ROUTER_H
#include "wanpipe_cfg_def.h"
#include "wanpipe_api_hdr.h"
#define ROUTER_NAME "wanrouter" /* in case we ever change it */
#define ROUTER_IOCTL 'W' /* for IOCTL calls */
#define ROUTER_MAGIC 0x524D4157L /* signature: 'WANR' reversed */
#define CHECK_ROUTER_MAGIC(magic) WAN_ASSERT(magic != ROUTER_MAGIC)
/* IOCTL codes for /proc/router/<device> entries (up to 255) */
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
# define ROUTER_SETUP _IOW(ROUTER_IOCTL, 1, wan_conf_t) /* configure device */
# define ROUTER_DOWN _IOWR(ROUTER_IOCTL, 2, wan_conf_t)/* shut down device */
# define ROUTER_STAT _IOW(ROUTER_IOCTL, 3, wan_conf_t) /* get device status */
# define ROUTER_IFNEW _IOW(ROUTER_IOCTL, 4, wan_conf_t) /* add interface */
# define ROUTER_IFDEL _IOW(ROUTER_IOCTL, 5, wan_conf_t) /* del interface */
# define ROUTER_IFNEW_LIP _IOW(ROUTER_IOCTL, 6, wan_conf_t) /* add interface */
# define ROUTER_IFDEL_LIP _IOW(ROUTER_IOCTL, 7, wan_conf_t) /* del interface */
# define ROUTER_IFSTAT _IOW(ROUTER_IOCTL, 8, wan_conf_t) /* get interface status */
# define ROUTER_DEBUGGING _IOW(ROUTER_IOCTL, 9, wan_conf_t)/* get interface status */
# define ROUTER_VER _IOWR(ROUTER_IOCTL, 10, wan_conf_t) /* get router version */
# define ROUTER_PROCFS _IOWR(ROUTER_IOCTL, 11, wan_conf_t) /* get procfs info */
# define ROUTER_DEBUG_READ _IOWR(ROUTER_IOCTL, 12, wan_conf_t) /* get dbg_msg */
# define ROUTER_USER _IOW(ROUTER_IOCTL, 16, u_int) /* driver specific calls */
# define ROUTER_USER_MAX _IOW(ROUTER_IOCTL, 31, u_int)
# define SIOC_WANPIPE_PIPEMON _IOWR('i', 150, struct ifreq) /* get monitor statistics */
# define SIOC_WANPIPE_DEVICE _IOWR('i', 151, struct ifreq) /* set generic device */
# define SIOC_WAN_DEVEL_IOCTL _IOWR('i', 152, struct ifreq) /* get hwprobe string */
# define SIOC_WANPIPE_DUMP _IOWR('i', 153, struct ifreq) /* get memdump string (GENERIC) */
# define SIOC_AFT_CUSTOMER_ID _IOWR('i', 154, struct ifreq) /* get AFT customer ID */
# define SIOC_WAN_EC_IOCTL _IOWR('i', 155, struct ifreq) /* Echo Canceller interface */
# define SIOC_WAN_FE_IOCTL _IOWR('i', 156, struct ifreq) /* FE interface */
#else
enum router_ioctls
{
ROUTER_SETUP = ROUTER_IOCTL<<8, /* configure device */
ROUTER_DOWN, /* shut down device */
ROUTER_STAT, /* get device status */
ROUTER_IFNEW, /* add interface */
ROUTER_IFDEL, /* delete interface */
ROUTER_IFSTAT, /* get interface status */
ROUTER_VER, /* get router version */
ROUTER_DEBUGGING, /* get router version */
ROUTER_DEBUG_READ, /* get router version */
ROUTER_IFNEW_LAPB, /* add new lapb interface */
ROUTER_IFDEL_LAPB, /* delete a lapb interface */
ROUTER_IFNEW_X25, /* add new x25 interface */
ROUTER_IFDEL_X25, /* delete a x25 interface */
ROUTER_IFNEW_DSP, /* add new dsp interface */
ROUTER_IFDEL_DSP, /* delete a dsp interface */
ROUTER_IFNEW_LIP,
ROUTER_IFDEL_LIP,
ROUTER_USER, /* driver-specific calls */
ROUTER_USER_MAX = ROUTER_USER+31
};
/* Backward Compatibility for non sangoma drivers */
#ifdef __KERNEL__
# ifndef __LINUX__
# define __LINUX__
# endif
# ifndef WAN_KERNEL
# define WAN_KERNEL
# endif
#endif
#endif
#if defined(__WINDOWS__)
#undef __LINUX__
#endif
#ifndef SPROTOCOL /* conflict with CISCO_IP in wanpipe_sppp.h */
/* identifiers for displaying proc file data for dual port adapters */
#define PROC_DATA_PORT_0 0x8000 /* the data is for port 0 */
#define PROC_DATA_PORT_1 0x8001 /* the data is for port 1 */
/* NLPID for packet encapsulation (ISO/IEC TR 9577) */
#define NLPID_IP 0xCC /* Internet Protocol Datagram */
#define CISCO_IP 0x00 /* Internet Protocol Datagram - CISCO only */
#define NLPID_SNAP 0x80 /* IEEE Subnetwork Access Protocol */
#define NLPID_CLNP 0x81 /* ISO/IEC 8473 */
#define NLPID_ESIS 0x82 /* ISO/IEC 9542 */
#define NLPID_ISIS 0x83 /* ISO/IEC ISIS */
#define NLPID_Q933 0x08 /* CCITT Q.933 */
#endif
/****** Data Types **********************************************************/
/*----------------------------------------------------------------------------
* WAN Link Status Info (for ROUTER_STAT IOCTL).
*/
typedef struct wandev_stat
{
unsigned state; /* link state */
unsigned ndev; /* number of configured interfaces */
/* link/interface configuration */
unsigned connection; /* permanent/switched/on-demand */
unsigned media_type; /* Frame relay/PPP/X.25/SDLC, etc. */
unsigned mtu; /* max. transmit unit for this device */
/* physical level statistics */
unsigned modem_status; /* modem status */
unsigned rx_frames; /* received frames count */
unsigned rx_overruns; /* receiver overrun error count */
unsigned rx_crc_err; /* receive CRC error count */
unsigned rx_aborts; /* received aborted frames count */
unsigned rx_bad_length; /* unexpetedly long/short frames count */
unsigned rx_dropped; /* frames discarded at device level */
unsigned tx_frames; /* transmitted frames count */
unsigned tx_underruns; /* aborted transmissions (underruns) count */
unsigned tx_timeouts; /* transmission timeouts */
unsigned tx_rejects; /* other transmit errors */
/* media level statistics */
unsigned rx_bad_format; /* frames with invalid format */
unsigned rx_bad_addr; /* frames with invalid media address */
unsigned tx_retries; /* frames re-transmitted */
unsigned reserved[16]; /* reserved for future use */
} wandev_stat_t;
/* Front-End status */
enum fe_status {
FE_UNITIALIZED = 0x00,
FE_DISCONNECTED,
FE_CONNECTED,
FE_CONNECTING,
FE_DISCONNECTING
};
#define WAN_FE_UNITIALIZED FE_UNITIALIZED
#define WAN_FE_DISCONNECTED FE_DISCONNECTED
#define WAN_FE_CONNECTED FE_CONNECTED
/* 'modem_status' masks */
#define WAN_MODEM_CTS 0x0001 /* CTS line active */
#define WAN_MODEM_DCD 0x0002 /* DCD line active */
#define WAN_MODEM_DTR 0x0010 /* DTR line active */
#define WAN_MODEM_RTS 0x0020 /* RTS line active */
/* modem status changes */
#define WAN_DCD_HIGH 0x08
#define WAN_CTS_HIGH 0x20
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
typedef struct wan_conf
{
devname_t devname;
void* arg;
} wan_conf_t;
#endif
#if defined(WAN_KERNEL)
# include "wanpipe_includes.h"
# include "wanpipe_debug.h"
# include "wanpipe_common.h"
# include "wanpipe_events.h"
# include "wanpipe_cfg.h"
# if defined (CONFIG_PRODUCT_WANPIPE_TDM_VOICE)
# include "sdla_tdmv.h"
# include "sdla_tdmv_dummy.h"
# endif
#if defined (__LINUX__)
# include <linux/fs.h> /* support for device drivers */
# include <linux/proc_fs.h> /* proc filesystem pragmatics */
# include <linux/inet.h> /* in_aton(), in_ntoa() prototypes */
# ifndef KERNEL_VERSION
# define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
# endif
#endif
#define REG_PROTOCOL_FUNC(str) wan_set_bit(0, (unsigned long*)&str.init)
#define UNREG_PROTOCOL_FUNC(str) wan_clear_bit(0, (unsigned long*)&str.init)
#define IS_PROTOCOL_FUNC(str) wan_test_bit(0, (unsigned long*)&str.init)
#define IS_FUNC_CALL(str, func) \
(IS_PROTOCOL_FUNC(str) && str.func) ? 1 : 0
/****** Kernel Interface ****************************************************/
typedef struct wan_rtp_chan
{
netskb_t *rx_skb;
netskb_t *tx_skb;
u32 rx_ts;
u32 tx_ts;
}wan_rtp_chan_t;
/*----------------------------------------------------------------------------
* WAN device data space.
*/
struct wan_dev_le {
WAN_LIST_ENTRY(wan_dev_le) dev_link;
netdevice_t *dev;
};
#define WAN_DEVLE2DEV(devle) (devle && devle->dev) ? devle->dev : NULL
WAN_LIST_HEAD(wan_dev_lhead, wan_dev_le);
typedef struct wan_device
{
unsigned int magic; /* magic number */
char* name; /* -> WAN device name (ASCIIZ) */
void* priv; /* -> driver private data */
unsigned config_id; /* Configuration ID */
/****** hardware configuration ******/
unsigned ioport; /* adapter I/O port base #1 */
char S514_cpu_no[1]; /* PCI CPU Number */
unsigned char S514_slot_no; /* PCI Slot Number */
int irq; /* interrupt request level */
int dma; /* DMA request level */
unsigned int bps; /* data transfer rate */
unsigned int mtu; /* max physical transmit unit size */
unsigned int udp_port; /* UDP port for management */
unsigned char ttl; /* Time To Live for UDP security */
unsigned int enable_tx_int; /* Transmit Interrupt enabled or not */
char electrical_interface; /* RS-232/V.35, etc. */
char clocking; /* external/internal */
char line_coding; /* NRZ/NRZI/FM0/FM1, etc. */
char station; /* DTE/DCE, primary/secondary, etc. */
char connection; /* permanent/switched/on-demand */
char signalling; /* Signalling RS232 or V35 */
char read_mode; /* read mode: Polling or interrupt */
char new_if_cnt; /* Number of interfaces per wanpipe */
char del_if_cnt; /* Number of times del_if() gets called */
unsigned char piggyback; /* Piggibacking a port */
/****** status and statistics *******/
char state; /* device state */
char api_status; /* device api status */
struct net_device_stats stats; /* interface statistics */
unsigned reserved[16]; /* reserved for future use */
unsigned long critical; /* critical section flag */
wan_spinlock_t lock; /* Support for SMP Locking */
/****** device management methods ***/
int (*setup) (struct wan_device *wandev, wandev_conf_t *conf);
int (*shutdown) (struct wan_device *wandev, wandev_conf_t* conf);
int (*update) (struct wan_device *wandev);
#if defined(__LINUX__)
int (*ioctl) (struct wan_device *wandev, unsigned int cmd, unsigned long arg);
#else
int (*ioctl) (struct wan_device *wandev, u_long cmd, caddr_t arg);
#endif
int (*new_if) (struct wan_device *wandev, netdevice_t *dev, wanif_conf_t *conf);
int (*del_if) (struct wan_device *wandev, netdevice_t *dev);
/****** maintained by the router ****/
#if 0
struct wan_device* next; /* -> next device */
netdevice_t* dev; /* list of network interfaces */
#endif
WAN_LIST_ENTRY(wan_device) next; /* -> next device */
struct wan_dev_lhead dev_head;
wan_spinlock_t dev_head_lock;
unsigned ndev; /* number of interfaces */
#if defined(__LINUX__)
struct proc_dir_entry *dent; /* proc filesystem entry */
struct proc_dir_entry *link; /* proc filesystem entry per link */
// Proc fs functions
int (*get_config_info) (void*, struct seq_file* m, int *);
int (*get_status_info) (void*, struct seq_file* m, int *);
wan_get_info_t* get_dev_config_info;
wan_get_info_t* get_if_info;
write_proc_t* set_dev_config;
write_proc_t* set_if_info;
#endif
int (*get_info)(void*, struct seq_file* m, int *);
void (*fe_enable_timer) (void* card_id);
void (*te_report_rbsbits) (void* card_id, int channel, unsigned char rbsbits);
void (*te_report_alarms) (void* card_id, uint32_t alarms);
void (*te_link_state) (void* card_id);
void (*te_link_reset) (void* card_id);
int (*te_signaling_config) (void* card_id, unsigned long);
int (*te_disable_signaling) (void* card_id, unsigned long);
int (*te_read_signaling_config) (void* card_id);
int (*report_dtmf) (void* card_id, int, unsigned char);
void (*ec_enable_timer) (void* card_id);
struct {
void (*rbsbits) (void* card_id, int, unsigned char);
void (*alarms) (void* card_id, wan_event_t*);
void (*tone) (void* card_id, wan_event_t*);
void (*hook) (void* card_id, wan_event_t*);
void (*ringtrip) (void* card_id, wan_event_t*);
void (*ringdetect) (void* card_id, wan_event_t*);
void (*linkstatus) (void* card_id, wan_event_t*);
void (*polarityreverse) (void* card_id, wan_event_t*);
} event_callback;
unsigned char ignore_front_end_status;
unsigned char line_idle;
unsigned int card_type;
atomic_t if_cnt;
atomic_t if_up_cnt;
wan_sdlc_conf_t sdlc_cfg;
wan_bscstrm_conf_t bscstrm_cfg;
int (*debugging) (struct wan_device *wandev);
int (*debug_read) (void*, void*);
int comm_port;
#if defined(__LINUX__)
spinlock_t get_map_lock;
int (*get_map)(struct wan_device*,netdevice_t*,struct seq_file* m, int *);
int (*bind_annexg) (netdevice_t *dev, netdevice_t *adev);
netdevice_t *(*un_bind_annexg) (struct wan_device *wandev,netdevice_t *adev);
void (*get_active_inactive)(struct wan_device*,netdevice_t*,void*);
#endif
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(CONFIG_PRODUCT_WANPIPE_GENERIC)
int (*wanpipe_ioctl) (netdevice_t*, struct ifreq*, int);
#endif
unsigned char macAddr[ETHER_ADDR_LEN];
sdla_fe_iface_t fe_iface;
sdla_fe_notify_iface_t fe_notify_iface;
void *ec_dev;
unsigned long ec_enable_map;
unsigned long fe_ec_map;
wan_ticks_t ec_intmask;
int (*ec_enable)(void *pcard, int, int);
int (*ec_state) (void* card_id, wan_hwec_dev_state_t *ec_state);
unsigned char (*write_ec)(void*, unsigned short, unsigned char);
unsigned char (*read_ec)(void*, unsigned short);
int (*hwec_reset)(void* card_id, int);
int (*hwec_enable)(void* card_id, int, int);
unsigned long rtp_tap_call_map;
unsigned long rtp_tap_call_status;
wan_rtp_chan_t rtp_chan[32];
void *rtp_dev;
int rtp_len;
void (*rtp_tap)(void *card, u8 chan, u8* rx, u8* tx, u32 len);
void *port_cfg;
} wan_device_t;
WAN_LIST_HEAD(wan_devlist_, wan_device);
struct wanpipe_fw_register_struct
{
unsigned char init;
int (*bind_api_to_svc)(char *devname, void *sk_id);
int (*bind_listen_to_link)(char *devname, void *sk_id, unsigned short protocol);
int (*unbind_listen_from_link)(void *sk_id,unsigned short protocol);
};
/* Public functions available for device drivers */
extern int register_wan_device(wan_device_t *wandev);
extern int unregister_wan_device(char *name);
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
extern char* in_ntoa(uint32_t in);
extern int wanpipe_lip_rx(void *chan, void *sk_id);
extern int wanpipe_lip_connect(void *chan, int );
extern int wanpipe_lip_disconnect(void *chan, int);
extern int wanpipe_lip_kick(void *chan,int);
extern int wanpipe_lip_get_if_status(void *chan, void *m);
#elif defined(__LINUX__)
unsigned short wanrouter_type_trans(struct sk_buff *skb, netdevice_t *dev);
int wanrouter_encapsulate(struct sk_buff *skb, netdevice_t *dev,unsigned short type);
extern int wanrouter_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg);
/* Proc interface functions. These must not be called by the drivers! */
extern int wanrouter_proc_init(void);
extern void wanrouter_proc_cleanup(void);
extern int wanrouter_proc_add(wan_device_t *wandev);
extern int wanrouter_proc_delete(wan_device_t *wandev);
extern int wanrouter_proc_add_protocol(wan_device_t* wandev);
extern int wanrouter_proc_delete_protocol(wan_device_t* wandev);
extern int wanrouter_proc_add_interface(wan_device_t*,struct proc_dir_entry**,
char*,void*);
extern int wanrouter_proc_delete_interface(wan_device_t*, char*);
extern void *sdla_get_hw_probe(void);
extern int wanrouter_proc_usage_check(void);
extern int wan_run_wanrouter(char* hwdevname, char *devname, char *action);
extern int register_wanpipe_fw_protocol (struct wanpipe_fw_register_struct *wp_fw_reg);
extern void unregister_wanpipe_fw_protocol (void);
extern void wan_skb_destructor (struct sk_buff *skb);
#endif
extern unsigned long wan_get_ip_address (netdevice_t *dev, int option);
void *wanpipe_ec_register(void*, u_int32_t, int,int, void*);
int wanpipe_ec_unregister(void*,void*);
int wanpipe_ec_isr(void*);
int wanpipe_ec_poll(void*,void*);
int wanpipe_ec_ready(void*);
int wanpipe_ec_event_ctrl(void*,void*,wan_event_ctrl_t*);
int wanpipe_wandev_create(void);
int wanpipe_wandev_free(void);
int wan_device_new_if (wan_device_t *wandev, wanif_conf_t *u_conf, int user);
int wan_device_shutdown (wan_device_t *wandev, wandev_conf_t *u_conf);
int wan_device_setup (wan_device_t *wandev, wandev_conf_t *u_conf, int user);
wan_device_t *wan_find_wandev_device(char *name);
#endif /* __KERNEL__ */
#endif /* _ROUTER_H */

View File

@ -1,483 +1,8 @@
/*****************************************************************************
* wanrouter.h Definitions for the WAN Multiprotocol Router Module.
* This module provides API and common services for WAN Link
* Drivers and is completely hardware-independent.
*
* Author: Nenad Corbic <ncorbic@sangoma.com>
* Alex Feldman <al.feldman@sangoma.com>
* David Rokhvarg <davidr@sangoma.com>
* Gideon Hack
* Additions: Arnaldo Melo
*
* Copyright: (c) 1995-2000 Sangoma Technologies Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
* ============================================================================
* Nov 27, 2007 David Rokhvarg Implemented functions/definitions for
* Sangoma MS Windows Driver and API.
*
* May 25, 2001 Alex Feldman Added T1/E1 support (TE1).
* Jul 21, 2000 Nenad Corbic Added WAN_FT1_READY State
* Feb 24, 2000 Nenad Corbic Added support for socket based x25api
* Jan 28, 2000 Nenad Corbic Added support for the ASYNC protocol.
* Oct 04, 1999 Nenad Corbic Updated for 2.1.0 release
* Jun 02, 1999 Gideon Hack Added support for the S514 adapter.
* May 23, 1999 Arnaldo Melo Added local_addr to wanif_conf_t
* WAN_DISCONNECTING state added
* Jul 20, 1998 David Fong Added Inverse ARP options to 'wanif_conf_t'
* Jun 12, 1998 David Fong Added Cisco HDLC support.
* Dec 16, 1997 Jaspreet Singh Moved 'enable_IPX' and 'network_number' to
* 'wanif_conf_t'
* Dec 05, 1997 Jaspreet Singh Added 'pap', 'chap' to 'wanif_conf_t'
* Added 'authenticator' to 'wan_ppp_conf_t'
* Nov 06, 1997 Jaspreet Singh Changed Router Driver version to 1.1 from 1.0
* Oct 20, 1997 Jaspreet Singh Added 'cir','bc','be' and 'mc' to 'wanif_conf_t'
* Added 'enable_IPX' and 'network_number' to
* 'wan_device_t'. Also added defines for
* UDP PACKET TYPE, Interrupt test, critical values
* for RACE conditions.
* Oct 05, 1997 Jaspreet Singh Added 'dlci_num' and 'dlci[100]' to
* 'wan_fr_conf_t' to configure a list of dlci(s)
* for a NODE
* Jul 07, 1997 Jaspreet Singh Added 'ttl' to 'wandev_conf_t' & 'wan_device_t'
* May 29, 1997 Jaspreet Singh Added 'tx_int_enabled' to 'wan_device_t'
* May 21, 1997 Jaspreet Singh Added 'udp_port' to 'wan_device_t'
* Apr 25, 1997 Farhan Thawar Added 'udp_port' to 'wandev_conf_t'
* Jan 16, 1997 Gene Kozin router_devlist made public
* Jan 02, 1997 Gene Kozin Initial version (based on wanpipe.h).
*****************************************************************************/
#ifndef _ROUTER_H
#define _ROUTER_H
/* Deprecated file header. Here for the sake of backward compatibility */
#include "wanpipe_cfg_def.h"
#include "wanpipe_api_hdr.h"
#define ROUTER_NAME "wanrouter" /* in case we ever change it */
#define ROUTER_IOCTL 'W' /* for IOCTL calls */
#define ROUTER_MAGIC 0x524D4157L /* signature: 'WANR' reversed */
#define CHECK_ROUTER_MAGIC(magic) WAN_ASSERT(magic != ROUTER_MAGIC)
/* IOCTL codes for /proc/router/<device> entries (up to 255) */
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
# define ROUTER_SETUP _IOW(ROUTER_IOCTL, 1, wan_conf_t) /* configure device */
# define ROUTER_DOWN _IOWR(ROUTER_IOCTL, 2, wan_conf_t)/* shut down device */
# define ROUTER_STAT _IOW(ROUTER_IOCTL, 3, wan_conf_t) /* get device status */
# define ROUTER_IFNEW _IOW(ROUTER_IOCTL, 4, wan_conf_t) /* add interface */
# define ROUTER_IFDEL _IOW(ROUTER_IOCTL, 5, wan_conf_t) /* del interface */
# define ROUTER_IFNEW_LIP _IOW(ROUTER_IOCTL, 6, wan_conf_t) /* add interface */
# define ROUTER_IFDEL_LIP _IOW(ROUTER_IOCTL, 7, wan_conf_t) /* del interface */
# define ROUTER_IFSTAT _IOW(ROUTER_IOCTL, 8, wan_conf_t) /* get interface status */
# define ROUTER_DEBUGGING _IOW(ROUTER_IOCTL, 9, wan_conf_t)/* get interface status */
# define ROUTER_VER _IOWR(ROUTER_IOCTL, 10, wan_conf_t) /* get router version */
# define ROUTER_PROCFS _IOWR(ROUTER_IOCTL, 11, wan_conf_t) /* get procfs info */
# define ROUTER_DEBUG_READ _IOWR(ROUTER_IOCTL, 12, wan_conf_t) /* get dbg_msg */
# define ROUTER_USER _IOW(ROUTER_IOCTL, 16, u_int) /* driver specific calls */
# define ROUTER_USER_MAX _IOW(ROUTER_IOCTL, 31, u_int)
# define SIOC_WANPIPE_PIPEMON _IOWR('i', 150, struct ifreq) /* get monitor statistics */
# define SIOC_WANPIPE_DEVICE _IOWR('i', 151, struct ifreq) /* set generic device */
# define SIOC_WAN_DEVEL_IOCTL _IOWR('i', 152, struct ifreq) /* get hwprobe string */
# define SIOC_WANPIPE_DUMP _IOWR('i', 153, struct ifreq) /* get memdump string (GENERIC) */
# define SIOC_AFT_CUSTOMER_ID _IOWR('i', 154, struct ifreq) /* get AFT customer ID */
# define SIOC_WAN_EC_IOCTL _IOWR('i', 155, struct ifreq) /* Echo Canceller interface */
# define SIOC_WAN_FE_IOCTL _IOWR('i', 156, struct ifreq) /* FE interface */
#else
enum router_ioctls
{
ROUTER_SETUP = ROUTER_IOCTL<<8, /* configure device */
ROUTER_DOWN, /* shut down device */
ROUTER_STAT, /* get device status */
ROUTER_IFNEW, /* add interface */
ROUTER_IFDEL, /* delete interface */
ROUTER_IFSTAT, /* get interface status */
ROUTER_VER, /* get router version */
ROUTER_DEBUGGING, /* get router version */
ROUTER_DEBUG_READ, /* get router version */
ROUTER_IFNEW_LAPB, /* add new lapb interface */
ROUTER_IFDEL_LAPB, /* delete a lapb interface */
ROUTER_IFNEW_X25, /* add new x25 interface */
ROUTER_IFDEL_X25, /* delete a x25 interface */
ROUTER_IFNEW_DSP, /* add new dsp interface */
ROUTER_IFDEL_DSP, /* delete a dsp interface */
ROUTER_IFNEW_LIP,
ROUTER_IFDEL_LIP,
ROUTER_USER, /* driver-specific calls */
ROUTER_USER_MAX = ROUTER_USER+31
};
/* Backward Compatibility for non sangoma drivers */
#ifdef __KERNEL__
# ifndef __LINUX__
# define __LINUX__
# endif
# ifndef WAN_KERNEL
# define WAN_KERNEL
# endif
#ifdef __LINUX__
#warning "Using DEPRECATED headre wanrouter.h -> change to wanpipe_wanrouter.h"
#endif
#include "wanpipe_wanrouter.h"
#endif
#if defined(__WINDOWS__)
#undef __LINUX__
#endif
#ifndef SPROTOCOL /* conflict with CISCO_IP in wanpipe_sppp.h */
/* identifiers for displaying proc file data for dual port adapters */
#define PROC_DATA_PORT_0 0x8000 /* the data is for port 0 */
#define PROC_DATA_PORT_1 0x8001 /* the data is for port 1 */
/* NLPID for packet encapsulation (ISO/IEC TR 9577) */
#define NLPID_IP 0xCC /* Internet Protocol Datagram */
#define CISCO_IP 0x00 /* Internet Protocol Datagram - CISCO only */
#define NLPID_SNAP 0x80 /* IEEE Subnetwork Access Protocol */
#define NLPID_CLNP 0x81 /* ISO/IEC 8473 */
#define NLPID_ESIS 0x82 /* ISO/IEC 9542 */
#define NLPID_ISIS 0x83 /* ISO/IEC ISIS */
#define NLPID_Q933 0x08 /* CCITT Q.933 */
#endif
/****** Data Types **********************************************************/
/*----------------------------------------------------------------------------
* WAN Link Status Info (for ROUTER_STAT IOCTL).
*/
typedef struct wandev_stat
{
unsigned state; /* link state */
unsigned ndev; /* number of configured interfaces */
/* link/interface configuration */
unsigned connection; /* permanent/switched/on-demand */
unsigned media_type; /* Frame relay/PPP/X.25/SDLC, etc. */
unsigned mtu; /* max. transmit unit for this device */
/* physical level statistics */
unsigned modem_status; /* modem status */
unsigned rx_frames; /* received frames count */
unsigned rx_overruns; /* receiver overrun error count */
unsigned rx_crc_err; /* receive CRC error count */
unsigned rx_aborts; /* received aborted frames count */
unsigned rx_bad_length; /* unexpetedly long/short frames count */
unsigned rx_dropped; /* frames discarded at device level */
unsigned tx_frames; /* transmitted frames count */
unsigned tx_underruns; /* aborted transmissions (underruns) count */
unsigned tx_timeouts; /* transmission timeouts */
unsigned tx_rejects; /* other transmit errors */
/* media level statistics */
unsigned rx_bad_format; /* frames with invalid format */
unsigned rx_bad_addr; /* frames with invalid media address */
unsigned tx_retries; /* frames re-transmitted */
unsigned reserved[16]; /* reserved for future use */
} wandev_stat_t;
/* Front-End status */
enum fe_status {
FE_UNITIALIZED = 0x00,
FE_DISCONNECTED,
FE_CONNECTED,
FE_CONNECTING,
FE_DISCONNECTING
};
#define WAN_FE_UNITIALIZED FE_UNITIALIZED
#define WAN_FE_DISCONNECTED FE_DISCONNECTED
#define WAN_FE_CONNECTED FE_CONNECTED
/* 'modem_status' masks */
#define WAN_MODEM_CTS 0x0001 /* CTS line active */
#define WAN_MODEM_DCD 0x0002 /* DCD line active */
#define WAN_MODEM_DTR 0x0010 /* DTR line active */
#define WAN_MODEM_RTS 0x0020 /* RTS line active */
/* modem status changes */
#define WAN_DCD_HIGH 0x08
#define WAN_CTS_HIGH 0x20
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
typedef struct wan_conf
{
devname_t devname;
void* arg;
} wan_conf_t;
#endif
#if defined(WAN_KERNEL)
# include "wanpipe_includes.h"
# include "wanpipe_debug.h"
# include "wanpipe_common.h"
# include "wanpipe_events.h"
# include "wanpipe_cfg.h"
# if defined (CONFIG_PRODUCT_WANPIPE_TDM_VOICE)
# include "sdla_tdmv.h"
# include "sdla_tdmv_dummy.h"
# endif
#if defined (__LINUX__)
# include <linux/fs.h> /* support for device drivers */
# include <linux/proc_fs.h> /* proc filesystem pragmatics */
# include <linux/inet.h> /* in_aton(), in_ntoa() prototypes */
# ifndef KERNEL_VERSION
# define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
# endif
#endif
#define REG_PROTOCOL_FUNC(str) wan_set_bit(0, (unsigned long*)&str.init)
#define UNREG_PROTOCOL_FUNC(str) wan_clear_bit(0, (unsigned long*)&str.init)
#define IS_PROTOCOL_FUNC(str) wan_test_bit(0, (unsigned long*)&str.init)
#define IS_FUNC_CALL(str, func) \
(IS_PROTOCOL_FUNC(str) && str.func) ? 1 : 0
/****** Kernel Interface ****************************************************/
typedef struct wan_rtp_chan
{
netskb_t *rx_skb;
netskb_t *tx_skb;
u32 rx_ts;
u32 tx_ts;
}wan_rtp_chan_t;
/*----------------------------------------------------------------------------
* WAN device data space.
*/
struct wan_dev_le {
WAN_LIST_ENTRY(wan_dev_le) dev_link;
netdevice_t *dev;
};
#define WAN_DEVLE2DEV(devle) (devle && devle->dev) ? devle->dev : NULL
WAN_LIST_HEAD(wan_dev_lhead, wan_dev_le);
typedef struct wan_device
{
unsigned int magic; /* magic number */
char* name; /* -> WAN device name (ASCIIZ) */
void* priv; /* -> driver private data */
unsigned config_id; /* Configuration ID */
/****** hardware configuration ******/
unsigned ioport; /* adapter I/O port base #1 */
char S514_cpu_no[1]; /* PCI CPU Number */
unsigned char S514_slot_no; /* PCI Slot Number */
int irq; /* interrupt request level */
int dma; /* DMA request level */
unsigned int bps; /* data transfer rate */
unsigned int mtu; /* max physical transmit unit size */
unsigned int udp_port; /* UDP port for management */
unsigned char ttl; /* Time To Live for UDP security */
unsigned int enable_tx_int; /* Transmit Interrupt enabled or not */
char electrical_interface; /* RS-232/V.35, etc. */
char clocking; /* external/internal */
char line_coding; /* NRZ/NRZI/FM0/FM1, etc. */
char station; /* DTE/DCE, primary/secondary, etc. */
char connection; /* permanent/switched/on-demand */
char signalling; /* Signalling RS232 or V35 */
char read_mode; /* read mode: Polling or interrupt */
char new_if_cnt; /* Number of interfaces per wanpipe */
char del_if_cnt; /* Number of times del_if() gets called */
unsigned char piggyback; /* Piggibacking a port */
/****** status and statistics *******/
char state; /* device state */
char api_status; /* device api status */
struct net_device_stats stats; /* interface statistics */
unsigned reserved[16]; /* reserved for future use */
unsigned long critical; /* critical section flag */
wan_spinlock_t lock; /* Support for SMP Locking */
/****** device management methods ***/
int (*setup) (struct wan_device *wandev, wandev_conf_t *conf);
int (*shutdown) (struct wan_device *wandev, wandev_conf_t* conf);
int (*update) (struct wan_device *wandev);
#if defined(__LINUX__)
int (*ioctl) (struct wan_device *wandev, unsigned int cmd, unsigned long arg);
#else
int (*ioctl) (struct wan_device *wandev, u_long cmd, caddr_t arg);
#endif
int (*new_if) (struct wan_device *wandev, netdevice_t *dev, wanif_conf_t *conf);
int (*del_if) (struct wan_device *wandev, netdevice_t *dev);
/****** maintained by the router ****/
#if 0
struct wan_device* next; /* -> next device */
netdevice_t* dev; /* list of network interfaces */
#endif
WAN_LIST_ENTRY(wan_device) next; /* -> next device */
struct wan_dev_lhead dev_head;
wan_spinlock_t dev_head_lock;
unsigned ndev; /* number of interfaces */
#if defined(__LINUX__)
struct proc_dir_entry *dent; /* proc filesystem entry */
struct proc_dir_entry *link; /* proc filesystem entry per link */
// Proc fs functions
int (*get_config_info) (void*, struct seq_file* m, int *);
int (*get_status_info) (void*, struct seq_file* m, int *);
wan_get_info_t* get_dev_config_info;
wan_get_info_t* get_if_info;
write_proc_t* set_dev_config;
write_proc_t* set_if_info;
#endif
int (*get_info)(void*, struct seq_file* m, int *);
void (*fe_enable_timer) (void* card_id);
void (*te_report_rbsbits) (void* card_id, int channel, unsigned char rbsbits);
void (*te_report_alarms) (void* card_id, uint32_t alarms);
void (*te_link_state) (void* card_id);
void (*te_link_reset) (void* card_id);
int (*te_signaling_config) (void* card_id, unsigned long);
int (*te_disable_signaling) (void* card_id, unsigned long);
int (*te_read_signaling_config) (void* card_id);
int (*report_dtmf) (void* card_id, int, unsigned char);
void (*ec_enable_timer) (void* card_id);
struct {
void (*rbsbits) (void* card_id, int, unsigned char);
void (*alarms) (void* card_id, wan_event_t*);
void (*tone) (void* card_id, wan_event_t*);
void (*hook) (void* card_id, wan_event_t*);
void (*ringtrip) (void* card_id, wan_event_t*);
void (*ringdetect) (void* card_id, wan_event_t*);
void (*linkstatus) (void* card_id, wan_event_t*);
void (*polarityreverse) (void* card_id, wan_event_t*);
} event_callback;
unsigned char ignore_front_end_status;
unsigned char line_idle;
unsigned int card_type;
atomic_t if_cnt;
atomic_t if_up_cnt;
wan_sdlc_conf_t sdlc_cfg;
wan_bscstrm_conf_t bscstrm_cfg;
int (*debugging) (struct wan_device *wandev);
int (*debug_read) (void*, void*);
int comm_port;
#if defined(__LINUX__)
spinlock_t get_map_lock;
int (*get_map)(struct wan_device*,netdevice_t*,struct seq_file* m, int *);
int (*bind_annexg) (netdevice_t *dev, netdevice_t *adev);
netdevice_t *(*un_bind_annexg) (struct wan_device *wandev,netdevice_t *adev);
void (*get_active_inactive)(struct wan_device*,netdevice_t*,void*);
#endif
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(CONFIG_PRODUCT_WANPIPE_GENERIC)
int (*wanpipe_ioctl) (netdevice_t*, struct ifreq*, int);
#endif
unsigned char macAddr[ETHER_ADDR_LEN];
sdla_fe_iface_t fe_iface;
sdla_fe_notify_iface_t fe_notify_iface;
void *ec_dev;
unsigned long ec_enable_map;
unsigned long fe_ec_map;
wan_ticks_t ec_intmask;
int (*ec_enable)(void *pcard, int, int);
int (*ec_state) (void* card_id, wan_hwec_dev_state_t *ec_state);
unsigned char (*write_ec)(void*, unsigned short, unsigned char);
unsigned char (*read_ec)(void*, unsigned short);
int (*hwec_reset)(void* card_id, int);
int (*hwec_enable)(void* card_id, int, int);
unsigned long rtp_tap_call_map;
unsigned long rtp_tap_call_status;
wan_rtp_chan_t rtp_chan[32];
void *rtp_dev;
int rtp_len;
void (*rtp_tap)(void *card, u8 chan, u8* rx, u8* tx, u32 len);
void *port_cfg;
} wan_device_t;
WAN_LIST_HEAD(wan_devlist_, wan_device);
struct wanpipe_fw_register_struct
{
unsigned char init;
int (*bind_api_to_svc)(char *devname, void *sk_id);
int (*bind_listen_to_link)(char *devname, void *sk_id, unsigned short protocol);
int (*unbind_listen_from_link)(void *sk_id,unsigned short protocol);
};
/* Public functions available for device drivers */
extern int register_wan_device(wan_device_t *wandev);
extern int unregister_wan_device(char *name);
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
extern char* in_ntoa(uint32_t in);
extern int wanpipe_lip_rx(void *chan, void *sk_id);
extern int wanpipe_lip_connect(void *chan, int );
extern int wanpipe_lip_disconnect(void *chan, int);
extern int wanpipe_lip_kick(void *chan,int);
extern int wanpipe_lip_get_if_status(void *chan, void *m);
#elif defined(__LINUX__)
unsigned short wanrouter_type_trans(struct sk_buff *skb, netdevice_t *dev);
int wanrouter_encapsulate(struct sk_buff *skb, netdevice_t *dev,unsigned short type);
extern int wanrouter_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg);
/* Proc interface functions. These must not be called by the drivers! */
extern int wanrouter_proc_init(void);
extern void wanrouter_proc_cleanup(void);
extern int wanrouter_proc_add(wan_device_t *wandev);
extern int wanrouter_proc_delete(wan_device_t *wandev);
extern int wanrouter_proc_add_protocol(wan_device_t* wandev);
extern int wanrouter_proc_delete_protocol(wan_device_t* wandev);
extern int wanrouter_proc_add_interface(wan_device_t*,struct proc_dir_entry**,
char*,void*);
extern int wanrouter_proc_delete_interface(wan_device_t*, char*);
extern void *sdla_get_hw_probe(void);
extern int wanrouter_proc_usage_check(void);
extern int wan_run_wanrouter(char* hwdevname, char *devname, char *action);
extern int register_wanpipe_fw_protocol (struct wanpipe_fw_register_struct *wp_fw_reg);
extern void unregister_wanpipe_fw_protocol (void);
extern void wan_skb_destructor (struct sk_buff *skb);
#endif
extern unsigned long wan_get_ip_address (netdevice_t *dev, int option);
void *wanpipe_ec_register(void*, u_int32_t, int,int, void*);
int wanpipe_ec_unregister(void*,void*);
int wanpipe_ec_isr(void*);
int wanpipe_ec_poll(void*,void*);
int wanpipe_ec_ready(void*);
int wanpipe_ec_event_ctrl(void*,void*,wan_event_ctrl_t*);
int wanpipe_wandev_create(void);
int wanpipe_wandev_free(void);
int wan_device_new_if (wan_device_t *wandev, wanif_conf_t *u_conf, int user);
int wan_device_shutdown (wan_device_t *wandev, wandev_conf_t *u_conf);
int wan_device_setup (wan_device_t *wandev, wandev_conf_t *u_conf, int user);
wan_device_t *wan_find_wandev_device(char *name);
#endif /* __KERNEL__ */
#endif /* _ROUTER_H */

View File

@ -1 +0,0 @@
cmd_/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/af_wanpipe.ko := ld -m elf_i386 -m elf_i386 -r -o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/af_wanpipe.ko /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/af_wanpipe.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/af_wanpipe.mod.o

View File

@ -1 +0,0 @@
cmd_/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdladrv.ko := ld -m elf_i386 -m elf_i386 -r -o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdladrv.ko /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdladrv.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdladrv.mod.o

View File

@ -1,2 +0,0 @@
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/af_wanpipe.ko
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../wanrouter/af_wanpipe_src.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../wanrouter/af_wanpipe_datascope.o

View File

@ -1,2 +0,0 @@
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdladrv.ko
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdladrv_src.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdladrv_fe.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdladrv_utils.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdladrv_usb.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wan_mem_debug.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_cdev_linux.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_logger.o

View File

@ -1,2 +0,0 @@
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wan_aften.ko
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../wan_aften/wan_aften_src.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../wan_aften/wanpipe_linux_iface.o

View File

@ -1,2 +0,0 @@
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanec.ko
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/wanec_iface.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/wanec_cmd.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/wanec_utils.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/wanec_dev.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/apilib/bt/octapi_bt0.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/apilib/largmath/octapi_largmath.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/apilib/llman/octapi_llman.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_events.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../../wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_user.o

View File

@ -1,2 +0,0 @@
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe.ko
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdlamain.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_tdmv.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_remora_tdmv.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_bri_tdmv.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_tdmv_dummy.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_usb_remora_tdmv.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_ft1.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_te1.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_te3.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_56k.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_8te1.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_tdm_api.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/aft_core.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/aft_core_api_events.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/aft_core_prot.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/aft_core_utils.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_xilinx.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/aft_a104.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/aft_analog.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_aft_te3.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_utils.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_remora_analog.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_abstr.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_linux_iface.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_remora.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_bri.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/aft_bri.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_serial.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_codec.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_codec_law.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_usb.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/sdla_usb_remora.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_timer_dev.o

View File

@ -1,2 +0,0 @@
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_syncppp.ko
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_syncppp.o

View File

@ -1,2 +0,0 @@
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanrouter.ko
/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../wanrouter/wanmain.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../wanrouter/wanproc.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../wanrouter/waniface.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/../wanrouter/wandev.o

View File

@ -1 +0,0 @@
cmd_/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wan_aften.ko := ld -m elf_i386 -m elf_i386 -r -o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wan_aften.ko /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wan_aften.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wan_aften.mod.o

View File

@ -1 +0,0 @@
cmd_/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanec.ko := ld -m elf_i386 -m elf_i386 -r -o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanec.ko /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanec.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanec.mod.o

View File

@ -1 +0,0 @@
cmd_/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe.ko := ld -m elf_i386 -m elf_i386 -r -o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe.ko /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe.mod.o

View File

@ -1 +0,0 @@
cmd_/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_syncppp.ko := ld -m elf_i386 -m elf_i386 -r -o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_syncppp.ko /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_syncppp.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanpipe_syncppp.mod.o

View File

@ -1 +0,0 @@
cmd_/root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanrouter.ko := ld -m elf_i386 -m elf_i386 -r -o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanrouter.ko /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanrouter.o /root/development/3.5/wanpipe-3.5.12/patches/kdrivers/src/net/wanrouter.mod.o

View File

@ -0,0 +1,215 @@
0x7c19de34 got_new_syncer /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xf7567a8a wanpipe_api_buf_check /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xf27fa082 wanpipe_lip_connect /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x7ff2cd30 wanpipe_cdev_tdm_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xc6edf870 vpmadt032_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0xe656360e sdladrv_hw_mode /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x53ece134 wanpipe_cdev_tx_wake /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x1df80ee2 wanpipe_cdev_rx_wake /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xc877a4cb put_xframe /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x8c78cb9b xframe_next_packet /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x92e7bb62 xframe_queue_clearstats /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x03865603 sdla_register /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x19e75bf2 voicebus_stop /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x6072c8a2 dahdi_transcoder_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
0xc0ef42f1 wp_sppp_input /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
0x597475a3 dahdi_register_chardev /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x48bddc3c voicebus_current_latency /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0xe5a5dabe dahdi_transcoder_alloc /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
0x0c3b63d8 pcmtx_chan /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x57e6ed60 wanpipe_api_sock_rx /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x0a7a356f wanpipe_cdev_event_wake /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x12dfa58e dahdi_qevent_nolock /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xf5d22416 get_xframe /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xecace35b wanrouter_proc_add_interface /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x59fb2682 sdla_hw_probe /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xce69e3a7 dahdi_hooksig /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xe6ce6bea sync_mode_name /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x9a7a6658 wanpipe_lip_rx /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x8f31cdeb proc_router /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x47151521 xbus_activate /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x2cc2381f update_wanted_pcm_mask /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xa79ecb53 xbus_disconnect /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x2974b24a generic_card_pcm_tospan /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xc945873d dahdi_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x77da8dee register_wanec_iface /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x1036a1ab bind_api_listen_to_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x8e0e566e xproto_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x537eb672 xframe_receive /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x12cb4707 xpd_post_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xd63e1d87 voicebus_release /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0xd7eeeeb5 report_bad_ioctl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xb522bb3f vpmadt032_reset /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x425ddbab xbus_request_removal /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x60c154c5 update_xpd_status /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x599e779b vpmadt032_echocan_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x006a2198 __dahdi_mulaw /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xc5fb06b9 xproto_name /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xddf2e333 xpp_open /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x9513f4ff run_initialize_registers /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x524e2f20 register_wanpipe_fw_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x7c2dc516 register_wan_device /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x635a1d83 gpakConfigurePorts /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x01b0f433 xpd_alloc /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xf4a2bf8e xframe_queue_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xa78a3f8f notify_rxsig /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x45866c4c wanrouter_proc_add_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xfc5f75a8 wp_sppp_attach /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
0x90a9f616 wp_sppp_detach /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
0x592e5c90 xbus_setstate /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x0deeaedb wp_logger_repeating_message_filter /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x13c7069b dahdi_transcode_fops /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x55b59227 vpmadt032_echocan_create /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x618aefa9 wanpipe_cdev_logger_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xd083d5c4 send_pcm_frame /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x8b05ea95 xbus_deactivate /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xdc3a2c77 xbus_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xf7f5afa4 wanpipe_ec_event_ctrl /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x38e1c7fd xpp_close /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xcd6633df dahdi_set_dynamic_ioctl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xc2b56d8c vpmadt032_get_default_parameters /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x624e96fa xframe_dequeue /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x97eb6143 xframe_enqueue /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xe0c9b849 dahdi_transcoder_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
0x9c462e00 voicebus_set_minlatency /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0xf42f429a dahdi_init_tone_state /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xaf8e1806 xpd_driver_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x06403f91 put_xpd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xbdc234d9 vpmadtreg_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x71aafde0 vpmadtreg_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0xad0e46e6 debug /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x6201c669 wp_logger_level_fe /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xbdd1b41c dahdi_unregister_echocan_factory /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xb3af45ff generic_card_pcm_recompute /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xb48548fa __dahdi_lin2a /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x7cd3c2bc wanpipe_ec_poll /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x9e48e1bc wanrouter_proc_delete_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x2d6794f0 xpd_byaddr /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xb1d6d6be hookstate_changed /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x6dd4c4d6 wanpipe_cdev_free /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xdfd0f6c6 sdla_get_hw_adptr_cnt /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xef11c1ba dahdi_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x6ad0c191 wp_logger_level_bri /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x3d183b5d get_xpd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x82e127c6 send_cmd_frame /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x72d0bb1d dahdi_hdlc_getbuf /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xc2143791 wanpipe_ec_register /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x1e82f485 wp_sppp_change_mtu /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
0x0cca3f0e __dahdi_lin2mu /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x6a062e24 xframe_queue_disable /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xc288bfdc wanpipe_cdev_cfg_ctrl_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x373bca89 xbus_receive_xframe /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xad1272e5 dump_reg_cmd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xb8da2b4c wanpipe_global_cdev_free /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x47ff4922 wanpipe_cdev_tdm_ctrl_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x4ce4fe8b dahdi_qevent_lock /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xaa81d611 wanpipe_global_cdev_init /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x8f9e9e1f dahdi_alarm_notify /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x02364d27 wanrouter_encapsulate /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x136b2537 wan_skb_destructor /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x3f234f3e wp_logger_input /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x8f645409 dahdi_sync_tick /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x068090ff notify_bad_xpd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x91c86c35 dahdi_register_echocan_factory /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x8e04fd95 dump_xframe /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xfa083e32 register_wanpipe_api_socket /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xb2cc48ff elect_syncer /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x4de93988 sdla_get_hw_usb_adptr_cnt /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xade2d0d7 sdla_get_hw_probe /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xd90451b0 wanpipe_cdev_timer_create /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x0f19df36 sdladrv_callback /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x3d8bebde mark_offhook /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xbd4a533a sdla_get_hwinfo /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xd5c12072 transportops_put /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x0231f4ab transportops_get /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x05d662e5 dahdi_unregister_chardev /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xef48df91 proc_add_line /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x22a2999f sdla_unregister /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xa72dc741 dahdi_transcoder_alert /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
0x5a8b7434 voicebus_vbb_cache /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x4b8cdbf2 xproto_global_entry /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x85c05713 wanrouter_type_trans /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xe5eb1132 gpakPingDsp /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x8ba85e84 xbus_connect /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xec7b087b gpakConfigureChannel /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0xc98aebe6 wan_get_ip_address /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xfd74fadb wan_set_ip_address /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x7d68ed07 protocol_disconnected /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xc5224c15 bind_api_to_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xd07870ea xpd_of /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xfdd623b4 valid_xpd_addr /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x38eb6851 unregister_wanpipe_api_socket /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xaac011d2 wanpipe_lip_kick /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xf0f056a0 xpd_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x64a6fdeb alarm2str /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x3b604364 unbind_api_listen_from_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xcf1a0233 xpp_ioctl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x6df6c4e0 wan_run_wanrouter /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xdd7bc49e dahdi_receive /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x23e9e447 dahdi_dynamic_receive /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_dynamic EXPORT_SYMBOL
0x058098af xframe_queue_clear /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x141f7b48 xproto_card_entry /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x0a29c949 generic_card_pcm_fromspan /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x05487ec8 wp_logger_level_default /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x28c9b161 dump_packet /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x7cc79ec0 dahdi_alarm_channel /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x8ceddc4b vpmadt032_alloc /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x6045e8cb dahdi_dynamic_register /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_dynamic EXPORT_SYMBOL
0xeb418feb sdla_hw_bridge_probe /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x04df932b unregister_wanec_iface /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xea9f3201 gl_usb_rw_fast /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x430a8848 dahdi_mf_tone /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x562d2ade wanpipe_ec_isr /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x821b2778 dump_poll /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x65e6b5eb vpmadt032_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x7817cb58 xbus_reset_counters /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xa2d6910d oht_pcm /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x13405f6b unregister_wanpipe_fw_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xe72f44cb wanpipe_api_listen_rx /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xe6bc2d6d wp_sppp_open /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
0x238f240b wp_sppp_reopen /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
0x67428f4d dahdi_ec_span /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x8bab76f8 wp_logger_level_tdmapi /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0xed5e8380 dahdi_transcoder_free /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_transcode EXPORT_SYMBOL
0x528a0730 xframe_queue_count /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xa9b5f188 xbus_command_queue_tick /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xa407ff09 voicebus_start /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0xc4071a06 __dahdi_alaw /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x7b40a84d dahdi_hdlc_putbuf /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x31386140 dahdi_hdlc_abort /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x72ddd010 wp_sppp_do_ioctl /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
0x5b7efb57 wanpipe_api_poll_wake /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x529d6203 dahdi_lboname /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x2dfb51e3 create_xpd /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xc95646c8 voicebus_transmit /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0xc80ea69b xpp_maint /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x651a840a wan_add_gateway /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x805cbe1e wp_sppp_close /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanpipe_syncppp EXPORT_SYMBOL
0x6719218e wanrouter_proc_delete_interface /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x2f21a326 unregister_wanpipe_lip_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xb53d0d74 __voicebus_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0xc11b8c26 xpd_driver_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x0ebe03d1 unregister_wan_device /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x782bbc32 dahdi_transmit /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x3ee7da88 dahdi_hdlc_finish /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xfaa93356 xpp_register_request /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x6aa023ac xbus_statename /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xeb2ef21c xbus_request_sync /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x22317d82 wanpipe_lip_disconnect /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x4914a44f dahdi_rbsbits /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0x8019389a gpakAlgControl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/voicebus/dahdi_voicebus EXPORT_SYMBOL
0x74a9ab7b wp_logger_level_te1 /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x120e8bb6 send_multibyte_request /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xf22c9714 xframe_init /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xed6a48f7 protocol_connected /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x53350bd4 wanpipe_ec_unregister /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0x2ef28734 pcmtx /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x71672675 dahdi_dynamic_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_dynamic EXPORT_SYMBOL
0xe5a73e62 dahdi_set_hpec_ioctl /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xc12eb167 wp_logger_level_hwec /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/sdladrv EXPORT_SYMBOL
0x6d91edc4 xproto_unregister /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x0bd2816a dahdi_ec_chunk /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi EXPORT_SYMBOL
0xc76eb4f8 register_wanpipe_lip_protocol /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL
0xd296bbaa xbus_new /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0xbff0a11c xbus_num /usr/src/ast1.6/dahdi-linux-2.3.0.1/drivers/dahdi/xpp/xpp EXPORT_SYMBOL
0x00525339 protocol_connecting /root/development/3.5/wanpipe-3.5.14.6/patches/kdrivers/src/net/wanrouter EXPORT_SYMBOL

View File

@ -1,82 +0,0 @@
#include <linux/module.h>
#include <linux/vermagic.h>
#include <linux/compiler.h>
MODULE_INFO(vermagic, VERMAGIC_STRING);
struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
.name = KBUILD_MODNAME,
.init = init_module,
#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,
#endif
};
static const struct modversion_info ____versions[]
__attribute_used__
__attribute__((section("__versions"))) = {
{ 0x89e24b9c, "struct_module" },
{ 0x3f234f3e, "wp_logger_input" },
{ 0x52c0a61d, "_write_unlock_irqrestore" },
{ 0xff2ee19e, "sock_init_data" },
{ 0x3d7c39ea, "_read_lock" },
{ 0xe1b7029c, "print_tainted" },
{ 0x19af2928, "sock_no_setsockopt" },
{ 0x3aabb4fb, "sock_no_getsockopt" },
{ 0xab978df6, "malloc_sizes" },
{ 0x3adc4c7c, "remove_wait_queue" },
{ 0x3093180f, "_write_lock_irqsave" },
{ 0x60ea5fe7, "__tasklet_hi_schedule" },
{ 0x8b61da01, "dev_get_by_name" },
{ 0x63ecad53, "register_netdevice_notifier" },
{ 0xae22d008, "sock_queue_rcv_skb" },
{ 0xf2a90733, "skb_recv_datagram" },
{ 0xea1d1e4b, "sock_rfree" },
{ 0xfe769456, "unregister_netdevice_notifier" },
{ 0xffd5a395, "default_wake_function" },
{ 0x5487ec8, "wp_logger_level_default" },
{ 0x1036a1ab, "bind_api_listen_to_protocol" },
{ 0x42d067ff, "skb_queue_purge" },
{ 0x2fc7657d, "sock_no_socketpair" },
{ 0xc5224c15, "bind_api_to_protocol" },
{ 0x3b604364, "unbind_api_listen_from_protocol" },
{ 0x975c62af, "sk_alloc" },
{ 0x1b7d4074, "printk" },
{ 0x5730615d, "sk_free" },
{ 0x5a2bc739, "dev_get_by_index" },
{ 0xa5808bbf, "tasklet_init" },
{ 0x149a799f, "dev_kfree_skb_any" },
{ 0x6ab10cf1, "sock_no_shutdown" },
{ 0x79ad224b, "tasklet_kill" },
{ 0x1c53db6e, "skb_over_panic" },
{ 0xb356ebea, "skb_queue_tail" },
{ 0x8b4e4185, "inet_dgram_ops" },
{ 0x19070091, "kmem_cache_alloc" },
{ 0x9ceb163c, "memcpy_toiovec" },
{ 0x9aebf873, "__alloc_skb" },
{ 0x4f2fd580, "sock_register" },
{ 0xdeeaedb, "wp_logger_repeating_message_filter" },
{ 0x4292364c, "schedule" },
{ 0x89d282ea, "kfree_skb" },
{ 0xfa083e32, "register_wanpipe_api_socket" },
{ 0x6b2dc060, "dump_stack" },
{ 0xf39bf4d9, "put_cmsg" },
{ 0xf6ebc03b, "net_ratelimit" },
{ 0x72270e35, "do_gettimeofday" },
{ 0xa3d44f8c, "add_wait_queue" },
{ 0x37a0cba, "kfree" },
{ 0x2394a062, "sock_unregister" },
{ 0x9fb3dd30, "memcpy_fromiovec" },
{ 0x2e2ed056, "skb_dequeue" },
{ 0x38eb6851, "unregister_wanpipe_api_socket" },
{ 0x2b720703, "skb_free_datagram" },
};
static const char __module_depends[]
__attribute_used__
__attribute__((section(".modinfo"))) =
"depends=sdladrv,wanrouter";
MODULE_INFO(srcversion, "97363566C4B124748283CC6");

View File

@ -5688,6 +5688,7 @@ static void wp_bh_rx(private_area_t* chan, netskb_t *new_skb, u8 pkt_error, int
rx_hdr->rx_h.crc=pkt_error;
rx_hdr->rx_h.current_number_of_frames_in_rx_queue = wan_skb_queue_len(&chan->wp_rx_complete_list);
rx_hdr->rx_h.max_rx_queue_length = chan->dma_per_ch;
rx_hdr->rx_h.errors = WP_AFT_RX_ERROR_SUM(chan->chan_stats);
err=wanpipe_tdm_api_span_rx(chan->wp_tdm_api_dev,new_skb);
if (err){

View File

@ -305,7 +305,7 @@ static char* sdla_ds_te1_get_fe_media_string(void)
}
/******************************************************************************
* sdla_ds_te1_get_fe_status()
* sdla_ds_te1_get_fe_media()
*
* Description:
* Arguments:
@ -5676,6 +5676,8 @@ static int sdla_ds_te1_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data)
#endif
case WAN_FE_DEBUG_REG:
#if 0
if (fe->te_param.reg_dbg_busy){
if (fe_debug->fe_debug_reg.read == 2 && fe->te_param.reg_dbg_ready){
/* Poll the register value */
@ -5685,16 +5687,29 @@ static int sdla_ds_te1_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data)
}
break;
}
#endif
event.type = (fe_debug->fe_debug_reg.read) ?
TE_POLL_READ : TE_POLL_WRITE;
event.te_event.reg = (u_int16_t)fe_debug->fe_debug_reg.reg;
event.te_event.value = fe_debug->fe_debug_reg.value;
event.delay = POLLING_TE1_TIMER;
#if 0
if (fe_debug->fe_debug_reg.read){
fe->te_param.reg_dbg_busy = 1;
fe->te_param.reg_dbg_ready = 0;
}
#endif
err=sdla_ds_te1_exec_event(fe, &event, &pending);
if (err == 0 ) {
if (fe_debug->fe_debug_reg.read) {
fe_debug->fe_debug_reg.value = fe->te_param.reg_dbg_value;
}
udp_cmd->wan_cmd_return_code = WAN_CMD_OK;
fe->te_param.reg_dbg_busy = 0;
}
udp_cmd->wan_cmd_return_code = err;
break;

View File

@ -20,7 +20,7 @@
#include <linux/wanpipe_includes.h>
#include <linux/wanpipe_defines.h>
#include <linux/wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe.h> /* WANPIPE common user API definitions */
#include <linux/wanproc.h>
#include <linux/wanpipe_snmp.h>

View File

@ -83,7 +83,6 @@
#include "wanpipe_syncppp.h"
#endif
#if defined(__WINDOWS__)
#include "sdladrv_private.h" /* prototypes of global functions */
extern
@ -1559,18 +1558,21 @@ static void adsl_multicast(netdevice_t* dev)
# if defined(__FreeBSD__)
struct ifmultiaddr* mclist = NULL;
# else
struct dev_mc_list* mclist = NULL;
int x = 0;
#ifdef CONFIG_RPS
struct netdev_hw_addr* mclist = NULL;
netdev_for_each_mc_addr(mclist, dev) {
x++;
#else
struct dev_mc_list* mclist = NULL;
for (mclist = LIST_FIRST_MCLIST(dev);mclist != NULL;x++, mclist = LIST_NEXT_MCLIST(mclist)){
#endif
# endif
int x = 0;
mcaddrs = wan_malloc(mcount * 6);
for (mclist = LIST_FIRST_MCLIST(dev);
mclist != NULL;
x++, mclist = LIST_NEXT_MCLIST(mclist)){
# if defined(__FreeBSD__)
memcpy(&(mcaddrs[x * 6]), (void*)mclist->ifma_addr, 6);
# else
memcpy(&(mcaddrs[x * 6]), mclist->dmi_addr, 6);
memcpy(&(mcaddrs[x * 6]), WAN_MC_LIST_ADDR(mclist), 6);
# endif
}
#endif
@ -1586,7 +1588,7 @@ static void adsl_multicast(netdevice_t* dev)
}
/*+F*************************************************************************
/****************************************************************************
* Function:
* GpLanStats
*

View File

@ -23,7 +23,7 @@
#include <linux/wanpipe_includes.h>
#include <linux/wanpipe_defines.h>
#include <linux/wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe.h> /* WANPIPE common user API definitions */
#include <linux/sdlapci.h>
#include <linux/wanpipe_api_deprecated.h>

View File

@ -20,7 +20,7 @@
#include <linux/wanpipe_includes.h>
#include <linux/wanpipe_defines.h>
#include <linux/wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe.h> /* WANPIPE common user API definitions */
#include <linux/sdlapci.h>
#include <linux/sdla_bscmp.h> /* BSTRM firmware API definitions */

View File

@ -17,7 +17,7 @@
#include <linux/wanpipe_includes.h>
#include <linux/wanpipe_defines.h>
#include <linux/wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe.h> /* WANPIPE common user API definitions */
#include <linux/sdlapci.h>
#include <linux/sdla_bscstrm.h> /* BSTRM firmware API definitions */

View File

@ -32,7 +32,7 @@
#include <linux/wanpipe_cfg.h>
#include <linux/wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe.h> /* WANPIPE common user API definitions */
#include <linux/sdlapci.h>
#include <linux/sdla_chdlc.h> /* CHDLC firmware API definitions */

View File

@ -114,7 +114,7 @@
#include <linux/wanpipe_includes.h>
#include <linux/wanpipe_defines.h>
#include <linux/wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe.h> /* WANPIPE common user API definitions */
#include <linux/wanproc.h>
#include <linux/wanpipe_snmp.h>

View File

@ -2959,16 +2959,16 @@ static int wp_remora_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data)
memset(&event, 0, sizeof(sdla_fe_timer_event_t));
switch(udp_cmd->wan_cmd_command){
case WAN_GET_MEDIA_TYPE:
fe_media = (wan_femedia_t*)data;
memset(fe_media, 0, sizeof(wan_femedia_t));
fe_media->media = fe->fe_cfg.media;
fe_media->sub_media = fe->fe_cfg.sub_media;
fe_media->chip_id = 0x00;
fe_media->max_ports = 1;
udp_cmd->wan_cmd_return_code = WAN_CMD_OK;
udp_cmd->wan_cmd_data_len = sizeof(wan_femedia_t);
break;
fe_media = (wan_femedia_t*)data;
memset(fe_media, 0, sizeof(wan_femedia_t));
fe_media->media = fe->fe_cfg.media;
fe_media->sub_media = fe->fe_cfg.sub_media;
fe_media->chip_id = 0x00;
fe_media->max_ports = 1;
udp_cmd->wan_cmd_return_code = WAN_CMD_OK;
udp_cmd->wan_cmd_data_len = sizeof(wan_femedia_t);
break;
case WAN_FE_TONES:
event.type = WP_RM_POLL_TONE;
@ -3020,26 +3020,20 @@ static int wp_remora_udp(sdla_fe_t *fe, void* p_udp_cmd, unsigned char* data)
fe_debug = (sdla_fe_debug_t*)data;
switch(fe_debug->type){
case WAN_FE_DEBUG_REG:
if (fe->rm_param.reg_dbg_busy){
if (fe_debug->fe_debug_reg.read == 2 && fe->rm_param.reg_dbg_ready){
/* Poll the register value */
fe_debug->fe_debug_reg.value = fe->rm_param.reg_dbg_value;
udp_cmd->wan_cmd_return_code = WAN_CMD_OK;
fe->rm_param.reg_dbg_busy = 0;
}
break;
}
event.type = (fe_debug->fe_debug_reg.read) ?
WP_RM_POLL_READ : WP_RM_POLL_WRITE;
event.rm_event.mod_no = fe_debug->mod_no;
event.rm_event.reg = (u_int16_t)fe_debug->fe_debug_reg.reg;
event.rm_event.value = fe_debug->fe_debug_reg.value;
event.delay = WP_RM_POLL_TIMER;
if (fe_debug->fe_debug_reg.read){
fe->rm_param.reg_dbg_busy = 1;
fe->rm_param.reg_dbg_ready = 0;
}
wp_remora_event_exec(fe, &event);
if (fe_debug->fe_debug_reg.read) {
fe_debug->fe_debug_reg.value = fe->rm_param.reg_dbg_value;
}
fe->rm_param.reg_dbg_busy = 0;
udp_cmd->wan_cmd_return_code = WAN_CMD_OK;
break;

View File

@ -16,7 +16,7 @@
#include <linux/wanpipe_includes.h>
#include <linux/wanpipe_defines.h>
#include <linux/wanpipe.h> /* WANPIPE common user API definitions */
#include <linux/wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
#include <linux/sdlapci.h>
#include <linux/wanproc.h>
#include <linux/if_wanpipe_common.h> /* Socket Driver common area */

View File

@ -108,7 +108,7 @@
#include <linux/wanpipe_includes.h>
#include <linux/wanpipe_defines.h>
#include <linux/wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe.h> /* WANPIPE common user API definitions */
#include <linux/wanpipe_abstr.h>
#include <linux/wanproc.h>

View File

@ -1,97 +0,0 @@
#include <linux/module.h>
#include <linux/vermagic.h>
#include <linux/compiler.h>
MODULE_INFO(vermagic, VERMAGIC_STRING);
struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
.name = KBUILD_MODNAME,
.init = init_module,
#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,
#endif
};
static const struct modversion_info ____versions[]
__attribute_used__
__attribute__((section("__versions"))) = {
{ 0x89e24b9c, "struct_module" },
{ 0xc51c186d, "kobject_put" },
{ 0x70ecc9b2, "cdev_del" },
{ 0x4ac7b024, "pci_bus_read_config_byte" },
{ 0x12da5bb2, "__kmalloc" },
{ 0x7e3f931f, "_spin_trylock" },
{ 0xd2248aac, "cdev_init" },
{ 0x2ca3da4e, "pci_release_region" },
{ 0xd8e484f0, "register_chrdev_region" },
{ 0xe1b7029c, "print_tainted" },
{ 0xb722a9bd, "usb_init_urb" },
{ 0xf26c4b72, "class_device_destroy" },
{ 0xb5513e49, "class_device_create" },
{ 0xab978df6, "malloc_sizes" },
{ 0x1bcd461f, "_spin_lock" },
{ 0xf6a5a6c8, "schedule_work" },
{ 0x757a9fc, "usb_kill_urb" },
{ 0xeae3dfd6, "__const_udelay" },
{ 0x7485e15e, "unregister_chrdev_region" },
{ 0xcdb08c03, "pci_bus_write_config_word" },
{ 0x87cddf59, "_spin_lock_irqsave" },
{ 0x1d26aa98, "sprintf" },
{ 0x3ce9cac3, "usb_unlink_urb" },
{ 0x7d11c268, "jiffies" },
{ 0xb2a606bf, "pci_set_master" },
{ 0xc659d5a, "del_timer_sync" },
{ 0x51ba71d3, "pci_set_dma_mask" },
{ 0x46c0e86e, "usb_deregister" },
{ 0x1b7d4074, "printk" },
{ 0x5152e605, "memcmp" },
{ 0xed5c73bf, "__tasklet_schedule" },
{ 0x2da418b5, "copy_to_user" },
{ 0xfe121239, "usb_control_msg" },
{ 0xaec4759f, "vprintk" },
{ 0x56134363, "pci_bus_write_config_dword" },
{ 0x2e1de6c1, "class_create" },
{ 0xa20fdde, "_spin_unlock_irqrestore" },
{ 0xa5808bbf, "tasklet_init" },
{ 0x9eac042a, "__ioremap" },
{ 0x149a799f, "dev_kfree_skb_any" },
{ 0x79ad224b, "tasklet_kill" },
{ 0x5e22fdec, "cdev_add" },
{ 0x1c53db6e, "skb_over_panic" },
{ 0xb356ebea, "skb_queue_tail" },
{ 0xbb67c73a, "usb_submit_urb" },
{ 0x19070091, "kmem_cache_alloc" },
{ 0x9aebf873, "__alloc_skb" },
{ 0x78021fa2, "pci_bus_read_config_word" },
{ 0x7561ed, "pci_bus_read_config_dword" },
{ 0x4292364c, "schedule" },
{ 0x6b2dc060, "dump_stack" },
{ 0x19cacd0, "init_waitqueue_head" },
{ 0xd0b91f9b, "init_timer" },
{ 0x6989a769, "vsnprintf" },
{ 0x59968f3c, "__wake_up" },
{ 0xf6ebc03b, "net_ratelimit" },
{ 0xb85ab97a, "kmem_cache_zalloc" },
{ 0x72270e35, "do_gettimeofday" },
{ 0xb5f46a8b, "pci_bus_write_config_byte" },
{ 0x37a0cba, "kfree" },
{ 0x801678, "flush_scheduled_work" },
{ 0xedc03953, "iounmap" },
{ 0x487fa848, "usb_register_driver" },
{ 0x4870cf59, "class_destroy" },
{ 0x65ddd69, "pci_get_device" },
{ 0x2e2ed056, "skb_dequeue" },
{ 0x25da070, "snprintf" },
{ 0xdd994dbd, "pci_enable_device" },
{ 0xf2a644fb, "copy_from_user" },
{ 0x3a626247, "pci_request_region" },
};
static const char __module_depends[]
__attribute_used__
__attribute__((section(".modinfo"))) =
"depends=";
MODULE_INFO(srcversion, "3EB86DD88FB89484F38B4C5");

View File

@ -146,6 +146,15 @@ extern int sdla_hw_fe_set_bit(void *phw, int value);
}
#define SDLA_HW_T1E1_FE_ACCESS_BLOCK_A600 { u32 breg; sdla_bus_read_4(hw, 0x1040, &breg); \
if (breg == (u32)-1) { \
if (WAN_NET_RATELIMIT()) { \
DEBUG_ERROR("%s:%d: wanpipe PCI Error: Illegal Register read: 0x1040 = 0xFFFFFFFF\n", \
__FUNCTION__,__LINE__); \
} \
} \
}
/***************************************************************************
**** G L O B A L D A T A ****
***************************************************************************/
@ -2410,17 +2419,17 @@ static int __sdla_b601_te1_write_fe(void *phw, ...)
data_hi |= 0x4000;
}
SDLA_HW_T1E1_FE_ACCESS_BLOCK;
SDLA_HW_T1E1_FE_ACCESS_BLOCK_A600;
data_hi |= (off & 0x7FF);
sdla_bus_write_2(hw, A600_MAXIM_INTERFACE_REG_ADD_HI, data_hi);
SDLA_HW_T1E1_FE_ACCESS_BLOCK;
SDLA_HW_T1E1_FE_ACCESS_BLOCK_A600;
data_lo = (value & 0xFF);
sdla_bus_write_2(hw, A600_MAXIM_INTERFACE_REG_ADD_LO, data_lo);
SDLA_HW_T1E1_FE_ACCESS_BLOCK;
SDLA_HW_T1E1_FE_ACCESS_BLOCK_A600;
return 0;
}
@ -2486,17 +2495,17 @@ u_int8_t __sdla_b601_te1_read_fe (void *phw, ...)
data_hi |= 0x4000;
}
SDLA_HW_T1E1_FE_ACCESS_BLOCK;
SDLA_HW_T1E1_FE_ACCESS_BLOCK_A600;
data_hi |= (off & 0x7FF);
sdla_bus_write_2(hw, A600_MAXIM_INTERFACE_REG_ADD_HI, data_hi);
SDLA_HW_T1E1_FE_ACCESS_BLOCK;
SDLA_HW_T1E1_FE_ACCESS_BLOCK_A600;
data_read = 0x00;
sdla_bus_read_4(hw, A600_MAXIM_INTERFACE_REG_ADD_LO, &data_read);
SDLA_HW_T1E1_FE_ACCESS_BLOCK;
SDLA_HW_T1E1_FE_ACCESS_BLOCK_A600;
return (data_read & 0xFF);
}

View File

@ -66,7 +66,7 @@
#include <linux/wanpipe_common.h>
#include <linux/wanpipe_events.h>
#include <linux/wanpipe_cfg.h>
#include <linux/wanrouter.h> /* WAN router definitions */
#include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
#include <linux/sdladrv.h>
#include <linux/wanpipe.h> /* WANPIPE common user API definitions */
#include <linux/sdlapci.h>

View File

@ -1,54 +0,0 @@
#include <linux/module.h>
#include <linux/vermagic.h>
#include <linux/compiler.h>
MODULE_INFO(vermagic, VERMAGIC_STRING);
struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
.name = KBUILD_MODNAME,
.init = init_module,
#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,
#endif
};
static const struct modversion_info ____versions[]
__attribute_used__
__attribute__((section("__versions"))) = {
{ 0x89e24b9c, "struct_module" },
{ 0x3f234f3e, "wp_logger_input" },
{ 0x59fb2682, "sdla_hw_probe" },
{ 0x79aa04a2, "get_random_bytes" },
{ 0xab978df6, "malloc_sizes" },
{ 0xeae3dfd6, "__const_udelay" },
{ 0xfb1d0a92, "alloc_netdev" },
{ 0x1d26aa98, "sprintf" },
{ 0x7d11c268, "jiffies" },
{ 0x3865603, "sdla_register" },
{ 0x4de93988, "sdla_get_hw_usb_adptr_cnt" },
{ 0x92cfbd9d, "netif_rx" },
{ 0xf19df36, "sdladrv_callback" },
{ 0x5487ec8, "wp_logger_level_default" },
{ 0x15e074de, "free_netdev" },
{ 0x2da418b5, "copy_to_user" },
{ 0x604efc6a, "register_netdev" },
{ 0x1902adf, "netpoll_trap" },
{ 0x149a799f, "dev_kfree_skb_any" },
{ 0x22a2999f, "sdla_unregister" },
{ 0x19070091, "kmem_cache_alloc" },
{ 0xe656360e, "sdladrv_hw_mode" },
{ 0xdeeaedb, "wp_logger_repeating_message_filter" },
{ 0xad97dcd, "ether_setup" },
{ 0x37a0cba, "kfree" },
{ 0x828fe72a, "unregister_netdev" },
{ 0xf2a644fb, "copy_from_user" },
};
static const char __module_depends[]
__attribute_used__
__attribute__((section(".modinfo"))) =
"depends=sdladrv";
MODULE_INFO(srcversion, "AFED9395AF8C59311DAF513");

View File

@ -1,61 +0,0 @@
#include <linux/module.h>
#include <linux/vermagic.h>
#include <linux/compiler.h>
MODULE_INFO(vermagic, VERMAGIC_STRING);
struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
.name = KBUILD_MODNAME,
.init = init_module,
#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,
#endif
};
static const struct modversion_info ____versions[]
__attribute_used__
__attribute__((section("__versions"))) = {
{ 0x89e24b9c, "struct_module" },
{ 0x3f234f3e, "wp_logger_input" },
{ 0x12da5bb2, "__kmalloc" },
{ 0x7e3f931f, "_spin_trylock" },
{ 0xec7bc0d, "__mod_timer" },
{ 0xd6ee688f, "vmalloc" },
{ 0xc12eb167, "wp_logger_level_hwec" },
{ 0x4827a016, "del_timer" },
{ 0xf26c4b72, "class_device_destroy" },
{ 0xb5513e49, "class_device_create" },
{ 0xab978df6, "malloc_sizes" },
{ 0x1bcd461f, "_spin_lock" },
{ 0xeae3dfd6, "__const_udelay" },
{ 0x2fd1d81c, "vfree" },
{ 0x1d26aa98, "sprintf" },
{ 0x7d11c268, "jiffies" },
{ 0x5487ec8, "wp_logger_level_default" },
{ 0x77da8dee, "register_wanec_iface" },
{ 0x8d3894f2, "_ctype" },
{ 0x5152e605, "memcmp" },
{ 0x2da418b5, "copy_to_user" },
{ 0x2e1de6c1, "class_create" },
{ 0x19070091, "kmem_cache_alloc" },
{ 0x4df932b, "unregister_wanec_iface" },
{ 0xdeeaedb, "wp_logger_repeating_message_filter" },
{ 0x4086729e, "register_chrdev" },
{ 0xd0b91f9b, "init_timer" },
{ 0xf6ebc03b, "net_ratelimit" },
{ 0x72270e35, "do_gettimeofday" },
{ 0x37a0cba, "kfree" },
{ 0x2e60bace, "memcpy" },
{ 0xc192d491, "unregister_chrdev" },
{ 0x4870cf59, "class_destroy" },
{ 0xf2a644fb, "copy_from_user" },
};
static const char __module_depends[]
__attribute_used__
__attribute__((section(".modinfo"))) =
"depends=sdladrv,wanrouter";
MODULE_INFO(srcversion, "04C049BED8541540DFC0B81");

View File

@ -1,147 +0,0 @@
#include <linux/module.h>
#include <linux/vermagic.h>
#include <linux/compiler.h>
MODULE_INFO(vermagic, VERMAGIC_STRING);
struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
.name = KBUILD_MODNAME,
.init = init_module,
#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,
#endif
};
static const struct modversion_info ____versions[]
__attribute_used__
__attribute__((section("__versions"))) = {
{ 0x89e24b9c, "struct_module" },
{ 0x3f234f3e, "wp_logger_input" },
{ 0xc98aebe6, "wan_get_ip_address" },
{ 0xa5a6ef53, "skb_queue_head" },
{ 0x4c3af445, "__request_region" },
{ 0x12da5bb2, "__kmalloc" },
{ 0xec7bc0d, "__mod_timer" },
{ 0x4914a44f, "dahdi_rbsbits" },
{ 0x59fb2682, "sdla_hw_probe" },
{ 0xc7a22fe1, "dev_change_flags" },
{ 0xea9f3201, "gl_usb_rw_fast" },
{ 0x5b7efb57, "wanpipe_api_poll_wake" },
{ 0xc6405fec, "skb_append" },
{ 0xc12eb167, "wp_logger_level_hwec" },
{ 0xbd2816a, "dahdi_ec_chunk" },
{ 0x4827a016, "del_timer" },
{ 0x7cc79ec0, "dahdi_alarm_channel" },
{ 0xe1b7029c, "print_tainted" },
{ 0x6ad0c191, "wp_logger_level_bri" },
{ 0x79aa04a2, "get_random_bytes" },
{ 0xab978df6, "malloc_sizes" },
{ 0x772274b1, "netif_carrier_on" },
{ 0xc4f02fe7, "skb_clone" },
{ 0x8b61da01, "dev_get_by_name" },
{ 0x14990642, "skb_copy" },
{ 0x1bcd461f, "_spin_lock" },
{ 0xf6a5a6c8, "schedule_work" },
{ 0x669e2d2f, "seq_printf" },
{ 0x87b6fae2, "netif_carrier_off" },
{ 0x7d68ed07, "protocol_disconnected" },
{ 0xeae3dfd6, "__const_udelay" },
{ 0xfb1d0a92, "alloc_netdev" },
{ 0xf27fa082, "wanpipe_lip_connect" },
{ 0x7cd3c2bc, "wanpipe_ec_poll" },
{ 0x87cddf59, "_spin_lock_irqsave" },
{ 0x13405f6b, "unregister_wanpipe_fw_protocol" },
{ 0x1d26aa98, "sprintf" },
{ 0x5ddb19f0, "in_dev_finish_destroy" },
{ 0x47ff4922, "wanpipe_cdev_tdm_ctrl_create" },
{ 0x9a7a6658, "wanpipe_lip_rx" },
{ 0x7d11c268, "jiffies" },
{ 0x3865603, "sdla_register" },
{ 0x4de93988, "sdla_get_hw_usb_adptr_cnt" },
{ 0x92cfbd9d, "netif_rx" },
{ 0xf19df36, "sdladrv_callback" },
{ 0x5487ec8, "wp_logger_level_default" },
{ 0xef11c1ba, "dahdi_unregister" },
{ 0xc659d5a, "del_timer_sync" },
{ 0xebe03d1, "unregister_wan_device" },
{ 0x9070b3f2, "ioport_resource" },
{ 0x67428f4d, "dahdi_ec_span" },
{ 0xdd7bc49e, "dahdi_receive" },
{ 0x53350bd4, "wanpipe_ec_unregister" },
{ 0x1b7d4074, "printk" },
{ 0x5152e605, "memcmp" },
{ 0x15e074de, "free_netdev" },
{ 0xed5c73bf, "__tasklet_schedule" },
{ 0x2da418b5, "copy_to_user" },
{ 0x604efc6a, "register_netdev" },
{ 0xdb36e506, "dma_free_coherent" },
{ 0xc2143791, "wanpipe_ec_register" },
{ 0x6dd4c4d6, "wanpipe_cdev_free" },
{ 0xce69e3a7, "dahdi_hooksig" },
{ 0x4ce4fe8b, "dahdi_qevent_lock" },
{ 0x57e6ed60, "wanpipe_api_sock_rx" },
{ 0x5730615d, "sk_free" },
{ 0xa20fdde, "_spin_unlock_irqrestore" },
{ 0xa5808bbf, "tasklet_init" },
{ 0x1902adf, "netpoll_trap" },
{ 0xff3d5cad, "register_wan_device" },
{ 0xc945873d, "dahdi_register" },
{ 0x149a799f, "dev_kfree_skb_any" },
{ 0x6201c669, "wp_logger_level_fe" },
{ 0x9ad3789b, "dma_alloc_coherent" },
{ 0x79ad224b, "tasklet_kill" },
{ 0x22a2999f, "sdla_unregister" },
{ 0x782bbc32, "dahdi_transmit" },
{ 0x1c53db6e, "skb_over_panic" },
{ 0xb356ebea, "skb_queue_tail" },
{ 0x7dceceac, "capable" },
{ 0x19070091, "kmem_cache_alloc" },
{ 0x9aebf873, "__alloc_skb" },
{ 0xdeeaedb, "wp_logger_repeating_message_filter" },
{ 0x26e96637, "request_irq" },
{ 0x4292364c, "schedule" },
{ 0x6b2dc060, "dump_stack" },
{ 0x8bab76f8, "wp_logger_level_tdmapi" },
{ 0xb08e0988, "skb_under_panic" },
{ 0x562d2ade, "wanpipe_ec_isr" },
{ 0x40e4fec5, "wake_up_process" },
{ 0x7ff2cd30, "wanpipe_cdev_tdm_create" },
{ 0x8bb33e7d, "__release_region" },
{ 0xad97dcd, "ether_setup" },
{ 0xed6a48f7, "protocol_connected" },
{ 0xf7f5afa4, "wanpipe_ec_event_ctrl" },
{ 0x19cacd0, "init_waitqueue_head" },
{ 0xd0b91f9b, "init_timer" },
{ 0x6989a769, "vsnprintf" },
{ 0x59968f3c, "__wake_up" },
{ 0xf6ebc03b, "net_ratelimit" },
{ 0x72270e35, "do_gettimeofday" },
{ 0x22317d82, "wanpipe_lip_disconnect" },
{ 0x37a0cba, "kfree" },
{ 0x801678, "flush_scheduled_work" },
{ 0x78b79ad8, "wanrouter_proc_delete_protocol" },
{ 0x72d0bb1d, "dahdi_hdlc_getbuf" },
{ 0xd90451b0, "wanpipe_cdev_timer_create" },
{ 0x8f9e9e1f, "dahdi_alarm_notify" },
{ 0xaac011d2, "wanpipe_lip_kick" },
{ 0x2e2ed056, "skb_dequeue" },
{ 0x74a9ab7b, "wp_logger_level_te1" },
{ 0x828fe72a, "unregister_netdev" },
{ 0x25da070, "snprintf" },
{ 0x45e37139, "__netif_schedule" },
{ 0x10818a0c, "dev_queue_xmit" },
{ 0xf2a644fb, "copy_from_user" },
{ 0x9e7d6bd0, "__udelay" },
{ 0x706beda2, "wanrouter_proc_add_protocol" },
{ 0xf20dabd8, "free_irq" },
{ 0x524e2f20, "register_wanpipe_fw_protocol" },
};
static const char __module_depends[]
__attribute_used__
__attribute__((section(".modinfo"))) =
"depends=sdladrv,wanrouter,dahdi";
MODULE_INFO(srcversion, "920408AD3910394ACF42135");

View File

@ -18,7 +18,7 @@
# include <linux/wanpipe_includes.h>
# include <linux/wanpipe_defines.h>
# include <linux/wanrouter.h> /* WAN router definitions */
# include <linux/wanpipe_wanrouter.h> /* WAN router definitions */
# include <linux/sdladrv.h>
# include <linux/wanpipe.h> /* WANPIPE common user API definitions */
# include <linux/sdlapci.h>

View File

@ -37,7 +37,7 @@
#include "wanpipe_debug.h"
#include "wanpipe_common.h"
#include "wanpipe_abstr.h"
#include "wanrouter.h"
#include "wanpipe_wanrouter.h"
#include "wanpipe.h"
#include "wanpipe_snmp.h"
#include "sdla_chdlc.h" /* CHDLC firmware API definitions */

View File

@ -69,7 +69,7 @@
#include <linux/wanpipe_debug.h>
#include <linux/wanpipe_common.h>
#include <linux/wanpipe_kernel.h>
#include <linux/wanrouter.h>
#include <linux/wanpipe_wanrouter.h>
#include <linux/wanpipe_syncppp.h>
#include <linux/wanpipe_cfg.h>
#include <linux/wanproc.h>

View File

@ -1,61 +0,0 @@
#include <linux/module.h>
#include <linux/vermagic.h>
#include <linux/compiler.h>
MODULE_INFO(vermagic, VERMAGIC_STRING);
struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
.name = KBUILD_MODNAME,
.init = init_module,
#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,
#endif
};
static const struct modversion_info ____versions[]
__attribute_used__
__attribute__((section("__versions"))) = {
{ 0x89e24b9c, "struct_module" },
{ 0x3f234f3e, "wp_logger_input" },
{ 0xc98aebe6, "wan_get_ip_address" },
{ 0x12da5bb2, "__kmalloc" },
{ 0xec7bc0d, "__mod_timer" },
{ 0x6df6c4e0, "wan_run_wanrouter" },
{ 0x4827a016, "del_timer" },
{ 0x79aa04a2, "get_random_bytes" },
{ 0xab978df6, "malloc_sizes" },
{ 0xf6a5a6c8, "schedule_work" },
{ 0x87cddf59, "_spin_lock_irqsave" },
{ 0x1d26aa98, "sprintf" },
{ 0x5ddb19f0, "in_dev_finish_destroy" },
{ 0x7d11c268, "jiffies" },
{ 0x651a840a, "wan_add_gateway" },
{ 0x92cfbd9d, "netif_rx" },
{ 0xfd74fadb, "wan_set_ip_address" },
{ 0x5487ec8, "wp_logger_level_default" },
{ 0x1b7d4074, "printk" },
{ 0x2da418b5, "copy_to_user" },
{ 0xa20fdde, "_spin_unlock_irqrestore" },
{ 0x1c53db6e, "skb_over_panic" },
{ 0x7dceceac, "capable" },
{ 0x19070091, "kmem_cache_alloc" },
{ 0x9aebf873, "__alloc_skb" },
{ 0xdeeaedb, "wp_logger_repeating_message_filter" },
{ 0x89d282ea, "kfree_skb" },
{ 0xb08e0988, "skb_under_panic" },
{ 0xd0b91f9b, "init_timer" },
{ 0x37a0cba, "kfree" },
{ 0x25da070, "snprintf" },
{ 0x8235805b, "memmove" },
{ 0x10818a0c, "dev_queue_xmit" },
{ 0xf2a644fb, "copy_from_user" },
};
static const char __module_depends[]
__attribute_used__
__attribute__((section(".modinfo"))) =
"depends=sdladrv,wanrouter";
MODULE_INFO(srcversion, "8FF014FB05CFEFEE63E5EE7");

View File

@ -88,8 +88,6 @@
#define MAX_TDM_API_CHANNELS 32
static int wp_tdmapi_global_cnt=0;
static u8 *rx_gains=NULL;
static u8 *tx_gains=NULL;
static wanpipe_tdm_api_dev_t tdmapi_ctrl;
/*==============================================================
@ -299,9 +297,17 @@ static void wp_tdmapi_free_buffs(wanpipe_tdm_api_dev_t *tdm_api)
tdm_api->tx_skb=NULL;
}
tdm_api->rx_gain=NULL;
tdm_api->tx_gain=NULL;
if (tdm_api->rx_gain) {
uint8_t *rx_gains=tdm_api->rx_gain;
tdm_api->rx_gain=NULL;
wan_free(rx_gains);
}
if (tdm_api->tx_gain){
uint8_t *tx_gains=tdm_api->tx_gain;
tdm_api->tx_gain=NULL;
wan_free(tx_gains);
}
}
@ -354,9 +360,6 @@ static int wp_tdmapi_reg_globals(void)
{
int err=0;
rx_gains=NULL;
tx_gains=NULL;
/* Header Sanity Check */
if ((sizeof(wp_api_hdr_t)!=WAN_MAX_HDR_SZ) ||
(sizeof(wp_api_hdr_t)!=WAN_MAX_HDR_SZ)) {
@ -512,15 +515,6 @@ static int wp_tdmapi_unreg_globals(void)
wp_ctrl_dev_delete();
if (tx_gains) {
wan_free(tx_gains);
tx_gains=NULL;
}
if (rx_gains) {
wan_free(rx_gains);
rx_gains=NULL;
}
WAN_DEBUG_FUNC_END;
return 0;
@ -1111,8 +1105,6 @@ static int wp_tdmapi_open(void *obj)
wp_tdmapi_init_buffs(tdm_api, WP_API_FLUSH_ALL);
tdm_api->rx_gain=NULL;
tdm_api->tx_gain=NULL;
tdm_api->cfg.loop=0;
}
@ -1129,6 +1121,23 @@ static int wp_tdmapi_open(void *obj)
static int gread_cnt=0;
#endif
static __inline int wp_tdmapi_set_gain(netskb_t *skb, char *gain)
{
if (skb && gain && wan_skb_len(skb) > sizeof(wp_api_hdr_t)) {
int i;
int len = wan_skb_len(skb)- sizeof(wp_api_hdr_t);
u8 *buf=(u8*)wan_skb_data(skb);
buf=&buf[sizeof(wp_api_hdr_t)];
for (i=0;i<len;i++) {
buf[i]=gain[buf[i]];
}
} else {
return -1;
}
return 0;
}
static int wp_tdmapi_read_msg(void *obj , netskb_t **skb_ptr, wp_api_hdr_t *hdr, int count)
{
wanpipe_tdm_api_dev_t *tdm_api = (wanpipe_tdm_api_dev_t*)obj;
@ -1227,6 +1236,7 @@ static int wp_tdmapi_read_msg(void *obj , netskb_t **skb_ptr, wp_api_hdr_t *hdr,
u_buf = &u_buf[sizeof(wp_api_hdr_t)];
buf=wan_skb_put(nskb,single_len);
memcpy(buf,u_buf,single_len);
wan_skb_queue_tail(&tdm_api->wp_dealloc_list,skb);
@ -1249,6 +1259,10 @@ static int wp_tdmapi_read_msg(void *obj , netskb_t **skb_ptr, wp_api_hdr_t *hdr,
hdr->wp_api_hdr_operation_status = SANG_STATUS_NO_DATA_AVAILABLE;
return -ENOBUFS;
}
if (tdm_api->rx_gain) {
wp_tdmapi_set_gain(skb,tdm_api->rx_gain);
}
#ifdef DEBUG_API_READ
if (tdm_api->tdm_span == 1 &&
@ -1320,9 +1334,6 @@ static int wp_tdmapi_read_msg(void *obj , netskb_t **skb_ptr, wp_api_hdr_t *hdr,
wan_skb_len(skb), skb);
return 0;
#undef wptdm_queue_lock_irq
#undef wptdm_queue_unlock_irq
}
@ -1530,6 +1541,10 @@ static int wp_tdmapi_write_msg(void *obj, netskb_t *skb, wp_api_hdr_t *hdr)
hdr->wp_api_hdr_data_length = wan_skb_len(skb)-sizeof(wp_api_hdr_t);
if (WPTDM_SPAN_OP_MODE(tdm_api) || tdm_api->hdlc_framing) {
if (tdm_api->tx_gain && !tdm_api->hdlc_framing) {
wp_tdmapi_set_gain(skb,tdm_api->tx_gain);
}
wan_skb_pull(skb,sizeof(wp_api_hdr_t));
@ -1572,6 +1587,10 @@ static int wp_tdmapi_write_msg(void *obj, netskb_t *skb, wp_api_hdr_t *hdr)
card = tdm_api->card;
if (tdm_api->tx_gain) {
wp_tdmapi_set_gain(skb,tdm_api->tx_gain);
}
wptdm_os_lock_irq(&card->wandev.lock,&irq_flags);
wan_skb_queue_tail(&tdm_api->wp_tx_list, skb);
hdr->tx_h.current_number_of_frames_in_tx_queue = (u8)wan_skb_queue_len(&tdm_api->wp_tx_list);
@ -1885,6 +1904,11 @@ static int wanpipe_tdm_api_ioctl_handle_tdm_api_cmd(wanpipe_tdm_api_dev_t *tdm_a
wan_mutex_lock(&tdm_api->lock,&flags);
/* Set the span/channel so that user knows which channel its using */
usr_tdm_api.chan=channel;
usr_tdm_api.span=wp_tdmapi_get_span(card);
/* Commands for HDLC Device */
if (tdm_api->hdlc_framing) {
@ -2436,13 +2460,16 @@ static int wanpipe_tdm_api_ioctl_handle_tdm_api_cmd(wanpipe_tdm_api_dev_t *tdm_a
case WP_API_CMD_SET_RX_GAINS:
if (usr_tdm_api.data_len && utdmapi->data) {
uint8_t *rx_gains;
if (usr_tdm_api.data_len != 256) {
usr_tdm_api.result=SANG_STATUS_INVALID_PARAMETER;
err=-EINVAL;
break;
}
rx_gains = tdm_api->rx_gain;
wan_mutex_unlock(&tdm_api->lock, &flags);
if (!rx_gains) {
@ -2463,7 +2490,7 @@ static int wanpipe_tdm_api_ioctl_handle_tdm_api_cmd(wanpipe_tdm_api_dev_t *tdm_a
}
wan_mutex_lock(&tdm_api->lock,&flags);
tdm_api->rx_gain = rx_gains;
} else {
@ -2480,12 +2507,16 @@ static int wanpipe_tdm_api_ioctl_handle_tdm_api_cmd(wanpipe_tdm_api_dev_t *tdm_a
case WP_API_CMD_SET_TX_GAINS:
if (usr_tdm_api.data_len && utdmapi->data) {
uint8_t *tx_gains;
if (usr_tdm_api.data_len != 256) {
usr_tdm_api.result=SANG_STATUS_INVALID_PARAMETER;
err=-EINVAL;
break;
}
tx_gains = tdm_api->tx_gain;
wan_mutex_unlock(&tdm_api->lock, &flags);
if (!tx_gains) {
@ -2505,7 +2536,7 @@ static int wanpipe_tdm_api_ioctl_handle_tdm_api_cmd(wanpipe_tdm_api_dev_t *tdm_a
goto tdm_api_unlocked_exit;
}
wan_mutex_lock(&tdm_api->lock,&flags);
tdm_api->tx_gain = tx_gains;
} else {
@ -2518,11 +2549,21 @@ static int wanpipe_tdm_api_ioctl_handle_tdm_api_cmd(wanpipe_tdm_api_dev_t *tdm_a
case WP_API_CMD_CLEAR_RX_GAINS:
tdm_api->rx_gain = NULL;
if (tdm_api->rx_gain) {
int i;
for (i=0;i<256;i++) {
tdm_api->rx_gain[i]=i;
}
}
break;
case WP_API_CMD_CLEAR_TX_GAINS:
tdm_api->tx_gain = NULL;
if (tdm_api->tx_gain) {
int i;
for (i=0;i<256;i++) {
tdm_api->tx_gain[i]=i;
}
}
break;
case WP_API_CMD_FLUSH_BUFFERS:
@ -2691,6 +2732,7 @@ tdm_api_unlocked_exit:
usr_tdm_api.result = err;
#if defined(__WINDOWS__)
/* udata is a pointer to wanpipe_api_cmd_t */
memcpy(udata, &usr_tdm_api, sizeof(wanpipe_api_cmd_t));
@ -3016,8 +3058,7 @@ wanpipe_tdm_api_event_ioctl(wanpipe_tdm_api_dev_t *tdm_api, wanpipe_api_cmd_t *t
event_ctrl.rm_gain = tdm_event->wp_api_event_gain_value;
event_ctrl.mod_no = channel;
break;
default:
DEBUG_EVENT("%s: Unknown TDM API Event Type %02X!\n",
tdm_api->name,

View File

@ -18,7 +18,7 @@
#include "wanpipe_debug.h"
#include "wanpipe_common.h"
#include "wanpipe_iface.h"
#include "wanrouter.h"
#include "wanpipe_wanrouter.h"
#include "wanpipe.h"
#include "wanpipe_api.h"
#include "wanpipe_cdev_iface.h"

View File

@ -1,71 +0,0 @@
#include <linux/module.h>
#include <linux/vermagic.h>
#include <linux/compiler.h>
MODULE_INFO(vermagic, VERMAGIC_STRING);
struct module __this_module
__attribute__((section(".gnu.linkonce.this_module"))) = {
.name = KBUILD_MODNAME,
.init = init_module,
#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,
#endif
};
static const struct modversion_info ____versions[]
__attribute_used__
__attribute__((section("__versions"))) = {
{ 0x89e24b9c, "struct_module" },
{ 0x3f234f3e, "wp_logger_input" },
{ 0xc7a22fe1, "dev_change_flags" },
{ 0xd6ee688f, "vmalloc" },
{ 0x16274ab6, "single_open" },
{ 0x27ae86e5, "single_release" },
{ 0xab978df6, "malloc_sizes" },
{ 0xc7a4fbed, "rtnl_lock" },
{ 0xade2d0d7, "sdla_get_hw_probe" },
{ 0x8b61da01, "dev_get_by_name" },
{ 0x1bcd461f, "_spin_lock" },
{ 0x669e2d2f, "seq_printf" },
{ 0x5d57df57, "remove_proc_entry" },
{ 0xfb1d0a92, "alloc_netdev" },
{ 0x2fd1d81c, "vfree" },
{ 0x1d26aa98, "sprintf" },
{ 0x5ddb19f0, "in_dev_finish_destroy" },
{ 0xf98c26e5, "seq_read" },
{ 0x5487ec8, "wp_logger_level_default" },
{ 0xc288bfdc, "wanpipe_cdev_cfg_ctrl_create" },
{ 0x6315b09, "proc_mkdir" },
{ 0xe987619e, "proc_net" },
{ 0x1b7d4074, "printk" },
{ 0x5152e605, "memcmp" },
{ 0x15e074de, "free_netdev" },
{ 0x2da418b5, "copy_to_user" },
{ 0x604efc6a, "register_netdev" },
{ 0x6dd4c4d6, "wanpipe_cdev_free" },
{ 0xbd4a533a, "sdla_get_hwinfo" },
{ 0x7dceceac, "capable" },
{ 0x19070091, "kmem_cache_alloc" },
{ 0xdeeaedb, "wp_logger_repeating_message_filter" },
{ 0x72183c, "call_usermodehelper_keys" },
{ 0xdfd0f6c6, "sdla_get_hw_adptr_cnt" },
{ 0xb08e0988, "skb_under_panic" },
{ 0xd5028665, "create_proc_entry" },
{ 0x40e4fec5, "wake_up_process" },
{ 0xf6ebc03b, "net_ratelimit" },
{ 0x8ea8a3d5, "seq_lseek" },
{ 0x37a0cba, "kfree" },
{ 0x828fe72a, "unregister_netdev" },
{ 0xf4e1d60e, "seq_release" },
{ 0xf2a644fb, "copy_from_user" },
{ 0x6e720ff2, "rtnl_unlock" },
};
static const char __module_depends[]
__attribute_used__
__attribute__((section(".modinfo"))) =
"depends=sdladrv";
MODULE_INFO(srcversion, "B6D0B4FBBAD94E571F4EF36");

View File

@ -36,7 +36,6 @@
#include <linux/wanpipe_includes.h>
#include <linux/wanpipe_defines.h>
#include <linux/wanpipe.h>
#include <linux/wanrouter.h>
#include <linux/if_wanpipe_kernel.h>
#include <linux/if_wanpipe.h>
@ -322,6 +321,8 @@ dev_private_ioctl:
struct sock *wanpipe_make_new(struct sock *osk)
{
struct sock *sk;
wait_queue_head_t *tmp1;
wait_queue_head_t *tmp2;
if (osk->sk_type != SOCK_RAW)
return NULL;
@ -338,7 +339,9 @@ struct sock *wanpipe_make_new(struct sock *osk)
sk->sk_sndbuf = osk->sk_sndbuf;
sk->sk_debug = osk->sk_debug;
sk->sk_state = WANSOCK_CONNECTING;
sk->sk_sleep = osk->sk_sleep;
tmp1 = WAN_SK_SLEEP(sk);
tmp2 = WAN_SK_SLEEP(osk);
tmp1 = tmp2;
return sk;
}
@ -564,7 +567,7 @@ static int wanpipe_accept(struct socket *sock, struct socket *newsock, int flags
if (SK_PRIV(sk)->num != htons(ETH_P_X25) && SK_PRIV(sk)->num != htons(WP_X25_PROT) && SK_PRIV(sk)->num != htons(DSP_PROT))
return -EPROTOTYPE;
add_wait_queue(sk->sk_sleep,&wait);
add_wait_queue(WAN_SK_SLEEP(sk),&wait);
current->state = TASK_INTERRUPTIBLE;
for (;;){
skb = skb_dequeue(&sk->sk_receive_queue);
@ -585,7 +588,7 @@ static int wanpipe_accept(struct socket *sock, struct socket *newsock, int flags
schedule();
}
current->state = TASK_RUNNING;
remove_wait_queue(sk->sk_sleep,&wait);
remove_wait_queue(WAN_SK_SLEEP(sk),&wait);
if (err != 0)
return err;
@ -657,8 +660,11 @@ accept_newsk_ok:
newsk->sk_pair = NULL;
#endif
newsk->sk_socket = newsock;
#ifdef CONFIG_RPS
WAN_SK_SLEEP(newsk);
#else
newsk->sk_sleep = &newsock->wait;
#endif
/* Now attach up the new socket */
sk->sk_ack_backlog--;
newsock->sk = newsk;
@ -1791,7 +1797,7 @@ static unsigned int wanpipe_poll(struct file * file, struct socket *sock, poll_t
DEBUG_TX("%s: Sock State %p = %d\n",
__FUNCTION__,sk,sk->sk_state);
poll_wait(file, sk->sk_sleep, wait);
poll_wait(file, WAN_SK_SLEEP(sk), wait);
/* exceptional events? */
if (!SK_PRIV(sk) ||

View File

@ -17,7 +17,6 @@
#include "wanpipe_debug.h"
#include "wanpipe_common.h"
#include "wanpipe_iface.h"
#include "wanrouter.h"
#include "wanpipe.h"
#include "wanpipe_api.h"
#include "if_wanpipe.h"

View File

@ -51,7 +51,7 @@
#include "wanpipe_debug.h"
#include "wanpipe_common.h"
#include "wanpipe_iface.h"
#include "wanrouter.h" /* WAN router API definitions */
#include "wanpipe_wanrouter.h" /* WAN router API definitions */
#include "wanpipe.h" /* WAN router API definitions */
#include "if_wanpipe.h"

View File

@ -851,6 +851,9 @@ static int probe_get_info(char* buf, char** start, off_t offs, int len, int dumm
if (hw_cnt->aft_b601_adapters){
PROC_ADD_LINE(m, "B601=%d ", hw_cnt->aft_b601_adapters);
}
if (hw_cnt->aft_b800_adapters){
PROC_ADD_LINE(m, "B800=%d ", hw_cnt->aft_b800_adapters);
}
PROC_ADD_LINE(m, "\n");
PROC_ADD_RET(m);
@ -994,6 +997,9 @@ static int probe_get_info_verbose(char* buf, char** start, off_t offs, int len,
if (hw_cnt->aft_b601_adapters){
PROC_ADD_LINE(m, "B601=%d ", hw_cnt->aft_b601_adapters);
}
if (hw_cnt->aft_b800_adapters){
PROC_ADD_LINE(m, "B800=%d ", hw_cnt->aft_b800_adapters);
}
PROC_ADD_LINE(m, "\n");
PROC_ADD_RET(m);

View File

@ -1 +0,0 @@
cmd_/root/3.5/wanpipe/patches/kdrivers/wanec/wanec.ko := ld -m elf_i386 -m elf_i386 -r -o /root/3.5/wanpipe/patches/kdrivers/wanec/wanec.ko /root/3.5/wanpipe/patches/kdrivers/wanec/wanec.o /root/3.5/wanpipe/patches/kdrivers/wanec/wanec.mod.o

View File

@ -0,0 +1 @@
core_marker_format vmlinux name %s format %s

View File

@ -1,72 +0,0 @@
0xf7567a8a wanpipe_api_buf_check /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0xf27fa082 wanpipe_lip_connect /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x7ff2cd30 wanpipe_cdev_tdm_create /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xe656360e sdladrv_hw_mode /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x53ece134 wanpipe_cdev_tx_wake /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x1df80ee2 wanpipe_cdev_rx_wake /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x03865603 sdla_register /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x57e6ed60 wanpipe_api_sock_rx /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x0a7a356f wanpipe_cdev_event_wake /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x5ab4fa7a wanrouter_proc_add_interface /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x59fb2682 sdla_hw_probe /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x9a7a6658 wanpipe_lip_rx /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x8f31cdeb proc_router /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x77da8dee register_wanec_iface /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x1036a1ab bind_api_listen_to_protocol /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x524e2f20 register_wanpipe_fw_protocol /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0xff3d5cad register_wan_device /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x706beda2 wanrouter_proc_add_protocol /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x0deeaedb wp_logger_repeating_message_filter /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x618aefa9 wanpipe_cdev_logger_create /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xf7f5afa4 wanpipe_ec_event_ctrl /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x6201c669 wp_logger_level_fe /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x7cd3c2bc wanpipe_ec_poll /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x78b79ad8 wanrouter_proc_delete_protocol /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x6dd4c4d6 wanpipe_cdev_free /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xdfd0f6c6 sdla_get_hw_adptr_cnt /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x6ad0c191 wp_logger_level_bri /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xc2143791 wanpipe_ec_register /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0xc288bfdc wanpipe_cdev_cfg_ctrl_create /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xb8da2b4c wanpipe_global_cdev_free /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x47ff4922 wanpipe_cdev_tdm_ctrl_create /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xaa81d611 wanpipe_global_cdev_init /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x02364d27 wanrouter_encapsulate /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x136b2537 wan_skb_destructor /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x3f234f3e wp_logger_input /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xfa083e32 register_wanpipe_api_socket /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x4de93988 sdla_get_hw_usb_adptr_cnt /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xade2d0d7 sdla_get_hw_probe /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xd90451b0 wanpipe_cdev_timer_create /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x0f19df36 sdladrv_callback /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xbd4a533a sdla_get_hwinfo /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xef48df91 proc_add_line /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x22a2999f sdla_unregister /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x85c05713 wanrouter_type_trans /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0xfd74fadb wan_set_ip_address /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0xc98aebe6 wan_get_ip_address /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x7d68ed07 protocol_disconnected /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0xc5224c15 bind_api_to_protocol /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x38eb6851 unregister_wanpipe_api_socket /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0xaac011d2 wanpipe_lip_kick /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x3b604364 unbind_api_listen_from_protocol /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x6df6c4e0 wan_run_wanrouter /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x05487ec8 wp_logger_level_default /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xeb418feb sdla_hw_bridge_probe /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xea9f3201 gl_usb_rw_fast /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x04df932b unregister_wanec_iface /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x562d2ade wanpipe_ec_isr /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x13405f6b unregister_wanpipe_fw_protocol /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0xe72f44cb wanpipe_api_listen_rx /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x8bab76f8 wp_logger_level_tdmapi /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0x5b7efb57 wanpipe_api_poll_wake /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x651a840a wan_add_gateway /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x2f21a326 unregister_wanpipe_lip_protocol /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x26f7c618 wanrouter_proc_delete_interface /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x0ebe03d1 unregister_wan_device /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x22317d82 wanpipe_lip_disconnect /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x74a9ab7b wp_logger_level_te1 /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xed6a48f7 protocol_connected /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x53350bd4 wanpipe_ec_unregister /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0xc12eb167 wp_logger_level_hwec /root/3.5/wanpipe/kdrvtmp/sdladrv EXPORT_SYMBOL
0xb0f682a5 register_wanpipe_lip_protocol /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL
0x00525339 protocol_connecting /root/3.5/wanpipe/kdrvtmp/wanrouter EXPORT_SYMBOL

View File

@ -11,49 +11,54 @@ __attribute__((section(".gnu.linkonce.this_module"))) = {
#ifdef CONFIG_MODULE_UNLOAD
.exit = cleanup_module,
#endif
.arch = MODULE_ARCH_INIT,
};
static const struct modversion_info ____versions[]
__attribute_used__
__used
__attribute__((section("__versions"))) = {
{ 0x89e24b9c, "struct_module" },
{ 0x4d033975, "module_layout" },
{ 0x3f234f3e, "wp_logger_input" },
{ 0x12da5bb2, "__kmalloc" },
{ 0x7e3f931f, "_spin_trylock" },
{ 0xec7bc0d, "__mod_timer" },
{ 0x7ee91c1d, "_spin_trylock" },
{ 0xd6ee688f, "vmalloc" },
{ 0xc12eb167, "wp_logger_level_hwec" },
{ 0x4827a016, "del_timer" },
{ 0xf26c4b72, "class_device_destroy" },
{ 0xb5513e49, "class_device_create" },
{ 0xab978df6, "malloc_sizes" },
{ 0x1bcd461f, "_spin_lock" },
{ 0xb61f0f80, "del_timer" },
{ 0xd0d8621b, "strlen" },
{ 0x5113d3a4, "malloc_sizes" },
{ 0x973873ab, "_spin_lock" },
{ 0x4661e311, "__tracepoint_kmalloc" },
{ 0x66351462, "device_destroy" },
{ 0xeae3dfd6, "__const_udelay" },
{ 0x2fd1d81c, "vfree" },
{ 0x1d26aa98, "sprintf" },
{ 0xb1ca2692, "init_timer_key" },
{ 0x999e8297, "vfree" },
{ 0x3c2c5af5, "sprintf" },
{ 0x7d11c268, "jiffies" },
{ 0xe2d5255a, "strcmp" },
{ 0x5487ec8, "wp_logger_level_default" },
{ 0x77da8dee, "register_wanec_iface" },
{ 0x8d3894f2, "_ctype" },
{ 0x5152e605, "memcmp" },
{ 0x2da418b5, "copy_to_user" },
{ 0x2e1de6c1, "class_create" },
{ 0x19070091, "kmem_cache_alloc" },
{ 0xc7fbd1f5, "device_create" },
{ 0xeba165b4, "add_timer" },
{ 0x6dcedb09, "kmem_cache_alloc" },
{ 0x4df932b, "unregister_wanec_iface" },
{ 0xdeeaedb, "wp_logger_repeating_message_filter" },
{ 0x4086729e, "register_chrdev" },
{ 0xd0b91f9b, "init_timer" },
{ 0x181631b1, "register_chrdev" },
{ 0xf6ebc03b, "net_ratelimit" },
{ 0x72270e35, "do_gettimeofday" },
{ 0x1d2e87c6, "do_gettimeofday" },
{ 0x37a0cba, "kfree" },
{ 0x2e60bace, "memcpy" },
{ 0xc192d491, "unregister_chrdev" },
{ 0x4870cf59, "class_destroy" },
{ 0x9ef749e2, "unregister_chrdev" },
{ 0xb4e817cd, "class_destroy" },
{ 0x12aacf5c, "__class_create" },
{ 0xf2a644fb, "copy_from_user" },
{ 0xe914e41e, "strcpy" },
};
static const char __module_depends[]
__attribute_used__
__used
__attribute__((section(".modinfo"))) =
"depends=sdladrv,wanrouter";

Some files were not shown because too many files have changed in this diff Show More