wanpipe-3.5.15.tgz
This commit is contained in:
parent
83c99f95f1
commit
ada29bf89d
|
@ -1 +1 @@
|
|||
wanpipe-3.5.14
|
||||
wanpipe-3.5.15
|
||||
|
|
|
@ -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
|
||||
===================================================================
|
||||
|
||||
|
|
7
Makefile
7
Makefile
|
@ -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
245
Setup
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
293
|
||||
308
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/docs
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
293
|
||||
308
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/docs/doxygen
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
293
|
||||
308
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/examples
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
293
|
||||
308
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/hptdm_api
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
8
|
||||
|
||||
dir
|
||||
293
|
||||
308
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/examples/priserver
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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];
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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];
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Package: wanpipe
|
||||
Version: 3.5.14-0
|
||||
Version: 3.5.15-0
|
||||
Section: networking
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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__)
|
||||
|
|
|
@ -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 */
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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__)
|
||||
|
|
|
@ -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__)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 */
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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");
|
|
@ -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){
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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");
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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");
|
|
@ -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");
|
|
@ -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");
|
|
@ -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>
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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");
|
|
@ -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,
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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");
|
|
@ -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) ||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
core_marker_format vmlinux name %s format %s
|
|
@ -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
|
|
@ -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
Loading…
Reference in New Issue