wanpipe-3.3.14.tgz

This commit is contained in:
Harald Welte 2021-12-29 18:23:59 +01:00
parent 0592e46fa9
commit e5ec5ffa8b
473 changed files with 38370 additions and 7221 deletions

BIN
.Makefile.swp Normal file

Binary file not shown.

View File

@ -7,6 +7,51 @@ Copyright (c) 1995-2008 Sangoma Technologies Inc.
For more info visit: http://wiki.sangoma.com
* Tue Oct 8 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.14
=====================================================================
- Enabled Zaptel/DAHDI libss7 MTP2 option
- Updated TDM API for A200
Fixes FreeSwitch OpenZAP with TDM API for Analog
- Bug fix in XMTP2 API
The fifo error could cause xmtp2 buffering to fail
- wanpipemon utility
Updated T1/E1 Loopback comands
Bug fix on 2.6.25 kernels
- Driver compile update for Latest
2.6.26 kernels
- Update AFT driver to implement new loopback commands
- Updated for 56K driver
- Added Asterisk DAHDI Support
- A200/A400 Analog driver update
Bug fix possible race condition due to front end interrupt.
- AFT Core Update
Disabled fifo overrun handling in transparent mode.
It does not provide any improvemnt.
XMTP2 API mode could run out of buffers due to overrun errors.
This has now been fixed.
- Fixed A301 E3 Support
New firmware V11 is needed.
Please upgrade firmware before starting up the card.
To check firmware run: wanrouter hwprobe
* Fri Sep 1 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.13
=====================================================================
- This release was never released.
* Fri Aug 1 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.12
=====================================================================

View File

@ -128,6 +128,7 @@ all_bin_kmod: _checkzap _checksrc _cleanoldwanpipe _check_kver
clean: clean_util _cleanoldwanpipe
$(MAKE) -C $(KDIR) SUBDIRS=$(WAN_DIR) clean
@find patches/kdrivers -name '.*.cmd' | xargs rm -f
@find . -name 'Module.symver*' | xargs rm -f
#Clean old wanpipe headers from linux include
@ -177,6 +178,7 @@ _checkzap:
eval "$(PWD)/patches/sangoma-zaptel-patch.sh $(ZAPDIR)"; \
ZAPDIR_PRIV=$(ZAPDIR); \
ENABLE_WANPIPEMON_ZAP=YES; \
cp -f $(ZAPDIR)/Module.symvers $(WAN_DIR)/; \
echo ; \
echo "Please recompile and reinstall ZAPTEL after installation"; \
fi
@ -211,7 +213,7 @@ install_kmod:
endif
#Compile utilities only
all_util:
all_util: install_inc
$(MAKE) -C util all EXTRA_FLAGS="$(EXTRA_UTIL_FLAGS)" SYSINC="$(PWD)/$(WINCLUDE) -I $(PWD)/api/libsangoma/include" CC=$(CC) \
PREFIX=$(INSTALLPREFIX) HOSTCFLAGS="$(EXTRA_UTIL_FLAGS)" ARCH=$(ARCH)
$(MAKE) -C util all_wancfg EXTRA_FLAGS="$(EXTRA_UTIL_FLAGS)" SYSINC="$(PWD)/$(WINCLUDE) -I$(PWD)/api/libsangoma/include" CC=$(CC) \
@ -264,6 +266,7 @@ install_inc:
\rm -rf $(INSTALLPREFIX)/usr/include/wanpipe; \
fi
@\mkdir -p $(INSTALLPREFIX)/usr/include/wanpipe
@ln -s $(INSTALLPREFIX)/usr/include/wanpipe/ $(INSTALLPREFIX)/usr/include/wanpipe/linux
@\cp -f $(PWD)/patches/kdrivers/include/*.h $(INSTALLPREFIX)/usr/include/wanpipe/
@\cp -rf $(PWD)/patches/kdrivers/wanec/oct6100_api/include/ $(INSTALLPREFIX)/usr/include/wanpipe/oct6100_api
@\cp -rf $(PWD)/patches/kdrivers/wanec/*.h $(INSTALLPREFIX)/usr/include/wanpipe/

491
Setup
View File

@ -323,6 +323,43 @@ ENDOFTEXT
}
welcome_dahdi()
{
cat << ENDOFTEXT
${DISTR_NAME} INSTALLATION FOR DAHDI
You are about to install ${DISTR_NAME} TDM Voice drivers
for Asterisk/Dahdi framework.
You will be prompted for path to DAHDI source.
Wanpipe drivers will compile into dahdi WITHOUT any
dahdi patching or need to recompile dahdi modules.
You must have Linux Kernel Headers along with
full development tools (i.e. GNU C compiler and utilities)
installed in order to be able to install this product.
If you have previoulsy installed WANPIPE, this release
will overrite/upgrade full release without the need to
uninstall first!
IMPORTANT:
It is always recommended to say YES to all options
prompted during the install!
Please visit: http://wiki.sangoma.com for more info.
ENDOFTEXT
return
}
welcome_default()
{
@ -374,8 +411,12 @@ welcome()
welcome_default
elif [ $zaptel_auto_install = "YES" ]; then
welcome_zaptel
if [ $dahdi_auto_install = "YES" ]; then
welcome_dahdi
else
welcome_zaptel
fi
else
welcome_default
fi
@ -433,6 +474,7 @@ and configuration/debug utilities have been compiled and installed.
1) Proceed to configure the WANPIPE drivers:
Asterisk/Zaptel: /usr/sbin/wancfg_zaptel
Asterisk/Dahdi : /usr/sbin/wancfg_dahdi
TDM API : /usr/sbin/wancfg_tdmapi
SMG SS7/BRI : /usr/sbin/wancfg_smg
WAN Routing/API: /usr/sbin/wancfg
@ -475,6 +517,7 @@ WANPIPE kernel modules:
1) Proceed to configure the WANPIPE drivers:
Asterisk/Zaptel: /usr/sbin/wancfg_zaptel
Asterisk/Dahdi : /usr/sbin/wancfg_dahdi
SMG SS7 or BRI : /usr/sbin/wancfg_smg
TDM API : /usr/sbin/wancfg_tdmapi
WAN Routing/API: /usr/sbin/wancfg
@ -1916,6 +1959,7 @@ WANPIPE UTILITIES SETUP
WANPIPE utilities are used to:
1) create configuration files: for Zaptel and Asterisk
/usr/sbin/wancfg_zaptel #Zaptel and Asterisk
/usr/sbin/wancfg_dahdi #Dahdi and Asterisk
/usr/sbin/wancfg_smg #BRI/SS7, Zaptel and Asterisk
/usr/sbin/wancfg_tdmapi #TDM API
2) create WANPIPE WAN/IP configuration files.
@ -2021,6 +2065,9 @@ WARNING: The Linux source in $SOURCEDIR has not been configured.
WANCFG_DEFS=
if [ "$TDM_PROT" = "YES" ]; then
WANCFG_DEFS=$WANCFG_DEFS" ENABLE_ZAPTEL_PARSER=YES ZAPINC=$ZAPTEL_SOURCE_DIR"
if [ -d $ZAPTEL_SOURCE_DIR/dahdi ]; then
WANCFG_DEFS=$WANCFG_DEFS" DAHDI_ISSUES=YES"
fi
fi
eval "make -C wancfg all CC=$CC SYSINC=$SOURCEDIR/include $WANCFG_DEFS >> $CMP_LOG 2>> $CMP_LOG"
@ -2510,7 +2557,9 @@ function build_wanec_module ()
mkdir tmp
fi
if [ -e $PROD_HOME/$MODSYM.wanrouter ]; then
cat $PROD_HOME/$MODSYM.wanrouter > $MODSYM
fi
build_kernel_module wanec "$files" "$EXTRA_FLAGS"
if [ $? -ne 0 ]; then
return $?;
@ -3431,6 +3480,7 @@ ENDOFTEXT
i386*) LD_ELF="-m elf_i386"
;;
x86*) LD_ELF="-m elf_i386"
ARCH=i386
;;
ppc*)
;;
@ -3467,6 +3517,10 @@ CFLAGS="$CC -Wp,-MD,.wanpipe.o.d -nostdinc -iwithprefix include -D__LINUX__ -Dli
fi
check_inode_struct
if [ "$BRI_MODULE_TEST" = "YES" ]; then
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DBUILD_MOD_TESTER"
fi
if [ 1 -eq 1 ]; then
echo
@ -3712,9 +3766,22 @@ WANPIPE_OBJS=
rm -f sdladrv_src.c
ln -s sdladrv.c sdladrv_src.c
build_kernel_module sdladrv "sdladrv_src sdladrv_fe sdladrv_utils"
SDLADRV_OBJS="sdladrv_src sdladrv_fe sdladrv_utils "
if [ "$AFT_USB_PROT" = "YES" ]; then
SDLADRV_OBJS=$SDLADRV_OBJS"sdladrv_usb "
fi
build_kernel_module sdladrv "$SDLADRV_OBJS"
if [ -e $MODSYM ]; then
cp $MODSYM $PROD_HOME/$MODSYM.sdladrv
fi
build_kernel_module wanrouter "wanmain wanproc waniface"
if [ -e $MODSYM ]; then
cp $MODSYM $PROD_HOME/$MODSYM.wanrouter
fi
AF_EXTRA_FLAGS="-DCONFIG_PRODUCT_WANPIPE_SOCK_DATASCOPE"
check_for_af_wanpipe_updates
@ -3722,6 +3789,9 @@ WANPIPE_OBJS=
rm -f af_wanpipe_src.c
ln -s af_wanpipe.c af_wanpipe_src.c
build_kernel_module af_wanpipe "af_wanpipe_src af_wanpipe_datascope" "$AF_EXTRA_FLAGS"
if [ -e $MODSYM ]; then
cp $MODSYM $PROD_HOME/$MODSYM.af_wanpipe
fi
echo -n "."
@ -3911,6 +3981,10 @@ WANPIPE_OBJS=
\cp $DRIVER_UPDATE_DIR/src/net/sdla_tdmv_dummy.c .
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_tdmv sdla_remora_tdmv sdla_bri_tdmv sdla_tdmv_dummy "
WANPIPE_EXTRA_CFLAGS=$WANPIPE_EXTRA_CFLAGS"-I$ZAPTEL_SOURCE_DIR "
if [ -f $ZAPTEL_SOURCE_DIR/dahdi/kernel.h ]; then
# this is required for some dependencies of kernel.h (dahdi_config.h, ecdis.h etc)
WANPIPE_EXTRA_CFLAGS=$WANPIPE_EXTRA_CFLAGS"-I$ZAPTEL_INSTALL_DIR/drivers/dahdi "
fi
fi
if [ "$AFT_TE1_PROT" = "YES" ]; then
@ -3921,6 +3995,10 @@ WANPIPE_OBJS=
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_bri aft_bri "
fi
if [ "$AFT_USB_PROT" = "YES" ]; then
WANPIPE_OBJS=$WANPIPE_OBJS"wanpipe_usb sdla_usb_remora sdla_usb_remora_tdmv "
fi
if [ "$AFT_SERIAL_PROT" = "YES" ]; then
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_serial "
fi
@ -3934,6 +4012,9 @@ WANPIPE_OBJS=
rm -f wanpipe_syncppp_src.c
ln -s wanpipe_syncppp.c wanpipe_syncppp_src.c
build_kernel_module wanpipe_syncppp wanpipe_syncppp_src
if [ -e $MODSYM ]; then
cp $MODSYM $PROD_HOME/$MODSYM.syncppp
fi
fi
echo -n "."
@ -3972,6 +4053,9 @@ WANPIPE_OBJS=
else
echo "WAN HWEC module failed to compile!"
fi
if [ -e $MODSYM ]; then
cp $MODSYM $PROD_HOME/$MODSYM.wanec
fi
cd $home_tmp
fi
@ -4204,6 +4288,18 @@ WANPIPE_OBJS=
echo -n "Linking Wanpipe Driver and protocols ..."
#Link in appropriate protocols as needed.
if [ "$TDM_PROT" = "YES" ]; then
if [ -f $ZAPTEL_SOURCE_DIR/$MODSYM ]; then
cat $ZAPTEL_SOURCE_DIR/$MODSYM >> $MODSYM
fi
fi
if [ -f $PROD_HOME/$MODSYM.wanec ]; then
cat $PROD_HOME/$MODSYM.wanec >> $MODSYM
fi
if [ -f $PROD_HOME/$MODSYM.syncppp ]; then
cat $PROD_HOME/$MODSYM.syncppp >> $MODSYM
fi
WANPIPE_OBJS=$WANPIPE_OBJS"sdlamain wanpipe_tdm_api wanpipe_codec wanpipe_codec_law "
build_kernel_module wanpipe "$WANPIPE_OBJS" "$WANPIPE_EXTRA_CFLAGS" "$WANPIPE_BIN_OBJS"
@ -5153,6 +5249,33 @@ echo -n "Please select a protocol option in [<opt>]: "
done
}
# set the proper directory for headers depending on
# zaptel/dahdi version
set_zaptel_source_dir()
{
ZAPTEL_SUPPORT="YES";
DAHDI_SUPPORT="NO";
if [ -f $ZAPTEL_INSTALL_DIR/linux/include/dahdi/kernel.h ]; then
ZAPTEL_INSTALL_DIR="$ZAPTEL_INSTALL_DIR/linux"
fi
#Check if this is Dahdi
if [ -d $ZAPTEL_INSTALL_DIR/include/dahdi ]; then
# when Dahdi present ZAPTEL_SOURCE_DIR is not really the source dir, but the headers dir
# no harm done, no conflict, just a bit misleading variable name
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/include
DAHDI_SUPPORT="YES"
ZAPTEL_SUPPORT="NO"
#Check if this is post Zaptel-1.4.9
elif [ -d $ZAPTEL_INSTALL_DIR/kernel ]; then
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/kernel
#Good ol' zaptel
else
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR
fi
}
search_and_replace()
{
local input_file_name=$1
@ -5179,6 +5302,15 @@ search_and_replace()
return $?
}
function main_zap_header_present()
{
if [ ! -f $ZAPTEL_SOURCE_DIR/zaptel.h ] && [ ! -f $ZAPTEL_SOURCE_DIR/dahdi/kernel.h ]; then
return 0;
fi
return 1;
}
function tdmv_get_zaptel_path ()
{
@ -5200,22 +5332,20 @@ if [ 0 ]; then
[ $response ] && {
ZAPTEL_INSTALL_DIR=$response
if [ -d $ZAPTEL_INSTALL_DIR/kernel ]; then
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/kernel
else
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR
fi
set_zaptel_source_dir
}
fi
fi
if [ ! -f $ZAPTEL_SOURCE_DIR/zaptel.h ]; then
echo " Zaptel source not found in $ZAPTEL_SOURCE_DIR"
main_zap_header_present
if [ $? -eq 0 ]; then
echo " Zaptel/Dahdi source not found in $ZAPTEL_SOURCE_DIR"
ZAPTEL_SOURCE_DIR="/usr/src/zaptel"
ZAPTEL_INSTALL_DIR=$ZAPTEL_SOURCE_DIR
if test $NONINTERACTIVE; then
return 1
else
getyn " Press Y to specify another Zaptel source directory, N to exit"
getyn " Press Y to specify another Zaptel/Dahdi source directory, N to exit"
if [ $? -ne 0 ]; then
exit 1;
fi
@ -5230,6 +5360,7 @@ fi
return 0;
}
# this function seems unused and does not seem to need to be updated for Dahdi
function tdmv_apply_zaptel_dchan_patch_old ()
{
local rc
@ -5302,86 +5433,107 @@ function tdmv_apply_zaptel_dchan_patch_old ()
return $rc
}
function tdmv_apply_zaptel_chunk_patch () {
lhome=`pwd`
TEMP=tmp
cd $ZAPTEL_SOURCE_DIR
echo "Applying Zaptel Chunk patch..."
echo "Applying Zaptel/Dahdi Chunk patch..."
echo " "
#modify zaptel.h
eval "cat zaptel.h | sed '/^#define ZT_CHUNKSIZE/c\#define ZT_CHUNKSIZE $ZAP_CHUNK' >$TEMP 2>/dev/null"
filetopatch="zaptel.h"
chunkname="ZT_CHUNKSIZE"
dhname="Zaptel"
isdahdi="no"
if [ -f $ZAPTEL_SOURCE_DIR/dahdi/kernel.h ]; then
filetopatch="kernel.h"
chunkname="DAHDI_CHUNKSIZE"
dhname="Dahdi"
isdahdi="yes"
fi
#modify zaptel.h or kernel.h
eval "cat $filetopatch | sed '/^#define $chunkname/c\#define $chunkname $ZAP_CHUNK' >$TEMP 2>/dev/null"
if [ $? -ne 0 ]; then
echo " Failed to substitute ZT_CHUNKSIZE string in zaptel.h"
echo " Failed to substitute $chunkname string in $filetopatch"
exit 1
else
eval "\mv -f $TEMP zaptel.h"
eval "\mv -f $TEMP $filetopatch"
if [ $? -ne 0 ]; then
echo " Failed to overwrite existing zaptel.h"
echo " Failed to overwrite existing $filetopatch"
exit 1
else
echo " Zaptel patched for chunk size successfully"
echo " $dhname patched for chunk size successfully"
zaptel_modified=1
fi
fi
#remove wct4xxp module from Makefile
eval "cat Makefile |sed 's/wct1xxp wct4xxp wcte11xp/wct1xxp wcte11xp/g'>$TEMP 2>/dev/null "
if [ $? -ne 0 ]; then
echo " Failed to remove wct4xxp from Makefile"
exit 1
else
eval "\mv -f $TEMP Makefile"
if [ $? -ne 0 ]; then
echo " Failed to overwrite existing Makefile"
exit 1
else
echo " wct4xxp module removed from Makefile successfully"
zaptel_modified=1
fi
fi
cd $ZAPTEL_INSTALL_DIR
eval "cat Makefile |sed 's/^SUBDIR_MODULES:=.*//g'>$TEMP 2>/dev/null "
if [ $? -ne 0 ]; then
echo " Failed to remove wct4xxp from Makefile"
exit 1
else
eval "\mv -f $TEMP Makefile"
if [ $? -ne 0 ]; then
echo " Failed to overwrite existing Makefile"
exit 1
else
echo " wct4xxp module removed from Makefile successfully"
zaptel_modified=1
fi
fi
if [ -f Makefile.kernel26 ]; then
eval "cat Makefile.kernel26 | sed 's/^obj-m.*+=.*wct4xx.*//g'>$TEMP 2>/dev/null "
if [ $isdahdi = "no" ]; then
eval "cat Makefile |sed 's/wct1xxp wct4xxp wcte11xp/wct1xxp wcte11xp/g'>$TEMP 2>/dev/null "
if [ $? -ne 0 ]; then
echo " Failed to remove wct4xxp from Makefile.kernel26"
exit 1
echo " Failed to remove wct4xxp from Makefile"
exit 1
else
eval "\mv -f $TEMP Makefile.kernel26"
echo " wct4xxp module removed from Makefile.kernel26 successfully"
zaptel_modified=1
eval "\mv -f $TEMP Makefile"
if [ $? -ne 0 ]; then
echo " Failed to overwrite existing Makefile"
exit 1
else
echo " wct4xxp module removed from Makefile successfully"
zaptel_modified=1
fi
fi
fi
# for zaptel-1.2.26 or later
if [ -f Kbuild ]; then
eval "cat Kbuild | sed 's/^obj-m.*+=.*wct4xx.*//g'>$TEMP 2>/dev/null "
if [ $? -ne 0 ]; then
echo " Failed to remove wct4xxp from Kbuild"
exit 1
cd $ZAPTEL_INSTALL_DIR
if [ $isdahdi = "no" ]; then
eval "cat Makefile |sed 's/^SUBDIR_MODULES:=.*//g'>$TEMP 2>/dev/null "
if [ $? -ne 0 ]; then
echo " Failed to remove wct4xxp from Makefile"
exit 1
else
eval "\mv -f $TEMP Makefile"
if [ $? -ne 0 ]; then
echo " Failed to overwrite existing Makefile"
exit 1
else
echo " wct4xxp module removed from Makefile successfully"
zaptel_modified=1
fi
fi
else
eval "\mv -f $TEMP Kbuild"
echo " wct4xxp module removed from Kbuild successfully"
zaptel_modified=1
fi
fi
if [ -f Makefile.kernel26 ]; then
eval "cat Makefile.kernel26 | sed 's/^obj-m.*+=.*wct4xx.*//g'>$TEMP 2>/dev/null "
if [ $? -ne 0 ]; then
echo " Failed to remove wct4xxp from Makefile.kernel26"
exit 1
else
eval "\mv -f $TEMP Makefile.kernel26"
echo " wct4xxp module removed from Makefile.kernel26 successfully"
zaptel_modified=1
fi
fi
fi # end if $isdahdi = "no"
if [ $isdahdi = "yes" ]; then
cd drivers/dahdi
fi
# for zaptel-1.2.26 or later (including Dahdi)
if [ -f Kbuild ]; then
eval "cat Kbuild | sed 's/^obj-m.*+=.*wct4xx.*//g'>$TEMP 2>/dev/null "
if [ $? -ne 0 ]; then
echo " Failed to remove wct4xxp from Kbuild"
exit 1
else
eval "\mv -f $TEMP Kbuild"
echo " wct4xxp module removed from Kbuild successfully"
zaptel_modified=1
fi
fi
cd $lhome
return 0;
@ -5390,6 +5542,12 @@ function tdmv_apply_zaptel_chunk_patch () {
function tdmv_apply_zaptel_echo_debug_patch ()
{
local rc
if [ -f $ZAPTEL_SOURCE_DIR/dahdi/kernel.h ]; then
echo "Error: Patching for echo debugging not supported for Dahdi yet"
return 1;
fi
if [ ! -e $PROD_HOME/zaptel ]; then
echo "Error: Zaptel Patch Directory Not Found!"
return 1;
@ -5469,6 +5627,11 @@ function tdmv_apply_zaptel_edac_patch ()
{
local rc
if [ -f $ZAPTEL_SOURCE_DIR/dahdi/kernel.h ]; then
echo "Error: TDMV Echo Detection and Control not supported for Dahdi yet"
return 1;
fi
if [ ! -e $PROD_HOME/edac ]; then
echo "Error: Zaptel Patch Directory Not Found!"
return 1;
@ -5741,6 +5904,15 @@ function find_zap_dirs_invalid ()
find_zap_dirs "$1"
}
function is_valid_zap_dir()
{
# one more !%*?@ change from Digium and we need an array here :-)
if [ -f $1/zaptel.h ] || [ -f $1/kernel/zaptel.h ] || [ -f $1/include/dahdi/kernel.h ] || [ -f $1/linux/include/dahdi/kernel.h ]; then
return 1;
fi
return 0;
}
function find_zap_dirs ()
{
local cnt
@ -5754,14 +5926,18 @@ function find_zap_dirs ()
echo
echo "Looking for zaptel directory in /usr/src ..."
echo "Looking for zaptel/dahdi directory in /usr/src ..."
echo "-------------------------------------------"
if [ "$zapdirs" = "" ]; then
zapdirs=`find /usr/src -maxdepth 2 -name 'zaptel*' | xargs `
if [ -d "/usr/src/zaptel" ]; then
zapdirs="/usr/src/zaptel "$zapdirs
fi
dahdidirs=`find /usr/src -maxdepth 2 -name 'dahdi*' | xargs `
if [ -d "/usr/src/dahdi" ]; then
zapdirs="/usr/src/dahdi $zapdirs"
fi
zapdirs="$dahdidirs $zapdirs"
fi
unset zapdir_array;
@ -5777,7 +5953,8 @@ function find_zap_dirs ()
continue
fi
if [ ! -f $dir/zaptel.h ] && [ ! -f $dir/kernel/zaptel.h ]; then
is_valid_zap_dir $dir
if [ $? -eq 0 ]; then
continue;
fi
@ -5794,8 +5971,8 @@ function find_zap_dirs ()
if [ $cnt -eq 1 ]; then
echo
echo "No zaptel dirs found in /usr/src "
echo "Please use option \"m\" to enter zaptel path"
echo "No zaptel/dahdi dirs found in /usr/src "
echo "Please use option \"m\" to enter zaptel/dahdi path"
echo
fi
echo "------------------------------------------ "
@ -5806,7 +5983,8 @@ function find_zap_dirs ()
continue
fi
if [ ! -f $dir/zaptel.h ] && [ ! -f $dir/kernel/zaptel.h ]; then
is_valid_zap_dir $dir
if [ $? -eq 0 ]; then
continue;
fi
@ -5857,16 +6035,11 @@ function find_zap_dirs ()
find_zap_dirs_invalid "$zapdirs"
fi
#Check if this is post Zaptel-1.4.9
if [ -d $ZAPTEL_INSTALL_DIR/kernel ]; then
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/kernel
else
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR
fi
if [ ! -f $ZAPTEL_SOURCE_DIR/zaptel.h ]; then
set_zaptel_source_dir
main_zap_header_present
if [ $? -eq 0 ]; then
echo
echo "Error: zaptel.h not found in $ZAPTEL_SOURCE_DIR"
echo "Error: zaptel.h or dahdi/kernel.h not found in $ZAPTEL_SOURCE_DIR"
echo
echo
zapdir_manual=0
@ -6111,6 +6284,9 @@ function enable_protocols ()
if [ "$PROTOCOL" = "DEF" ]; then
PROTOCOL=$DEFAULT_PROTOCOLS
fi
if [ "$PROTOCOL" = "ALL" ]; then
PROTOCOL="$DEFAULT_PROTOCOLS $API_PROTOCOLS"
fi
echo "$PROTOCOL" | grep "BRI" > /dev/null
if [ $? -eq 0 ]; then
@ -6360,10 +6536,13 @@ ENDOFTEXT
if [ $AFT_TE1_PROT != YES ]; then
echo "Enabling the AFT TE1 Support"
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_CORE -DCONFIG_PRODUCT_WANPIPE_AFT_TE1 -DCONFIG_PRODUCT_WANPIPE_AFT_56K -DCONFIG_PRODUCT_WANPIPE_AFT_RM -DCONFIG_PRODUCT_WANPIPE_CODEC_SLINEAR_LAW -DCONFIG_PRODUCT_WANPIPE_AFT_BRI -DCONFIG_PRODUCT_WANPIPE_AFT_SERIAL "
#PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_USB "
fi
AFT_TE1_PROT=YES
AFT_BRI_PROT=YES
AFT_SERIAL_PROT=YES
#AFT_USB_PROT=YES
PROT_MATCH=YES
fi
@ -6405,21 +6584,39 @@ ENDOFTEXT
ZAPTEL_NAME=zaptel.ko
fi
if [ -e $ZAP_MOD_DIR/zaptel/$ZAPTEL_NAME ] && [ -e $ZAP_MOD_DIR/misc/$ZAPTEL_NAME ]; then
zaplikeinstalls=0
if [ -e $ZAP_MOD_DIR/zaptel/$ZAPTEL_NAME ]; then
zaplikeinstalls=$((zaplikeinstalls+1))
fi
if [ -e $ZAP_MOD_DIR/misc/$ZAPTEL_NAME ]; then
zaplikeinstalls=$((zaplikeinstalls+1))
fi
# Dahdi drops support for kernel 2.4, no need to check .o vs .ko
if [ -e $ZAP_MOD_DIR/dahdi/dahdi.ko ]; then
zaplikeinstalls=$((zaplikeinstalls+1))
fi
if [ $zaplikeinstalls -gt 1 ]; then
echo
echo
echo
echo "-------------------------------------------------------------"
echo "CRITICAL WARNING: Multiple ZAPTEL Installations Found"
echo "CRITICAL WARNING: Multiple ZAPTEL/DAHDI Installations Found"
echo
echo "./Setup has found MULTIPLE ZAPTEL driver installations in:"
echo "./Setup has found MULTIPLE ZAPTEL/DAHDI driver installations"
echo " in 2 or more of this locations:"
echo " $ZAP_MOD_DIR/zaptel and"
echo " $ZAP_MOD_DIR/misc directory."
echo " $ZAP_MOD_DIR/dahdi directory."
echo
echo " The ZAPTEL drivers in $ZAP_MOD_DIR/zaptel are OLD."
echo
echo " This is illegal, and CAN cause Wanpipe to CRASH."
echo
echo " Please solve this PROBLEM by removing OLD ZAPTEL"
echo " kerenl modules before installing WANPIPE. "
echo " kernel modules before installing WANPIPE. "
echo
echo " eg: rm -rf $ZAP_MOD_DIR/zaptel"
echo " depmod -a"
@ -6456,6 +6653,17 @@ ENDOFTEXT
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN_ZAPTEL "
fi
fi
# if this is Dahdi, no need to check, already include hdlc_hard_xmit
if [ -f $ZAPTEL_SOURCE_DIR/dahdi/kernel.h ]; then
echo " "
echo "Dahdi HW HDLC Support Detected: Enabling DCHAN Feature"
echo "Native Dahdi HW HDLC Support Detected - No patch required"
echo "Dahdi source unmodified"
echo " "
TDM_DCHAN="(DCHAN)"
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN_ZAPTEL -DDAHDI_ISSUES"
fi
#Check if dchan patch is already enabled
if [ "$TDM_DCHAN" = "" ]; then
@ -6508,7 +6716,7 @@ ENDOFTEXT
####################################################################
if [ $ENABLE_ECHO_DEBUG -eq 1 ]; then
getyn "Compile Echo Debugging Support for Zaptel ? "
getyn "Compile Echo Debugging Support for Zaptel (not supported for Dahdi yet) ? "
if [ $? -eq 0 ]; then
tdmv_apply_zaptel_echo_debug_patch
if [ $? -eq 0 ]; then
@ -6529,7 +6737,7 @@ ENDOFTEXT
if [ $ENABLE_EDAC -gt 0 ] && [ "$ECHO_MASTER_PROT" = "NO" ]; then
echo
getyn "Compile TDMV Echo Detection and Control (EDAC) Support (y/n)? "
getyn "Compile TDMV Echo Detection and Control (EDAC) Support (No Dahdi support yet) (y/n)? "
if [ $? -eq 0 ]; then
echo
tdmv_apply_zaptel_edac_patch
@ -6676,6 +6884,7 @@ CHDLC_PROT=NO
X25_PROT=NO
AFT_TE1_PROT=NO
AFT_BRI_PROT=NO
AFT_USB_PROT=NO
AFT_SERIAL_PROT=NO
AFT_TE3_PROT=NO
SSMG=NO
@ -6915,7 +7124,7 @@ ENDOFTEXT
}
####### MAIN #################################################################
# set -x
#set -x
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin
@ -6924,7 +7133,7 @@ KERNEL_UNAME=`uname -r`
PKG_NAME=wanpipe
DISTR_NAME="WANPIPE"
PROD=wanrouter
PROD_VER=3.3.12
PROD_VER=3.3.14
PROD_HOME=`pwd`
META_CONF=$PROD_HOME/$PROD.rc
WAN_INTR_DIR=$PROD_HOME/interfaces
@ -6953,6 +7162,7 @@ ENABLE_EDAC=0
ENABLE_ECHO_DEBUG=0
ZAPTEL_PATH_OP="NO"
ZAPTEL_COMPILE_DISABLE="NO"
BRI_MODULE_TEST="NO"
ZAP_CHUNK_OP="NO"
CMP_LOG=$PROD_HOME/setup_drv_compile.log
CMP_BUILD=build.sh
@ -6963,12 +7173,15 @@ SSMG_DIR=ssmg
WANPIPE_INCLUDE_DIR=/usr/include/wanpipe
WANCFG_ZAPTEL_CFG=NO
WANCFG_ZAPTEL=/usr/sbin/wancfg_zaptel
WANCFG_DAHDI=/usr/sbin/wancfg_dahdi
WANCFG_SMG=/usr/sbin/wancfg_smg
find_zap_dir_quit=0
find_ast_dir_quit=0
zaptel_auto_install="NO"
dahdi_auto_install="NO"
bri_auto_install="NO"
setup_install_quick="NO"
MODSYM=Module.symvers
echo > $CMP_LOG
@ -7022,6 +7235,8 @@ ZAPTEL_INSTALL_DIR=$ZAPTEL_DFLT_INSTALL_DIR
ZAPTEL_C_FILE="zaptel.c"
ASTERISK_IFLAGS=
EDAC_ZAP_PATCH_FILE=ed_zaptel.patch
ZAPTEL_SUPPORT="NO"
DAHDI_SUPPORT="NO"
ASTERISK_INSTALL_DIR="/usr/src/asterisk"
EDAC_ASTERISK_PATCH_FILE=ed_asterisk.patch
@ -7181,10 +7396,13 @@ if [ "$setup_cmd" = "uninstall" ] || [ "$setup_cmd" = "remove" ]; then
exit;
fi
if [ "$setup_cmd" = "zaptel" ]; then
setup_cmd="install"
if [ "$setup_cmd" = "zaptel" ] || [ "$setup_cmd" = "dahdi" ] ; then
zaptel_auto_install="YES"
setup_install_quick="YES"
if [ "$setup_cmd" = "dahdi" ]; then
dahdi_auto_install="YES"
fi
setup_cmd="install"
#EXTRA_ARGS=" --protocol=TDM --silent --no-zaptel-compile "
#EXTRA_ARGS=" --protocol=TDM "
fi
@ -7224,6 +7442,16 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then
case $arg in
--silent*)
if [ $bri_auto_install = "YES" ]; then
#default
bri_auto_install="NO"
elif [ $zaptel_auto_install = "YES" ]; then
zaptel_auto_install="NO"
PROTS=TDM;
fi
zaptel_auto_install="NO"
setup_install_quick="NO"
bri_auto_install="NO"
NONINTERACTIVE=1;
;;
--linux-vanilla*)
@ -7260,6 +7488,9 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then
--edac*)
#TAKEN OUT
;;
--bri_module_test*)
BRI_MODULE_TEST="YES"
;;
--noautostart*)
NO_AUTO_START=1
;;
@ -7314,12 +7545,8 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then
fi
ZAPTEL_PATH_OP="YES";
echo "Zaptel path defined as: $ZAPTEL_INSTALL_DIR"
if [ -d $ZAPTEL_INSTALL_DIR/kernel ]; then
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/kernel
else
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR
fi
set_zaptel_source_dir
;;
@ -7340,12 +7567,7 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then
ZAPTEL_PATH_OP="YES";
echo "Zaptel path defined as: $ZAPTEL_INSTALL_DIR"
if [ -d $ZAPTEL_INSTALL_DIR/kernel ]; then
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/kernel
else
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR
fi
set_zaptel_source_dir
;;
@ -7375,6 +7597,9 @@ if [ "$PKG_NAME" != "wanpipe-lite" ]; then
WANPIPE_INCLUDE_DIR=$ROOT/$TMP_123
TMP_123=${WANCFG_ZAPTEL#/*}
WANCFG_ZAPTEL=$ROOT/$TMP_123
TMP_123=${WANCFG_DAHDI#/*}
WANCFG_DAHDI=$ROOT/$TMP_123
;;
--acflags*)
@ -7803,17 +8028,21 @@ if [ $zaptel_auto_install = "YES" ]; then
NONINTERACTIVE=
fi
NONINTERACTIVE=
#NONINTERACTIVE=
if [ -z $NONINTERACTIVE ]; then
if [ "$WANCFG_ZAPTEL_CFG" = "YES" ] && [ -e $WANCFG_ZAPTEL ]; then
echo
if [ $SSMG_BRI == "YES" ]; then
echo "Wanpipe / Zaptel & SMG BRI Configuration"
echo "Wanpipe / Zaptel/Dahdi & SMG BRI Configuration"
echo "========================================"
else
echo "Wanpipe / Zaptel Configuration"
if [ $DAHDI_SUPPORT = "YES" ]; then
echo "Wanpipe / Zaptel Configuration"
else
echo "Wanpipe / Dahdi Configuration"
fi
echo "=============================="
fi
echo
@ -7821,27 +8050,49 @@ if [ "$WANCFG_ZAPTEL_CFG" = "YES" ] && [ -e $WANCFG_ZAPTEL ]; then
echo "wancfg_smg configurator can create all wanpipe config files"
echo "for ZAPTEL as well as for SMG BRI."
else
echo "wancfg_zaptel configurator can create all wanpipe config files"
echo "for ZAPTEL including /etc/zaptel.conf file."
if [ $DAHDI_SUPPORT = "YES" ]; then
echo "wancfg_zaptel configurator can create all wanpipe config files"
echo "for ZAPTEL including /etc/zaptel.conf file."
echo "Optionally: the configurator can also create Asterisk zapata.conf"
else
echo "wancfg_dahdi configurator can create all wanpipe config files"
echo "for DAHDI including /etc/dahdi/dahdi.conf file."
echo "Optionally: the configurator can also create Asterisk dahdi.conf"
fi
fi
echo "Optionally: the configurator can also create Asterisk zapata.conf"
echo "-----------------------------------------------------"
if [ $SSMG_BRI == "YES" ]; then
getyn "Would you like to configure wanpipe devices for ZAPTEL & BRI?"
getyn "Would you like to configure wanpipe devices for ZAPTEL/DAHDI & BRI?"
else
getyn "Would you like to configure wanpipe devices for ZAPTEL?"
if [ $DAHDI_SUPPORT = "YES" ]; then
getyn "Would you like to configure wanpipe devices for DAHDI?"
else
getyn "Would you like to configure wanpipe devices for ZAPTEL?"
fi
fi
if [ $? -eq 0 ]; then
if [ $SSMG_BRI == "YES" ]; then
eval "$WANCFG_SMG"
else
eval "$WANCFG_ZAPTEL"
if [ $DAHDI_SUPPORT = "YES" ]; then
eval "$WANCFG_DAHDI"
else
eval "$WANCFG_ZAPTEL"
fi
fi
else
echo "Wanpipe Installation Complete"
echo "-----------------------------"
echo "Please proceed to configure wanpipe user /usr/sbin/wancfg"
if [ $SSMG_BRI == "YES" ]; then
echo "Please proceed to configure wanpipe user /usr/sbin/wancfg_smg"
else
if [ $DAHDI_SUPPORT = "YES" ]; then
echo "Please proceed to configure wanpipe user /usr/sbin/wancfg_dahdi"
else
echo "Please proceed to configure wanpipe user /usr/sbin/wancfg_zaptel"
fi
fi
echo
fi
elif [ "$SSMG_BRI" = "YES" ]; then
@ -7857,7 +8108,11 @@ elif [ "$SSMG_BRI" = "YES" ]; then
if [ $SSMG_BRI == "YES" ]; then
eval "$WANCFG_SMG"
else
eval "$WANCFG_ZAPTEL"
if [ $DAHDI_SUPPORT = "YES" ]; then
eval "$WANCFG_DAHDI"
else
eval "$WANCFG_ZAPTEL"
fi
fi
else
echo "Wanpipe Installation Complete"

View File

@ -4,21 +4,17 @@
# Copyright (c) 1995-2000 Sangoma Technologies Inc. All Rights Reserved.
# ============================================================================
SYSINC=$(shell if [ -f ../.sysinclude ]; then cat ../.sysinclude; else echo ""; fi)
ifeq "$(SYSINC)" ""
SYSINC=/lib/modules/$(shell uname -r)/build/include
endif
APIINC=/etc/wanpipe/api/include
####### RULES ################################################################
all:
make -C x25 all SYSINC=$(SYSINC) APIINC=$(APIINC)
make -C chdlc all SYSINC=$(SYSINC) APIINC=$(APIINC)
make -C fr all SYSINC=$(SYSINC) APIINC=$(APIINC)
make -C bitstrm all SYSINC=$(SYSINC) APIINC=$(APIINC)
make -C bisync all SYSINC=$(SYSINC) APIINC=$(APIINC)
# make -C ss7 all SYSINC=$(SYSINC) APIINC=$(APIINC)
make -C x25 all APIINC=$(APIINC)
make -C chdlc all APIINC=$(APIINC)
make -C fr all APIINC=$(APIINC)
make -C bitstrm all APIINC=$(APIINC)
make -C bisync all APIINC=$(APIINC)
# make -C ss7 all APIINC=$(APIINC)
clean:
make -C x25 clean

View File

@ -10,13 +10,9 @@
OS_TYPE = __LINUX__
DEBUG = 2
SYSINC=$(shell if [ -f ../../.sysinclude ]; then cat ../../.sysinclude; else echo ""; fi)
ifeq "$(SYSINC)" ""
SYSINC=/usr/src/linux/include
endif
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(SYSINC) -I$(APIINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(APIINC)
####### RULES ################################################################

View File

@ -10,18 +10,12 @@
OS_TYPE = __LINUX__
DEBUG = 2
SYSINC=$(shell if [ -f ../../.sysinclude ]; then cat ../../.sysinclude; else echo ""; fi)
ifeq "$(SYSINC)" ""
SYSINC=/usr/src/linux/include
endif
VPATH = $(SYSINC)
DIR_EC_APILIB=/common/wantools/wanec_apilib
SRC_EC_APILIB=$(DIR_EC_APILIB)/wanec_api.c $(DIR_EC_APILIB)/wanec_api_lib.c
INC_EC_APILIB=-I/usr/include/wanpipe/oct6100_api -I$(DIR_EC_APILIB)
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -DCONFIG_PRODUCT_WANPIPE_TDMV_EC -D_GNUC_ -I../lib -I$(SYSINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -DCONFIG_PRODUCT_WANPIPE_TDMV_EC -D_GNUC_ -I../lib
CFLAGS += -I/usr/include/wanpipe
TARGETS=aft_api

View File

@ -11,11 +11,10 @@ OS_TYPE = __LINUX__
DEBUG = 2
# Project file paths.
SYSINC = /usr/src/linux/include
APIINC = /usr/src/linux/include
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(SYSINC) -I$(APIINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(APIINC)
####### RULES ################################################################

View File

@ -11,12 +11,10 @@ OS_TYPE = __LINUX__
DEBUG = 2
# Project file paths.
SYSINC = /usr/src/linux/include
VPATH = $(SYSINC)
APIINC = /usr/src/linux/include
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(SYSINC) -I$(APIINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(APIINC)
####### RULES ################################################################

View File

@ -11,12 +11,10 @@ OS_TYPE = __LINUX__
DEBUG = 2
# Project file paths.
SYSINC = /usr/src/linux/include
APIINC = ../include
VPATH = $(SYSINC)
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(SYSINC) -I$(APIINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(APIINC)
####### RULES ################################################################

View File

@ -11,12 +11,10 @@ OS_TYPE = __LINUX__
DEBUG = 2
# Project file paths.
SYSINC = /usr/src/linux/include
VPATH = $(SYSINC)
APIINC = /usr/src/linux/include
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I ../lib -I$(SYSINC) -I$(APIINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I ../lib -I$(APIINC)
####### RULES ################################################################

View File

@ -11,11 +11,9 @@ OS_TYPE = __LINUX__
DEBUG = 2
# Project file paths.
SYSINC = /usr/src/linux/include
VPATH = $(SYSINC)
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I ../lib -I../../lib -I$(SYSINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I ../lib -I../../lib
####### RULES ################################################################

View File

@ -11,10 +11,9 @@ OS_TYPE = __LINUX__
DEBUG = 2
# Project file paths.
SYSINC = /usr/src/linux/include
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(SYSINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_
####### RULES ################################################################

View File

@ -11,11 +11,10 @@ OS_TYPE = __LINUX__
DEBUG = 2
# Project file paths.
SYSINC = /usr/include/wanpipe
APIINC = /usr/include/wanpipe
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(SYSINC) -I$(APIINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(APIINC)
####### RULES ################################################################

View File

@ -11,10 +11,9 @@ OS_TYPE = __LINUX__
DEBUG = 2
# Project file paths.
SYSINC = /usr/src/linux/include
# Tools options.
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(SYSINC) -I$(APIINC)
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(APIINC)
TARGETS = fr_api
#TARGETS += fr_api_fast

View File

@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 33
/svn/libsangoma/!svn/ver/11/trunk
/svn/libsangoma/!svn/ver/22/trunk
END
configure
K 25
@ -9,11 +9,17 @@ svn:wc:ra_dav:version-url
V 43
/svn/libsangoma/!svn/ver/11/trunk/configure
END
doxygen.config
K 25
svn:wc:ra_dav:version-url
V 48
/svn/libsangoma/!svn/ver/18/trunk/doxygen.config
END
Makefile.in
K 25
svn:wc:ra_dav:version-url
V 45
/svn/libsangoma/!svn/ver/11/trunk/Makefile.in
/svn/libsangoma/!svn/ver/21/trunk/Makefile.in
END
AUTHORS
K 25
@ -21,6 +27,12 @@ svn:wc:ra_dav:version-url
V 40
/svn/libsangoma/!svn/ver/1/trunk/AUTHORS
END
libhpsangoma_priv.c
K 25
svn:wc:ra_dav:version-url
V 53
/svn/libsangoma/!svn/ver/18/trunk/libhpsangoma_priv.c
END
depcomp
K 25
svn:wc:ra_dav:version-url
@ -39,11 +51,11 @@ svn:wc:ra_dav:version-url
V 45
/svn/libsangoma/!svn/ver/1/trunk/config.guess
END
svn-commit.2.tmp
libhpsangoma_priv.h
K 25
svn:wc:ra_dav:version-url
V 49
/svn/libsangoma/!svn/ver/1/trunk/svn-commit.2.tmp
V 53
/svn/libsangoma/!svn/ver/18/trunk/libhpsangoma_priv.h
END
ltmain.sh
K 25
@ -61,7 +73,7 @@ libsangoma.c
K 25
svn:wc:ra_dav:version-url
V 46
/svn/libsangoma/!svn/ver/11/trunk/libsangoma.c
/svn/libsangoma/!svn/ver/12/trunk/libsangoma.c
END
libsangoma.dsp
K 25
@ -87,29 +99,29 @@ svn:wc:ra_dav:version-url
V 40
/svn/libsangoma/!svn/ver/1/trunk/INSTALL
END
COPYING
K 25
svn:wc:ra_dav:version-url
V 40
/svn/libsangoma/!svn/ver/1/trunk/COPYING
END
libsangoma.dsw
K 25
svn:wc:ra_dav:version-url
V 47
/svn/libsangoma/!svn/ver/1/trunk/libsangoma.dsw
END
COPYING
K 25
svn:wc:ra_dav:version-url
V 40
/svn/libsangoma/!svn/ver/1/trunk/COPYING
END
NEWS
K 25
svn:wc:ra_dav:version-url
V 37
/svn/libsangoma/!svn/ver/1/trunk/NEWS
END
Makefile
sangoma_pri.c
K 25
svn:wc:ra_dav:version-url
V 42
/svn/libsangoma/!svn/ver/11/trunk/Makefile
V 46
/svn/libsangoma/!svn/ver/1/trunk/sangoma_pri.c
END
libsangoma.so.conf
K 25
@ -117,29 +129,29 @@ svn:wc:ra_dav:version-url
V 51
/svn/libsangoma/!svn/ver/1/trunk/libsangoma.so.conf
END
sangoma_pri.c
K 25
svn:wc:ra_dav:version-url
V 46
/svn/libsangoma/!svn/ver/1/trunk/sangoma_pri.c
END
win_api_common.h
K 25
svn:wc:ra_dav:version-url
V 49
/svn/libsangoma/!svn/ver/1/trunk/win_api_common.h
END
sangoma_pri.h
K 25
svn:wc:ra_dav:version-url
V 46
/svn/libsangoma/!svn/ver/1/trunk/sangoma_pri.h
END
version
K 25
svn:wc:ra_dav:version-url
V 40
/svn/libsangoma/!svn/ver/1/trunk/version
END
sangoma_pri.h
libhpsangoma.c
K 25
svn:wc:ra_dav:version-url
V 46
/svn/libsangoma/!svn/ver/1/trunk/sangoma_pri.h
V 48
/svn/libsangoma/!svn/ver/18/trunk/libhpsangoma.c
END
configure.in
K 25
@ -153,11 +165,11 @@ svn:wc:ra_dav:version-url
V 42
/svn/libsangoma/!svn/ver/1/trunk/ChangeLog
END
svn-commit.tmp
libhpsangoma.h
K 25
svn:wc:ra_dav:version-url
V 47
/svn/libsangoma/!svn/ver/1/trunk/svn-commit.tmp
V 48
/svn/libsangoma/!svn/ver/18/trunk/libhpsangoma.h
END
README
K 25
@ -171,18 +183,18 @@ svn:wc:ra_dav:version-url
V 44
/svn/libsangoma/!svn/ver/1/trunk/config.h.in
END
Makefile.am
K 25
svn:wc:ra_dav:version-url
V 45
/svn/libsangoma/!svn/ver/21/trunk/Makefile.am
END
missing
K 25
svn:wc:ra_dav:version-url
V 40
/svn/libsangoma/!svn/ver/1/trunk/missing
END
Makefile.am
K 25
svn:wc:ra_dav:version-url
V 44
/svn/libsangoma/!svn/ver/1/trunk/Makefile.am
END
install-sh
K 25
svn:wc:ra_dav:version-url

View File

@ -1,14 +1,14 @@
8
dir
11
22
https://www.sangomapbx.com/svn/libsangoma/trunk
https://www.sangomapbx.com/svn/libsangoma
2008-07-23T22:34:10.394780Z
11
2008-09-17T21:25:40.156211Z
22
ncorbic
@ -32,23 +32,35 @@ file
2008-02-28T19:04:34.000000Z
2008-09-17T15:43:38.000000Z
f84c30e2597ef02a8b7ae6e7abc79cba
2008-07-23T22:34:10.394780Z
11
ncorbic
has-props
doxygen.config
file
2008-08-18T04:42:48.000000Z
9f9274a01491fc18fc590cc72aee50b5
2008-08-18T04:37:20.241598Z
18
ncorbic
Makefile.in
file
2008-07-14T15:22:04.000000Z
af46a5508ab9308c4adb270328403f05
2008-07-23T22:34:10.394780Z
11
2008-09-17T15:43:37.000000Z
b64570263ebee3d9e6ba2d2337fd986f
2008-09-17T16:28:59.949208Z
21
ncorbic
AUTHORS
@ -57,19 +69,31 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
d41d8cd98f00b204e9800998ecf8427e
2008-02-28T18:51:53.196120Z
1
root
libhpsangoma_priv.c
file
2008-08-18T04:42:48.000000Z
bd544f6a63804d97771b5d6f14f9c7cd
2008-08-18T04:37:20.241598Z
18
ncorbic
depcomp
file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
e181e2c8720c60522c4c4c981108e367
2008-02-28T18:51:53.196120Z
1
@ -82,37 +106,64 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
a7ecc032b527a0d578545f19d3418073
2008-02-28T18:51:53.196120Z
1
root
has-props
docs
dir
config.guess
file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
9ae396244b8f138c76514a6b7531e696
2008-02-28T18:51:53.196120Z
1
root
has-props
svn-commit.2.tmp
libhpsangoma_priv.h
file
2008-07-02T13:55:55.000000Z
9bf5427f205140ba936f4feb06d54cac
2008-02-28T18:51:53.196120Z
1
root
2008-08-18T04:42:48.000000Z
d1808b1e536319bd48486efa8bea18bc
2008-08-18T04:37:20.241598Z
18
ncorbic
svn-commit.2.tmp
file
24
deleted
ltmain.sh
file
@ -120,7 +171,7 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
c8215e3aa0858d700783015614f53b79
2008-02-28T18:51:53.196120Z
1
@ -132,7 +183,7 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
3d36962d51070d30b7554203b0d7c01c
2008-02-28T18:51:53.196120Z
1
@ -145,10 +196,10 @@ file
2008-07-24T14:57:18.000000Z
52feb22ab727ea6afbf6a9501e813c85
2008-07-23T22:34:10.394780Z
11
2008-08-18T04:42:48.000000Z
997c16d3e1205046feceb00ab3fee8dd
2008-08-18T00:57:37.953171Z
12
ncorbic
libsangoma.dsp
@ -157,7 +208,7 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
f934aab66c529599725686f321d182e6
2008-02-28T18:51:53.196120Z
1
@ -181,7 +232,7 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
0f725f95ced42af15dcaef21f3a1722b
2008-02-28T18:51:53.196120Z
1
@ -193,43 +244,43 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
40539bd3eff06e4b82f380103145415b
2008-02-28T18:51:53.196120Z
1
root
libsangoma.dsw
file
2008-05-22T23:06:17.000000Z
f13496d2105bae2add104c36a1d656f6
2008-02-28T18:51:53.196120Z
1
root
COPYING
file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
d41d8cd98f00b204e9800998ecf8427e
2008-02-28T18:51:53.196120Z
1
root
libsangoma.dsw
file
2008-07-17T12:20:35.000000Z
f13496d2105bae2add104c36a1d656f6
2008-02-28T18:51:53.196120Z
1
root
NEWS
file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
d41d8cd98f00b204e9800998ecf8427e
2008-02-28T18:51:53.196120Z
1
@ -237,35 +288,27 @@ root
Makefile
file
2008-07-14T15:18:57.000000Z
2f0d18b13150848a1bb2c513a790498c
2008-07-23T22:34:10.394780Z
11
ncorbic
23
Makefile.r9
Makefile.r11
Makefile.mine
sangoma_pri.c
file
2008-05-22T23:06:17.000000Z
e2a6c68fadfefb2d2b16c52534e85675
2008-02-28T18:51:53.196120Z
1
root
deleted
libsangoma.so.conf
file
@ -273,55 +316,79 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
bcdcb23c5d5fb460cee2ce315ef7bd32
2008-02-28T18:51:53.196120Z
1
root
sangoma_pri.c
file
2008-07-17T12:20:35.000000Z
e2a6c68fadfefb2d2b16c52534e85675
2008-02-28T18:51:53.196120Z
1
root
win_api_common.h
file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
b6be170d18fa90b79f7264cf8b0f7348
2008-02-28T18:51:53.196120Z
1
root
sangoma_pri.h
file
2008-05-22T23:06:17.000000Z
f24c6cf396aeaa6df2747f7f6b32969d
2008-02-28T18:51:53.196120Z
1
root
version
file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
35f672d1fb01b542f667952c9dbb26fe
2008-02-28T18:51:53.196120Z
1
root
sangoma_pri.h
file
2008-07-17T12:20:35.000000Z
f24c6cf396aeaa6df2747f7f6b32969d
2008-02-28T18:51:53.196120Z
1
root
libhpsangoma.c
file
2008-08-18T04:42:48.000000Z
b1d5eaa1c7cde587df266b1833f5e735
2008-08-18T04:37:20.241598Z
18
ncorbic
configure.in
file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
5b9888fc365c4ebffdbb55656c091a2f
2008-02-28T18:51:53.196120Z
1
@ -333,23 +400,47 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
d41d8cd98f00b204e9800998ecf8427e
2008-02-28T18:51:53.196120Z
1
root
svn-commit.tmp
libhpsangoma.h
file
2008-07-02T13:55:55.000000Z
4ac38b24bcff9c3975171af8ccbcfa36
2008-02-28T18:51:53.196120Z
1
root
2008-08-18T04:42:48.000000Z
706cd7f3886d4f5f7515cf84bdae55ad
2008-08-18T04:37:20.241598Z
18
ncorbic
svn-commit.tmp
file
24
deleted
README
file
@ -357,7 +448,7 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
e8a0abce86211364eb60bbe6e07d4b05
2008-02-28T18:51:53.196120Z
1
@ -369,36 +460,36 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
5c51918deee8d041af37226bd4b4271e
2008-02-28T18:51:53.196120Z
1
root
missing
file
2008-05-22T23:06:17.000000Z
fd5dd60aa8cefab9462677280ea74a61
2008-02-28T18:51:53.196120Z
1
root
has-props
Makefile.am
file
2008-05-22T23:06:17.000000Z
061d814c4cf9a1066e4ff2501fa0a100
2008-09-17T15:43:08.000000Z
5796040dd24c0fe0d5873523ba46ae01
2008-09-17T16:28:59.949208Z
21
ncorbic
missing
file
2008-07-17T12:20:35.000000Z
fd5dd60aa8cefab9462677280ea74a61
2008-02-28T18:51:53.196120Z
1
root
has-props
examples
dir
@ -409,7 +500,7 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
92067666ddce97609bd0ec67d36460cd
2008-02-28T18:51:53.196120Z
1
@ -422,7 +513,7 @@ file
2008-05-22T23:06:17.000000Z
2008-07-17T12:20:35.000000Z
a09711e3b6aac93dd48d8e9b3014955f
2008-02-28T18:51:53.196120Z
1

View File

@ -1,18 +1,18 @@
KINC=/lib/modules/$(shell uname -r)/build
WINC=../../patches/kdrivers/include
WLINC=../../patches/kdrivers/include
WINC=/usr/include/wanpipe
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WLINC) -I$(WINC) -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib
LIB_SOURCES = libsangoma.c libsangoma.h
LIB_SOURCES = libsangoma.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
if LIBPRI
LIB_SOURCES += sangoma_pri.c sangoma_pri.h
endif
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h
library_include_HEADERS = libsangoma.h libhpsangoma.h
if LIBPRI
library_include_HEADERS += sangoma_pri.h

View File

@ -75,9 +75,12 @@ libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libsangoma_la_LIBADD =
am__libsangoma_la_SOURCES_DIST = libsangoma.c libsangoma.h \
sangoma_pri.c sangoma_pri.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 $(am__objects_1)
am__objects_2 = libsangoma_la-libsangoma.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)
DEFAULT_INCLUDES = -I. -I$(srcdir)
@ -94,7 +97,8 @@ LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
SOURCES = $(libsangoma_a_SOURCES) $(libsangoma_la_SOURCES)
DIST_SOURCES = $(libsangoma_a_SOURCES) \
$(am__libsangoma_la_SOURCES_DIST)
am__library_include_HEADERS_DIST = libsangoma.h sangoma_pri.h
am__library_include_HEADERS_DIST = libsangoma.h libhpsangoma.h \
sangoma_pri.h
library_includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(library_include_HEADERS)
ETAGS = etags
@ -210,14 +214,15 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
KINC = /lib/modules/$(shell uname -r)/build
WINC = ../../patches/kdrivers/include
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include
WLINC = ../../patches/kdrivers/include
WINC = /usr/include/wanpipe
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WLINC) -I$(WINC) -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib
LIB_SOURCES = libsangoma.c libsangoma.h $(am__append_1)
LIB_SOURCES = libsangoma.c libsangoma.h libhpsangoma.c libhpsangoma.h \
libhpsangoma_priv.c libhpsangoma_priv.h $(am__append_1)
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h $(am__append_2)
library_include_HEADERS = libsangoma.h libhpsangoma.h $(am__append_2)
lib_LTLIBRARIES = libsangoma.la
libsangoma_la_CFLAGS = $(AM_CFLAGS) $(am__append_3)
libsangoma_la_LDFLAGS = -version-info 1:0:0 $(am__append_4)
@ -331,6 +336,8 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
@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-sangoma_pri.Plo@am__quote@
@ -362,6 +369,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-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
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libhpsangoma.c' object='libsangoma_la-libhpsangoma.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-libhpsangoma.lo `test -f 'libhpsangoma.c' || echo '$(srcdir)/'`libhpsangoma.c
libsangoma_la-libhpsangoma_priv.lo: libhpsangoma_priv.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_priv.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Tpo" -c -o libsangoma_la-libhpsangoma_priv.lo `test -f 'libhpsangoma_priv.c' || echo '$(srcdir)/'`libhpsangoma_priv.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Tpo" "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libhpsangoma_priv.c' object='libsangoma_la-libhpsangoma_priv.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-libhpsangoma_priv.lo `test -f 'libhpsangoma_priv.c' || echo '$(srcdir)/'`libhpsangoma_priv.c
libsangoma_la-sangoma_pri.lo: sangoma_pri.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-sangoma_pri.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" -c -o libsangoma_la-sangoma_pri.lo `test -f 'sangoma_pri.c' || echo '$(srcdir)/'`sangoma_pri.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" "$(DEPDIR)/libsangoma_la-sangoma_pri.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo"; exit 1; fi

View File

@ -1,679 +0,0 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
srcdir = .
top_srcdir = .
pkgdatadir = $(datadir)/libsangoma
pkglibdir = $(libdir)/libsangoma
pkgincludedir = $(includedir)/libsangoma
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = /usr/bin/install -c
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = i686-pc-linux-gnu
host_triplet = i686-pc-linux-gnu
#am__append_1 = sangoma_pri.c sangoma_pri.h
#am__append_2 = sangoma_pri.h
#am__append_3 = -I$(libpripath)
#am__append_4 = -L$(libpripath) -lpri
DIST_COMMON = README $(am__configure_deps) \
$(am__library_include_HEADERS_DIST) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
ChangeLog INSTALL NEWS compile config.guess config.sub depcomp \
install-sh ltmain.sh missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libdir)" \
"$(DESTDIR)$(library_includedir)"
libLIBRARIES_INSTALL = $(INSTALL_DATA)
LIBRARIES = $(lib_LIBRARIES)
ARFLAGS = cru
libsangoma_a_AR = $(AR) $(ARFLAGS)
libsangoma_a_LIBADD =
am_libsangoma_a_OBJECTS =
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 \
sangoma_pri.c sangoma_pri.h
#am__objects_1 = libsangoma_la-sangoma_pri.lo
am__objects_2 = libsangoma_la-libsangoma.lo $(am__objects_1)
am_libsangoma_la_OBJECTS = $(am__objects_2)
libsangoma_la_OBJECTS = $(am_libsangoma_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libsangoma_a_SOURCES) $(libsangoma_la_SOURCES)
DIST_SOURCES = $(libsangoma_a_SOURCES) \
$(am__libsangoma_la_SOURCES_DIST)
am__library_include_HEADERS_DIST = libsangoma.h sangoma_pri.h
library_includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(library_include_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run aclocal-1.9
AMDEP_FALSE = #
AMDEP_TRUE =
AMTAR = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run tar
AR = ar
AUTOCONF = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run autoconf
AUTOHEADER = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run autoheader
AUTOMAKE = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run automake-1.9
AWK = gawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = gcc -E
CPPFLAGS =
CXX = g++
CXXCPP = g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
CYGPATH_W = echo
DEFS = -DPACKAGE_NAME=\"libsangoma\" -DPACKAGE_TARNAME=\"libsangoma\" -DPACKAGE_VERSION=\"1.0.0\" -DPACKAGE_STRING=\"libsangoma\ 1.0.0\" -DPACKAGE_BUGREPORT=\"anthmct@yahoo.com\" -DPACKAGE=\"libsangoma\" -DVERSION=\"1.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_FCNTL_H=1 -DHAVE_NETINET_IN_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -DHAVE_MATH_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SOCKET_H=1 -DSELECT_TYPE_ARG1=int -DSELECT_TYPE_ARG234=\(fd_set\ \*\) -DSELECT_TYPE_ARG5=\(struct\ timeval\ \*\) -DHAVE_GETTIMEOFDAY=1 -DHAVE_MEMSET=1 -DHAVE_SELECT=1 -DHAVE_SOCKET=1
DEPDIR = .deps
ECHO = echo
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = grep -E
EXEEXT =
F77 = f95
FFLAGS = -g -O2
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
LDFLAGS =
LIBOBJS =
LIBPRI_FALSE =
LIBPRI_TRUE = #
LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LN_S = ln -s
LTLIBOBJS =
MAKEINFO = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run makeinfo
OBJEXT = o
PACKAGE = libsangoma
PACKAGE_BUGREPORT = anthmct@yahoo.com
PACKAGE_NAME = libsangoma
PACKAGE_STRING = libsangoma 1.0.0
PACKAGE_TARNAME = libsangoma
PACKAGE_VERSION = 1.0.0
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.0.0
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_CXX = g++
ac_ct_F77 = f95
ac_ct_RANLIB = ranlib
ac_ct_STRIP = strip
am__fastdepCC_FALSE = #
am__fastdepCC_TRUE =
am__fastdepCXX_FALSE = #
am__fastdepCXX_TRUE =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = i686-pc-linux-gnu
build_alias =
build_cpu = i686
build_os = linux-gnu
build_vendor = pc
datadir = ${prefix}/share
exec_prefix = ${prefix}
host = i686-pc-linux-gnu
host_alias =
host_cpu = i686
host_os = linux-gnu
host_vendor = pc
includedir = ${prefix}/include
infodir = ${prefix}/info
install_sh = /root/3.3/wanpipe/ssmg/libsangoma.trunk/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
libpripath =
localstatedir = ${prefix}/var
mandir = ${prefix}/man
mkdir_p = mkdir -p --
oldincludedir = /usr/include
prefix = /usr
program_transform_name = s,x,x,
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
sysconfdir = ${prefix}/etc
target_alias =
KINC = /lib/modules/$(shell uname -r)/build
WINC = /common/include
#WINC = ../../patches/kdrivers/include
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I/wanpipe/code/include -I$(KINC)/include -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include
LIB_SOURCES = libsangoma.c libsangoma.h $(am__append_1)
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h $(am__append_2)
lib_LTLIBRARIES = libsangoma.la
libsangoma_la_CFLAGS = $(AM_CFLAGS) $(am__append_3)
libsangoma_la_LDFLAGS = -version-info 1:0:0 $(am__append_4)
libsangoma_la_SOURCES = $(LIB_SOURCES)
lib_LIBRARIES = libsangoma.a
libsangoma_a_CFLAGS = $(AM_CFLAGS)
libsangoma_a_SOURCES = $(LIB_SOUCES)
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
cd $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
install-libLIBRARIES: $(lib_LIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
@$(POST_INSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
p=$(am__strip_dir) \
echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
$(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
else :; fi; \
done
uninstall-libLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
libsangoma.a: $(libsangoma_a_OBJECTS) $(libsangoma_a_DEPENDENCIES)
-rm -f libsangoma.a
$(libsangoma_a_AR) libsangoma.a $(libsangoma_a_OBJECTS) $(libsangoma_a_LIBADD)
$(RANLIB) libsangoma.a
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libsangoma.la: $(libsangoma_la_OBJECTS) $(libsangoma_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libsangoma_la_LDFLAGS) $(libsangoma_la_OBJECTS) $(libsangoma_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/libsangoma_la-libsangoma.Plo
include ./$(DEPDIR)/libsangoma_la-sangoma_pri.Plo
.c.o:
if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
# source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c $<
.c.obj:
if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
# source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
# source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LTCOMPILE) -c -o $@ $<
libsangoma_la-libsangoma.lo: libsangoma.c
if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma.Tpo" -c -o libsangoma_la-libsangoma.lo `test -f 'libsangoma.c' || echo '$(srcdir)/'`libsangoma.c; \
then mv -f "$(DEPDIR)/libsangoma_la-libsangoma.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma.Tpo"; exit 1; fi
# source='libsangoma.c' object='libsangoma_la-libsangoma.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(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-sangoma_pri.lo: sangoma_pri.c
if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-sangoma_pri.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" -c -o libsangoma_la-sangoma_pri.lo `test -f 'sangoma_pri.c' || echo '$(srcdir)/'`sangoma_pri.c; \
then mv -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" "$(DEPDIR)/libsangoma_la-sangoma_pri.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo"; exit 1; fi
# source='sangoma_pri.c' object='libsangoma_la-sangoma_pri.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-sangoma_pri.lo `test -f 'sangoma_pri.c' || echo '$(srcdir)/'`sangoma_pri.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-library_includeHEADERS: $(library_include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(library_includedir)" || $(mkdir_p) "$(DESTDIR)$(library_includedir)"
@list='$(library_include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(library_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(library_includedir)/$$f'"; \
$(library_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(library_includedir)/$$f"; \
done
uninstall-library_includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(library_include_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(library_includedir)/$$f'"; \
rm -f "$(DESTDIR)$(library_includedir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libLIBRARIES clean-libLTLIBRARIES \
clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-library_includeHEADERS
install-exec-am: install-libLIBRARIES install-libLTLIBRARIES
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-libLIBRARIES \
uninstall-libLTLIBRARIES uninstall-library_includeHEADERS
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
clean-generic clean-libLIBRARIES clean-libLTLIBRARIES \
clean-libtool ctags dist dist-all dist-bzip2 dist-gzip \
dist-shar dist-tarZ dist-zip distcheck distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-exec install-exec-am \
install-info install-info-am install-libLIBRARIES \
install-libLTLIBRARIES install-library_includeHEADERS \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-info-am uninstall-libLIBRARIES \
uninstall-libLTLIBRARIES uninstall-library_includeHEADERS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,442 @@
/*****************************************************************************
* libhpsangoma.c: Sangoma High Performance TDM API - Span Based Library
*
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
*
* Copyright: (c) 2008 Nenad Corbic <ncorbic@sangoma.com>
*
* 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.
* ============================================================================
*
*/
#include "libhpsangoma.h"
#include "libhpsangoma_priv.h"
/*---------------------------------------------------------
PRIVATE STRUCTURES
----------------------------------------------------------*/
void (*lib_log)(int level, FILE *fp, char *file, const char *func, int line, char *fmt, ...)=NULL;
/*!
\brief Channel Method: User tx a chunk into a channel
\param chan channel object
\param data pointer to user voice chunk
\param len size of user voice chunk
\return -1 = packet too large, -2 = channel closed, 1 = busy, 0 = tx ok
*/
static int sangoma_hp_tdm_chan_push(struct sangoma_hptdm_chan *chan, char *data, int len)
{
hp_tmd_chunk_t *tx_chunk;
int free_slots;
if (!chan->init) {
return -2;
}
if (len >= SMG_HP_MAX_CHAN_DATA) {
/* Data Too Big */
lib_printf(0,NULL,"chan_push c%i tx chunk len %i too big\n",
chan->span_no+1,chan->chan_no+1,chan->tx_idx_in,len);
return -1;
}
/* Lock */
if (chan->tx_idx_in >= chan->tx_idx_out) {
free_slots=SMG_HP_TDM_CHUNK_IDX_SZ-(chan->tx_idx_in-chan->tx_idx_out);
} else {
free_slots=chan->tx_idx_out-chan->tx_idx_in;
}
/* Un Lock */
if (!free_slots) {
/* We have just overruned the tx buffer */
lib_printf(0,NULL,"chan_push c%i failed no free slots in %i out %i\n",
chan->span_no+1,chan->chan_no+1, chan->tx_idx_in,chan->tx_idx_out);
return 1;
}
tx_chunk = &chan->tx_idx[chan->tx_idx_in];
if (tx_chunk->init) {
/* This should NEVER happen the chunk should be free */
lib_printf(15,NULL,"chan_push s%ic%i tx chunk overrun in %i \n",
chan->span_no+1,chan->chan_no+1,chan->tx_idx_in);
return 1;
}
memset(tx_chunk,0,sizeof(hp_tmd_chunk_t));
memcpy(&tx_chunk->data,data,len);
tx_chunk->len=len;
tx_chunk->init=1;
lib_printf(15,NULL,"chan_push s%ic%i tx chunk in %i \n",
chan->span_no+1,chan->chan_no+1,chan->tx_idx_in);
chan->tx_idx_in++;
if (chan->tx_idx_in >= SMG_HP_TDM_CHUNK_IDX_SZ) {
chan->tx_idx_in=0;
}
return 0;
}
/*-------------------------------------------------
Internal Span Methods
-------------------------------------------------*/
/*!
\brief Span Method: Open a channel inside of span
\param span span object
\param cfg channel registration structure
\param chan_no channel number
\param chan_ptr pass user the channel pointer reference
\return 0 = pass, non zero fail
*/
static int sangoma_hp_tdm_open_chan(sangoma_hptdm_span_t *span,
sangoma_hptdm_chan_reg_t *cfg,
unsigned int chan_no,
sangoma_hptdm_chan_t **chan_ptr)
{
sangoma_hptdm_chan_t *chan;
if (!span->init) {
return -1;
}
if (chan_no >= SMG_HP_TDM_MAX_CHANS) {
lib_printf(0,NULL,"open_chan failed chan_no %i >= max chans %i\n",
chan_no, SMG_HP_TDM_MAX_CHANS);
return -1;
}
if (!cfg->rx_data || !cfg->p) {
return -1;
}
if (span->chan_idx[chan_no].chan_no_hw < 0) {
lib_printf(0,NULL,"open_chan failed chan_no s%ic%i is not mapped to hardware\n",
span->span_no+1,chan_no+1);
return -1;
}
chan = &span->chan_idx[chan_no].chan;
if (chan->init) {
/* Chan Busy */
lib_printf(0,NULL,"open_chan failed chan_no s%ic%i is busy\n",
span->span_no+1,chan_no+1);
return 1;
}
memset(chan,0,sizeof(sangoma_hptdm_chan_t));
chan->chan_no = chan_no;
chan->span = span;
memcpy(&chan->chan_reg, cfg, sizeof(sangoma_hptdm_chan_reg_t));
chan->push = sangoma_hp_tdm_chan_push;
chan->init=1;
lib_printf(15,NULL,"open_chan chan_no s%ic%i ok\n",
span->span_no+1,chan_no+1);
*chan_ptr = chan;
return 0;
}
/*!
\brief Span Method: Close channel
\param chan channel object
\return 0 = pass, non zero fail
*/
static int sangoma_hp_tdm_close_chan(sangoma_hptdm_chan_t *chan)
{
chan->init=0;
chan->chan_reg.p=NULL;
lib_printf(15,NULL,"close_chan chan_no s%ic%i ok\n",
chan->span_no+1,chan->chan_no+1);
return 0;
}
/*!
\brief Span Method: Test if channel is closed
\param chan channel object
\return 0 = channel is NOT closed, non zero channel IS closed
*/
static int sangoma_hp_tdm_is_chan_closed (sangoma_hptdm_chan_t *chan)
{
return (chan->init == 0) ? 1:0;
}
/*!
\brief Span Method: Close span
\param span span object
\return 0 = pass, non zero fail
*/
static int sangoma_hp_tdm_close_span(sangoma_hptdm_span_t *span)
{
int i;
sangoma_hptdm_chan_t *chan=NULL;
for (i=0;i<SMG_HP_TDM_MAX_CHANS;i++) {
chan = &span->chan_idx[i].chan;
if (chan->init) {
chan->init=0;
}
}
close(span->sock);
span->sock=-1;
return 0;
}
/*!
\brief Span Method: User passes cmd to the span
\param span span object
\return 0 = pass, non zero fail
*/
static int sangoma_hp_tdm_event_ctrl_span(sangoma_hptdm_span_t *span, hp_tdmapi_tx_event_t *event)
{
int err;
if (!span->init || span->sock < 0) {
return -1;
}
err = ioctl(span->sock,SIOC_WANPIPE_API,event);
if (err < 0){
lib_printf(0,NULL,"Error: SPAN %i Failed to execute event!\n",
span->span_no+1);
return -1;
}
return 0;
}
/*!
\brief Span Method: User requests full span configuration
\param span span object
\return 0 = pass, non zero fail
*/
static int sangoma_hp_tdm_event_get_cfg(sangoma_hptdm_span_t *span, wan_if_cfg_t *if_cfg)
{
memcpy(if_cfg,&span->span_cfg,sizeof(if_cfg));
return 0;
}
/*!
\brief Span Method: handle the span
\param span span object
\return 0 = pass, non zero fail
*/
static int sangoma_hp_tdm_run_span(sangoma_hptdm_span_t *span)
{
int err=0;
fd_set sock_read,sock_write,sock_oob;
if (!span->init) {
lib_printf(0, NULL, "Span %i not initialized %i\n",span->span_no+1);
return -1;
}
lib_printf(15, NULL, "Starting RUN SPAN %i Sock=%i\n",span->span_no+1, span->sock);
if (span->sock < 0) {
err=sangoma_hptdm_span_open(span);
if (err) {
usleep(500000);
err=-2;
goto sangoma_hp_tdm_run_span_exit;
}
}
/* Initialize all select() descriptors */
FD_ZERO(&sock_read);
FD_ZERO(&sock_write);
FD_ZERO(&sock_oob);
FD_SET(span->sock,&sock_oob);
FD_SET(span->sock,&sock_read);
FD_SET(span->sock,&sock_write);
err=select(span->sock + 1,&sock_read, NULL, &sock_oob, NULL);
if (err > 0) {
if (FD_ISSET(span->sock,&sock_oob)){
err=sangoma_hp_tdm_handle_oob_event(span);
if (err) {
lib_printf(0, NULL, "RUN SPAN: %i oob err %i\n",
span->span_no+1, err);
err=-3;
goto sangoma_hp_tdm_run_span_exit;
}
}
if (FD_ISSET(span->sock,&sock_read)){
err=sangoma_hp_tdm_handle_read_event(span);
if (err) {
lib_printf(0, NULL, "RUN SPAN: %i read err %i\n",
span->span_no+1, err);
err=-4;
goto sangoma_hp_tdm_run_span_exit;
}
err=sangoma_hp_tdm_handle_write_event(span);
if (err) {
lib_printf(0, NULL, "RUN SPAN: %i write err %i\n",
span->span_no+1, err);
err=-5;
goto sangoma_hp_tdm_run_span_exit;
}
}
} else if (err==0) {
/* Timeout continue */
return 0;
} else {
/* Error */
if (errno == EAGAIN) {
goto sangoma_hp_tdm_run_span_exit;
}
err=-6;
}
sangoma_hp_tdm_run_span_exit:
if (err < 0) {
if (span->sock) {
close(span->sock);
span->sock=-1;
}
}
return err;
}
/*---------------------------------------------------------
PUBLIC STRUCTURES
----------------------------------------------------------*/
/*
\brief Initialize and Configure Span - private functions not to be used directly!
\param span_no span number - integer
\param cfg span registration struct
\param version library version number added by the macro
\return NULL: fail, Span Object: pass
*
* The __sangoma_hptdm_api_span_init() function must NOT be called directly!
* One MUST use defined sangoma_hptdm_api_span_init() macro instead
*/
sangoma_hptdm_span_t * __sangoma_hptdm_api_span_init(int span_no, sangoma_hptdm_span_reg_t *cfg, int version)
{
int err,i,ch=0;
sangoma_hptdm_span_t *span;
span = malloc(sizeof(sangoma_hptdm_span_t));
if (!span) {
return NULL;
}
memset(span,0,sizeof(sangoma_hptdm_span_t));
span->span_no=span_no;
sprintf(span->if_name,"w%ig1",span_no+1);
if (cfg) {
memcpy(&span->span_reg,cfg,sizeof(sangoma_hptdm_span_reg_t));
if (!lib_log) {
lib_log=cfg->log;
}
}
err=sangoma_hptdm_span_open(span);
if (err) {
free(span);
return NULL;
}
if (span->span_cfg.media == WAN_MEDIA_E1) {
span->span_cfg.active_ch = span->span_cfg.active_ch >> 1;
}
lib_printf(0,NULL,"Span %i Configuration\n",span->span_no+1);
lib_printf(0,NULL,"Used By\t:%i\n",span->span_cfg.usedby);
lib_printf(0,NULL,"Media\t:%i\n",span->span_cfg.media);
lib_printf(0,NULL,"Active Ch\t:0x%08X\n",span->span_cfg.active_ch);
lib_printf(0,NULL,"Chunk Sz\t:%i\n",span->span_cfg.chunk_sz);
lib_printf(0,NULL,"HW Coding\t:%i\n",span->span_cfg.hw_coding);
lib_printf(0,NULL,"If Number\t:%i\n",span->span_cfg.interface_number);
/* Map all channels to the actually configued on hardware */
for (i=0;i<SMG_HP_TDM_MAX_CHANS;i++) {
span->chan_idx[i].chan_no_hw=-1;
if (span->span_cfg.active_ch & (1<<i)) {
span->chan_idx[i].chan_no_hw=ch;
lib_printf(0,NULL,"Chan %i Mapped to %i",i,ch);
ch++;
span->max_chans++;
} else {
lib_printf(0,NULL,"Chan %i Not Mapped",i);
}
}
lib_printf(0,NULL,"Total Chans\t:%i\n",span->max_chans);
/* Must be configurable */
span->chunk_sz=span->span_cfg.chunk_sz;
span->tx_size=span->max_chans*span->chunk_sz;
span->init=1;
span->idle=0xFF;
span->open_chan = sangoma_hp_tdm_open_chan;
span->close_chan = sangoma_hp_tdm_close_chan;
span->is_chan_closed = sangoma_hp_tdm_is_chan_closed;
span->run_span =sangoma_hp_tdm_run_span;
span->close_span = sangoma_hp_tdm_close_span;
span->event_ctrl = sangoma_hp_tdm_event_ctrl_span;
span->get_cfg = sangoma_hp_tdm_event_get_cfg;
lib_printf(5, NULL, "Span %i Initialized\n",span->span_no+1);
return span;
}
/*
\brief Free, Un-Initialize Span
\param span_no span object
\return 0 = pass, non zero fail
*/
int sangoma_hptdm_api_span_free(sangoma_hptdm_span_t *span)
{
if (span->sock >= 0) {
span->close_span(span);
}
free(span);
span=NULL;
return 0;
}

View File

@ -0,0 +1,324 @@
/*****************************************************************************
* libhpsangoma.h : Sangoma High Performance TDM API - Span Based Library
*
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
*
* Copyright: (c) 2008 Nenad Corbic <ncorbic@sangoma.com>
*
* 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.
* ============================================================================
*/
#ifndef _LIB_HP_SNAGOMA_H
#define _LIB_HP_SNAGOMA_H
#ifdef WIN32
#error "WINDOWS NOT DEFINED"
#else
/* L I N U X */
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/signal.h>
#include <sys/select.h>
#include <sys/wait.h>
#include <sys/resource.h>
#include <netinet/in.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <linux/if.h>
#include <poll.h>
#include <signal.h>
#include <linux/wanpipe_defines.h>
#include <linux/wanpipe_common.h>
#include <linux/wanpipe_cfg.h>
#include <linux/wanpipe.h>
#include <linux/if_wanpipe.h>
#include <linux/sdla_aft_te1.h>
#endif
#define SMG_HP_MAX_CHAN_DATA 1024
#define SMG_HP_TDM_CHUNK_IDX_SZ 16
#define SMG_HP_TDM_MAX_CHANS 31
#define SMG_HP_MAX_SPAN_DATA (31*160)+32
#define hp_tdmapi_rx_event_t api_rx_hdr_t
#define hp_tdmapi_tx_event_t api_tx_hdr_t
#define SANGOMA_HPTDM_VERSION 1
/*---------------------------------------------------------
* PUBLIC DEFINITIONS
*/
/*!
\brief Span registration structure
*/
typedef struct sangoma_hptdm_span_reg
{
/*! pointer to user object used with callback functions */
void *p;
/*! callback function to implement library logging */
void (*log)(int level, FILE *fp, char *file, const char *func, int line, char *fmt, ...);
/*! callback function to span global events for all channels in a span */
int (*rx_event)(void *p, hp_tdmapi_rx_event_t *data);
}sangoma_hptdm_span_reg_t;
/*!
\brief A chunk structure used to implement a chunk buffer
*/
typedef struct hp_tdm_chunk
{
/*! chunk init flag used to determine if chunk is being used*/
int init;
/*! length of the current data chunk */
int len;
/*! current offset to write/read to/from the chunk data structure. */
int offset;
/*! chunk data location */
char data[SMG_HP_MAX_CHAN_DATA];
}hp_tmd_chunk_t;
/*!
\brief Chan registration structure
*/
typedef struct sangoma_hptdm_chan_reg
{
/*! pointer to user object used with callback functions */
void *p;
/*! callback function used to pass rx chunk to user application */
int (*rx_data)(void *p, char *data, int len);
/*! callback function used to pass channel specific event to user application */
int (*rx_event)(void *p, hp_tdmapi_rx_event_t *data);
}sangoma_hptdm_chan_reg_t;
/*!
\brief Channel structure, describes a single timeslot/channel in a span.
*/
typedef struct sangoma_hptdm_chan
{
/*! channel init flag used to determine if chan is being used */
int init;
/*! channel number: starting from 0 */
int chan_no;
/*! span number the current channel belongs to: starting from 0 */
int span_no;
/*! span object pointer the current channel belongs */
void *span;
/*! Rx chunk buffer used to rx data from the span */
hp_tmd_chunk_t rx_chunk;
/*! Circular buffer of tx data chunks used to tx data to span */
hp_tmd_chunk_t tx_idx[SMG_HP_TDM_CHUNK_IDX_SZ];
/*! Circular buffer index for user to chan tx */
int tx_idx_in;
/*! Circular buffer index for chan to span tx */
int tx_idx_out;
/*! Callback func called by user to push chunk of data into the channel */
int (*push)(struct sangoma_hptdm_chan *, char *data, int len);
/*! Channel registration struct used to store user data, cfg and callbacks */
sangoma_hptdm_chan_reg_t chan_reg;
}sangoma_hptdm_chan_t;
/*!
\brief Structure describing a array index of a channel inside the span structure.
*
* Structure describing a array index of a channel inside the span structure.
* Furthermore the index * also servers as a map from hardware channels to library channels.
* Hardware might be configured for channels 1-15.17-31, however library always
* provides all 31 channels
*/
typedef struct sangoma_hptdm_chan_map
{
/*! A hardware channel number that is mapped to the current channel structure.
* Hardware might be configured for channels 1-15.17-31, however library always
* provides all 31 channels */
int chan_no_hw;
/*! A channel structure */
sangoma_hptdm_chan_t chan;
}sangoma_hptdm_chan_map_t;
/*!
\brief Span structure. Structure describing a single span.
*/
typedef struct sangoma_hptdm_span
{
/*! span init flag used to determine if span is being used */
int init;
/*! span number - integer starting from 0 */
int span_no;
/*! span hw interface name to which span is bounded to */
char if_name[100];
/*! span socket file descriptor used to rx/tx data to and from hw interface */
int sock;
/*! chunk size for each channel inside the span */
int chunk_sz;
/*! total number of channels configured in the span */
int max_chans;
/*! total tx data size to hw interface. tx_size = max_chans * chunk_sz */
int tx_size;
/*! idle flag used to fill an unused channel */
unsigned char idle;
/*! bit map of configured timeslots obtained from hw interface */
unsigned int timeslot_cfg;
/*! hw data encoding: ULAW/ALAW obtained from hw interface */
unsigned int hwcoding;
/*! array of maximum number of channels in a span */
sangoma_hptdm_chan_map_t chan_idx[SMG_HP_TDM_MAX_CHANS];
/*! span rx data block: used to receive a block of data from hw interface: recv() */
char rx_data[SMG_HP_MAX_SPAN_DATA];
/*! span rx data len, obtained after a recv() call to hw interface */
int rx_len;
/*! span tx data block: used to transmit a block of data to hw interface: send() */
char tx_data[SMG_HP_MAX_SPAN_DATA];
/*! span tx data block len: passed to send() function */
int tx_len;
/*! span registration functions: contains user callback functions */
sangoma_hptdm_span_reg_t span_reg;
/*! span config structure obtained from hw interface via managment ioctl call. */
wan_if_cfg_t span_cfg;
/*! span managment structure used to execute mgmnt ioctl commands to hw interface */
wan_udp_hdr_t wan_udp;
/*! \brief Method: open a channel inside a span
* \param span span object
* \param chan_reg channel registration structure: callbacks and cfg
* \param chan_no channel number - integer starting from 0
* \param chan_ptr user container for channel object passed up to the user.
*/
int (*open_chan)(struct sangoma_hptdm_span *span,
sangoma_hptdm_chan_reg_t *chan_reg,
unsigned int chan_no,
sangoma_hptdm_chan_t **chan_ptr);
/*! \brief Method: close a channel inside the span
* \param chan chan object
*/
int (*close_chan)(sangoma_hptdm_chan_t *chan);
/*! \brief Method: check if channel is closed
* \param chan chan object */
int (*is_chan_closed)(sangoma_hptdm_chan_t *chan);
/*! \brief Method: run main span execution logic: rx/tx/oob
* \param span span object
*
* Run main span execution logic. This function peforms all socket operations
* on a hw interface. Rx/Tx/Oob.
* Receives data and demultiplexes it to channels.
* Receives oob data and passes user events global to all channels.
* Multiplexes all channel tx data into a single tx data block and
* passes it to hw iface.
*/
int (*run_span)(struct sangoma_hptdm_span *span);
/*! \brief Method: close span
* \param span span object */
int (*close_span)(struct sangoma_hptdm_span *span);
/*! \brief Method: used by user app to execute events on current span
* \param span span object
* \param event event object
*/
int (*event_ctrl)(struct sangoma_hptdm_span *span, hp_tdmapi_tx_event_t *event);
/*! \brief Method: request full span configuration from a current span
* \param span span object
* \param cfg configuratoin object to be filled by span
*/
int (*get_cfg)(struct sangoma_hptdm_span *span, wan_if_cfg_t *cfg);
}sangoma_hptdm_span_t;
/*---------------------------------------------------------
* PUBLIC FUNCTIONS
*/
/*!
\brief Initialize and Configure a Span
\param span_no span number - integer
\param cfg span registration struct
\return NULL: fail, Span Object: pass
*/
/* Initialize and Configure a Span */
#define sangoma_hptdm_api_span_init(span,cfg) __sangoma_hptdm_api_span_init(span, cfg, SANGOMA_HPTDM_VERSION);
/*!
\brief Initialize and Configure Span - private functions not to be used directly!
\param span_no span number - integer
\param cfg span registration struct
\param version library version number added by the macro
\return NULL: fail, Span Object: pass
*
* The __sangoma_hptdm_api_span_init() function must NOT be called directly!
* One MUST use defined sangoma_hptdm_api_span_init() macro instead
*/
/*
* The __sangoma_hptdm_api_span_init() function must NOT be called directly!
* One MUST use defined sangoma_hptdm_api_span_init() macro instead
*/
extern sangoma_hptdm_span_t * __sangoma_hptdm_api_span_init(int span_no, sangoma_hptdm_span_reg_t *cfg, int version);
/*!
\brief Free, Un-Initialize Span
\param span_no span object
\return 0 = pass, non zero fail
*/
extern int sangoma_hptdm_api_span_free(sangoma_hptdm_span_t *span);
#endif

View File

@ -0,0 +1,403 @@
/*****************************************************************************
* libhpsangoma_priv.c: Sangoma High Performance TDM API - Span Based Library
*
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
*
* Copyright: (c) 2008 Nenad Corbic <ncorbic@sangoma.com>
*
* 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.
* ============================================================================
*
*/
#include "libhpsangoma.h"
#include "libhpsangoma_priv.h"
#define DFT_CARD "wanpipe1"
/*!
\brief Span read data from a hw interface
\param fd socket file descriptor to span hw interface
\param hdrbuf pointer to header buffer used for misc oob data - not used
\param hdrlen size of hdr buffer - always standard 16 bytes
\param databuf pointer to span data that includes all timeslots * chunk size
\param datalen size of span data: timeslots * chunk size
\param flag selects normal (0) or oob (MSG_OOB) read queue
\return 0 = pass, non zero fail
*/
int sangoma_readmsg_hp_tdm(int fd, void *hdrbuf, int hdrlen, void *databuf, int datalen, int flag)
{
int rx_len=0;
#if defined(WIN32)
#error "WINDOWS HP TDMAPI NOT DEFINED"
#else
struct msghdr msg;
struct iovec iov[2];
memset(&msg,0,sizeof(struct msghdr));
iov[0].iov_len=hdrlen;
iov[0].iov_base=hdrbuf;
iov[1].iov_len=datalen;
iov[1].iov_base=databuf;
msg.msg_iovlen=2;
msg.msg_iov=iov;
rx_len = recvmsg(fd,&msg,0);
if (rx_len <= sizeof(api_rx_hdr_t)){
return -EINVAL;
}
rx_len-=sizeof(api_rx_hdr_t);
#endif
return rx_len;
}
/*!
\brief Span write data into a hw interface
\param fd socket file descriptor to span hw interface
\param hdrbuf pointer to header buffer used for misc oob data - not used
\param hdrlen size of hdr buffer - always standard 16 bytes
\param databuf pointer to span data that includes all timeslots * chunk size
\param datalen size of span data: timeslots * chunk size
\param flag selects normal (0) or oob (MSG_OOB) read queue
\return 0 = pass, non zero fail
*/
int sangoma_writemsg_hp_tdm(int fd, void *hdrbuf, int hdrlen, void *databuf, unsigned short datalen, int flag)
{
int bsent;
#if defined(WIN32)
#error "Windows TX not implemented"
#else
struct msghdr msg;
struct iovec iov[2];
memset(&msg,0,sizeof(struct msghdr));
iov[0].iov_len=hdrlen;
iov[0].iov_base=hdrbuf;
iov[1].iov_len=datalen;
iov[1].iov_base=databuf;
msg.msg_iovlen=2;
msg.msg_iov=iov;
bsent = sendmsg(fd,&msg,0);
if (bsent > 0){
bsent-=sizeof(api_tx_hdr_t);
}
#endif
return bsent;
}
/*!
\brief Execute a management ioctl command
\param span span object
\return 0 = pass, non zero fail
*/
int do_wanpipemon_cmd(sangoma_hptdm_span_t *span)
{
struct ifreq ifr;
memset(&ifr,0,sizeof(ifr));
ifr.ifr_data = (void*)&span->wan_udp;
sprintf (ifr.ifr_name, "%s", span->if_name);
return ioctl(span->sock,SIOC_WANPIPE_PIPEMON,&ifr);
}
/*!
\brief Get full span hw configuration
\param span span object
\return 0 = pass, non zero fail
*/
unsigned char sangoma_get_cfg(sangoma_hptdm_span_t *span)
{
span->wan_udp.wan_udphdr_command = READ_CONFIGURATION;
span->wan_udp.wan_udphdr_data_len = 0;
span->wan_udp.wan_udphdr_return_code = 0xaa;
do_wanpipemon_cmd(span);
if (span->wan_udp.wan_udphdr_return_code != 0){
lib_printf(0,NULL,"Error: SPAN %i management command failed 0x02Xs (%s)",
span->span_no+1, span->wan_udp.wan_udphdr_return_code,strerror(errno));
return -1;
}
memcpy(&span->span_cfg,&span->wan_udp.wan_udphdr_data[0],sizeof(span->span_cfg));
return 0;
}
/*!
\brief Open socket to span hw interface
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hptdm_span_open(sangoma_hptdm_span_t *span)
{
struct wan_sockaddr_ll sa;
char if_name[100];
int sock=-1;
int err;
memset(&sa,0,sizeof(struct wan_sockaddr_ll));
sock = socket(AF_WANPIPE, SOCK_RAW, 0);
if( sock < 0 ) {
perror("Socket");
return -1;
} /* if */
sprintf(if_name, "w%ig1", span->span_no+1);
strcpy( (char*)sa.sll_device, if_name);
strcpy( (char*)sa.sll_card, DFT_CARD);
sa.sll_protocol = htons(PVC_PROT);
sa.sll_family=AF_WANPIPE;
if(bind(sock, (struct sockaddr *)&sa, sizeof(struct wan_sockaddr_ll)) < 0){
lib_printf(0,NULL,"bind failed on span span %i %s\n",
span->span_no+1,strerror(errno));
return -1;
}
span->sock=sock;
err= sangoma_get_cfg(span);
if (err) {
goto sangoma_hptdm_span_open_error;
}
lib_printf(0,NULL,"libhp: span %i opened\n",
span->span_no+1);
return 0;
sangoma_hptdm_span_open_error:
if (span->sock) {
close(span->sock);
span->sock=-1;
}
return err;
}
/*!
\brief Read oob event from hw and push oob event up to the user. Called after select()
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hp_tdm_handle_oob_event(sangoma_hptdm_span_t *span)
{
int err;
hp_tdmapi_rx_event_t *rx_event;
err = recv(span->sock, span->rx_data, sizeof(span->rx_data), MSG_OOB);
if (err > 0) {
rx_event=(hp_tdmapi_rx_event_t*)&span->rx_data;
if (span->span_reg.rx_event && span->span_reg.p) {
span->span_reg.rx_event(span->span_reg.p, rx_event);
}
}
/* For now treat all err as socket reload */
return 1;
}
/*!
\brief Multiplex span rx data and push it up to each channel
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hp_tdm_push_rx_data(sangoma_hptdm_span_t *span)
{
int i=0,x=0,err=0;
sangoma_hptdm_chan_t *chan=NULL;
hp_tmd_chunk_t *chunk=NULL;
int chan_no_hw;
char *rx_data = &span->rx_data[sizeof(api_rx_hdr_t)];
for (i=0;i<SMG_HP_TDM_MAX_CHANS;i++) {
chan = &span->chan_idx[i].chan;
if (!chan->init) {
continue;
}
chan_no_hw = span->chan_idx[i].chan_no_hw;
lib_printf(15,NULL, "SPAN %i Chan %i Chunk %i Channelizing\n",
span->span_no+1, chan->chan_no+1, span->chunk_sz);
chunk = &chan->rx_chunk;
for (x=0;x<span->chunk_sz;x++) {
chunk->data[x] = rx_data[(span->max_chans*x)+chan_no_hw];
}
chunk->len = span->chunk_sz;
if (chan->chan_reg.p && chan->chan_reg.rx_data) {
err=chan->chan_reg.rx_data(chan->chan_reg.p,chunk->data,chunk->len);
} else {
err=1;
}
if (err) {
chan->init=0;
chan->chan_reg.p=NULL;
}
}
return err;
}
/*!
\brief Read data from hw interface and pass it up to the rxdata handler: called by run_span()
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hp_tdm_handle_read_event(sangoma_hptdm_span_t *span)
{
int err;
hp_tdmapi_rx_event_t *rx_event = (hp_tdmapi_rx_event_t*)&span->rx_data[0];
err = sangoma_readmsg_hp_tdm(span->sock,
&span->rx_data[0],sizeof(api_rx_hdr_t),
&span->rx_data[sizeof(api_rx_hdr_t)],
sizeof(span->rx_data) - sizeof(api_rx_hdr_t),
0);
if (err > sizeof(api_rx_hdr_t)) {
lib_printf(15,NULL, "SPAN %i Read Len = %i\n",span->span_no+1,err);
if (rx_event->event_type) {
if (span->span_reg.rx_event && span->span_reg.p) {
span->span_reg.rx_event(span->span_reg.p, rx_event);
}
} else {
if (err % span->chunk_sz) {
lib_printf(0,NULL, "Error: SPAN %i Read Len = %i Block not chunk %i aligned! \n",span->span_no+1,err,span->chunk_sz);
/* Received chunk size is not aligned drop it for now */
return 0;
}
sangoma_hp_tdm_push_rx_data(span);
}
err=0;
} else {
if (errno == EAGAIN) {
err = 0;
} else {
err=-1;
}
}
return err;
}
/*!
\brief Pull data from all chans and write data to hw interface: called by run_span()
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hp_tdm_handle_write_event(sangoma_hptdm_span_t *span)
{
int i=0,x=0,err=0;
sangoma_hptdm_chan_t *chan;
hp_tmd_chunk_t *chunk;
int chan_no_hw=0;
char *tx_data = &span->tx_data[sizeof(api_tx_hdr_t)];
memset(&span->tx_data,span->idle,sizeof(span->tx_data));
for (i=0;i<SMG_HP_TDM_MAX_CHANS;i++) {
chan = &span->chan_idx[i].chan;
if (!chan->init) {
/* This channel is not open */
continue;
}
chan_no_hw=span->chan_idx[i].chan_no_hw;
chunk = &chan->tx_idx[chan->tx_idx_out];
if (!chunk->init) {
lib_printf(15,NULL,"span write s%ic%i tx chunk underrun out %i \n",
chan->span_no+1,chan->chan_no+1,chan->tx_idx_out);
/* There is no tx data for this channel */
continue;
}
for (x=0;x<span->chunk_sz;x++) {
tx_data[(span->max_chans*x)+chan_no_hw] = chunk->data[chunk->offset];
chunk->offset++;
if (chunk->offset >= chunk->len) {
chunk->init=0;
lib_printf(15,NULL,"span write s%ic%i tx chunk out %i \n",
chan->span_no+1,chan->chan_no+1,chan->tx_idx_out);
chan->tx_idx_out++;
if (chan->tx_idx_out >= SMG_HP_TDM_CHUNK_IDX_SZ) {
chan->tx_idx_out=0;
}
chunk=&chan->tx_idx[chan->tx_idx_out];
if (!chunk->init) {
/* We are out of tx data on this channel */
break;
}
}
}
}
err = sangoma_writemsg_hp_tdm(span->sock,
span->tx_data,sizeof(api_tx_hdr_t),
tx_data, span->tx_size,
0);
lib_printf(15, NULL, "SPAN %i TX Len %i Expecting %i\n",
span->span_no+1, err, span->tx_size+sizeof(api_tx_hdr_t));
if (err < span->tx_size) {
if (errno == EAGAIN) {
return 0;
} else {
return -1;
}
} else {
err=0;
}
return err;
}

View File

@ -0,0 +1,118 @@
/*****************************************************************************
* libhpsangoma.h : Sangoma High Performance TDM API - Span Based Library
*
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
*
* Copyright: (c) 2008 Nenad Corbic <ncorbic@sangoma.com>
*
* 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.
* ============================================================================
*/
#ifndef _LIB_HP_SANGOMA_PRIV_H
#define _LIB_HP_SANGOMA_PRIV_H
#include "libhpsangoma.h"
/*!
\brief library print function based on registered span callback function
\return void
*/
#define lib_printf(level, fp, fmt, ...) if (lib_log) lib_log(level, fp, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__)
extern void (*lib_log)(int level, FILE *fp, char *file, const char *func, int line, char *fmt, ...);
/*---------------------------------------------------------
* PRIVATE - FUNCTIONS
*/
/*!
\brief Span read data from a hw interface
\param fd socket file descriptor to span hw interface
\param hdrbuf pointer to header buffer used for misc oob data - not used
\param hdrlen size of hdr buffer - always standard 16 bytes
\param databuf pointer to span data that includes all timeslots * chunk size
\param datalen size of span data: timeslots * chunk size
\param flag selects normal (0) or oob (MSG_OOB) read queue
\return 0 = pass, non zero fail
*/
int sangoma_readmsg_hp_tdm(int fd, void *hdrbuf, int hdrlen, void *databuf, int datalen, int flag);
/*!
\brief Span write data into a hw interface
\param fd socket file descriptor to span hw interface
\param hdrbuf pointer to header buffer used for misc oob data - not used
\param hdrlen size of hdr buffer - always standard 16 bytes
\param databuf pointer to span data that includes all timeslots * chunk size
\param datalen size of span data: timeslots * chunk size
\param flag selects normal (0) or oob (MSG_OOB) read queue
\return 0 = pass, non zero fail
*/
int sangoma_writemsg_hp_tdm(int fd, void *hdrbuf, int hdrlen, void *databuf, unsigned short datalen, int flag);
/*!
\brief Execute a management ioctl command
\param span span object
\return 0 = pass, non zero fail
*/
int do_wanpipemon_cmd(sangoma_hptdm_span_t *span);
/*!
\brief Get full span hw configuration
\param span span object
\return 0 = pass, non zero fail
*/
unsigned char sangoma_get_cfg(sangoma_hptdm_span_t *span);
/*!
\brief Open socket to span hw interface
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hptdm_span_open(sangoma_hptdm_span_t *span);
/*!
\brief Read oob event from hw and push oob event up to the user. Called after select()
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hp_tdm_handle_oob_event(sangoma_hptdm_span_t *span);
/*!
\brief Multiplex span rx data and push it up to each channel
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hp_tdm_push_rx_data(sangoma_hptdm_span_t *span);
/*!
\brief Read data from hw interface and pass it up to the rxdata handler: called by run_span()
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hp_tdm_handle_read_event(sangoma_hptdm_span_t *span);
/*!
\brief Pull data from all chans and write data to hw interface: called by run_span()
\param span span object
\return 0 = pass, non zero fail
*/
int sangoma_hp_tdm_handle_write_event(sangoma_hptdm_span_t *span);
#endif

View File

@ -227,7 +227,11 @@ sng_fd_t sangoma_open_tdmapi_ctrl(void)
{
int fd=-1;
#if defined(WIN32)
#warning "sangoma_open_tdmapi_ctrl: Not support on Windows"
#else
fd = open("/dev/wptdm_ctrl", O_RDWR);
#endif
return fd;
}
@ -662,6 +666,7 @@ int sangoma_tdm_get_hw_coding(int fd, wanpipe_tdm_api_t *tdm_api)
return tdm_api->wp_tdm_cmd.hw_tdm_coding;
}
#ifdef WP_TDM_FEATURE_DTMF_EVENTS
/*========================================================
* GET Current User Hardware DTMF Enabled/Disabled
*
@ -678,6 +683,7 @@ int sangoma_tdm_get_hw_dtmf(int fd, wanpipe_tdm_api_t *tdm_api)
}
return tdm_api->wp_tdm_cmd.hw_dtmf;
}
#endif
/*========================================================
* GET Current User MTU/MRU values in bytes.
@ -949,7 +955,6 @@ int sangoma_tdm_disable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
return 0;
}
#endif
int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
{
@ -1169,6 +1174,8 @@ int sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) {
return tdm_api->wp_tdm_cmd.rbs_poll;
}
#endif
int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
{
int err;
@ -1214,7 +1221,6 @@ int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
return tdm_api->wp_tdm_cmd.fe_alarms;
}
#endif
/* get current Line Connection state - Connected/Disconnected */
int sangoma_tdm_get_fe_status(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned char *current_status)
@ -1227,6 +1233,7 @@ int sangoma_tdm_get_fe_status(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned
return err;
}
#endif
/* get current Line Connection state - Connected/Disconnected */
#ifdef WP_TDM_FEATURE_LINK_STATUS
@ -1240,7 +1247,6 @@ int sangoma_tdm_get_link_status(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigne
return err;
}
#endif
/* set current Line Connection state - Connected/Disconnected. valid only for ISDN BRI */
int sangoma_tdm_set_fe_status(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned char new_status)
@ -1250,5 +1256,6 @@ int sangoma_tdm_set_fe_status(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned
return sangoma_tdm_cmd_exec(fd, tdm_api);
}
#endif
#endif /* WANPIPE_TDM_API */

View File

@ -1,5 +0,0 @@
Added new event support
--This line, and those below, will be ignored--
M libsangoma.c
M libsangoma.h

View File

@ -1,5 +0,0 @@
Added new event features
--This line, and those below, will be ignored--
M libsangoma.c
M libsangoma.h

File diff suppressed because it is too large Load Diff

View File

@ -75,9 +75,12 @@ libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libsangoma_la_LIBADD =
am__libsangoma_la_SOURCES_DIST = libsangoma.c libsangoma.h \
sangoma_pri.c sangoma_pri.h
libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c \
libhpsangoma_priv.h sangoma_pri.c sangoma_pri.h
#am__objects_1 = libsangoma_la-sangoma_pri.lo
am__objects_2 = libsangoma_la-libsangoma.lo $(am__objects_1)
am__objects_2 = libsangoma_la-libsangoma.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)
DEFAULT_INCLUDES = -I. -I$(srcdir)
@ -94,7 +97,8 @@ LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
SOURCES = $(libsangoma_a_SOURCES) $(libsangoma_la_SOURCES)
DIST_SOURCES = $(libsangoma_a_SOURCES) \
$(am__libsangoma_la_SOURCES_DIST)
am__library_include_HEADERS_DIST = libsangoma.h sangoma_pri.h
am__library_include_HEADERS_DIST = libsangoma.h libhpsangoma.h \
sangoma_pri.h
library_includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(library_include_HEADERS)
ETAGS = etags
@ -110,14 +114,28 @@ DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
<<<<<<< .mine
ACLOCAL = ${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run aclocal-1.9
=======
ACLOCAL = ${SHELL} /usr/src/ssmg/libsangoma.trunk/missing --run aclocal-1.9
>>>>>>> .r20
AMDEP_FALSE = #
AMDEP_TRUE =
<<<<<<< .mine
AMTAR = ${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run tar
=======
AMTAR = ${SHELL} /usr/src/ssmg/libsangoma.trunk/missing --run tar
>>>>>>> .r20
AR = ar
<<<<<<< .mine
AUTOCONF = ${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run autoconf
AUTOHEADER = ${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run autoheader
AUTOMAKE = ${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run automake-1.9
=======
AUTOCONF = ${SHELL} /usr/src/ssmg/libsangoma.trunk/missing --run autoconf
AUTOHEADER = ${SHELL} /usr/src/ssmg/libsangoma.trunk/missing --run autoheader
AUTOMAKE = ${SHELL} /usr/src/ssmg/libsangoma.trunk/missing --run automake-1.9
>>>>>>> .r20
AWK = gawk
CC = gcc
CCDEPMODE = depmode=gcc3
@ -151,7 +169,11 @@ LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LN_S = ln -s
LTLIBOBJS =
<<<<<<< .mine
MAKEINFO = ${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run makeinfo
=======
MAKEINFO = ${SHELL} /usr/src/ssmg/libsangoma.trunk/missing --run makeinfo
>>>>>>> .r20
OBJEXT = o
PACKAGE = libsangoma
PACKAGE_BUGREPORT = anthmct@yahoo.com
@ -196,7 +218,11 @@ host_os = linux-gnu
host_vendor = pc
includedir = ${prefix}/include
infodir = ${prefix}/info
<<<<<<< .mine
install_sh = /root/3.3/wanpipe/api/libsangoma/install-sh
=======
install_sh = /usr/src/ssmg/libsangoma.trunk/install-sh
>>>>>>> .r20
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
libpripath =
@ -215,9 +241,10 @@ WINC = ../../patches/kdrivers/include
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include
LIB_SOURCES = libsangoma.c libsangoma.h $(am__append_1)
LIB_SOURCES = libsangoma.c libsangoma.h libhpsangoma.c libhpsangoma.h \
libhpsangoma_priv.c libhpsangoma_priv.h $(am__append_1)
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h $(am__append_2)
library_include_HEADERS = libsangoma.h libhpsangoma.h $(am__append_2)
lib_LTLIBRARIES = libsangoma.la
libsangoma_la_CFLAGS = $(AM_CFLAGS) $(am__append_3)
libsangoma_la_LDFLAGS = -version-info 1:0:0 $(am__append_4)
@ -331,6 +358,8 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/libsangoma_la-libhpsangoma.Plo
include ./$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Plo
include ./$(DEPDIR)/libsangoma_la-libsangoma.Plo
include ./$(DEPDIR)/libsangoma_la-sangoma_pri.Plo
@ -362,6 +391,20 @@ libsangoma_la-libsangoma.lo: libsangoma.c
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(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-libhpsangoma.lo: libhpsangoma.c
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; \
then mv -f "$(DEPDIR)/libsangoma_la-libhpsangoma.Tpo" "$(DEPDIR)/libsangoma_la-libhpsangoma.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libhpsangoma.Tpo"; exit 1; fi
# source='libhpsangoma.c' object='libsangoma_la-libhpsangoma.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libhpsangoma.lo `test -f 'libhpsangoma.c' || echo '$(srcdir)/'`libhpsangoma.c
libsangoma_la-libhpsangoma_priv.lo: libhpsangoma_priv.c
if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libhpsangoma_priv.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Tpo" -c -o libsangoma_la-libhpsangoma_priv.lo `test -f 'libhpsangoma_priv.c' || echo '$(srcdir)/'`libhpsangoma_priv.c; \
then mv -f "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Tpo" "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Tpo"; exit 1; fi
# source='libhpsangoma_priv.c' object='libsangoma_la-libhpsangoma_priv.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-libhpsangoma_priv.lo `test -f 'libhpsangoma_priv.c' || echo '$(srcdir)/'`libhpsangoma_priv.c
libsangoma_la-sangoma_pri.lo: sangoma_pri.c
if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-sangoma_pri.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" -c -o libsangoma_la-sangoma_pri.lo `test -f 'sangoma_pri.c' || echo '$(srcdir)/'`sangoma_pri.c; \
then mv -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" "$(DEPDIR)/libsangoma_la-sangoma_pri.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo"; exit 1; fi

View File

@ -1,18 +1,18 @@
KINC=/lib/modules/$(shell uname -r)/build
WINC=../../patches/kdrivers/include
WLINC=../../patches/kdrivers/include
WINC=/usr/include/wanpipe
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WLINC) -I$(WINC) -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib
LIB_SOURCES = libsangoma.c libsangoma.h
LIB_SOURCES = libsangoma.c libsangoma.h libhpsangoma.c libhpsangoma.h libhpsangoma_priv.c libhpsangoma_priv.h
if LIBPRI
LIB_SOURCES += sangoma_pri.c sangoma_pri.h
endif
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h
library_include_HEADERS = libsangoma.h libhpsangoma.h
if LIBPRI
library_include_HEADERS += sangoma_pri.h

View File

@ -75,9 +75,12 @@ libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libsangoma_la_LIBADD =
am__libsangoma_la_SOURCES_DIST = libsangoma.c libsangoma.h \
sangoma_pri.c sangoma_pri.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 $(am__objects_1)
am__objects_2 = libsangoma_la-libsangoma.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)
DEFAULT_INCLUDES = -I. -I$(srcdir)
@ -94,7 +97,8 @@ LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
SOURCES = $(libsangoma_a_SOURCES) $(libsangoma_la_SOURCES)
DIST_SOURCES = $(libsangoma_a_SOURCES) \
$(am__libsangoma_la_SOURCES_DIST)
am__library_include_HEADERS_DIST = libsangoma.h sangoma_pri.h
am__library_include_HEADERS_DIST = libsangoma.h libhpsangoma.h \
sangoma_pri.h
library_includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(library_include_HEADERS)
ETAGS = etags
@ -210,14 +214,15 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
KINC = /lib/modules/$(shell uname -r)/build
WINC = ../../patches/kdrivers/include
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include
WLINC = ../../patches/kdrivers/include
WINC = /usr/include/wanpipe
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WLINC) -I$(WINC) -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib
LIB_SOURCES = libsangoma.c libsangoma.h $(am__append_1)
LIB_SOURCES = libsangoma.c libsangoma.h libhpsangoma.c libhpsangoma.h \
libhpsangoma_priv.c libhpsangoma_priv.h $(am__append_1)
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h $(am__append_2)
library_include_HEADERS = libsangoma.h libhpsangoma.h $(am__append_2)
lib_LTLIBRARIES = libsangoma.la
libsangoma_la_CFLAGS = $(AM_CFLAGS) $(am__append_3)
libsangoma_la_LDFLAGS = -version-info 1:0:0 $(am__append_4)
@ -331,6 +336,8 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
@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-sangoma_pri.Plo@am__quote@
@ -362,6 +369,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-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
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libhpsangoma.c' object='libsangoma_la-libhpsangoma.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-libhpsangoma.lo `test -f 'libhpsangoma.c' || echo '$(srcdir)/'`libhpsangoma.c
libsangoma_la-libhpsangoma_priv.lo: libhpsangoma_priv.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_priv.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Tpo" -c -o libsangoma_la-libhpsangoma_priv.lo `test -f 'libhpsangoma_priv.c' || echo '$(srcdir)/'`libhpsangoma_priv.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Tpo" "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libhpsangoma_priv.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libhpsangoma_priv.c' object='libsangoma_la-libhpsangoma_priv.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-libhpsangoma_priv.lo `test -f 'libhpsangoma_priv.c' || echo '$(srcdir)/'`libhpsangoma_priv.c
libsangoma_la-sangoma_pri.lo: sangoma_pri.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-sangoma_pri.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" -c -o libsangoma_la-sangoma_pri.lo `test -f 'sangoma_pri.c' || echo '$(srcdir)/'`sangoma_pri.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" "$(DEPDIR)/libsangoma_la-sangoma_pri.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo"; exit 1; fi

View File

@ -1,679 +0,0 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
srcdir = .
top_srcdir = .
pkgdatadir = $(datadir)/libsangoma
pkglibdir = $(libdir)/libsangoma
pkgincludedir = $(includedir)/libsangoma
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = /usr/bin/install -c
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = i686-pc-linux-gnu
host_triplet = i686-pc-linux-gnu
#am__append_1 = sangoma_pri.c sangoma_pri.h
#am__append_2 = sangoma_pri.h
#am__append_3 = -I$(libpripath)
#am__append_4 = -L$(libpripath) -lpri
DIST_COMMON = README $(am__configure_deps) \
$(am__library_include_HEADERS_DIST) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
ChangeLog INSTALL NEWS compile config.guess config.sub depcomp \
install-sh ltmain.sh missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libdir)" \
"$(DESTDIR)$(library_includedir)"
libLIBRARIES_INSTALL = $(INSTALL_DATA)
LIBRARIES = $(lib_LIBRARIES)
ARFLAGS = cru
libsangoma_a_AR = $(AR) $(ARFLAGS)
libsangoma_a_LIBADD =
am_libsangoma_a_OBJECTS =
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 \
sangoma_pri.c sangoma_pri.h
#am__objects_1 = libsangoma_la-sangoma_pri.lo
am__objects_2 = libsangoma_la-libsangoma.lo $(am__objects_1)
am_libsangoma_la_OBJECTS = $(am__objects_2)
libsangoma_la_OBJECTS = $(am_libsangoma_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libsangoma_a_SOURCES) $(libsangoma_la_SOURCES)
DIST_SOURCES = $(libsangoma_a_SOURCES) \
$(am__libsangoma_la_SOURCES_DIST)
am__library_include_HEADERS_DIST = libsangoma.h sangoma_pri.h
library_includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(library_include_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run aclocal-1.9
AMDEP_FALSE = #
AMDEP_TRUE =
AMTAR = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run tar
AR = ar
AUTOCONF = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run autoconf
AUTOHEADER = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run autoheader
AUTOMAKE = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run automake-1.9
AWK = gawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = gcc -E
CPPFLAGS =
CXX = g++
CXXCPP = g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
CYGPATH_W = echo
DEFS = -DPACKAGE_NAME=\"libsangoma\" -DPACKAGE_TARNAME=\"libsangoma\" -DPACKAGE_VERSION=\"1.0.0\" -DPACKAGE_STRING=\"libsangoma\ 1.0.0\" -DPACKAGE_BUGREPORT=\"anthmct@yahoo.com\" -DPACKAGE=\"libsangoma\" -DVERSION=\"1.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_FCNTL_H=1 -DHAVE_NETINET_IN_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -DHAVE_MATH_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SOCKET_H=1 -DSELECT_TYPE_ARG1=int -DSELECT_TYPE_ARG234=\(fd_set\ \*\) -DSELECT_TYPE_ARG5=\(struct\ timeval\ \*\) -DHAVE_GETTIMEOFDAY=1 -DHAVE_MEMSET=1 -DHAVE_SELECT=1 -DHAVE_SOCKET=1
DEPDIR = .deps
ECHO = echo
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = grep -E
EXEEXT =
F77 = f95
FFLAGS = -g -O2
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
LDFLAGS =
LIBOBJS =
LIBPRI_FALSE =
LIBPRI_TRUE = #
LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LN_S = ln -s
LTLIBOBJS =
MAKEINFO = ${SHELL} /root/3.3/wanpipe/ssmg/libsangoma.trunk/missing --run makeinfo
OBJEXT = o
PACKAGE = libsangoma
PACKAGE_BUGREPORT = anthmct@yahoo.com
PACKAGE_NAME = libsangoma
PACKAGE_STRING = libsangoma 1.0.0
PACKAGE_TARNAME = libsangoma
PACKAGE_VERSION = 1.0.0
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.0.0
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_CXX = g++
ac_ct_F77 = f95
ac_ct_RANLIB = ranlib
ac_ct_STRIP = strip
am__fastdepCC_FALSE = #
am__fastdepCC_TRUE =
am__fastdepCXX_FALSE = #
am__fastdepCXX_TRUE =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = i686-pc-linux-gnu
build_alias =
build_cpu = i686
build_os = linux-gnu
build_vendor = pc
datadir = ${prefix}/share
exec_prefix = ${prefix}
host = i686-pc-linux-gnu
host_alias =
host_cpu = i686
host_os = linux-gnu
host_vendor = pc
includedir = ${prefix}/include
infodir = ${prefix}/info
install_sh = /root/3.3/wanpipe/ssmg/libsangoma.trunk/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
libpripath =
localstatedir = ${prefix}/var
mandir = ${prefix}/man
mkdir_p = mkdir -p --
oldincludedir = /usr/include
prefix = /usr
program_transform_name = s,x,x,
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
sysconfdir = ${prefix}/etc
target_alias =
KINC = /lib/modules/$(shell uname -r)/build
WINC = /common/include
#WINC = ../../patches/kdrivers/include
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I/wanpipe/code/include -I$(KINC)/include -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include
LIB_SOURCES = libsangoma.c libsangoma.h $(am__append_1)
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h $(am__append_2)
lib_LTLIBRARIES = libsangoma.la
libsangoma_la_CFLAGS = $(AM_CFLAGS) $(am__append_3)
libsangoma_la_LDFLAGS = -version-info 1:0:0 $(am__append_4)
libsangoma_la_SOURCES = $(LIB_SOURCES)
lib_LIBRARIES = libsangoma.a
libsangoma_a_CFLAGS = $(AM_CFLAGS)
libsangoma_a_SOURCES = $(LIB_SOUCES)
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
cd $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
install-libLIBRARIES: $(lib_LIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
@$(POST_INSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
p=$(am__strip_dir) \
echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
$(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
else :; fi; \
done
uninstall-libLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
libsangoma.a: $(libsangoma_a_OBJECTS) $(libsangoma_a_DEPENDENCIES)
-rm -f libsangoma.a
$(libsangoma_a_AR) libsangoma.a $(libsangoma_a_OBJECTS) $(libsangoma_a_LIBADD)
$(RANLIB) libsangoma.a
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libsangoma.la: $(libsangoma_la_OBJECTS) $(libsangoma_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libsangoma_la_LDFLAGS) $(libsangoma_la_OBJECTS) $(libsangoma_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/libsangoma_la-libsangoma.Plo
include ./$(DEPDIR)/libsangoma_la-sangoma_pri.Plo
.c.o:
if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
# source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c $<
.c.obj:
if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
# source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
# source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LTCOMPILE) -c -o $@ $<
libsangoma_la-libsangoma.lo: libsangoma.c
if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma.Tpo" -c -o libsangoma_la-libsangoma.lo `test -f 'libsangoma.c' || echo '$(srcdir)/'`libsangoma.c; \
then mv -f "$(DEPDIR)/libsangoma_la-libsangoma.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma.Tpo"; exit 1; fi
# source='libsangoma.c' object='libsangoma_la-libsangoma.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(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-sangoma_pri.lo: sangoma_pri.c
if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-sangoma_pri.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" -c -o libsangoma_la-sangoma_pri.lo `test -f 'sangoma_pri.c' || echo '$(srcdir)/'`sangoma_pri.c; \
then mv -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" "$(DEPDIR)/libsangoma_la-sangoma_pri.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo"; exit 1; fi
# source='sangoma_pri.c' object='libsangoma_la-sangoma_pri.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-sangoma_pri.lo `test -f 'sangoma_pri.c' || echo '$(srcdir)/'`sangoma_pri.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-library_includeHEADERS: $(library_include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(library_includedir)" || $(mkdir_p) "$(DESTDIR)$(library_includedir)"
@list='$(library_include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(library_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(library_includedir)/$$f'"; \
$(library_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(library_includedir)/$$f"; \
done
uninstall-library_includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(library_include_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(library_includedir)/$$f'"; \
rm -f "$(DESTDIR)$(library_includedir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libLIBRARIES clean-libLTLIBRARIES \
clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-library_includeHEADERS
install-exec-am: install-libLIBRARIES install-libLTLIBRARIES
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-libLIBRARIES \
uninstall-libLTLIBRARIES uninstall-library_includeHEADERS
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
clean-generic clean-libLIBRARIES clean-libLTLIBRARIES \
clean-libtool ctags dist dist-all dist-bzip2 dist-gzip \
dist-shar dist-tarZ dist-zip distcheck distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-exec install-exec-am \
install-info install-info-am install-libLIBRARIES \
install-libLTLIBRARIES install-library_includeHEADERS \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-info-am uninstall-libLIBRARIES \
uninstall-libLTLIBRARIES uninstall-library_includeHEADERS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,679 +0,0 @@
# Makefile.in generated by automake 1.9.2 from Makefile.am.
# Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
SOURCES = $(libsangoma_a_SOURCES) $(libsangoma_la_SOURCES)
srcdir = .
top_srcdir = .
pkgdatadir = $(datadir)/libsangoma
pkglibdir = $(libdir)/libsangoma
pkgincludedir = $(includedir)/libsangoma
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = /usr/bin/install -c
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = i686-pc-linux-gnu
host_triplet = i686-pc-linux-gnu
#am__append_1 = sangoma_pri.c sangoma_pri.h
#am__append_2 = sangoma_pri.h
#am__append_3 = -I$(libpripath)
#am__append_4 = -L$(libpripath) -lpri
DIST_COMMON = README $(am__configure_deps) \
$(am__library_include_HEADERS_DIST) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
ChangeLog INSTALL NEWS compile config.guess config.sub depcomp \
install-sh ltmain.sh missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libdir)" \
"$(DESTDIR)$(library_includedir)"
libLIBRARIES_INSTALL = $(INSTALL_DATA)
LIBRARIES = $(lib_LIBRARIES)
ARFLAGS = cru
libsangoma_a_AR = $(AR) $(ARFLAGS)
libsangoma_a_LIBADD =
am_libsangoma_a_OBJECTS =
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 \
sangoma_pri.c sangoma_pri.h
#am__objects_1 = libsangoma_la-sangoma_pri.lo
am__objects_2 = libsangoma_la-libsangoma.lo $(am__objects_1)
am_libsangoma_la_OBJECTS = $(am__objects_2)
libsangoma_la_OBJECTS = $(am_libsangoma_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libsangoma_a_SOURCES) $(libsangoma_la_SOURCES)
DIST_SOURCES = $(libsangoma_a_SOURCES) \
$(am__libsangoma_la_SOURCES_DIST)
am__library_include_HEADERS_DIST = libsangoma.h sangoma_pri.h
library_includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(library_include_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /usr/src/libsangoma/trunk/missing --run aclocal-1.9
AMDEP_FALSE = #
AMDEP_TRUE =
AMTAR = ${SHELL} /usr/src/libsangoma/trunk/missing --run tar
AR = ar
AUTOCONF = ${SHELL} /usr/src/libsangoma/trunk/missing --run autoconf
AUTOHEADER = ${SHELL} /usr/src/libsangoma/trunk/missing --run autoheader
AUTOMAKE = ${SHELL} /usr/src/libsangoma/trunk/missing --run automake-1.9
AWK = gawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = gcc -E
CPPFLAGS =
CXX = g++
CXXCPP = g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
CYGPATH_W = echo
DEFS = -DPACKAGE_NAME=\"libsangoma\" -DPACKAGE_TARNAME=\"libsangoma\" -DPACKAGE_VERSION=\"1.0.0\" -DPACKAGE_STRING=\"libsangoma\ 1.0.0\" -DPACKAGE_BUGREPORT=\"anthmct@yahoo.com\" -DPACKAGE=\"libsangoma\" -DVERSION=\"1.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_FCNTL_H=1 -DHAVE_NETINET_IN_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_UNISTD_H=1 -DHAVE_MATH_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SOCKET_H=1 -DSELECT_TYPE_ARG1=int -DSELECT_TYPE_ARG234=\(fd_set\ \*\) -DSELECT_TYPE_ARG5=\(struct\ timeval\ \*\) -DHAVE_GETTIMEOFDAY=1 -DHAVE_MEMSET=1 -DHAVE_SELECT=1 -DHAVE_SOCKET=1
DEPDIR = .deps
ECHO = echo
ECHO_C =
ECHO_N = -n
ECHO_T =
EGREP = grep -E
EXEEXT =
F77 = g77
FFLAGS = -g -O2
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
LDFLAGS =
LIBOBJS =
LIBPRI_FALSE =
LIBPRI_TRUE = #
LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LN_S = ln -s
LTLIBOBJS =
MAKEINFO = ${SHELL} /usr/src/libsangoma/trunk/missing --run makeinfo
OBJEXT = o
PACKAGE = libsangoma
PACKAGE_BUGREPORT = anthmct@yahoo.com
PACKAGE_NAME = libsangoma
PACKAGE_STRING = libsangoma 1.0.0
PACKAGE_TARNAME = libsangoma
PACKAGE_VERSION = 1.0.0
PATH_SEPARATOR = :
RANLIB = ranlib
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.0.0
ac_ct_AR = ar
ac_ct_CC = gcc
ac_ct_CXX = g++
ac_ct_F77 = g77
ac_ct_RANLIB = ranlib
ac_ct_STRIP = strip
am__fastdepCC_FALSE = #
am__fastdepCC_TRUE =
am__fastdepCXX_FALSE = #
am__fastdepCXX_TRUE =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = i686-pc-linux-gnu
build_alias =
build_cpu = i686
build_os = linux-gnu
build_vendor = pc
datadir = ${prefix}/share
exec_prefix = ${prefix}
host = i686-pc-linux-gnu
host_alias =
host_cpu = i686
host_os = linux-gnu
host_vendor = pc
includedir = ${prefix}/include
infodir = ${prefix}/info
install_sh = /usr/src/libsangoma/trunk/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
libpripath =
localstatedir = ${prefix}/var
mandir = ${prefix}/man
mkdir_p = mkdir -p --
oldincludedir = /usr/include
prefix = /usr/local
program_transform_name = s,x,x,
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
sysconfdir = ${prefix}/etc
target_alias =
KINC = /lib/modules/$(shell uname -r)/build
WINC = ../../patches/kdrivers/include
AM_CFLAGS = -fPIC -Wall -Wstrict-prototypes -Wmissing-prototypes -g -I$(WINC) -I$(KINC)/include -I. \
-D__LINUX__ -D_REENTRANT -D_GNU_SOURCE -O2 -D_DEBUG_=2 -D_GNUC_ -I../lib -I$(KINC)/include
LIB_SOURCES = libsangoma.c libsangoma.h $(am__append_1)
library_includedir = $(includedir)
library_include_HEADERS = libsangoma.h $(am__append_2)
lib_LTLIBRARIES = libsangoma.la
libsangoma_la_CFLAGS = $(AM_CFLAGS) $(am__append_3)
libsangoma_la_LDFLAGS = -version-info 1:0:0 $(am__append_4)
libsangoma_la_SOURCES = $(LIB_SOURCES)
lib_LIBRARIES = libsangoma.a
libsangoma_a_CFLAGS = $(AM_CFLAGS)
libsangoma_a_SOURCES = $(LIB_SOUCES)
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
cd $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
install-libLIBRARIES: $(lib_LIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
@$(POST_INSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
p=$(am__strip_dir) \
echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
$(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
else :; fi; \
done
uninstall-libLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLIBRARIES:
-test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
libsangoma.a: $(libsangoma_a_OBJECTS) $(libsangoma_a_DEPENDENCIES)
-rm -f libsangoma.a
$(libsangoma_a_AR) libsangoma.a $(libsangoma_a_OBJECTS) $(libsangoma_a_LIBADD)
$(RANLIB) libsangoma.a
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libsangoma.la: $(libsangoma_la_OBJECTS) $(libsangoma_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libsangoma_la_LDFLAGS) $(libsangoma_la_OBJECTS) $(libsangoma_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/libsangoma_la-libsangoma.Plo
include ./$(DEPDIR)/libsangoma_la-sangoma_pri.Plo
.c.o:
if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
# source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c $<
.c.obj:
if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
# source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
# source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LTCOMPILE) -c -o $@ $<
libsangoma_la-libsangoma.lo: libsangoma.c
if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma.Tpo" -c -o libsangoma_la-libsangoma.lo `test -f 'libsangoma.c' || echo '$(srcdir)/'`libsangoma.c; \
then mv -f "$(DEPDIR)/libsangoma_la-libsangoma.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma.Tpo"; exit 1; fi
# source='libsangoma.c' object='libsangoma_la-libsangoma.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LIBTOOL) --mode=compile --tag=CC $(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-sangoma_pri.lo: sangoma_pri.c
if $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-sangoma_pri.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" -c -o libsangoma_la-sangoma_pri.lo `test -f 'sangoma_pri.c' || echo '$(srcdir)/'`sangoma_pri.c; \
then mv -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo" "$(DEPDIR)/libsangoma_la-sangoma_pri.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-sangoma_pri.Tpo"; exit 1; fi
# source='sangoma_pri.c' object='libsangoma_la-sangoma_pri.lo' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -c -o libsangoma_la-sangoma_pri.lo `test -f 'sangoma_pri.c' || echo '$(srcdir)/'`sangoma_pri.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-library_includeHEADERS: $(library_include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(library_includedir)" || $(mkdir_p) "$(DESTDIR)$(library_includedir)"
@list='$(library_include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(library_includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(library_includedir)/$$f'"; \
$(library_includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(library_includedir)/$$f"; \
done
uninstall-library_includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(library_include_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(library_includedir)/$$f'"; \
rm -f "$(DESTDIR)$(library_includedir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(library_includedir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libLIBRARIES clean-libLTLIBRARIES \
clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-library_includeHEADERS
install-exec-am: install-libLIBRARIES install-libLTLIBRARIES
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-libLIBRARIES \
uninstall-libLTLIBRARIES uninstall-library_includeHEADERS
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
clean-generic clean-libLIBRARIES clean-libLTLIBRARIES \
clean-libtool ctags dist dist-all dist-bzip2 dist-gzip \
dist-shar dist-tarZ dist-zip distcheck distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-exec install-exec-am \
install-info install-info-am install-libLIBRARIES \
install-libLTLIBRARIES install-library_includeHEADERS \
install-man install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-info-am uninstall-libLIBRARIES \
uninstall-libLTLIBRARIES uninstall-library_includeHEADERS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,5 @@
K 25
svn:wc:ra_dav:version-url
V 38
/svn/libsangoma/!svn/ver/16/trunk/docs
END

View File

@ -0,0 +1,31 @@
8
dir
22
https://www.sangomapbx.com/svn/libsangoma/trunk/docs
https://www.sangomapbx.com/svn/libsangoma
2008-08-18T04:23:57.469320Z
16
ncorbic
svn:special svn:externals svn:needs-lock
8fe45b59-3c47-0410-bdf9-e5d932a076a6
doxygen
dir

View File

@ -0,0 +1 @@
8

View File

@ -0,0 +1,5 @@
K 25
svn:wc:ra_dav:version-url
V 46
/svn/libsangoma/!svn/ver/16/trunk/docs/doxygen
END

View File

@ -0,0 +1,31 @@
8
dir
22
https://www.sangomapbx.com/svn/libsangoma/trunk/docs/doxygen
https://www.sangomapbx.com/svn/libsangoma
2008-08-18T04:23:57.469320Z
16
ncorbic
svn:special svn:externals svn:needs-lock
8fe45b59-3c47-0410-bdf9-e5d932a076a6
html
dir

View File

@ -0,0 +1 @@
8

View File

@ -0,0 +1,239 @@
K 25
svn:wc:ra_dav:version-url
V 51
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html
END
structsangoma__hptdm__span__coll__graph.png
K 25
svn:wc:ra_dav:version-url
V 95
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__span__coll__graph.png
END
tabs.css
K 25
svn:wc:ra_dav:version-url
V 60
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/tabs.css
END
structsangoma__hptdm__span__coll__graph.md5
K 25
svn:wc:ra_dav:version-url
V 95
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__span__coll__graph.md5
END
structsangoma__hptdm__chan__coll__graph.map
K 25
svn:wc:ra_dav:version-url
V 95
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__coll__graph.map
END
graph_legend.html
K 25
svn:wc:ra_dav:version-url
V 69
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/graph_legend.html
END
tab_l.gif
K 25
svn:wc:ra_dav:version-url
V 61
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/tab_l.gif
END
tab_r.gif
K 25
svn:wc:ra_dav:version-url
V 61
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/tab_r.gif
END
structsangoma__hptdm__span__reg-members.html
K 25
svn:wc:ra_dav:version-url
V 96
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__span__reg-members.html
END
libhpsangoma_8c-source.html
K 25
svn:wc:ra_dav:version-url
V 79
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/libhpsangoma_8c-source.html
END
structsangoma__hptdm__span-members.html
K 25
svn:wc:ra_dav:version-url
V 91
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__span-members.html
END
doxygen.png
K 25
svn:wc:ra_dav:version-url
V 63
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/doxygen.png
END
graph_legend.dot
K 25
svn:wc:ra_dav:version-url
V 68
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/graph_legend.dot
END
libhpsangoma_8h-source.html
K 25
svn:wc:ra_dav:version-url
V 79
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/libhpsangoma_8h-source.html
END
structsangoma__hptdm__span__coll__graph.map
K 25
svn:wc:ra_dav:version-url
V 95
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__span__coll__graph.map
END
structhp__tdm__chunk.html
K 25
svn:wc:ra_dav:version-url
V 77
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structhp__tdm__chunk.html
END
functions.html
K 25
svn:wc:ra_dav:version-url
V 66
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/functions.html
END
structsangoma__hptdm__chan__map.html
K 25
svn:wc:ra_dav:version-url
V 88
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__map.html
END
structsangoma__hptdm__chan__reg.html
K 25
svn:wc:ra_dav:version-url
V 88
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__reg.html
END
structsangoma__hptdm__chan.html
K 25
svn:wc:ra_dav:version-url
V 83
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan.html
END
annotated.html
K 25
svn:wc:ra_dav:version-url
V 66
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/annotated.html
END
structsangoma__hptdm__chan__map__coll__graph.png
K 25
svn:wc:ra_dav:version-url
V 100
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__map__coll__graph.png
END
structsangoma__hptdm__chan__map__coll__graph.md5
K 25
svn:wc:ra_dav:version-url
V 100
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__map__coll__graph.md5
END
structsangoma__hptdm__chan__coll__graph.png
K 25
svn:wc:ra_dav:version-url
V 95
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__coll__graph.png
END
structsangoma__hptdm__chan__coll__graph.md5
K 25
svn:wc:ra_dav:version-url
V 95
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__coll__graph.md5
END
libhpsangoma__priv_8c-source.html
K 25
svn:wc:ra_dav:version-url
V 85
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/libhpsangoma__priv_8c-source.html
END
structhp__tdm__chunk-members.html
K 25
svn:wc:ra_dav:version-url
V 85
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structhp__tdm__chunk-members.html
END
graph_legend.png
K 25
svn:wc:ra_dav:version-url
V 68
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/graph_legend.png
END
libhpsangoma__priv_8h-source.html
K 25
svn:wc:ra_dav:version-url
V 85
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/libhpsangoma__priv_8h-source.html
END
structsangoma__hptdm__span__reg.html
K 25
svn:wc:ra_dav:version-url
V 88
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__span__reg.html
END
structsangoma__hptdm__chan__map-members.html
K 25
svn:wc:ra_dav:version-url
V 96
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__map-members.html
END
structsangoma__hptdm__chan__reg-members.html
K 25
svn:wc:ra_dav:version-url
V 96
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__reg-members.html
END
doxygen.css
K 25
svn:wc:ra_dav:version-url
V 63
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/doxygen.css
END
files.html
K 25
svn:wc:ra_dav:version-url
V 62
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/files.html
END
functions_vars.html
K 25
svn:wc:ra_dav:version-url
V 71
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/functions_vars.html
END
structsangoma__hptdm__chan-members.html
K 25
svn:wc:ra_dav:version-url
V 91
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan-members.html
END
structsangoma__hptdm__span.html
K 25
svn:wc:ra_dav:version-url
V 83
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__span.html
END
index.html
K 25
svn:wc:ra_dav:version-url
V 62
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/index.html
END
tab_b.gif
K 25
svn:wc:ra_dav:version-url
V 61
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/tab_b.gif
END
structsangoma__hptdm__chan__map__coll__graph.map
K 25
svn:wc:ra_dav:version-url
V 100
/svn/libsangoma/!svn/ver/15/trunk/docs/doxygen/html/structsangoma__hptdm__chan__map__coll__graph.map
END

View File

@ -0,0 +1,504 @@
8
dir
22
https://www.sangomapbx.com/svn/libsangoma/trunk/docs/doxygen/html
https://www.sangomapbx.com/svn/libsangoma
2008-08-18T04:23:14.087315Z
15
ncorbic
svn:special svn:externals svn:needs-lock
8fe45b59-3c47-0410-bdf9-e5d932a076a6
structsangoma__hptdm__span__coll__graph.png
file
2008-08-18T04:42:47.000000Z
2cbc1427b003c1c0e2068e9b168e501f
2008-08-18T04:23:14.087315Z
15
ncorbic
has-props
tabs.css
file
2008-08-18T04:42:47.000000Z
86ffb0e311553e43db9ee79414d0ba6c
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__span__coll__graph.md5
file
2008-08-18T04:42:47.000000Z
dbc3ded7880b972ce000b3398a01afac
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__chan__coll__graph.map
file
2008-08-18T04:42:47.000000Z
917d8a65704b4bb1d21bb71c54315898
2008-08-18T04:23:14.087315Z
15
ncorbic
graph_legend.html
file
2008-08-18T04:42:47.000000Z
015137c99afc978457ec4c0934fe035f
2008-08-18T04:23:14.087315Z
15
ncorbic
tab_l.gif
file
2008-08-18T04:42:47.000000Z
749f90bcfb2030b4f2c0d274ac3b60ff
2008-08-18T04:23:14.087315Z
15
ncorbic
has-props
tab_r.gif
file
2008-08-18T04:42:47.000000Z
9802233fa0b185ac2242b8dce096cb90
2008-08-18T04:23:14.087315Z
15
ncorbic
has-props
structsangoma__hptdm__span__reg-members.html
file
2008-08-18T04:42:47.000000Z
874c50d984c045d05224d33b769cd4a6
2008-08-18T04:23:14.087315Z
15
ncorbic
libhpsangoma_8c-source.html
file
2008-08-18T04:42:47.000000Z
6b16d4e7aa1ada9fd74e3098f37b96d8
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__span-members.html
file
2008-08-18T04:42:47.000000Z
4a65b9dd6a45e13cd1e18fa4767448bd
2008-08-18T04:23:14.087315Z
15
ncorbic
doxygen.png
file
2008-08-18T04:42:47.000000Z
33f874b8cd0ceafd80ccad649e6e7846
2008-08-18T04:23:14.087315Z
15
ncorbic
has-props
graph_legend.dot
file
2008-08-18T04:42:47.000000Z
2555cc3d29aaacbea4f702c94774d76b
2008-08-18T04:23:14.087315Z
15
ncorbic
libhpsangoma_8h-source.html
file
2008-08-18T04:42:47.000000Z
e674d33c6767bcbab69a1b86f4cf91c2
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__span__coll__graph.map
file
2008-08-18T04:42:47.000000Z
9309d59e29ec60d4c848451eab681d47
2008-08-18T04:23:14.087315Z
15
ncorbic
structhp__tdm__chunk.html
file
2008-08-18T04:42:47.000000Z
6da8f6c1482bd06c98e336e2152e4a30
2008-08-18T04:23:14.087315Z
15
ncorbic
functions.html
file
2008-08-18T04:42:47.000000Z
3ffdd9cc70d2075caf0561d043396f38
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__chan__reg.html
file
2008-08-18T04:42:47.000000Z
32621cba0df66ea92025d460ee0a543c
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__chan__map.html
file
2008-08-18T04:42:47.000000Z
e3f18b71078a7814154925f583e05afe
2008-08-18T04:23:14.087315Z
15
ncorbic
annotated.html
file
2008-08-18T04:42:47.000000Z
311ba25cc656be438a7f404b20e69d42
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__chan.html
file
2008-08-18T04:42:47.000000Z
18c8ce4890829bbf7ea3837d23c0326f
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__chan__map__coll__graph.png
file
2008-08-18T04:42:47.000000Z
fd8f957dc612ae92c353877228b2c709
2008-08-18T04:23:14.087315Z
15
ncorbic
has-props
structsangoma__hptdm__chan__map__coll__graph.md5
file
2008-08-18T04:42:47.000000Z
7894ad9f937a98695d38d669ab59c1e5
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__chan__coll__graph.png
file
2008-08-18T04:42:47.000000Z
1c25352ff33af94586f48ab8319e9d7c
2008-08-18T04:23:14.087315Z
15
ncorbic
has-props
structsangoma__hptdm__chan__coll__graph.md5
file
2008-08-18T04:42:47.000000Z
35b4356b5a362fb524c8fc8ff9f398f9
2008-08-18T04:23:14.087315Z
15
ncorbic
libhpsangoma__priv_8c-source.html
file
2008-08-18T04:42:47.000000Z
04a7d3d9603c1371b0275a2d88574fd7
2008-08-18T04:23:14.087315Z
15
ncorbic
structhp__tdm__chunk-members.html
file
2008-08-18T04:42:47.000000Z
819b5090c097a04679bc8ee1b40161ae
2008-08-18T04:23:14.087315Z
15
ncorbic
graph_legend.png
file
2008-08-18T04:42:47.000000Z
297ad643196daac99daaaa13e0c3a865
2008-08-18T04:23:14.087315Z
15
ncorbic
has-props
libhpsangoma__priv_8h-source.html
file
2008-08-18T04:42:47.000000Z
c32a4cc389c783f0a37ce5d252decfe6
2008-08-18T04:23:14.087315Z
15
ncorbic
doxygen.css
file
2008-08-18T04:42:47.000000Z
702b19635b285e21fa5697bc643b2ba6
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__chan__reg-members.html
file
2008-08-18T04:42:47.000000Z
fa8a002f9e6bd116b9b1877900e88a3b
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__chan__map-members.html
file
2008-08-18T04:42:47.000000Z
5741c57edce21d1b5c6853d39d7191fd
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__span__reg.html
file
2008-08-18T04:42:47.000000Z
8ccc9e680809ac6a56b7c760c98f2731
2008-08-18T04:23:14.087315Z
15
ncorbic
files.html
file
2008-08-18T04:42:47.000000Z
9ea6ab3ed7e2a0d5e0b482440f8f4d08
2008-08-18T04:23:14.087315Z
15
ncorbic
functions_vars.html
file
2008-08-18T04:42:47.000000Z
46f2bdf8f407adda396870e89585f18c
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__chan-members.html
file
2008-08-18T04:42:47.000000Z
3a09a8b7d8a0ec4bf73a3365ba6d65f4
2008-08-18T04:23:14.087315Z
15
ncorbic
structsangoma__hptdm__span.html
file
2008-08-18T04:42:47.000000Z
20d0a11d193ba3994057364cec902c29
2008-08-18T04:23:14.087315Z
15
ncorbic
index.html
file
2008-08-18T04:42:47.000000Z
71a02a48e5bce43237676dc39fb42f50
2008-08-18T04:23:14.087315Z
15
ncorbic
tab_b.gif
file
2008-08-18T04:42:47.000000Z
a22ef28753006f7a725a9099ade93548
2008-08-18T04:23:14.087315Z
15
ncorbic
has-props
structsangoma__hptdm__chan__map__coll__graph.map
file
2008-08-18T04:42:47.000000Z
3cd01b906611687a6a71ae7efa1f288e
2008-08-18T04:23:14.087315Z
15
ncorbic

View File

@ -0,0 +1 @@
8

View File

@ -0,0 +1,5 @@
K 13
svn:mime-type
V 24
application/octet-stream
END

View File

@ -0,0 +1,5 @@
K 13
svn:mime-type
V 24
application/octet-stream
END

View File

@ -0,0 +1,5 @@
K 13
svn:mime-type
V 24
application/octet-stream
END

View File

@ -0,0 +1,5 @@
K 13
svn:mime-type
V 24
application/octet-stream
END

View File

@ -0,0 +1,5 @@
K 13
svn:mime-type
V 24
application/octet-stream
END

View File

@ -0,0 +1,5 @@
K 13
svn:mime-type
V 24
application/octet-stream
END

View File

@ -0,0 +1,5 @@
K 13
svn:mime-type
V 24
application/octet-stream
END

View File

@ -0,0 +1,31 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Class List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>libhpsangoma Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="structhp__tdm__chunk.html">hp_tdm_chunk</a></td><td class="indexvalue">A chunk structure used to implement a chunk buffer </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td class="indexvalue">Channel structure, describes a single timeslot/channel in a span </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map</a></td><td class="indexvalue">Structure describing a array index of a channel inside the span structure </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg</a></td><td class="indexvalue">Chan registration structure </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td class="indexvalue">Span structure. Structure describing a single span </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg</a></td><td class="indexvalue">Span registration structure </td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,358 @@
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
font-family: Geneva, Arial, Helvetica, sans-serif;
}
BODY,TD {
font-size: 90%;
}
H1 {
text-align: center;
font-size: 160%;
}
H2 {
font-size: 120%;
}
H3 {
font-size: 100%;
}
CAPTION { font-weight: bold }
DIV.qindex {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.nav {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.navtab {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
TD.navtab {
font-size: 70%;
}
A.qindex {
text-decoration: none;
font-weight: bold;
color: #1A419D;
}
A.qindex:visited {
text-decoration: none;
font-weight: bold;
color: #1A419D
}
A.qindex:hover {
text-decoration: none;
background-color: #ddddff;
}
A.qindexHL {
text-decoration: none;
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
A.qindexHL:hover {
text-decoration: none;
background-color: #6666cc;
color: #ffffff;
}
A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
A.el { text-decoration: none; font-weight: bold }
A.elRef { font-weight: bold }
A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
A.codeRef:link { font-weight: normal; color: #0000FF}
A.codeRef:visited { font-weight: normal; color: #0000FF}
A:hover { text-decoration: none; background-color: #f2f2ff }
DL.el { margin-left: -1cm }
.fragment {
font-family: monospace, fixed;
font-size: 95%;
}
PRE.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
margin-top: 4px;
margin-bottom: 4px;
margin-left: 2px;
margin-right: 8px;
padding-left: 6px;
padding-right: 6px;
padding-top: 4px;
padding-bottom: 4px;
}
DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
DIV.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
BODY {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
TD.indexkey {
background-color: #e8eef2;
font-weight: bold;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TD.indexvalue {
background-color: #e8eef2;
font-style: italic;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TR.memlist {
background-color: #f0f0f0;
}
P.formulaDsp { text-align: center; }
IMG.formulaDsp { }
IMG.formulaInl { vertical-align: middle; }
SPAN.keyword { color: #008000 }
SPAN.keywordtype { color: #604020 }
SPAN.keywordflow { color: #e08000 }
SPAN.comment { color: #800000 }
SPAN.preprocessor { color: #806020 }
SPAN.stringliteral { color: #002080 }
SPAN.charliteral { color: #008080 }
.mdescLeft {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.mdescRight {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.memItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplParams {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
color: #606060;
background-color: #FAFAFA;
font-size: 80%;
}
.search { color: #003399;
font-weight: bold;
}
FORM.search {
margin-bottom: 0px;
margin-top: 0px;
}
INPUT.search { font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
TD.tiny { font-size: 75%;
}
a {
color: #1A41A8;
}
a:visited {
color: #2A3798;
}
.dirtab { padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
TH.dirtab { background: #e8eef2;
font-weight: bold;
}
HR { height: 1px;
border: none;
border-top: 1px solid black;
}
/* Style for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 4px;
background-color: #eef3f5;
border-width: 1px;
border-style: solid;
border-color: #dedeee;
-moz-border-radius: 8px 8px 8px 8px;
}
.memname {
white-space: nowrap;
font-weight: bold;
}
.memdoc{
padding-left: 10px;
}
.memproto {
background-color: #d5e1e8;
width: 100%;
border-width: 1px;
border-style: solid;
border-color: #84b0c7;
font-weight: bold;
-moz-border-radius: 8px 8px 8px 8px;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
font-style: italic;
}
/* End Styling for detailed member documentation */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin:0.5em;
}
.directory { font-size: 9pt; font-weight: bold; }
.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
.directory > h3 { margin-top: 0; }
.directory p { margin: 0px; white-space: nowrap; }
.directory div { display: none; margin: 0px; }
.directory img { vertical-align: -30%; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: File Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>libhpsangoma File List</h1>Here is a list of all documented files with brief descriptions:<table>
<tr><td class="indexkey"><b>libhpsangoma.c</b> <a href="libhpsangoma_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>libhpsangoma.h</b> <a href="libhpsangoma_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>libhpsangoma_priv.c</b> <a href="libhpsangoma__priv_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>libhpsangoma_priv.h</b> <a href="libhpsangoma__priv_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,120 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
<p>
Here is a list of all documented class members with links to the class documentation for each member:
<p>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>chan
: <a class="el" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">sangoma_hptdm_chan_map</a><li>chan_idx
: <a class="el" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">sangoma_hptdm_span</a><li>chan_no
: <a class="el" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">sangoma_hptdm_chan</a><li>chan_no_hw
: <a class="el" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">sangoma_hptdm_chan_map</a><li>chan_reg
: <a class="el" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">sangoma_hptdm_chan</a><li>chunk_sz
: <a class="el" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">sangoma_hptdm_span</a><li>close_chan
: <a class="el" href="structsangoma__hptdm__span.html#04ab1744bee8d7333303e8da52c46b74">sangoma_hptdm_span</a><li>close_span
: <a class="el" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>data
: <a class="el" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">hp_tdm_chunk</a></ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>event_ctrl
: <a class="el" href="structsangoma__hptdm__span.html#c40f099ec1797a9188596912cd9bc545">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
<li>get_cfg
: <a class="el" href="structsangoma__hptdm__span.html#96b3b3ada170989b083646b3f8e4004b">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
<li>hwcoding
: <a class="el" href="structsangoma__hptdm__span.html#fb940d35a9dc0a91871be3100c0a90f5">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>idle
: <a class="el" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">sangoma_hptdm_span</a><li>if_name
: <a class="el" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">sangoma_hptdm_span</a><li>init
: <a class="el" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">sangoma_hptdm_chan</a>, <a class="el" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">hp_tdm_chunk</a><li>is_chan_closed
: <a class="el" href="structsangoma__hptdm__span.html#3a41fea372d8c4c8318f842134b93b3e">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>len
: <a class="el" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">hp_tdm_chunk</a><li>log
: <a class="el" href="structsangoma__hptdm__span__reg.html#7bf92eb6462caa381461bd9816b6a913">sangoma_hptdm_span_reg</a></ul>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
<li>max_chans
: <a class="el" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
<li>offset
: <a class="el" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">hp_tdm_chunk</a><li>open_chan
: <a class="el" href="structsangoma__hptdm__span.html#01c3eefc1ed1e4482093deba3d167806">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>p
: <a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">sangoma_hptdm_chan_reg</a>, <a class="el" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">sangoma_hptdm_span_reg</a><li>push
: <a class="el" href="structsangoma__hptdm__chan.html#40fbdc65035c69d876d4a1a806e5a5db">sangoma_hptdm_chan</a></ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>run_span
: <a class="el" href="structsangoma__hptdm__span.html#df409d25fbe30c631146616298d715b8">sangoma_hptdm_span</a><li>rx_chunk
: <a class="el" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">sangoma_hptdm_chan</a><li>rx_data
: <a class="el" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">sangoma_hptdm_chan_reg</a><li>rx_event
: <a class="el" href="structsangoma__hptdm__chan__reg.html#5e46cef596c1d6db9e3d92294527312f">sangoma_hptdm_chan_reg</a>, <a class="el" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">sangoma_hptdm_span_reg</a><li>rx_len
: <a class="el" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>sock
: <a class="el" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sangoma_hptdm_span</a><li>span
: <a class="el" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">sangoma_hptdm_chan</a><li>span_cfg
: <a class="el" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">sangoma_hptdm_span</a><li>span_no
: <a class="el" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">sangoma_hptdm_chan</a><li>span_reg
: <a class="el" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>timeslot_cfg
: <a class="el" href="structsangoma__hptdm__span.html#ee171f9edaddbe0c76c56c151d0ca18e">sangoma_hptdm_span</a><li>tx_data
: <a class="el" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">sangoma_hptdm_span</a><li>tx_idx
: <a class="el" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">sangoma_hptdm_chan</a><li>tx_idx_in
: <a class="el" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">sangoma_hptdm_chan</a><li>tx_idx_out
: <a class="el" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">sangoma_hptdm_chan</a><li>tx_len
: <a class="el" href="structsangoma__hptdm__span.html#70ddcf83aeb3c5f7a4792fa50042bf42">sangoma_hptdm_span</a><li>tx_size
: <a class="el" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
<li>wan_udp
: <a class="el" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">sangoma_hptdm_span</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,120 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Class Members - Variables</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li id="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
<p>
&nbsp;
<p>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>chan
: <a class="el" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">sangoma_hptdm_chan_map</a><li>chan_idx
: <a class="el" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">sangoma_hptdm_span</a><li>chan_no
: <a class="el" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">sangoma_hptdm_chan</a><li>chan_no_hw
: <a class="el" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">sangoma_hptdm_chan_map</a><li>chan_reg
: <a class="el" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">sangoma_hptdm_chan</a><li>chunk_sz
: <a class="el" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">sangoma_hptdm_span</a><li>close_chan
: <a class="el" href="structsangoma__hptdm__span.html#04ab1744bee8d7333303e8da52c46b74">sangoma_hptdm_span</a><li>close_span
: <a class="el" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>data
: <a class="el" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">hp_tdm_chunk</a></ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>event_ctrl
: <a class="el" href="structsangoma__hptdm__span.html#c40f099ec1797a9188596912cd9bc545">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
<li>get_cfg
: <a class="el" href="structsangoma__hptdm__span.html#96b3b3ada170989b083646b3f8e4004b">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
<li>hwcoding
: <a class="el" href="structsangoma__hptdm__span.html#fb940d35a9dc0a91871be3100c0a90f5">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>idle
: <a class="el" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">sangoma_hptdm_span</a><li>if_name
: <a class="el" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">sangoma_hptdm_span</a><li>init
: <a class="el" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">sangoma_hptdm_chan</a>, <a class="el" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">hp_tdm_chunk</a><li>is_chan_closed
: <a class="el" href="structsangoma__hptdm__span.html#3a41fea372d8c4c8318f842134b93b3e">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>len
: <a class="el" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">hp_tdm_chunk</a><li>log
: <a class="el" href="structsangoma__hptdm__span__reg.html#7bf92eb6462caa381461bd9816b6a913">sangoma_hptdm_span_reg</a></ul>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
<li>max_chans
: <a class="el" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
<li>offset
: <a class="el" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">hp_tdm_chunk</a><li>open_chan
: <a class="el" href="structsangoma__hptdm__span.html#01c3eefc1ed1e4482093deba3d167806">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>p
: <a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">sangoma_hptdm_chan_reg</a>, <a class="el" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">sangoma_hptdm_span_reg</a><li>push
: <a class="el" href="structsangoma__hptdm__chan.html#40fbdc65035c69d876d4a1a806e5a5db">sangoma_hptdm_chan</a></ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>run_span
: <a class="el" href="structsangoma__hptdm__span.html#df409d25fbe30c631146616298d715b8">sangoma_hptdm_span</a><li>rx_chunk
: <a class="el" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">sangoma_hptdm_chan</a><li>rx_data
: <a class="el" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">sangoma_hptdm_chan_reg</a><li>rx_event
: <a class="el" href="structsangoma__hptdm__chan__reg.html#5e46cef596c1d6db9e3d92294527312f">sangoma_hptdm_chan_reg</a>, <a class="el" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">sangoma_hptdm_span_reg</a><li>rx_len
: <a class="el" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>sock
: <a class="el" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sangoma_hptdm_span</a><li>span
: <a class="el" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">sangoma_hptdm_chan</a><li>span_cfg
: <a class="el" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">sangoma_hptdm_span</a><li>span_no
: <a class="el" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">sangoma_hptdm_chan</a><li>span_reg
: <a class="el" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>timeslot_cfg
: <a class="el" href="structsangoma__hptdm__span.html#ee171f9edaddbe0c76c56c151d0ca18e">sangoma_hptdm_span</a><li>tx_data
: <a class="el" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">sangoma_hptdm_span</a><li>tx_idx
: <a class="el" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">sangoma_hptdm_chan</a><li>tx_idx_in
: <a class="el" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">sangoma_hptdm_chan</a><li>tx_idx_out
: <a class="el" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">sangoma_hptdm_chan</a><li>tx_len
: <a class="el" href="structsangoma__hptdm__span.html#70ddcf83aeb3c5f7a4792fa50042bf42">sangoma_hptdm_span</a><li>tx_size
: <a class="el" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
<li>wan_udp
: <a class="el" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">sangoma_hptdm_span</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,22 @@
digraph G
{
edge [fontname="FreeSans.ttf",fontsize=10,labelfontname="FreeSans.ttf",labelfontsize=10];
node [fontname="FreeSans.ttf",fontsize=10,shape=record];
Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",fillcolor="grey75",style="filled" fontcolor="black"];
Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPublicBase.html"];
Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="red",URL="$classTruncated.html"];
Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classProtectedBase.html"];
Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPrivateBase.html"];
Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="grey75"];
Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"];
Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="FreeSans.ttf"];
Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"];
Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="FreeSans.ttf"];
Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classUsed.html"];
}

View File

@ -0,0 +1,80 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Graph Legend</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>Graph Legend</h1>This page explains how to interpret the graphs that are generated by doxygen.<p>
Consider the following example: <div class="fragment"><pre class="fragment"><span class="comment">/*! Invisible class because of truncation */</span>
<span class="keyword">class </span>Invisible { };
<span class="comment"></span>
<span class="comment">/*! Truncated class, inheritance relation is hidden */</span>
<span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };
<span class="comment">/* Class not documented with doxygen comments */</span>
<span class="keyword">class </span>Undocumented { };
<span class="comment"></span>
<span class="comment">/*! Class that is inherited using public inheritance */</span>
<span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };
<span class="comment"></span>
<span class="comment">/*! A template class */</span>
<span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };
<span class="comment"></span>
<span class="comment">/*! Class that is inherited using protected inheritance */</span>
<span class="keyword">class </span>ProtectedBase { };
<span class="comment"></span>
<span class="comment">/*! Class that is inherited using private inheritance */</span>
<span class="keyword">class </span>PrivateBase { };
<span class="comment"></span>
<span class="comment">/*! Class that is used by the Inherited class */</span>
<span class="keyword">class </span>Used { };
<span class="comment"></span>
<span class="comment">/*! Super class that inherits a number of other classes */</span>
<span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,
<span class="keyword">protected</span> ProtectedBase,
<span class="keyword">private</span> PrivateBase,
<span class="keyword">public</span> Undocumented
<span class="keyword">public</span> Templ&lt;int&gt;
{
<span class="keyword">private</span>:
Used *m_usedClass;
};
</pre></div> If the <code>MAX_DOT_GRAPH_HEIGHT</code> tag in the configuration file is set to 240 this will result in the following graph:<p>
<center><div align="center">
<img src="graph_legend.png" alt="graph_legend.png">
</div>
</center> <p>
The boxes in the above graph have the following meaning: <ul>
<li>
A filled black box represents the struct or class for which the graph is generated. </li>
<li>
A box with a black border denotes a documented struct or class. </li>
<li>
A box with a grey border denotes an undocumented struct or class. </li>
<li>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
The arrows have the following meaning: <ul>
<li>
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
<li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
</ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Main Page</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li id="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>libhpsangoma Documentation</h1>
<p>
<h3 align="center">1 </h3><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,412 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: libhpsangoma.c Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>libhpsangoma.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*****************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment"> * libhpsangoma.c: Sangoma High Performance TDM API - Span Based Library</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Author(s): Nenad Corbic &lt;ncorbic@sangoma.com&gt;</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * Copyright: (c) 2008 Nenad Corbic &lt;ncorbic@sangoma.com&gt;</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * This program is free software; you can redistribute it and/or</span>
<a name="l00009"></a>00009 <span class="comment"> * modify it under the terms of the GNU General Public License</span>
<a name="l00010"></a>00010 <span class="comment"> * as published by the Free Software Foundation; either version</span>
<a name="l00011"></a>00011 <span class="comment"> * 2 of the License, or (at your option) any later version.</span>
<a name="l00012"></a>00012 <span class="comment"> * ============================================================================</span>
<a name="l00013"></a>00013 <span class="comment"> *</span>
<a name="l00014"></a>00014 <span class="comment"> */</span>
<a name="l00015"></a>00015
<a name="l00016"></a>00016 <span class="preprocessor">#include "libhpsangoma.h"</span>
<a name="l00017"></a>00017 <span class="preprocessor">#include "libhpsangoma_priv.h"</span>
<a name="l00018"></a>00018
<a name="l00019"></a>00019 <span class="comment">/*---------------------------------------------------------</span>
<a name="l00020"></a>00020 <span class="comment"> PRIVATE STRUCTURES</span>
<a name="l00021"></a>00021 <span class="comment"> ----------------------------------------------------------*/</span>
<a name="l00022"></a>00022
<a name="l00023"></a>00023 void (*lib_log)(<span class="keywordtype">int</span> level, FILE *fp, <span class="keywordtype">char</span> *file, <span class="keyword">const</span> <span class="keywordtype">char</span> *func, <span class="keywordtype">int</span> line, <span class="keywordtype">char</span> *fmt, ...)=NULL;
<a name="l00024"></a>00024
<a name="l00025"></a>00025
<a name="l00034"></a>00034 <span class="keyword">static</span> <span class="keywordtype">int</span> sangoma_hp_tdm_chan_push(<span class="keyword">struct</span> <a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a> *chan, <span class="keywordtype">char</span> *data, <span class="keywordtype">int</span> len)
<a name="l00035"></a>00035 {
<a name="l00036"></a>00036 <a class="code" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a> *tx_chunk;
<a name="l00037"></a>00037 <span class="keywordtype">int</span> free_slots;
<a name="l00038"></a>00038
<a name="l00039"></a>00039 <span class="keywordflow">if</span> (!chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>) {
<a name="l00040"></a>00040 <span class="keywordflow">return</span> -2;
<a name="l00041"></a>00041 }
<a name="l00042"></a>00042
<a name="l00043"></a>00043 <span class="keywordflow">if</span> (len &gt;= SMG_HP_MAX_CHAN_DATA) {
<a name="l00044"></a>00044 <span class="comment">/* Data Too Big */</span>
<a name="l00045"></a>00045 lib_printf(0,NULL,<span class="stringliteral">"chan_push c%i tx chunk len %i too big\n"</span>,
<a name="l00046"></a>00046 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>,len);
<a name="l00047"></a>00047 <span class="keywordflow">return</span> -1;
<a name="l00048"></a>00048 }
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <span class="comment">/* Lock */</span>
<a name="l00051"></a>00051 <span class="keywordflow">if</span> (chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a> &gt;= chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>) {
<a name="l00052"></a>00052 free_slots=SMG_HP_TDM_CHUNK_IDX_SZ-(chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>-chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>);
<a name="l00053"></a>00053 } <span class="keywordflow">else</span> {
<a name="l00054"></a>00054 free_slots=chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>-chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>;
<a name="l00055"></a>00055 }
<a name="l00056"></a>00056 <span class="comment">/* Un Lock */</span>
<a name="l00057"></a>00057
<a name="l00058"></a>00058 <span class="keywordflow">if</span> (!free_slots) {
<a name="l00059"></a>00059 <span class="comment">/* We have just overruned the tx buffer */</span>
<a name="l00060"></a>00060 lib_printf(0,NULL,<span class="stringliteral">"chan_push c%i failed no free slots in %i out %i\n"</span>,
<a name="l00061"></a>00061 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a>+1, chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>);
<a name="l00062"></a>00062 <span class="keywordflow">return</span> 1;
<a name="l00063"></a>00063 }
<a name="l00064"></a>00064
<a name="l00065"></a>00065 tx_chunk = &amp;chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">tx_idx</a>[chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>];
<a name="l00066"></a>00066 <span class="keywordflow">if</span> (tx_chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">init</a>) {
<a name="l00067"></a>00067 <span class="comment">/* This should NEVER happen the chunk should be free */</span>
<a name="l00068"></a>00068 lib_printf(15,NULL,<span class="stringliteral">"chan_push s%ic%i tx chunk overrun in %i \n"</span>,
<a name="l00069"></a>00069 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>);
<a name="l00070"></a>00070 <span class="keywordflow">return</span> 1;
<a name="l00071"></a>00071 }
<a name="l00072"></a>00072
<a name="l00073"></a>00073 memset(tx_chunk,0,<span class="keyword">sizeof</span>(<a class="code" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a>));
<a name="l00074"></a>00074 memcpy(&amp;tx_chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">data</a>,data,len);
<a name="l00075"></a>00075 tx_chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">len</a>=len;
<a name="l00076"></a>00076 tx_chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">init</a>=1;
<a name="l00077"></a>00077
<a name="l00078"></a>00078 lib_printf(15,NULL,<span class="stringliteral">"chan_push s%ic%i tx chunk in %i \n"</span>,
<a name="l00079"></a>00079 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>);
<a name="l00080"></a>00080
<a name="l00081"></a>00081 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>++;
<a name="l00082"></a>00082 <span class="keywordflow">if</span> (chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a> &gt;= SMG_HP_TDM_CHUNK_IDX_SZ) {
<a name="l00083"></a>00083 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>=0;
<a name="l00084"></a>00084 }
<a name="l00085"></a>00085
<a name="l00086"></a>00086 <span class="keywordflow">return</span> 0;
<a name="l00087"></a>00087 }
<a name="l00088"></a>00088
<a name="l00089"></a>00089 <span class="comment">/*-------------------------------------------------</span>
<a name="l00090"></a>00090 <span class="comment"> Internal Span Methods</span>
<a name="l00091"></a>00091 <span class="comment"> -------------------------------------------------*/</span>
<a name="l00092"></a>00092
<a name="l00093"></a>00093
<a name="l00103"></a>00103 <span class="keyword">static</span> <span class="keywordtype">int</span> sangoma_hp_tdm_open_chan(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span,
<a name="l00104"></a>00104 <a class="code" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg_t</a> *cfg,
<a name="l00105"></a>00105 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chan_no,
<a name="l00106"></a>00106 <a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> **chan_ptr)
<a name="l00107"></a>00107 {
<a name="l00108"></a>00108 <a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan;
<a name="l00109"></a>00109
<a name="l00110"></a>00110 <span class="keywordflow">if</span> (!span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">init</a>) {
<a name="l00111"></a>00111 <span class="keywordflow">return</span> -1;
<a name="l00112"></a>00112 }
<a name="l00113"></a>00113
<a name="l00114"></a>00114 <span class="keywordflow">if</span> (chan_no &gt;= SMG_HP_TDM_MAX_CHANS) {
<a name="l00115"></a>00115 lib_printf(0,NULL,<span class="stringliteral">"open_chan failed chan_no %i &gt;= max chans %i\n"</span>,
<a name="l00116"></a>00116 chan_no, SMG_HP_TDM_MAX_CHANS);
<a name="l00117"></a>00117 <span class="keywordflow">return</span> -1;
<a name="l00118"></a>00118 }
<a name="l00119"></a>00119
<a name="l00120"></a>00120 <span class="keywordflow">if</span> (!cfg-&gt;<a class="code" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">rx_data</a> || !cfg-&gt;<a class="code" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>) {
<a name="l00121"></a>00121 <span class="keywordflow">return</span> -1;
<a name="l00122"></a>00122 }
<a name="l00123"></a>00123
<a name="l00124"></a>00124 <span class="keywordflow">if</span> (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[chan_no].<a class="code" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">chan_no_hw</a> &lt; 0) {
<a name="l00125"></a>00125 lib_printf(0,NULL,<span class="stringliteral">"open_chan failed chan_no s%ic%i is not mapped to hardware\n"</span>,
<a name="l00126"></a>00126 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1,chan_no+1);
<a name="l00127"></a>00127 <span class="keywordflow">return</span> -1;
<a name="l00128"></a>00128 }
<a name="l00129"></a>00129
<a name="l00130"></a>00130 chan = &amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[chan_no].<a class="code" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">chan</a>;
<a name="l00131"></a>00131 <span class="keywordflow">if</span> (chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>) {
<a name="l00132"></a>00132 <span class="comment">/* Chan Busy */</span>
<a name="l00133"></a>00133 lib_printf(0,NULL,<span class="stringliteral">"open_chan failed chan_no s%ic%i is busy\n"</span>,
<a name="l00134"></a>00134 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1,chan_no+1);
<a name="l00135"></a>00135 <span class="keywordflow">return</span> 1;
<a name="l00136"></a>00136 }
<a name="l00137"></a>00137
<a name="l00138"></a>00138 memset(chan,0,<span class="keyword">sizeof</span>(<a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a>));
<a name="l00139"></a>00139
<a name="l00140"></a>00140 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a> = chan_no;
<a name="l00141"></a>00141 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">span</a> = span;
<a name="l00142"></a>00142 memcpy(&amp;chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a>, cfg, <span class="keyword">sizeof</span>(<a class="code" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg_t</a>));
<a name="l00143"></a>00143
<a name="l00144"></a>00144 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#40fbdc65035c69d876d4a1a806e5a5db">push</a> = sangoma_hp_tdm_chan_push;
<a name="l00145"></a>00145
<a name="l00146"></a>00146 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>=1;
<a name="l00147"></a>00147 lib_printf(15,NULL,<span class="stringliteral">"open_chan chan_no s%ic%i ok\n"</span>,
<a name="l00148"></a>00148 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1,chan_no+1);
<a name="l00149"></a>00149
<a name="l00150"></a>00150 *chan_ptr = chan;
<a name="l00151"></a>00151
<a name="l00152"></a>00152 <span class="keywordflow">return</span> 0;
<a name="l00153"></a>00153
<a name="l00154"></a>00154 }
<a name="l00155"></a>00155
<a name="l00156"></a>00156
<a name="l00163"></a>00163 <span class="keyword">static</span> <span class="keywordtype">int</span> sangoma_hp_tdm_close_chan(<a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan)
<a name="l00164"></a>00164 {
<a name="l00165"></a>00165 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>=0;
<a name="l00166"></a>00166 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a>.<a class="code" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>=NULL;
<a name="l00167"></a>00167 lib_printf(15,NULL,<span class="stringliteral">"close_chan chan_no s%ic%i ok\n"</span>,
<a name="l00168"></a>00168 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a>+1);
<a name="l00169"></a>00169 <span class="keywordflow">return</span> 0;
<a name="l00170"></a>00170 }
<a name="l00171"></a>00171
<a name="l00172"></a>00172
<a name="l00178"></a>00178 <span class="keyword">static</span> <span class="keywordtype">int</span> sangoma_hp_tdm_is_chan_closed (<a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan)
<a name="l00179"></a>00179 {
<a name="l00180"></a>00180 <span class="keywordflow">return</span> (chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a> == 0) ? 1:0;
<a name="l00181"></a>00181 }
<a name="l00182"></a>00182
<a name="l00188"></a>00188 <span class="keyword">static</span> <span class="keywordtype">int</span> sangoma_hp_tdm_close_span(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00189"></a>00189 {
<a name="l00190"></a>00190 <span class="keywordtype">int</span> i;
<a name="l00191"></a>00191 <a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan=NULL;
<a name="l00192"></a>00192
<a name="l00193"></a>00193 <span class="keywordflow">for</span> (i=0;i&lt;SMG_HP_TDM_MAX_CHANS;i++) {
<a name="l00194"></a>00194 chan = &amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[i].<a class="code" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">chan</a>;
<a name="l00195"></a>00195 if (chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>) {
<a name="l00196"></a>00196 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>=0;
<a name="l00197"></a>00197 }
<a name="l00198"></a>00198 }
<a name="l00199"></a>00199
<a name="l00200"></a>00200 close(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>);
<a name="l00201"></a>00201 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>=-1;
<a name="l00202"></a>00202
<a name="l00203"></a>00203 <span class="keywordflow">return</span> 0;
<a name="l00204"></a>00204 }
<a name="l00205"></a>00205
<a name="l00211"></a>00211 <span class="keyword">static</span> <span class="keywordtype">int</span> sangoma_hp_tdm_event_ctrl_span(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span, hp_tdmapi_tx_event_t *event)
<a name="l00212"></a>00212 {
<a name="l00213"></a>00213 <span class="keywordtype">int</span> err;
<a name="l00214"></a>00214
<a name="l00215"></a>00215 <span class="keywordflow">if</span> (!span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">init</a> || span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a> &lt; 0) {
<a name="l00216"></a>00216 <span class="keywordflow">return</span> -1;
<a name="l00217"></a>00217 }
<a name="l00218"></a>00218
<a name="l00219"></a>00219 err = ioctl(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>,SIOC_WANPIPE_API,event);
<a name="l00220"></a>00220 <span class="keywordflow">if</span> (err &lt; 0){
<a name="l00221"></a>00221 lib_printf(0,NULL,<span class="stringliteral">"Error: SPAN %i Failed to execute event!\n"</span>,
<a name="l00222"></a>00222 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1);
<a name="l00223"></a>00223 <span class="keywordflow">return</span> -1;
<a name="l00224"></a>00224 }
<a name="l00225"></a>00225
<a name="l00226"></a>00226 <span class="keywordflow">return</span> 0;
<a name="l00227"></a>00227 }
<a name="l00228"></a>00228
<a name="l00234"></a>00234 <span class="keyword">static</span> <span class="keywordtype">int</span> sangoma_hp_tdm_event_get_cfg(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span, wan_if_cfg_t *if_cfg)
<a name="l00235"></a>00235 {
<a name="l00236"></a>00236 memcpy(if_cfg,&amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>,<span class="keyword">sizeof</span>(if_cfg));
<a name="l00237"></a>00237 <span class="keywordflow">return</span> 0;
<a name="l00238"></a>00238 }
<a name="l00239"></a>00239
<a name="l00245"></a>00245 <span class="keyword">static</span> <span class="keywordtype">int</span> sangoma_hp_tdm_run_span(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00246"></a>00246 {
<a name="l00247"></a>00247 <span class="keywordtype">int</span> err=0;
<a name="l00248"></a>00248 fd_set sock_read,sock_write,sock_oob;
<a name="l00249"></a>00249
<a name="l00250"></a>00250 <span class="keywordflow">if</span> (!span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">init</a>) {
<a name="l00251"></a>00251 lib_printf(0, NULL, <span class="stringliteral">"Span %i not initialized %i\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1);
<a name="l00252"></a>00252 <span class="keywordflow">return</span> -1;
<a name="l00253"></a>00253 }
<a name="l00254"></a>00254
<a name="l00255"></a>00255 lib_printf(15, NULL, <span class="stringliteral">"Starting RUN SPAN %i Sock=%i\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1, span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>);
<a name="l00256"></a>00256
<a name="l00257"></a>00257 <span class="keywordflow">if</span> (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a> &lt; 0) {
<a name="l00258"></a>00258 err=sangoma_hptdm_span_open(span);
<a name="l00259"></a>00259 <span class="keywordflow">if</span> (err) {
<a name="l00260"></a>00260 usleep(500000);
<a name="l00261"></a>00261 err=-2;
<a name="l00262"></a>00262 <span class="keywordflow">goto</span> sangoma_hp_tdm_run_span_exit;
<a name="l00263"></a>00263 }
<a name="l00264"></a>00264 }
<a name="l00265"></a>00265
<a name="l00266"></a>00266 <span class="comment">/* Initialize all select() descriptors */</span>
<a name="l00267"></a>00267 FD_ZERO(&amp;sock_read);
<a name="l00268"></a>00268 FD_ZERO(&amp;sock_write);
<a name="l00269"></a>00269 FD_ZERO(&amp;sock_oob);
<a name="l00270"></a>00270
<a name="l00271"></a>00271 FD_SET(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>,&amp;sock_oob);
<a name="l00272"></a>00272 FD_SET(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>,&amp;sock_read);
<a name="l00273"></a>00273 FD_SET(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>,&amp;sock_write);
<a name="l00274"></a>00274
<a name="l00275"></a>00275 err=select(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a> + 1,&amp;sock_read, NULL, &amp;sock_oob, NULL);
<a name="l00276"></a>00276
<a name="l00277"></a>00277 <span class="keywordflow">if</span> (err &gt; 0) {
<a name="l00278"></a>00278
<a name="l00279"></a>00279 <span class="keywordflow">if</span> (FD_ISSET(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>,&amp;sock_oob)){
<a name="l00280"></a>00280 err=sangoma_hp_tdm_handle_oob_event(span);
<a name="l00281"></a>00281 <span class="keywordflow">if</span> (err) {
<a name="l00282"></a>00282 lib_printf(0, NULL, <span class="stringliteral">"RUN SPAN: %i oob err %i\n"</span>,
<a name="l00283"></a>00283 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1, err);
<a name="l00284"></a>00284 err=-3;
<a name="l00285"></a>00285 <span class="keywordflow">goto</span> sangoma_hp_tdm_run_span_exit;
<a name="l00286"></a>00286 }
<a name="l00287"></a>00287 }
<a name="l00288"></a>00288 <span class="keywordflow">if</span> (FD_ISSET(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>,&amp;sock_read)){
<a name="l00289"></a>00289 err=sangoma_hp_tdm_handle_read_event(span);
<a name="l00290"></a>00290 <span class="keywordflow">if</span> (err) {
<a name="l00291"></a>00291 lib_printf(0, NULL, <span class="stringliteral">"RUN SPAN: %i read err %i\n"</span>,
<a name="l00292"></a>00292 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1, err);
<a name="l00293"></a>00293 err=-4;
<a name="l00294"></a>00294 <span class="keywordflow">goto</span> sangoma_hp_tdm_run_span_exit;
<a name="l00295"></a>00295 }
<a name="l00296"></a>00296
<a name="l00297"></a>00297 err=sangoma_hp_tdm_handle_write_event(span);
<a name="l00298"></a>00298 <span class="keywordflow">if</span> (err) {
<a name="l00299"></a>00299 lib_printf(0, NULL, <span class="stringliteral">"RUN SPAN: %i write err %i\n"</span>,
<a name="l00300"></a>00300 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1, err);
<a name="l00301"></a>00301 err=-5;
<a name="l00302"></a>00302 <span class="keywordflow">goto</span> sangoma_hp_tdm_run_span_exit;
<a name="l00303"></a>00303 }
<a name="l00304"></a>00304 }
<a name="l00305"></a>00305
<a name="l00306"></a>00306 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (err==0) {
<a name="l00307"></a>00307 <span class="comment">/* Timeout continue */</span>
<a name="l00308"></a>00308 <span class="keywordflow">return</span> 0;
<a name="l00309"></a>00309
<a name="l00310"></a>00310 } <span class="keywordflow">else</span> {
<a name="l00311"></a>00311 <span class="comment">/* Error */</span>
<a name="l00312"></a>00312 <span class="keywordflow">if</span> (errno == EAGAIN) {
<a name="l00313"></a>00313 <span class="keywordflow">goto</span> sangoma_hp_tdm_run_span_exit;
<a name="l00314"></a>00314 }
<a name="l00315"></a>00315
<a name="l00316"></a>00316 err=-6;
<a name="l00317"></a>00317 }
<a name="l00318"></a>00318
<a name="l00319"></a>00319 sangoma_hp_tdm_run_span_exit:
<a name="l00320"></a>00320
<a name="l00321"></a>00321 <span class="keywordflow">if</span> (err &lt; 0) {
<a name="l00322"></a>00322 <span class="keywordflow">if</span> (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>) {
<a name="l00323"></a>00323 close(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>);
<a name="l00324"></a>00324 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>=-1;
<a name="l00325"></a>00325 }
<a name="l00326"></a>00326 }
<a name="l00327"></a>00327
<a name="l00328"></a>00328 <span class="keywordflow">return</span> err;
<a name="l00329"></a>00329 }
<a name="l00330"></a>00330
<a name="l00331"></a>00331
<a name="l00332"></a>00332
<a name="l00333"></a>00333 <span class="comment">/*---------------------------------------------------------</span>
<a name="l00334"></a>00334 <span class="comment"> PUBLIC STRUCTURES</span>
<a name="l00335"></a>00335 <span class="comment"> ----------------------------------------------------------*/</span>
<a name="l00336"></a>00336
<a name="l00337"></a>00337
<a name="l00338"></a>00338 <span class="comment">/*</span>
<a name="l00339"></a>00339 <span class="comment"> \brief Initialize and Configure Span - private functions not to be used directly!</span>
<a name="l00340"></a>00340 <span class="comment"> \param span_no span number - integer</span>
<a name="l00341"></a>00341 <span class="comment"> \param cfg span registration struct</span>
<a name="l00342"></a>00342 <span class="comment"> \param version library version number added by the macro</span>
<a name="l00343"></a>00343 <span class="comment"> \return NULL: fail, Span Object: pass</span>
<a name="l00344"></a>00344 <span class="comment"> *</span>
<a name="l00345"></a>00345 <span class="comment"> * The __sangoma_hptdm_api_span_init() function must NOT be called directly!</span>
<a name="l00346"></a>00346 <span class="comment"> * One MUST use defined sangoma_hptdm_api_span_init() macro instead</span>
<a name="l00347"></a>00347 <span class="comment"> */</span>
<a name="l00348"></a>00348
<a name="l00349"></a>00349 <a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> * __sangoma_hptdm_api_span_init(<span class="keywordtype">int</span> span_no, <a class="code" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg_t</a> *cfg, <span class="keywordtype">int</span> version)
<a name="l00350"></a>00350 {
<a name="l00351"></a>00351 <span class="keywordtype">int</span> err,i,ch=0;
<a name="l00352"></a>00352 <a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span;
<a name="l00353"></a>00353
<a name="l00354"></a>00354 span = malloc(<span class="keyword">sizeof</span>(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a>));
<a name="l00355"></a>00355 <span class="keywordflow">if</span> (!span) {
<a name="l00356"></a>00356 <span class="keywordflow">return</span> NULL;
<a name="l00357"></a>00357 }
<a name="l00358"></a>00358
<a name="l00359"></a>00359 memset(span,0,<span class="keyword">sizeof</span>(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a>));
<a name="l00360"></a>00360
<a name="l00361"></a>00361 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>=span_no;
<a name="l00362"></a>00362 sprintf(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">if_name</a>,<span class="stringliteral">"w%ig1"</span>,span_no+1);
<a name="l00363"></a>00363
<a name="l00364"></a>00364 <span class="keywordflow">if</span> (cfg) {
<a name="l00365"></a>00365 memcpy(&amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>,cfg,<span class="keyword">sizeof</span>(<a class="code" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg_t</a>));
<a name="l00366"></a>00366 <span class="keywordflow">if</span> (!lib_log) {
<a name="l00367"></a>00367 lib_log=cfg-&gt;<a class="code" href="structsangoma__hptdm__span__reg.html#7bf92eb6462caa381461bd9816b6a913">log</a>;
<a name="l00368"></a>00368 }
<a name="l00369"></a>00369 }
<a name="l00370"></a>00370
<a name="l00371"></a>00371 err=sangoma_hptdm_span_open(span);
<a name="l00372"></a>00372 <span class="keywordflow">if</span> (err) {
<a name="l00373"></a>00373 free(span);
<a name="l00374"></a>00374 <span class="keywordflow">return</span> NULL;
<a name="l00375"></a>00375 }
<a name="l00376"></a>00376
<a name="l00377"></a>00377 <span class="keywordflow">if</span> (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.media == WAN_MEDIA_E1) {
<a name="l00378"></a>00378 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.active_ch = span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.active_ch &gt;&gt; 1;
<a name="l00379"></a>00379 }
<a name="l00380"></a>00380
<a name="l00381"></a>00381 lib_printf(0,NULL,<span class="stringliteral">"Span %i Configuration\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1);
<a name="l00382"></a>00382 lib_printf(0,NULL,<span class="stringliteral">"Used By\t:%i\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.usedby);
<a name="l00383"></a>00383 lib_printf(0,NULL,<span class="stringliteral">"Media\t:%i\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.media);
<a name="l00384"></a>00384 lib_printf(0,NULL,<span class="stringliteral">"Active Ch\t:0x%08X\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.active_ch);
<a name="l00385"></a>00385 lib_printf(0,NULL,<span class="stringliteral">"Chunk Sz\t:%i\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.chunk_sz);
<a name="l00386"></a>00386 lib_printf(0,NULL,<span class="stringliteral">"HW Coding\t:%i\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.hw_coding);
<a name="l00387"></a>00387 lib_printf(0,NULL,<span class="stringliteral">"If Number\t:%i\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.interface_number);
<a name="l00388"></a>00388
<a name="l00389"></a>00389
<a name="l00390"></a>00390 <span class="comment">/* Map all channels to the actually configued on hardware */</span>
<a name="l00391"></a>00391 <span class="keywordflow">for</span> (i=0;i&lt;SMG_HP_TDM_MAX_CHANS;i++) {
<a name="l00392"></a>00392 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[i].<a class="code" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">chan_no_hw</a>=-1;
<a name="l00393"></a>00393 if (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.active_ch &amp; (1&lt;&lt;i)) {
<a name="l00394"></a>00394 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[i].<a class="code" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">chan_no_hw</a>=ch;
<a name="l00395"></a>00395 lib_printf(0,NULL,<span class="stringliteral">"Chan %i Mapped to %i"</span>,i,ch);
<a name="l00396"></a>00396 ch++;
<a name="l00397"></a>00397 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">max_chans</a>++;
<a name="l00398"></a>00398 } <span class="keywordflow">else</span> {
<a name="l00399"></a>00399 lib_printf(0,NULL,<span class="stringliteral">"Chan %i Not Mapped"</span>,i);
<a name="l00400"></a>00400 }
<a name="l00401"></a>00401 }
<a name="l00402"></a>00402
<a name="l00403"></a>00403 lib_printf(0,NULL,<span class="stringliteral">"Total Chans\t:%i\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">max_chans</a>);
<a name="l00404"></a>00404
<a name="l00405"></a>00405 <span class="comment">/* Must be configurable */</span>
<a name="l00406"></a>00406 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a>=span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>.chunk_sz;
<a name="l00407"></a>00407 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">tx_size</a>=span-&gt;<a class="code" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">max_chans</a>*span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a>;
<a name="l00408"></a>00408
<a name="l00409"></a>00409 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">init</a>=1;
<a name="l00410"></a>00410 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">idle</a>=0xFF;
<a name="l00411"></a>00411
<a name="l00412"></a>00412 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#01c3eefc1ed1e4482093deba3d167806">open_chan</a> = sangoma_hp_tdm_open_chan;
<a name="l00413"></a>00413 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#04ab1744bee8d7333303e8da52c46b74">close_chan</a> = sangoma_hp_tdm_close_chan;
<a name="l00414"></a>00414 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3a41fea372d8c4c8318f842134b93b3e">is_chan_closed</a> = sangoma_hp_tdm_is_chan_closed;
<a name="l00415"></a>00415 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#df409d25fbe30c631146616298d715b8">run_span</a> =sangoma_hp_tdm_run_span;
<a name="l00416"></a>00416 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">close_span</a> = sangoma_hp_tdm_close_span;
<a name="l00417"></a>00417 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c40f099ec1797a9188596912cd9bc545">event_ctrl</a> = sangoma_hp_tdm_event_ctrl_span;
<a name="l00418"></a>00418 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#96b3b3ada170989b083646b3f8e4004b">get_cfg</a> = sangoma_hp_tdm_event_get_cfg;
<a name="l00419"></a>00419
<a name="l00420"></a>00420 lib_printf(5, NULL, <span class="stringliteral">"Span %i Initialized\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1);
<a name="l00421"></a>00421
<a name="l00422"></a>00422 <span class="keywordflow">return</span> span;
<a name="l00423"></a>00423 }
<a name="l00424"></a>00424
<a name="l00425"></a>00425 <span class="comment">/*</span>
<a name="l00426"></a>00426 <span class="comment"> \brief Free, Un-Initialize Span</span>
<a name="l00427"></a>00427 <span class="comment"> \param span_no span object</span>
<a name="l00428"></a>00428 <span class="comment"> \return 0 = pass, non zero fail</span>
<a name="l00429"></a>00429 <span class="comment"> */</span>
<a name="l00430"></a>00430
<a name="l00431"></a>00431 <span class="keywordtype">int</span> sangoma_hptdm_api_span_free(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00432"></a>00432 {
<a name="l00433"></a>00433 <span class="keywordflow">if</span> (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a> &gt;= 0) {
<a name="l00434"></a>00434 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">close_span</a>(span);
<a name="l00435"></a>00435 }
<a name="l00436"></a>00436
<a name="l00437"></a>00437 free(span);
<a name="l00438"></a>00438 span=NULL;
<a name="l00439"></a>00439
<a name="l00440"></a>00440 <span class="keywordflow">return</span> 0;
<a name="l00441"></a>00441 }
<a name="l00442"></a>00442
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,223 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: libhpsangoma.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>libhpsangoma.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*****************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment"> * libhpsangoma.h : Sangoma High Performance TDM API - Span Based Library</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Author(s): Nenad Corbic &lt;ncorbic@sangoma.com&gt;</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * Copyright: (c) 2008 Nenad Corbic &lt;ncorbic@sangoma.com&gt;</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * This program is free software; you can redistribute it and/or</span>
<a name="l00009"></a>00009 <span class="comment"> * modify it under the terms of the GNU General Public License</span>
<a name="l00010"></a>00010 <span class="comment"> * as published by the Free Software Foundation; either version</span>
<a name="l00011"></a>00011 <span class="comment"> * 2 of the License, or (at your option) any later version.</span>
<a name="l00012"></a>00012 <span class="comment"> * ============================================================================</span>
<a name="l00013"></a>00013 <span class="comment"> */</span>
<a name="l00014"></a>00014
<a name="l00015"></a>00015 <span class="preprocessor">#ifndef _LIB_HP_SNAGOMA_H</span>
<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define _LIB_HP_SNAGOMA_H</span>
<a name="l00017"></a>00017 <span class="preprocessor"></span>
<a name="l00018"></a>00018
<a name="l00019"></a>00019 <span class="preprocessor">#ifdef WIN32</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span>
<a name="l00021"></a>00021 <span class="preprocessor">#error "WINDOWS NOT DEFINED"</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span>
<a name="l00023"></a>00023 <span class="preprocessor">#else</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="comment">/* L I N U X */</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;ctype.h&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;unistd.h&gt;</span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;sys/time.h&gt;</span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;sys/socket.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;sys/ioctl.h&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;sys/signal.h&gt;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;sys/select.h&gt;</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;sys/wait.h&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;sys/resource.h&gt;</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &lt;netinet/in.h&gt;</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include &lt;errno.h&gt;</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include &lt;fcntl.h&gt;</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include &lt;linux/if.h&gt;</span>
<a name="l00042"></a>00042 <span class="preprocessor">#include &lt;poll.h&gt;</span>
<a name="l00043"></a>00043 <span class="preprocessor">#include &lt;signal.h&gt;</span>
<a name="l00044"></a>00044
<a name="l00045"></a>00045
<a name="l00046"></a>00046 <span class="preprocessor">#include &lt;linux/wanpipe_defines.h&gt;</span>
<a name="l00047"></a>00047 <span class="preprocessor">#include &lt;linux/wanpipe_common.h&gt;</span>
<a name="l00048"></a>00048 <span class="preprocessor">#include &lt;linux/wanpipe_cfg.h&gt;</span>
<a name="l00049"></a>00049 <span class="preprocessor">#include &lt;linux/wanpipe.h&gt;</span>
<a name="l00050"></a>00050 <span class="preprocessor">#include &lt;linux/if_wanpipe.h&gt;</span>
<a name="l00051"></a>00051 <span class="preprocessor">#include &lt;linux/sdla_aft_te1.h&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span>
<a name="l00054"></a>00054 <span class="preprocessor">#define SMG_HP_MAX_CHAN_DATA 1024</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#define SMG_HP_TDM_CHUNK_IDX_SZ 16</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#define SMG_HP_TDM_MAX_CHANS 31</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#define SMG_HP_MAX_SPAN_DATA (31*160)+32</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span>
<a name="l00059"></a>00059 <span class="preprocessor">#define hp_tdmapi_rx_event_t api_rx_hdr_t</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">#define hp_tdmapi_tx_event_t api_tx_hdr_t</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span>
<a name="l00062"></a>00062 <span class="preprocessor">#define SANGOMA_HPTDM_VERSION 1</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span>
<a name="l00064"></a>00064 <span class="comment">/*---------------------------------------------------------</span>
<a name="l00065"></a>00065 <span class="comment"> * PUBLIC DEFINITIONS</span>
<a name="l00066"></a>00066 <span class="comment"> */</span>
<a name="l00067"></a>00067
<a name="l00068"></a>00068
<a name="l00072"></a><a class="code" href="structsangoma__hptdm__span__reg.html">00072</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg</a>
<a name="l00073"></a>00073 {
<a name="l00075"></a><a class="code" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">00075</a> <span class="keywordtype">void</span> *<a class="code" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a>;
<a name="l00077"></a>00077 void (*<a class="code" href="structsangoma__hptdm__span__reg.html#7bf92eb6462caa381461bd9816b6a913">log</a>)(<span class="keywordtype">int</span> level, FILE *fp, <span class="keywordtype">char</span> *file, <span class="keyword">const</span> <span class="keywordtype">char</span> *func, <span class="keywordtype">int</span> line, <span class="keywordtype">char</span> *fmt, ...);
<a name="l00079"></a>00079 int (*<a class="code" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">rx_event</a>)(<span class="keywordtype">void</span> *<a class="code" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a>, hp_tdmapi_rx_event_t *data);
<a name="l00080"></a>00080 }<a class="code" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg_t</a>;
<a name="l00081"></a>00081
<a name="l00082"></a>00082
<a name="l00086"></a><a class="code" href="structhp__tdm__chunk.html">00086</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structhp__tdm__chunk.html">hp_tdm_chunk</a>
<a name="l00087"></a>00087 {
<a name="l00089"></a><a class="code" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">00089</a> <span class="keywordtype">int</span> <a class="code" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">init</a>;
<a name="l00091"></a><a class="code" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">00091</a> <span class="keywordtype">int</span> <a class="code" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">len</a>;
<a name="l00093"></a><a class="code" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">00093</a> <span class="keywordtype">int</span> <a class="code" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">offset</a>;
<a name="l00095"></a><a class="code" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">00095</a> <span class="keywordtype">char</span> <a class="code" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">data</a>[SMG_HP_MAX_CHAN_DATA];
<a name="l00096"></a>00096 }<a class="code" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a>;
<a name="l00097"></a>00097
<a name="l00101"></a><a class="code" href="structsangoma__hptdm__chan__reg.html">00101</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg</a>
<a name="l00102"></a>00102 {
<a name="l00104"></a><a class="code" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">00104</a> <span class="keywordtype">void</span> *<a class="code" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>;
<a name="l00106"></a>00106 int (*<a class="code" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">rx_data</a>)(<span class="keywordtype">void</span> *<a class="code" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>, <span class="keywordtype">char</span> *data, <span class="keywordtype">int</span> len);
<a name="l00108"></a>00108 int (*<a class="code" href="structsangoma__hptdm__chan__reg.html#5e46cef596c1d6db9e3d92294527312f">rx_event</a>)(<span class="keywordtype">void</span> *<a class="code" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>, hp_tdmapi_rx_event_t *data);
<a name="l00109"></a>00109
<a name="l00110"></a>00110 }<a class="code" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg_t</a>;
<a name="l00111"></a>00111
<a name="l00115"></a><a class="code" href="structsangoma__hptdm__chan.html">00115</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a>
<a name="l00116"></a>00116 {
<a name="l00118"></a><a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">00118</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>;
<a name="l00119"></a>00119
<a name="l00121"></a><a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">00121</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a>;
<a name="l00122"></a>00122
<a name="l00124"></a><a class="code" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">00124</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a>;
<a name="l00125"></a>00125
<a name="l00127"></a><a class="code" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">00127</a> <span class="keywordtype">void</span> *<a class="code" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">span</a>;
<a name="l00128"></a>00128
<a name="l00130"></a><a class="code" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">00130</a> <a class="code" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a> <a class="code" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">rx_chunk</a>;
<a name="l00131"></a>00131
<a name="l00133"></a><a class="code" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">00133</a> <a class="code" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a> <a class="code" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">tx_idx</a>[SMG_HP_TDM_CHUNK_IDX_SZ];
<a name="l00134"></a>00134
<a name="l00136"></a><a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">00136</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a>;
<a name="l00137"></a>00137
<a name="l00139"></a><a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">00139</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>;
<a name="l00140"></a>00140
<a name="l00142"></a>00142 int (*<a class="code" href="structsangoma__hptdm__chan.html#40fbdc65035c69d876d4a1a806e5a5db">push</a>)(<span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a> *, <span class="keywordtype">char</span> *data, <span class="keywordtype">int</span> len);
<a name="l00143"></a>00143
<a name="l00145"></a><a class="code" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">00145</a> <a class="code" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg_t</a> <a class="code" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a>;
<a name="l00146"></a>00146
<a name="l00147"></a>00147 }<a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a>;
<a name="l00148"></a>00148
<a name="l00157"></a><a class="code" href="structsangoma__hptdm__chan__map.html">00157</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map</a>
<a name="l00158"></a>00158 {
<a name="l00162"></a><a class="code" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">00162</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">chan_no_hw</a>;
<a name="l00163"></a>00163
<a name="l00165"></a><a class="code" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">00165</a> <a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> <a class="code" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">chan</a>;
<a name="l00166"></a>00166
<a name="l00167"></a>00167 }<a class="code" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map_t</a>;
<a name="l00168"></a>00168
<a name="l00169"></a>00169
<a name="l00173"></a><a class="code" href="structsangoma__hptdm__span.html">00173</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a>
<a name="l00174"></a>00174 {
<a name="l00176"></a><a class="code" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">00176</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">init</a>;
<a name="l00177"></a>00177
<a name="l00179"></a><a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">00179</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>;
<a name="l00180"></a>00180
<a name="l00182"></a><a class="code" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">00182</a> <span class="keywordtype">char</span> <a class="code" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">if_name</a>[100];
<a name="l00183"></a>00183
<a name="l00185"></a><a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">00185</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>;
<a name="l00186"></a>00186
<a name="l00188"></a><a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">00188</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a>;
<a name="l00189"></a>00189
<a name="l00191"></a><a class="code" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">00191</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">max_chans</a>;
<a name="l00192"></a>00192
<a name="l00194"></a><a class="code" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">00194</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">tx_size</a>;
<a name="l00195"></a>00195
<a name="l00197"></a><a class="code" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">00197</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">idle</a>;
<a name="l00198"></a>00198
<a name="l00200"></a><a class="code" href="structsangoma__hptdm__span.html#ee171f9edaddbe0c76c56c151d0ca18e">00200</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#ee171f9edaddbe0c76c56c151d0ca18e">timeslot_cfg</a>;
<a name="l00201"></a>00201
<a name="l00203"></a><a class="code" href="structsangoma__hptdm__span.html#fb940d35a9dc0a91871be3100c0a90f5">00203</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#fb940d35a9dc0a91871be3100c0a90f5">hwcoding</a>;
<a name="l00204"></a>00204
<a name="l00206"></a><a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">00206</a> <a class="code" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map_t</a> <a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[SMG_HP_TDM_MAX_CHANS];
<a name="l00207"></a>00207
<a name="l00209"></a><a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">00209</a> <span class="keywordtype">char</span> <a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a>[SMG_HP_MAX_SPAN_DATA];
<a name="l00210"></a>00210
<a name="l00212"></a><a class="code" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">00212</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">rx_len</a>;
<a name="l00213"></a>00213
<a name="l00215"></a><a class="code" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">00215</a> <span class="keywordtype">char</span> <a class="code" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">tx_data</a>[SMG_HP_MAX_SPAN_DATA];
<a name="l00216"></a>00216
<a name="l00218"></a><a class="code" href="structsangoma__hptdm__span.html#70ddcf83aeb3c5f7a4792fa50042bf42">00218</a> <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#70ddcf83aeb3c5f7a4792fa50042bf42">tx_len</a>;
<a name="l00219"></a>00219
<a name="l00221"></a><a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">00221</a> <a class="code" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg_t</a> <a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>;
<a name="l00222"></a>00222
<a name="l00224"></a><a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">00224</a> wan_if_cfg_t <a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>;
<a name="l00225"></a>00225
<a name="l00227"></a><a class="code" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">00227</a> wan_udp_hdr_t <a class="code" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a>;
<a name="l00228"></a>00228
<a name="l00235"></a>00235 int (*<a class="code" href="structsangoma__hptdm__span.html#01c3eefc1ed1e4482093deba3d167806">open_chan</a>)(<span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span,
<a name="l00236"></a>00236 <a class="code" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg_t</a> *chan_reg,
<a name="l00237"></a>00237 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> chan_no,
<a name="l00238"></a>00238 <a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> **chan_ptr);
<a name="l00239"></a>00239
<a name="l00243"></a>00243 int (*<a class="code" href="structsangoma__hptdm__span.html#04ab1744bee8d7333303e8da52c46b74">close_chan</a>)(<a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan);
<a name="l00244"></a>00244
<a name="l00247"></a>00247 int (*<a class="code" href="structsangoma__hptdm__span.html#3a41fea372d8c4c8318f842134b93b3e">is_chan_closed</a>)(<a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan);
<a name="l00248"></a>00248
<a name="l00259"></a>00259 int (*<a class="code" href="structsangoma__hptdm__span.html#df409d25fbe30c631146616298d715b8">run_span</a>)(<span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span);
<a name="l00260"></a>00260
<a name="l00263"></a>00263 int (*<a class="code" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">close_span</a>)(<span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span);
<a name="l00264"></a>00264
<a name="l00269"></a>00269 int (*<a class="code" href="structsangoma__hptdm__span.html#c40f099ec1797a9188596912cd9bc545">event_ctrl</a>)(<span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span, hp_tdmapi_tx_event_t *event);
<a name="l00270"></a>00270
<a name="l00275"></a>00275 int (*<a class="code" href="structsangoma__hptdm__span.html#96b3b3ada170989b083646b3f8e4004b">get_cfg</a>)(<span class="keyword">struct </span><a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span, wan_if_cfg_t *cfg);
<a name="l00276"></a>00276
<a name="l00277"></a>00277
<a name="l00278"></a>00278 }<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a>;
<a name="l00279"></a>00279
<a name="l00280"></a>00280 <span class="comment">/*---------------------------------------------------------</span>
<a name="l00281"></a>00281 <span class="comment"> * PUBLIC FUNCTIONS</span>
<a name="l00282"></a>00282 <span class="comment"> */</span>
<a name="l00283"></a>00283
<a name="l00291"></a>00291 <span class="comment">/* Initialize and Configure a Span */</span>
<a name="l00292"></a>00292 <span class="preprocessor">#define sangoma_hptdm_api_span_init(span,cfg) __sangoma_hptdm_api_span_init(span, cfg, SANGOMA_HPTDM_VERSION);</span>
<a name="l00293"></a>00293 <span class="preprocessor"></span>
<a name="l00305"></a>00305 <span class="comment">/*</span>
<a name="l00306"></a>00306 <span class="comment"> * The __sangoma_hptdm_api_span_init() function must NOT be called directly!</span>
<a name="l00307"></a>00307 <span class="comment"> * One MUST use defined sangoma_hptdm_api_span_init() macro instead</span>
<a name="l00308"></a>00308 <span class="comment"> */</span>
<a name="l00309"></a>00309 <span class="keyword">extern</span> <a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> * __sangoma_hptdm_api_span_init(<span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>, <a class="code" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg_t</a> *cfg, <span class="keywordtype">int</span> version);
<a name="l00310"></a>00310
<a name="l00311"></a>00311
<a name="l00317"></a>00317 <span class="keyword">extern</span> <span class="keywordtype">int</span> sangoma_hptdm_api_span_free(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span);
<a name="l00318"></a>00318
<a name="l00319"></a>00319
<a name="l00320"></a>00320
<a name="l00321"></a>00321
<a name="l00322"></a>00322
<a name="l00323"></a>00323 <span class="preprocessor">#endif</span>
<a name="l00324"></a>00324 <span class="preprocessor"></span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,362 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: libhpsangoma_priv.c Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>libhpsangoma_priv.c</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*****************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment"> * libhpsangoma_priv.c: Sangoma High Performance TDM API - Span Based Library</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Author(s): Nenad Corbic &lt;ncorbic@sangoma.com&gt;</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * Copyright: (c) 2008 Nenad Corbic &lt;ncorbic@sangoma.com&gt;</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * This program is free software; you can redistribute it and/or</span>
<a name="l00009"></a>00009 <span class="comment"> * modify it under the terms of the GNU General Public License</span>
<a name="l00010"></a>00010 <span class="comment"> * as published by the Free Software Foundation; either version</span>
<a name="l00011"></a>00011 <span class="comment"> * 2 of the License, or (at your option) any later version.</span>
<a name="l00012"></a>00012 <span class="comment"> * ============================================================================</span>
<a name="l00013"></a>00013 <span class="comment"> *</span>
<a name="l00014"></a>00014 <span class="comment"> */</span>
<a name="l00015"></a>00015
<a name="l00016"></a>00016 <span class="preprocessor">#include "libhpsangoma.h"</span>
<a name="l00017"></a>00017 <span class="preprocessor">#include "libhpsangoma_priv.h"</span>
<a name="l00018"></a>00018 <span class="preprocessor">#define DFT_CARD "wanpipe1"</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020
<a name="l00031"></a>00031 <span class="keywordtype">int</span> sangoma_readmsg_hp_tdm(<span class="keywordtype">int</span> fd, <span class="keywordtype">void</span> *hdrbuf, <span class="keywordtype">int</span> hdrlen, <span class="keywordtype">void</span> *databuf, <span class="keywordtype">int</span> datalen, <span class="keywordtype">int</span> flag)
<a name="l00032"></a>00032 {
<a name="l00033"></a>00033 <span class="keywordtype">int</span> <a class="code" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">rx_len</a>=0;
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="preprocessor">#if defined(WIN32)</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span>
<a name="l00037"></a>00037 <span class="preprocessor">#error "WINDOWS HP TDMAPI NOT DEFINED"</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span>
<a name="l00039"></a>00039 <span class="preprocessor">#else</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span> <span class="keyword">struct </span>msghdr msg;
<a name="l00041"></a>00041 <span class="keyword">struct </span>iovec iov[2];
<a name="l00042"></a>00042
<a name="l00043"></a>00043 memset(&amp;msg,0,<span class="keyword">sizeof</span>(<span class="keyword">struct</span> msghdr));
<a name="l00044"></a>00044
<a name="l00045"></a>00045 iov[0].iov_len=hdrlen;
<a name="l00046"></a>00046 iov[0].iov_base=hdrbuf;
<a name="l00047"></a>00047
<a name="l00048"></a>00048 iov[1].iov_len=datalen;
<a name="l00049"></a>00049 iov[1].iov_base=databuf;
<a name="l00050"></a>00050
<a name="l00051"></a>00051 msg.msg_iovlen=2;
<a name="l00052"></a>00052 msg.msg_iov=iov;
<a name="l00053"></a>00053
<a name="l00054"></a>00054 rx_len = recvmsg(fd,&amp;msg,0);
<a name="l00055"></a>00055
<a name="l00056"></a>00056 <span class="keywordflow">if</span> (rx_len &lt;= <span class="keyword">sizeof</span>(api_rx_hdr_t)){
<a name="l00057"></a>00057 <span class="keywordflow">return</span> -EINVAL;
<a name="l00058"></a>00058 }
<a name="l00059"></a>00059
<a name="l00060"></a>00060 rx_len-=<span class="keyword">sizeof</span>(api_rx_hdr_t);
<a name="l00061"></a>00061 <span class="preprocessor">#endif</span>
<a name="l00062"></a>00062 <span class="preprocessor"></span>
<a name="l00063"></a>00063 <span class="keywordflow">return</span> rx_len;
<a name="l00064"></a>00064 }
<a name="l00065"></a>00065
<a name="l00066"></a>00066
<a name="l00067"></a>00067
<a name="l00078"></a>00078 <span class="keywordtype">int</span> sangoma_writemsg_hp_tdm(<span class="keywordtype">int</span> fd, <span class="keywordtype">void</span> *hdrbuf, <span class="keywordtype">int</span> hdrlen, <span class="keywordtype">void</span> *databuf, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> datalen, <span class="keywordtype">int</span> flag)
<a name="l00079"></a>00079 {
<a name="l00080"></a>00080 <span class="keywordtype">int</span> bsent;
<a name="l00081"></a>00081
<a name="l00082"></a>00082 <span class="preprocessor">#if defined(WIN32)</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span>
<a name="l00084"></a>00084 <span class="preprocessor">#error "Windows TX not implemented"</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span>
<a name="l00086"></a>00086 <span class="preprocessor">#else</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span> <span class="keyword">struct </span>msghdr msg;
<a name="l00088"></a>00088 <span class="keyword">struct </span>iovec iov[2];
<a name="l00089"></a>00089
<a name="l00090"></a>00090 memset(&amp;msg,0,<span class="keyword">sizeof</span>(<span class="keyword">struct</span> msghdr));
<a name="l00091"></a>00091
<a name="l00092"></a>00092 iov[0].iov_len=hdrlen;
<a name="l00093"></a>00093 iov[0].iov_base=hdrbuf;
<a name="l00094"></a>00094
<a name="l00095"></a>00095 iov[1].iov_len=datalen;
<a name="l00096"></a>00096 iov[1].iov_base=databuf;
<a name="l00097"></a>00097
<a name="l00098"></a>00098 msg.msg_iovlen=2;
<a name="l00099"></a>00099 msg.msg_iov=iov;
<a name="l00100"></a>00100
<a name="l00101"></a>00101 bsent = sendmsg(fd,&amp;msg,0);
<a name="l00102"></a>00102 <span class="keywordflow">if</span> (bsent &gt; 0){
<a name="l00103"></a>00103 bsent-=<span class="keyword">sizeof</span>(api_tx_hdr_t);
<a name="l00104"></a>00104 }
<a name="l00105"></a>00105 <span class="preprocessor">#endif</span>
<a name="l00106"></a>00106 <span class="preprocessor"></span> <span class="keywordflow">return</span> bsent;
<a name="l00107"></a>00107 }
<a name="l00108"></a>00108
<a name="l00114"></a>00114 <span class="keywordtype">int</span> do_wanpipemon_cmd(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00115"></a>00115 {
<a name="l00116"></a>00116 <span class="keyword">struct </span>ifreq ifr;
<a name="l00117"></a>00117 memset(&amp;ifr,0,<span class="keyword">sizeof</span>(ifr));
<a name="l00118"></a>00118 ifr.ifr_data = (<span class="keywordtype">void</span>*)&amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a>;
<a name="l00119"></a>00119 sprintf (ifr.ifr_name, <span class="stringliteral">"%s"</span>, span-&gt;<a class="code" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">if_name</a>);
<a name="l00120"></a>00120 <span class="keywordflow">return</span> ioctl(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>,SIOC_WANPIPE_PIPEMON,&amp;ifr);
<a name="l00121"></a>00121 }
<a name="l00122"></a>00122
<a name="l00128"></a>00128 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sangoma_get_cfg(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00129"></a>00129 {
<a name="l00130"></a>00130 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a>.wan_udphdr_command = READ_CONFIGURATION;
<a name="l00131"></a>00131 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a>.wan_udphdr_data_len = 0;
<a name="l00132"></a>00132 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a>.wan_udphdr_return_code = 0xaa;
<a name="l00133"></a>00133 do_wanpipemon_cmd(span);
<a name="l00134"></a>00134 <span class="keywordflow">if</span> (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a>.wan_udphdr_return_code != 0){
<a name="l00135"></a>00135 lib_printf(0,NULL,<span class="stringliteral">"Error: SPAN %i management command failed 0x02Xs (%s)"</span>,
<a name="l00136"></a>00136 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1, span-&gt;<a class="code" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a>.wan_udphdr_return_code,strerror(errno));
<a name="l00137"></a>00137 <span class="keywordflow">return</span> -1;
<a name="l00138"></a>00138 }
<a name="l00139"></a>00139
<a name="l00140"></a>00140 memcpy(&amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>,&amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a>.wan_udphdr_data[0],<span class="keyword">sizeof</span>(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a>));
<a name="l00141"></a>00141
<a name="l00142"></a>00142 <span class="keywordflow">return</span> 0;
<a name="l00143"></a>00143 }
<a name="l00144"></a>00144
<a name="l00145"></a>00145
<a name="l00152"></a>00152 <span class="keywordtype">int</span> sangoma_hptdm_span_open(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00153"></a>00153 {
<a name="l00154"></a>00154 <span class="keyword">struct </span>wan_sockaddr_ll sa;
<a name="l00155"></a>00155 <span class="keywordtype">char</span> if_name[100];
<a name="l00156"></a>00156 <span class="keywordtype">int</span> sock=-1;
<a name="l00157"></a>00157 <span class="keywordtype">int</span> err;
<a name="l00158"></a>00158
<a name="l00159"></a>00159 memset(&amp;sa,0,<span class="keyword">sizeof</span>(<span class="keyword">struct</span> wan_sockaddr_ll));
<a name="l00160"></a>00160 sock = socket(AF_WANPIPE, SOCK_RAW, 0);
<a name="l00161"></a>00161 <span class="keywordflow">if</span>( sock &lt; 0 ) {
<a name="l00162"></a>00162 perror(<span class="stringliteral">"Socket"</span>);
<a name="l00163"></a>00163 <span class="keywordflow">return</span> -1;
<a name="l00164"></a>00164 } <span class="comment">/* if */</span>
<a name="l00165"></a>00165
<a name="l00166"></a>00166 sprintf(if_name, <span class="stringliteral">"w%ig1"</span>, span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1);
<a name="l00167"></a>00167
<a name="l00168"></a>00168 strcpy( (<span class="keywordtype">char</span>*)sa.sll_device, if_name);
<a name="l00169"></a>00169 strcpy( (<span class="keywordtype">char</span>*)sa.sll_card, DFT_CARD);
<a name="l00170"></a>00170 sa.sll_protocol = htons(PVC_PROT);
<a name="l00171"></a>00171 sa.sll_family=AF_WANPIPE;
<a name="l00172"></a>00172
<a name="l00173"></a>00173 <span class="keywordflow">if</span>(bind(sock, (<span class="keyword">struct</span> sockaddr *)&amp;sa, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> wan_sockaddr_ll)) &lt; 0){
<a name="l00174"></a>00174 lib_printf(0,NULL,<span class="stringliteral">"bind failed on span span %i %s\n"</span>,
<a name="l00175"></a>00175 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1,strerror(errno));
<a name="l00176"></a>00176 <span class="keywordflow">return</span> -1;
<a name="l00177"></a>00177 }
<a name="l00178"></a>00178
<a name="l00179"></a>00179 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>=sock;
<a name="l00180"></a>00180
<a name="l00181"></a>00181 err= sangoma_get_cfg(span);
<a name="l00182"></a>00182 <span class="keywordflow">if</span> (err) {
<a name="l00183"></a>00183 <span class="keywordflow">goto</span> sangoma_hptdm_span_open_error;
<a name="l00184"></a>00184 }
<a name="l00185"></a>00185
<a name="l00186"></a>00186 lib_printf(0,NULL,<span class="stringliteral">"libhp: span %i opened\n"</span>,
<a name="l00187"></a>00187 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1);
<a name="l00188"></a>00188
<a name="l00189"></a>00189 <span class="keywordflow">return</span> 0;
<a name="l00190"></a>00190
<a name="l00191"></a>00191 sangoma_hptdm_span_open_error:
<a name="l00192"></a>00192
<a name="l00193"></a>00193 <span class="keywordflow">if</span> (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>) {
<a name="l00194"></a>00194 close(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>);
<a name="l00195"></a>00195 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>=-1;
<a name="l00196"></a>00196 }
<a name="l00197"></a>00197
<a name="l00198"></a>00198 <span class="keywordflow">return</span> err;
<a name="l00199"></a>00199 }
<a name="l00200"></a>00200
<a name="l00201"></a>00201
<a name="l00208"></a>00208 <span class="keywordtype">int</span> sangoma_hp_tdm_handle_oob_event(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00209"></a>00209 {
<a name="l00210"></a>00210 <span class="keywordtype">int</span> err;
<a name="l00211"></a>00211 hp_tdmapi_rx_event_t *rx_event;
<a name="l00212"></a>00212
<a name="l00213"></a>00213 err = recv(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>, span-&gt;<a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a>, <span class="keyword">sizeof</span>(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a>), MSG_OOB);
<a name="l00214"></a>00214 <span class="keywordflow">if</span> (err &gt; 0) {
<a name="l00215"></a>00215 rx_event=(hp_tdmapi_rx_event_t*)&amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a>;
<a name="l00216"></a>00216 if (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>.<a class="code" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">rx_event</a> &amp;&amp; span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>.<a class="code" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a>) {
<a name="l00217"></a>00217 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>.<a class="code" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">rx_event</a>(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>.<a class="code" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a>, rx_event);
<a name="l00218"></a>00218 }
<a name="l00219"></a>00219 }
<a name="l00220"></a>00220 <span class="comment">/* For now treat all err as socket reload */</span>
<a name="l00221"></a>00221 <span class="keywordflow">return</span> 1;
<a name="l00222"></a>00222 }
<a name="l00223"></a>00223
<a name="l00230"></a>00230 <span class="keywordtype">int</span> sangoma_hp_tdm_push_rx_data(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00231"></a>00231 {
<a name="l00232"></a>00232 <span class="keywordtype">int</span> i=0,x=0,err=0;
<a name="l00233"></a>00233 <a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan=NULL;
<a name="l00234"></a>00234 <a class="code" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a> *chunk=NULL;
<a name="l00235"></a>00235 <span class="keywordtype">int</span> chan_no_hw;
<a name="l00236"></a>00236 <span class="keywordtype">char</span> *rx_data = &amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a>[<span class="keyword">sizeof</span>(api_rx_hdr_t)];
<a name="l00237"></a>00237
<a name="l00238"></a>00238
<a name="l00239"></a>00239 <span class="keywordflow">for</span> (i=0;i&lt;SMG_HP_TDM_MAX_CHANS;i++) {
<a name="l00240"></a>00240 chan = &amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[i].<a class="code" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">chan</a>;
<a name="l00241"></a>00241 if (!chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>) {
<a name="l00242"></a>00242 <span class="keywordflow">continue</span>;
<a name="l00243"></a>00243 }
<a name="l00244"></a>00244 chan_no_hw = span-&gt;<a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[i].<a class="code" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">chan_no_hw</a>;
<a name="l00245"></a>00245
<a name="l00246"></a>00246 lib_printf(15,NULL, <span class="stringliteral">"SPAN %i Chan %i Chunk %i Channelizing\n"</span>,
<a name="l00247"></a>00247 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1, chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a>+1, span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a>);
<a name="l00248"></a>00248
<a name="l00249"></a>00249 chunk = &amp;chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">rx_chunk</a>;
<a name="l00250"></a>00250
<a name="l00251"></a>00251 <span class="keywordflow">for</span> (x=0;x&lt;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a>;x++) {
<a name="l00252"></a>00252 chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">data</a>[x] = rx_data[(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">max_chans</a>*x)+chan_no_hw];
<a name="l00253"></a>00253 }
<a name="l00254"></a>00254
<a name="l00255"></a>00255 chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">len</a> = span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a>;
<a name="l00256"></a>00256 <span class="keywordflow">if</span> (chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a>.<a class="code" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a> &amp;&amp; chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a>.<a class="code" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">rx_data</a>) {
<a name="l00257"></a>00257 err=chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a>.<a class="code" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">rx_data</a>(chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a>.<a class="code" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>,chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">data</a>,chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">len</a>);
<a name="l00258"></a>00258 } <span class="keywordflow">else</span> {
<a name="l00259"></a>00259 err=1;
<a name="l00260"></a>00260 }
<a name="l00261"></a>00261
<a name="l00262"></a>00262 <span class="keywordflow">if</span> (err) {
<a name="l00263"></a>00263 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>=0;
<a name="l00264"></a>00264 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a>.<a class="code" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>=NULL;
<a name="l00265"></a>00265 }
<a name="l00266"></a>00266
<a name="l00267"></a>00267 }
<a name="l00268"></a>00268
<a name="l00269"></a>00269 <span class="keywordflow">return</span> err;
<a name="l00270"></a>00270
<a name="l00271"></a>00271
<a name="l00272"></a>00272 }
<a name="l00273"></a>00273
<a name="l00280"></a>00280 <span class="keywordtype">int</span> sangoma_hp_tdm_handle_read_event(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00281"></a>00281 {
<a name="l00282"></a>00282 <span class="keywordtype">int</span> err;
<a name="l00283"></a>00283 hp_tdmapi_rx_event_t *rx_event = (hp_tdmapi_rx_event_t*)&amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a>[0];
<a name="l00284"></a>00284
<a name="l00285"></a>00285 err = sangoma_readmsg_hp_tdm(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>,
<a name="l00286"></a>00286 &amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a>[0],<span class="keyword">sizeof</span>(api_rx_hdr_t),
<a name="l00287"></a>00287 &amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a>[<span class="keyword">sizeof</span>(api_rx_hdr_t)],
<a name="l00288"></a>00288 <span class="keyword">sizeof</span>(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a>) - <span class="keyword">sizeof</span>(api_rx_hdr_t),
<a name="l00289"></a>00289 0);
<a name="l00290"></a>00290
<a name="l00291"></a>00291 <span class="keywordflow">if</span> (err &gt; <span class="keyword">sizeof</span>(api_rx_hdr_t)) {
<a name="l00292"></a>00292
<a name="l00293"></a>00293 lib_printf(15,NULL, <span class="stringliteral">"SPAN %i Read Len = %i\n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1,err);
<a name="l00294"></a>00294
<a name="l00295"></a>00295 <span class="keywordflow">if</span> (rx_event-&gt;event_type) {
<a name="l00296"></a>00296
<a name="l00297"></a>00297 <span class="keywordflow">if</span> (span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>.<a class="code" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">rx_event</a> &amp;&amp; span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>.<a class="code" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a>) {
<a name="l00298"></a>00298 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>.<a class="code" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">rx_event</a>(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a>.<a class="code" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a>, rx_event);
<a name="l00299"></a>00299 }
<a name="l00300"></a>00300
<a name="l00301"></a>00301 } <span class="keywordflow">else</span> {
<a name="l00302"></a>00302
<a name="l00303"></a>00303 <span class="keywordflow">if</span> (err % span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a>) {
<a name="l00304"></a>00304 lib_printf(0,NULL, <span class="stringliteral">"Error: SPAN %i Read Len = %i Block not chunk %i aligned! \n"</span>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1,err,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a>);
<a name="l00305"></a>00305 <span class="comment">/* Received chunk size is not aligned drop it for now */</span>
<a name="l00306"></a>00306 <span class="keywordflow">return</span> 0;
<a name="l00307"></a>00307 }
<a name="l00308"></a>00308
<a name="l00309"></a>00309 sangoma_hp_tdm_push_rx_data(span);
<a name="l00310"></a>00310 }
<a name="l00311"></a>00311
<a name="l00312"></a>00312 err=0;
<a name="l00313"></a>00313
<a name="l00314"></a>00314 } <span class="keywordflow">else</span> {
<a name="l00315"></a>00315 <span class="keywordflow">if</span> (errno == EAGAIN) {
<a name="l00316"></a>00316 err = 0;
<a name="l00317"></a>00317 } <span class="keywordflow">else</span> {
<a name="l00318"></a>00318 err=-1;
<a name="l00319"></a>00319 }
<a name="l00320"></a>00320 }
<a name="l00321"></a>00321
<a name="l00322"></a>00322 <span class="keywordflow">return</span> err;
<a name="l00323"></a>00323 }
<a name="l00324"></a>00324
<a name="l00325"></a>00325
<a name="l00331"></a>00331 <span class="keywordtype">int</span> sangoma_hp_tdm_handle_write_event(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span)
<a name="l00332"></a>00332 {
<a name="l00333"></a>00333 <span class="keywordtype">int</span> i=0,x=0,err=0;
<a name="l00334"></a>00334 <a class="code" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan;
<a name="l00335"></a>00335 <a class="code" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a> *chunk;
<a name="l00336"></a>00336 <span class="keywordtype">int</span> chan_no_hw=0;
<a name="l00337"></a>00337 <span class="keywordtype">char</span> *tx_data = &amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">tx_data</a>[<span class="keyword">sizeof</span>(api_tx_hdr_t)];
<a name="l00338"></a>00338
<a name="l00339"></a>00339 memset(&amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">tx_data</a>,span-&gt;<a class="code" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">idle</a>,<span class="keyword">sizeof</span>(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">tx_data</a>));
<a name="l00340"></a>00340
<a name="l00341"></a>00341
<a name="l00342"></a>00342 <span class="keywordflow">for</span> (i=0;i&lt;SMG_HP_TDM_MAX_CHANS;i++) {
<a name="l00343"></a>00343 chan = &amp;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[i].<a class="code" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">chan</a>;
<a name="l00344"></a>00344 if (!chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a>) {
<a name="l00345"></a>00345 <span class="comment">/* This channel is not open */</span>
<a name="l00346"></a>00346 <span class="keywordflow">continue</span>;
<a name="l00347"></a>00347 }
<a name="l00348"></a>00348 chan_no_hw=span-&gt;<a class="code" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a>[i].<a class="code" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">chan_no_hw</a>;
<a name="l00349"></a>00349
<a name="l00350"></a>00350 chunk = &amp;chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">tx_idx</a>[chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>];
<a name="l00351"></a>00351 <span class="keywordflow">if</span> (!chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">init</a>) {
<a name="l00352"></a>00352 lib_printf(15,NULL,<span class="stringliteral">"span write s%ic%i tx chunk underrun out %i \n"</span>,
<a name="l00353"></a>00353 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>);
<a name="l00354"></a>00354 <span class="comment">/* There is no tx data for this channel */</span>
<a name="l00355"></a>00355 <span class="keywordflow">continue</span>;
<a name="l00356"></a>00356 }
<a name="l00357"></a>00357
<a name="l00358"></a>00358 <span class="keywordflow">for</span> (x=0;x&lt;span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a>;x++) {
<a name="l00359"></a>00359
<a name="l00360"></a>00360 tx_data[(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">max_chans</a>*x)+chan_no_hw] = chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">data</a>[chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">offset</a>];
<a name="l00361"></a>00361 chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">offset</a>++;
<a name="l00362"></a>00362
<a name="l00363"></a>00363 if (chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">offset</a> &gt;= chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">len</a>) {
<a name="l00364"></a>00364 chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">init</a>=0;
<a name="l00365"></a>00365
<a name="l00366"></a>00366 lib_printf(15,NULL,<span class="stringliteral">"span write s%ic%i tx chunk out %i \n"</span>,
<a name="l00367"></a>00367 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a>+1,chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>);
<a name="l00368"></a>00368
<a name="l00369"></a>00369 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>++;
<a name="l00370"></a>00370 if (chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a> &gt;= SMG_HP_TDM_CHUNK_IDX_SZ) {
<a name="l00371"></a>00371 chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>=0;
<a name="l00372"></a>00372 }
<a name="l00373"></a>00373 chunk=&amp;chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">tx_idx</a>[chan-&gt;<a class="code" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a>];
<a name="l00374"></a>00374 <span class="keywordflow">if</span> (!chunk-&gt;<a class="code" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">init</a>) {
<a name="l00375"></a>00375 <span class="comment">/* We are out of tx data on this channel */</span>
<a name="l00376"></a>00376 <span class="keywordflow">break</span>;
<a name="l00377"></a>00377 }
<a name="l00378"></a>00378 }
<a name="l00379"></a>00379 }
<a name="l00380"></a>00380 }
<a name="l00381"></a>00381
<a name="l00382"></a>00382
<a name="l00383"></a>00383 err = sangoma_writemsg_hp_tdm(span-&gt;<a class="code" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a>,
<a name="l00384"></a>00384 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">tx_data</a>,<span class="keyword">sizeof</span>(api_tx_hdr_t),
<a name="l00385"></a>00385 tx_data, span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">tx_size</a>,
<a name="l00386"></a>00386 0);
<a name="l00387"></a>00387
<a name="l00388"></a>00388 lib_printf(15, NULL, <span class="stringliteral">"SPAN %i TX Len %i Expecting %i\n"</span>,
<a name="l00389"></a>00389 span-&gt;<a class="code" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a>+1, err, span-&gt;<a class="code" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">tx_size</a>+<span class="keyword">sizeof</span>(api_tx_hdr_t));
<a name="l00390"></a>00390
<a name="l00391"></a>00391 <span class="keywordflow">if</span> (err &lt; span-&gt;tx_size) {
<a name="l00392"></a>00392 <span class="keywordflow">if</span> (errno == EAGAIN) {
<a name="l00393"></a>00393 <span class="keywordflow">return</span> 0;
<a name="l00394"></a>00394 } <span class="keywordflow">else</span> {
<a name="l00395"></a>00395 <span class="keywordflow">return</span> -1;
<a name="l00396"></a>00396 }
<a name="l00397"></a>00397 } <span class="keywordflow">else</span> {
<a name="l00398"></a>00398 err=0;
<a name="l00399"></a>00399 }
<a name="l00400"></a>00400
<a name="l00401"></a>00401 <span class="keywordflow">return</span> err;
<a name="l00402"></a>00402
<a name="l00403"></a>00403 }
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,77 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: libhpsangoma_priv.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>libhpsangoma_priv.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*****************************************************************************</span>
<a name="l00002"></a>00002 <span class="comment"> * libhpsangoma.h : Sangoma High Performance TDM API - Span Based Library</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Author(s): Nenad Corbic &lt;ncorbic@sangoma.com&gt;</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * Copyright: (c) 2008 Nenad Corbic &lt;ncorbic@sangoma.com&gt;</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * This program is free software; you can redistribute it and/or</span>
<a name="l00009"></a>00009 <span class="comment"> * modify it under the terms of the GNU General Public License</span>
<a name="l00010"></a>00010 <span class="comment"> * as published by the Free Software Foundation; either version</span>
<a name="l00011"></a>00011 <span class="comment"> * 2 of the License, or (at your option) any later version.</span>
<a name="l00012"></a>00012 <span class="comment"> * ============================================================================</span>
<a name="l00013"></a>00013 <span class="comment"> */</span>
<a name="l00014"></a>00014
<a name="l00015"></a>00015 <span class="preprocessor">#ifndef _LIB_HP_SANGOMA_PRIV_H</span>
<a name="l00016"></a>00016 <span class="preprocessor"></span><span class="preprocessor">#define _LIB_HP_SANGOMA_PRIV_H</span>
<a name="l00017"></a>00017 <span class="preprocessor"></span>
<a name="l00018"></a>00018 <span class="preprocessor">#include "libhpsangoma.h"</span>
<a name="l00019"></a>00019
<a name="l00020"></a>00020
<a name="l00025"></a>00025 <span class="preprocessor">#define lib_printf(level, fp, fmt, ...) if (lib_log) lib_log(level, fp, __FILE__, __FUNCTION__, __LINE__, fmt, ##__VA_ARGS__)</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span>
<a name="l00027"></a>00027 <span class="keyword">extern</span> void (*lib_log)(<span class="keywordtype">int</span> level, FILE *fp, <span class="keywordtype">char</span> *file, <span class="keyword">const</span> <span class="keywordtype">char</span> *func, <span class="keywordtype">int</span> line, <span class="keywordtype">char</span> *fmt, ...);
<a name="l00028"></a>00028
<a name="l00029"></a>00029
<a name="l00030"></a>00030 <span class="comment">/*---------------------------------------------------------</span>
<a name="l00031"></a>00031 <span class="comment"> * PRIVATE - FUNCTIONS</span>
<a name="l00032"></a>00032 <span class="comment"> */</span>
<a name="l00033"></a>00033
<a name="l00044"></a>00044 <span class="keywordtype">int</span> sangoma_readmsg_hp_tdm(<span class="keywordtype">int</span> fd, <span class="keywordtype">void</span> *hdrbuf, <span class="keywordtype">int</span> hdrlen, <span class="keywordtype">void</span> *databuf, <span class="keywordtype">int</span> datalen, <span class="keywordtype">int</span> flag);
<a name="l00045"></a>00045
<a name="l00046"></a>00046
<a name="l00057"></a>00057 <span class="keywordtype">int</span> sangoma_writemsg_hp_tdm(<span class="keywordtype">int</span> fd, <span class="keywordtype">void</span> *hdrbuf, <span class="keywordtype">int</span> hdrlen, <span class="keywordtype">void</span> *databuf, <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> datalen, <span class="keywordtype">int</span> flag);
<a name="l00058"></a>00058
<a name="l00064"></a>00064 <span class="keywordtype">int</span> do_wanpipemon_cmd(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span);
<a name="l00065"></a>00065
<a name="l00066"></a>00066
<a name="l00072"></a>00072 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> sangoma_get_cfg(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span);
<a name="l00073"></a>00073
<a name="l00074"></a>00074
<a name="l00080"></a>00080 <span class="keywordtype">int</span> sangoma_hptdm_span_open(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span);
<a name="l00081"></a>00081
<a name="l00082"></a>00082
<a name="l00088"></a>00088 <span class="keywordtype">int</span> sangoma_hp_tdm_handle_oob_event(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span);
<a name="l00089"></a>00089
<a name="l00090"></a>00090
<a name="l00096"></a>00096 <span class="keywordtype">int</span> sangoma_hp_tdm_push_rx_data(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span);
<a name="l00097"></a>00097
<a name="l00098"></a>00098
<a name="l00104"></a>00104 <span class="keywordtype">int</span> sangoma_hp_tdm_handle_read_event(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span);
<a name="l00105"></a>00105
<a name="l00106"></a>00106
<a name="l00112"></a>00112 <span class="keywordtype">int</span> sangoma_hp_tdm_handle_write_event(<a class="code" href="structsangoma__hptdm__span.html">sangoma_hptdm_span_t</a> *span);
<a name="l00113"></a>00113
<a name="l00114"></a>00114
<a name="l00115"></a>00115
<a name="l00116"></a>00116
<a name="l00117"></a>00117 <span class="preprocessor">#endif</span>
<a name="l00118"></a>00118 <span class="preprocessor"></span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,28 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>hp_tdm_chunk Member List</h1>This is the complete list of members for <a class="el" href="structhp__tdm__chunk.html">hp_tdm_chunk</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">data</a></td><td><a class="el" href="structhp__tdm__chunk.html">hp_tdm_chunk</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">init</a></td><td><a class="el" href="structhp__tdm__chunk.html">hp_tdm_chunk</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">len</a></td><td><a class="el" href="structhp__tdm__chunk.html">hp_tdm_chunk</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">offset</a></td><td><a class="el" href="structhp__tdm__chunk.html">hp_tdm_chunk</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,116 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: hp_tdm_chunk Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>hp_tdm_chunk Struct Reference</h1><!-- doxytag: class="hp_tdm_chunk" -->A chunk structure used to implement a chunk buffer.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>&gt;</code>
<p>
<a href="structhp__tdm__chunk-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">init</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">len</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">offset</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">data</a> [SMG_HP_MAX_CHAN_DATA]</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A chunk structure used to implement a chunk buffer.
<p>
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00086">86</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="2ef17e4e751a2e523849c09a43727cb6"></a><!-- doxytag: member="hp_tdm_chunk::data" ref="2ef17e4e751a2e523849c09a43727cb6" args="[SMG_HP_MAX_CHAN_DATA]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char <a class="el" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">hp_tdm_chunk::data</a>[SMG_HP_MAX_CHAN_DATA] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
chunk data location
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00095">95</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="499da7fa85efbeef88ef5e2a499e2191"></a><!-- doxytag: member="hp_tdm_chunk::init" ref="499da7fa85efbeef88ef5e2a499e2191" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">hp_tdm_chunk::init</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
chunk init flag used to determine if chunk is being used
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00089">89</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="985fc4301c6bc466ae05e2bc57b0d37c"></a><!-- doxytag: member="hp_tdm_chunk::len" ref="985fc4301c6bc466ae05e2bc57b0d37c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">hp_tdm_chunk::len</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
length of the current data chunk
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00091">91</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="959a167c4d18c409c56f500982026e2a"></a><!-- doxytag: member="hp_tdm_chunk::offset" ref="959a167c4d18c409c56f500982026e2a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">hp_tdm_chunk::offset</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
current offset to write/read to/from the chunk data structure.
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00093">93</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,34 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_chan Member List</h1>This is the complete list of members for <a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#40fbdc65035c69d876d4a1a806e5a5db">push</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">rx_chunk</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">span</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">tx_idx</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a></td><td><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,233 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: sangoma_hptdm_chan Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_chan Struct Reference</h1><!-- doxytag: class="sangoma_hptdm_chan" -->Channel structure, describes a single timeslot/channel in a span.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>&gt;</code>
<p>
Collaboration diagram for sangoma_hptdm_chan:<p><center><img src="structsangoma__hptdm__chan__coll__graph.png" border="0" usemap="#sangoma__hptdm__chan__coll__map" alt="Collaboration graph"></center>
<map name="sangoma__hptdm__chan__coll__map">
<area href="structsangoma__hptdm__chan__reg.html" shape="rect" coords="5,7,200,33" alt="">
<area href="structhp__tdm__chunk.html" shape="rect" coords="224,7,339,33" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="structsangoma__hptdm__chan-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">init</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">chan_no</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">span_no</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">span</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">rx_chunk</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">tx_idx</a> [SMG_HP_TDM_CHUNK_IDX_SZ]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">tx_idx_in</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">tx_idx_out</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#40fbdc65035c69d876d4a1a806e5a5db">push</a> )(struct <a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a> *, char *data, int len)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">chan_reg</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Channel structure, describes a single timeslot/channel in a span.
<p>
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00115">115</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="5e5053195c086b7e5bfa683573484e8c"></a><!-- doxytag: member="sangoma_hptdm_chan::chan_no" ref="5e5053195c086b7e5bfa683573484e8c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">sangoma_hptdm_chan::chan_no</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
channel number: starting from 0
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00121">121</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="0a79dfe92034591ad20bd1656e585776"></a><!-- doxytag: member="sangoma_hptdm_chan::chan_reg" ref="0a79dfe92034591ad20bd1656e585776" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg_t</a> <a class="el" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">sangoma_hptdm_chan::chan_reg</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Channel registration struct used to store user data, cfg and callbacks
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00145">145</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="7a43df2f36462e48e1104704fe38ccc1"></a><!-- doxytag: member="sangoma_hptdm_chan::init" ref="7a43df2f36462e48e1104704fe38ccc1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">sangoma_hptdm_chan::init</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
channel init flag used to determine if chan is being used
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00118">118</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="40fbdc65035c69d876d4a1a806e5a5db"></a><!-- doxytag: member="sangoma_hptdm_chan::push" ref="40fbdc65035c69d876d4a1a806e5a5db" args=")(struct sangoma_hptdm_chan *, char *data, int len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__chan.html#40fbdc65035c69d876d4a1a806e5a5db">sangoma_hptdm_chan::push</a>)(struct <a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a> *, char *data, int len) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Callback func called by user to push chunk of data into the channel
</div>
</div><p>
<a class="anchor" name="c8d95d0d59d5f34fd70a9d700f6896f0"></a><!-- doxytag: member="sangoma_hptdm_chan::rx_chunk" ref="c8d95d0d59d5f34fd70a9d700f6896f0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a> <a class="el" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">sangoma_hptdm_chan::rx_chunk</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Rx chunk buffer used to rx data from the span
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00130">130</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="bb56d955a8e925149cbd28d4fd2dbb6a"></a><!-- doxytag: member="sangoma_hptdm_chan::span" ref="bb56d955a8e925149cbd28d4fd2dbb6a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">sangoma_hptdm_chan::span</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span object pointer the current channel belongs
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00127">127</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="1604a853c601891fe97c0e1dfef97430"></a><!-- doxytag: member="sangoma_hptdm_chan::span_no" ref="1604a853c601891fe97c0e1dfef97430" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">sangoma_hptdm_chan::span_no</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span number the current channel belongs to: starting from 0
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00124">124</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="7e12d6e901b165fc5589bd9b88cf15fc"></a><!-- doxytag: member="sangoma_hptdm_chan::tx_idx" ref="7e12d6e901b165fc5589bd9b88cf15fc" args="[SMG_HP_TDM_CHUNK_IDX_SZ]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structhp__tdm__chunk.html">hp_tmd_chunk_t</a> <a class="el" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">sangoma_hptdm_chan::tx_idx</a>[SMG_HP_TDM_CHUNK_IDX_SZ] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Circular buffer of tx data chunks used to tx data to span
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00133">133</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="14b1cadb6d30cb61a7fcd163f72a417c"></a><!-- doxytag: member="sangoma_hptdm_chan::tx_idx_in" ref="14b1cadb6d30cb61a7fcd163f72a417c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">sangoma_hptdm_chan::tx_idx_in</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Circular buffer index for user to chan tx
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00136">136</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="f006a684b96712e6ad2a14b13a2665cc"></a><!-- doxytag: member="sangoma_hptdm_chan::tx_idx_out" ref="f006a684b96712e6ad2a14b13a2665cc" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">sangoma_hptdm_chan::tx_idx_out</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Circular buffer index for chan to span tx
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00139">139</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,3 @@
base referer
rect $structsangoma__hptdm__chan__reg.html 5,7 200,33
rect $structhp__tdm__chunk.html 224,7 339,33

View File

@ -0,0 +1 @@
b71c119d6e01aec1dbb8e5a6536607e2

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@ -0,0 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_chan_map Member List</h1>This is the complete list of members for <a class="el" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">chan</a></td><td><a class="el" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">chan_no_hw</a></td><td><a class="el" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,86 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: sangoma_hptdm_chan_map Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_chan_map Struct Reference</h1><!-- doxytag: class="sangoma_hptdm_chan_map" -->Structure describing a array index of a channel inside the span structure.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>&gt;</code>
<p>
Collaboration diagram for sangoma_hptdm_chan_map:<p><center><img src="structsangoma__hptdm__chan__map__coll__graph.png" border="0" usemap="#sangoma__hptdm__chan__map__coll__map" alt="Collaboration graph"></center>
<map name="sangoma__hptdm__chan__map__coll__map">
<area href="structsangoma__hptdm__chan.html" shape="rect" coords="108,119,276,145" alt="">
<area href="structsangoma__hptdm__chan__reg.html" shape="rect" coords="5,7,200,33" alt="">
<area href="structhp__tdm__chunk.html" shape="rect" coords="224,7,339,33" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="structsangoma__hptdm__chan__map-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">chan_no_hw</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">chan</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Structure describing a array index of a channel inside the span structure.
<p>
Structure describing a array index of a channel inside the span structure. Furthermore the index * also servers as a map from hardware channels to library channels. Hardware might be configured for channels 1-15.17-31, however library always provides all 31 channels
<p>
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00157">157</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="65a3733433aa931afb5002994bb4a4cf"></a><!-- doxytag: member="sangoma_hptdm_chan_map::chan" ref="65a3733433aa931afb5002994bb4a4cf" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> <a class="el" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">sangoma_hptdm_chan_map::chan</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
A channel structure
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00165">165</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="895d7b39838f0245ac6829cd72489818"></a><!-- doxytag: member="sangoma_hptdm_chan_map::chan_no_hw" ref="895d7b39838f0245ac6829cd72489818" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">sangoma_hptdm_chan_map::chan_no_hw</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
A hardware channel number that is mapped to the current channel structure. Hardware might be configured for channels 1-15.17-31, however library always provides all 31 channels
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00162">162</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,4 @@
base referer
rect $structsangoma__hptdm__chan.html 108,119 276,145
rect $structsangoma__hptdm__chan__reg.html 5,7 200,33
rect $structhp__tdm__chunk.html 224,7 339,33

View File

@ -0,0 +1 @@
40aa88a5db6369be91695855bbf43d42

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,27 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_chan_reg Member List</h1>This is the complete list of members for <a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a></td><td><a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">rx_data</a></td><td><a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__chan__reg.html#5e46cef596c1d6db9e3d92294527312f">rx_event</a></td><td><a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: sangoma_hptdm_chan_reg Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_chan_reg Struct Reference</h1><!-- doxytag: class="sangoma_hptdm_chan_reg" -->Chan registration structure.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>&gt;</code>
<p>
<a href="structsangoma__hptdm__chan__reg-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">rx_data</a> )(void *<a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>, char *data, int len)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__chan__reg.html#5e46cef596c1d6db9e3d92294527312f">rx_event</a> )(void *<a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>, hp_tdmapi_rx_event_t *data)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Chan registration structure.
<p>
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00101">101</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="5c1df036c59cdb8dbf90bc5f39dab51e"></a><!-- doxytag: member="sangoma_hptdm_chan_reg::p" ref="5c1df036c59cdb8dbf90bc5f39dab51e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">sangoma_hptdm_chan_reg::p</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
pointer to user object used with callback functions
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00104">104</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="1caaaa25e6cafef313bca8ea29c6b612"></a><!-- doxytag: member="sangoma_hptdm_chan_reg::rx_data" ref="1caaaa25e6cafef313bca8ea29c6b612" args=")(void *p, char *data, int len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">sangoma_hptdm_chan_reg::rx_data</a>)(void *<a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>, char *data, int len) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
callback function used to pass rx chunk to user application
</div>
</div><p>
<a class="anchor" name="5e46cef596c1d6db9e3d92294527312f"></a><!-- doxytag: member="sangoma_hptdm_chan_reg::rx_event" ref="5e46cef596c1d6db9e3d92294527312f" args=")(void *p, hp_tdmapi_rx_event_t *data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__chan__reg.html#5e46cef596c1d6db9e3d92294527312f">sangoma_hptdm_chan_reg::rx_event</a>)(void *<a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">p</a>, hp_tdmapi_rx_event_t *data) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
callback function used to pass channel specific event to user application
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,49 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_span Member List</h1>This is the complete list of members for <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#04ab1744bee8d7333303e8da52c46b74">close_chan</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">close_span</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#c40f099ec1797a9188596912cd9bc545">event_ctrl</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#96b3b3ada170989b083646b3f8e4004b">get_cfg</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#fb940d35a9dc0a91871be3100c0a90f5">hwcoding</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">idle</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">if_name</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">init</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#3a41fea372d8c4c8318f842134b93b3e">is_chan_closed</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">max_chans</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#01c3eefc1ed1e4482093deba3d167806">open_chan</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#df409d25fbe30c631146616298d715b8">run_span</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">rx_len</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#ee171f9edaddbe0c76c56c151d0ca18e">timeslot_cfg</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">tx_data</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#70ddcf83aeb3c5f7a4792fa50042bf42">tx_len</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">tx_size</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a></td><td><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,570 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: sangoma_hptdm_span Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_span Struct Reference</h1><!-- doxytag: class="sangoma_hptdm_span" -->Span structure. Structure describing a single span.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>&gt;</code>
<p>
Collaboration diagram for sangoma_hptdm_span:<p><center><img src="structsangoma__hptdm__span__coll__graph.png" border="0" usemap="#sangoma__hptdm__span__coll__map" alt="Collaboration graph"></center>
<map name="sangoma__hptdm__span__coll__map">
<area href="structsangoma__hptdm__span__reg.html" shape="rect" coords="5,215,200,241" alt="">
<area href="structsangoma__hptdm__chan__map.html" shape="rect" coords="224,215,427,241" alt="">
<area href="structsangoma__hptdm__chan.html" shape="rect" coords="241,119,409,145" alt="">
<area href="structsangoma__hptdm__chan__reg.html" shape="rect" coords="139,7,333,33" alt="">
<area href="structhp__tdm__chunk.html" shape="rect" coords="357,7,472,33" alt="">
</map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="structsangoma__hptdm__span-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">init</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">span_no</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">if_name</a> [100]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sock</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">chunk_sz</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">max_chans</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">tx_size</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">idle</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#ee171f9edaddbe0c76c56c151d0ca18e">timeslot_cfg</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#fb940d35a9dc0a91871be3100c0a90f5">hwcoding</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">chan_idx</a> [SMG_HP_TDM_MAX_CHANS]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">rx_data</a> [SMG_HP_MAX_SPAN_DATA]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">rx_len</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">tx_data</a> [SMG_HP_MAX_SPAN_DATA]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#70ddcf83aeb3c5f7a4792fa50042bf42">tx_len</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">span_reg</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">wan_if_cfg_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">span_cfg</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">wan_udp_hdr_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">wan_udp</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#01c3eefc1ed1e4482093deba3d167806">open_chan</a> )(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span, <a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg_t</a> *chan_reg, unsigned int chan_no, <a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> **chan_ptr)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method: open a channel inside a span. <a href="#01c3eefc1ed1e4482093deba3d167806"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#04ab1744bee8d7333303e8da52c46b74">close_chan</a> )(<a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method: close a channel inside the span. <a href="#04ab1744bee8d7333303e8da52c46b74"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#3a41fea372d8c4c8318f842134b93b3e">is_chan_closed</a> )(<a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method: check if channel is closed. <a href="#3a41fea372d8c4c8318f842134b93b3e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#df409d25fbe30c631146616298d715b8">run_span</a> )(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method: run main span execution logic: rx/tx/oob. <a href="#df409d25fbe30c631146616298d715b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">close_span</a> )(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method: close span. <a href="#374c4f8d8a6df82f7a22ee777d3c0cc9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#c40f099ec1797a9188596912cd9bc545">event_ctrl</a> )(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span, hp_tdmapi_tx_event_t *event)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method: used by user app to execute events on current span. <a href="#c40f099ec1797a9188596912cd9bc545"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span.html#96b3b3ada170989b083646b3f8e4004b">get_cfg</a> )(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span, wan_if_cfg_t *cfg)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method: request full span configuration from a current span. <a href="#96b3b3ada170989b083646b3f8e4004b"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Span structure. Structure describing a single span.
<p>
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00173">173</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="63de8342af835a970d8105c2fe5282dc"></a><!-- doxytag: member="sangoma_hptdm_span::chan_idx" ref="63de8342af835a970d8105c2fe5282dc" args="[SMG_HP_TDM_MAX_CHANS]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map_t</a> <a class="el" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">sangoma_hptdm_span::chan_idx</a>[SMG_HP_TDM_MAX_CHANS] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
array of maximum number of channels in a span
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00206">206</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="c8ea25063a09267bbe22084e6cb7a32c"></a><!-- doxytag: member="sangoma_hptdm_span::chunk_sz" ref="c8ea25063a09267bbe22084e6cb7a32c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">sangoma_hptdm_span::chunk_sz</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
chunk size for each channel inside the span
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00188">188</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="04ab1744bee8d7333303e8da52c46b74"></a><!-- doxytag: member="sangoma_hptdm_span::close_chan" ref="04ab1744bee8d7333303e8da52c46b74" args=")(sangoma_hptdm_chan_t *chan)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__span.html#04ab1744bee8d7333303e8da52c46b74">sangoma_hptdm_span::close_chan</a>)(<a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Method: close a channel inside the span.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>chan object </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="374c4f8d8a6df82f7a22ee777d3c0cc9"></a><!-- doxytag: member="sangoma_hptdm_span::close_span" ref="374c4f8d8a6df82f7a22ee777d3c0cc9" args=")(struct sangoma_hptdm_span *span)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">sangoma_hptdm_span::close_span</a>)(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Method: close span.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>span</em>&nbsp;</td><td>span object </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="c40f099ec1797a9188596912cd9bc545"></a><!-- doxytag: member="sangoma_hptdm_span::event_ctrl" ref="c40f099ec1797a9188596912cd9bc545" args=")(struct sangoma_hptdm_span *span, hp_tdmapi_tx_event_t *event)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__span.html#c40f099ec1797a9188596912cd9bc545">sangoma_hptdm_span::event_ctrl</a>)(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span, hp_tdmapi_tx_event_t *event) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Method: used by user app to execute events on current span.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>span</em>&nbsp;</td><td>span object </td></tr>
<tr><td valign="top"></td><td valign="top"><em>event</em>&nbsp;</td><td>event object </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="96b3b3ada170989b083646b3f8e4004b"></a><!-- doxytag: member="sangoma_hptdm_span::get_cfg" ref="96b3b3ada170989b083646b3f8e4004b" args=")(struct sangoma_hptdm_span *span, wan_if_cfg_t *cfg)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__span.html#96b3b3ada170989b083646b3f8e4004b">sangoma_hptdm_span::get_cfg</a>)(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span, wan_if_cfg_t *cfg) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Method: request full span configuration from a current span.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>span</em>&nbsp;</td><td>span object </td></tr>
<tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>configuratoin object to be filled by span </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="fb940d35a9dc0a91871be3100c0a90f5"></a><!-- doxytag: member="sangoma_hptdm_span::hwcoding" ref="fb940d35a9dc0a91871be3100c0a90f5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="structsangoma__hptdm__span.html#fb940d35a9dc0a91871be3100c0a90f5">sangoma_hptdm_span::hwcoding</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
hw data encoding: ULAW/ALAW obtained from hw interface
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00203">203</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="15230551ba1429679eda4ac11cf7ebf7"></a><!-- doxytag: member="sangoma_hptdm_span::idle" ref="15230551ba1429679eda4ac11cf7ebf7" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned char <a class="el" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">sangoma_hptdm_span::idle</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
idle flag used to fill an unused channel
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00197">197</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="ea2f0206a546ae74962f84e482f63276"></a><!-- doxytag: member="sangoma_hptdm_span::if_name" ref="ea2f0206a546ae74962f84e482f63276" args="[100]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char <a class="el" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">sangoma_hptdm_span::if_name</a>[100] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span hw interface name to which span is bounded to
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00182">182</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="6cacbe722a1744a26412799552186cb5"></a><!-- doxytag: member="sangoma_hptdm_span::init" ref="6cacbe722a1744a26412799552186cb5" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">sangoma_hptdm_span::init</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span init flag used to determine if span is being used
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00176">176</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="3a41fea372d8c4c8318f842134b93b3e"></a><!-- doxytag: member="sangoma_hptdm_span::is_chan_closed" ref="3a41fea372d8c4c8318f842134b93b3e" args=")(sangoma_hptdm_chan_t *chan)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__span.html#3a41fea372d8c4c8318f842134b93b3e">sangoma_hptdm_span::is_chan_closed</a>)(<a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> *chan) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Method: check if channel is closed.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>chan</em>&nbsp;</td><td>chan object </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="9efd139e4214d62b07060147acfd2849"></a><!-- doxytag: member="sangoma_hptdm_span::max_chans" ref="9efd139e4214d62b07060147acfd2849" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">sangoma_hptdm_span::max_chans</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
total number of channels configured in the span
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00191">191</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="01c3eefc1ed1e4482093deba3d167806"></a><!-- doxytag: member="sangoma_hptdm_span::open_chan" ref="01c3eefc1ed1e4482093deba3d167806" args=")(struct sangoma_hptdm_span *span, sangoma_hptdm_chan_reg_t *chan_reg, unsigned int chan_no, sangoma_hptdm_chan_t **chan_ptr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__span.html#01c3eefc1ed1e4482093deba3d167806">sangoma_hptdm_span::open_chan</a>)(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span, <a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg_t</a> *chan_reg, unsigned int chan_no, <a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan_t</a> **chan_ptr) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Method: open a channel inside a span.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>span</em>&nbsp;</td><td>span object </td></tr>
<tr><td valign="top"></td><td valign="top"><em>chan_reg</em>&nbsp;</td><td>channel registration structure: callbacks and cfg </td></tr>
<tr><td valign="top"></td><td valign="top"><em>chan_no</em>&nbsp;</td><td>channel number - integer starting from 0 </td></tr>
<tr><td valign="top"></td><td valign="top"><em>chan_ptr</em>&nbsp;</td><td>user container for channel object passed up to the user. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="df409d25fbe30c631146616298d715b8"></a><!-- doxytag: member="sangoma_hptdm_span::run_span" ref="df409d25fbe30c631146616298d715b8" args=")(struct sangoma_hptdm_span *span)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__span.html#df409d25fbe30c631146616298d715b8">sangoma_hptdm_span::run_span</a>)(struct <a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a> *span) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Method: run main span execution logic: rx/tx/oob.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>span</em>&nbsp;</td><td>span object</td></tr>
</table>
</dl>
Run main span execution logic. This function peforms all socket operations on a hw interface. Rx/Tx/Oob. Receives data and demultiplexes it to channels. Receives oob data and passes user events global to all channels. Multiplexes all channel tx data into a single tx data block and passes it to hw iface.
</div>
</div><p>
<a class="anchor" name="917ee1efbde4fef0550aff1b1a5ae5cf"></a><!-- doxytag: member="sangoma_hptdm_span::rx_data" ref="917ee1efbde4fef0550aff1b1a5ae5cf" args="[SMG_HP_MAX_SPAN_DATA]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char <a class="el" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">sangoma_hptdm_span::rx_data</a>[SMG_HP_MAX_SPAN_DATA] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span rx data block: used to receive a block of data from hw interface: recv()
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00209">209</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="88165ecfc96fcdc432154d7cdc93b7aa"></a><!-- doxytag: member="sangoma_hptdm_span::rx_len" ref="88165ecfc96fcdc432154d7cdc93b7aa" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">sangoma_hptdm_span::rx_len</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span rx data len, obtained after a recv() call to hw interface
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00212">212</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="2beb9a0490cfda191875bbaf58e79453"></a><!-- doxytag: member="sangoma_hptdm_span::sock" ref="2beb9a0490cfda191875bbaf58e79453" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sangoma_hptdm_span::sock</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span socket file descriptor used to rx/tx data to and from hw interface
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00185">185</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="000b5bc46e96a6ce6ce0601b262758a4"></a><!-- doxytag: member="sangoma_hptdm_span::span_cfg" ref="000b5bc46e96a6ce6ce0601b262758a4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">wan_if_cfg_t <a class="el" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">sangoma_hptdm_span::span_cfg</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span config structure obtained from hw interface via managment ioctl call.
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00224">224</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="6ddf12c36674099ef529234d9057e5ef"></a><!-- doxytag: member="sangoma_hptdm_span::span_no" ref="6ddf12c36674099ef529234d9057e5ef" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">sangoma_hptdm_span::span_no</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span number - integer starting from 0
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00179">179</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="3fe0c377ed097e61a98b9b278a2ec870"></a><!-- doxytag: member="sangoma_hptdm_span::span_reg" ref="3fe0c377ed097e61a98b9b278a2ec870" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg_t</a> <a class="el" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">sangoma_hptdm_span::span_reg</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span registration functions: contains user callback functions
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00221">221</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="ee171f9edaddbe0c76c56c151d0ca18e"></a><!-- doxytag: member="sangoma_hptdm_span::timeslot_cfg" ref="ee171f9edaddbe0c76c56c151d0ca18e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int <a class="el" href="structsangoma__hptdm__span.html#ee171f9edaddbe0c76c56c151d0ca18e">sangoma_hptdm_span::timeslot_cfg</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
bit map of configured timeslots obtained from hw interface
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00200">200</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="79ae4bccb7e92866e20e816a629c9ce7"></a><!-- doxytag: member="sangoma_hptdm_span::tx_data" ref="79ae4bccb7e92866e20e816a629c9ce7" args="[SMG_HP_MAX_SPAN_DATA]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char <a class="el" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">sangoma_hptdm_span::tx_data</a>[SMG_HP_MAX_SPAN_DATA] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span tx data block: used to transmit a block of data to hw interface: send()
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00215">215</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="70ddcf83aeb3c5f7a4792fa50042bf42"></a><!-- doxytag: member="sangoma_hptdm_span::tx_len" ref="70ddcf83aeb3c5f7a4792fa50042bf42" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__span.html#70ddcf83aeb3c5f7a4792fa50042bf42">sangoma_hptdm_span::tx_len</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span tx data block len: passed to send() function
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00218">218</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="c3bad0a028665de4385f792bf0be3c55"></a><!-- doxytag: member="sangoma_hptdm_span::tx_size" ref="c3bad0a028665de4385f792bf0be3c55" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">sangoma_hptdm_span::tx_size</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
total tx data size to hw interface. tx_size = max_chans * chunk_sz
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00194">194</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="06aa115c3c6f6cf024484fdd6bf1bff4"></a><!-- doxytag: member="sangoma_hptdm_span::wan_udp" ref="06aa115c3c6f6cf024484fdd6bf1bff4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">wan_udp_hdr_t <a class="el" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">sangoma_hptdm_span::wan_udp</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
span managment structure used to execute mgmnt ioctl commands to hw interface
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00227">227</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,6 @@
base referer
rect $structsangoma__hptdm__span__reg.html 5,215 200,241
rect $structsangoma__hptdm__chan__map.html 224,215 427,241
rect $structsangoma__hptdm__chan.html 241,119 409,145
rect $structsangoma__hptdm__chan__reg.html 139,7 333,33
rect $structhp__tdm__chunk.html 357,7 472,33

View File

@ -0,0 +1 @@
dbfe10cc718b1da1aa9b9afb65255814

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,27 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Member List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_span_reg Member List</h1>This is the complete list of members for <a class="el" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg</a>, including all inherited members.<p><table>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span__reg.html#7bf92eb6462caa381461bd9816b6a913">log</a></td><td><a class="el" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a></td><td><a class="el" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg</a></td><td></td></tr>
<tr class="memlist"><td><a class="el" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">rx_event</a></td><td><a class="el" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg</a></td><td></td></tr>
</table><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: sangoma_hptdm_span_reg Struct Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>sangoma_hptdm_span_reg Struct Reference</h1><!-- doxytag: class="sangoma_hptdm_span_reg" -->Span registration structure.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>&gt;</code>
<p>
<a href="structsangoma__hptdm__span__reg-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span__reg.html#7bf92eb6462caa381461bd9816b6a913">log</a> )(int level, FILE *fp, char *file, const char *func, int line, char *fmt,...)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">rx_event</a> )(void *<a class="el" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a>, hp_tdmapi_rx_event_t *data)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Span registration structure.
<p>
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00072">72</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="7bf92eb6462caa381461bd9816b6a913"></a><!-- doxytag: member="sangoma_hptdm_span_reg::log" ref="7bf92eb6462caa381461bd9816b6a913" args=")(int level, FILE *fp, char *file, const char *func, int line, char *fmt,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* <a class="el" href="structsangoma__hptdm__span__reg.html#7bf92eb6462caa381461bd9816b6a913">sangoma_hptdm_span_reg::log</a>)(int level, FILE *fp, char *file, const char *func, int line, char *fmt,...) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
callback function to implement library logging
</div>
</div><p>
<a class="anchor" name="23010e26a1e33a91d94fa7f22fe588c1"></a><!-- doxytag: member="sangoma_hptdm_span_reg::p" ref="23010e26a1e33a91d94fa7f22fe588c1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">sangoma_hptdm_span_reg::p</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
pointer to user object used with callback functions
<p>
Definition at line <a class="el" href="libhpsangoma_8h-source.html#l00075">75</a> of file <a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a>.
</div>
</div><p>
<a class="anchor" name="30987897dd298e9f5e604e8c6cef9081"></a><!-- doxytag: member="sangoma_hptdm_span_reg::rx_event" ref="30987897dd298e9f5e604e8c6cef9081" args=")(void *p, hp_tdmapi_rx_event_t *data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int(* <a class="el" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">sangoma_hptdm_span_reg::rx_event</a>)(void *<a class="el" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">p</a>, hp_tdmapi_rx_event_t *data) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
callback function to span global events for all channels in a span
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="libhpsangoma_8h-source.html">libhpsangoma.h</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,102 @@
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
DIV.tabs
{
float : left;
width : 100%;
background : url("tab_b.gif") repeat-x bottom;
margin-bottom : 4px;
}
DIV.tabs UL
{
margin : 0px;
padding-left : 10px;
list-style : none;
}
DIV.tabs LI, DIV.tabs FORM
{
display : inline;
margin : 0px;
padding : 0px;
}
DIV.tabs FORM
{
float : right;
}
DIV.tabs A
{
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
DIV.tabs A:hover
{
background-position: 100% -150px;
}
DIV.tabs A:link, DIV.tabs A:visited,
DIV.tabs A:active, DIV.tabs A:hover
{
color: #1A419D;
}
DIV.tabs SPAN
{
float : left;
display : block;
background : url("tab_l.gif") no-repeat left top;
padding : 5px 9px;
white-space : nowrap;
}
DIV.tabs INPUT
{
float : right;
display : inline;
font-size : 1em;
}
DIV.tabs TD
{
font-size : x-small;
font-weight : bold;
text-decoration : none;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
DIV.tabs SPAN {float : none;}
/* End IE5-Mac hack */
DIV.tabs A:hover SPAN
{
background-position: 0% -150px;
}
DIV.tabs LI#current A
{
background-position: 100% -150px;
border-width : 0px;
}
DIV.tabs LI#current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
DIV.nav
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
}

View File

@ -0,0 +1,31 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Class List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<h1>libhpsangoma Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
<tr><td class="indexkey"><a class="el" href="structhp__tdm__chunk.html">hp_tdm_chunk</a></td><td class="indexvalue">A chunk structure used to implement a chunk buffer </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__chan.html">sangoma_hptdm_chan</a></td><td class="indexvalue">Channel structure, describes a single timeslot/channel in a span </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__chan__map.html">sangoma_hptdm_chan_map</a></td><td class="indexvalue">Structure describing a array index of a channel inside the span structure </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__chan__reg.html">sangoma_hptdm_chan_reg</a></td><td class="indexvalue">Chan registration structure </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__span.html">sangoma_hptdm_span</a></td><td class="indexvalue">Span structure. Structure describing a single span </td></tr>
<tr><td class="indexkey"><a class="el" href="structsangoma__hptdm__span__reg.html">sangoma_hptdm_span_reg</a></td><td class="indexvalue">Span registration structure </td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,358 @@
BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
font-family: Geneva, Arial, Helvetica, sans-serif;
}
BODY,TD {
font-size: 90%;
}
H1 {
text-align: center;
font-size: 160%;
}
H2 {
font-size: 120%;
}
H3 {
font-size: 100%;
}
CAPTION { font-weight: bold }
DIV.qindex {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.nav {
width: 100%;
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
line-height: 140%;
}
DIV.navtab {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
TD.navtab {
font-size: 70%;
}
A.qindex {
text-decoration: none;
font-weight: bold;
color: #1A419D;
}
A.qindex:visited {
text-decoration: none;
font-weight: bold;
color: #1A419D
}
A.qindex:hover {
text-decoration: none;
background-color: #ddddff;
}
A.qindexHL {
text-decoration: none;
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
A.qindexHL:hover {
text-decoration: none;
background-color: #6666cc;
color: #ffffff;
}
A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
A.el { text-decoration: none; font-weight: bold }
A.elRef { font-weight: bold }
A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
A.codeRef:link { font-weight: normal; color: #0000FF}
A.codeRef:visited { font-weight: normal; color: #0000FF}
A:hover { text-decoration: none; background-color: #f2f2ff }
DL.el { margin-left: -1cm }
.fragment {
font-family: monospace, fixed;
font-size: 95%;
}
PRE.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
margin-top: 4px;
margin-bottom: 4px;
margin-left: 2px;
margin-right: 8px;
padding-left: 6px;
padding-right: 6px;
padding-top: 4px;
padding-bottom: 4px;
}
DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
DIV.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
BODY {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
TD.indexkey {
background-color: #e8eef2;
font-weight: bold;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TD.indexvalue {
background-color: #e8eef2;
font-style: italic;
padding-right : 10px;
padding-top : 2px;
padding-left : 10px;
padding-bottom : 2px;
margin-left : 0px;
margin-right : 0px;
margin-top : 2px;
margin-bottom : 2px;
border: 1px solid #CCCCCC;
}
TR.memlist {
background-color: #f0f0f0;
}
P.formulaDsp { text-align: center; }
IMG.formulaDsp { }
IMG.formulaInl { vertical-align: middle; }
SPAN.keyword { color: #008000 }
SPAN.keywordtype { color: #604020 }
SPAN.keywordflow { color: #e08000 }
SPAN.comment { color: #800000 }
SPAN.preprocessor { color: #806020 }
SPAN.stringliteral { color: #002080 }
SPAN.charliteral { color: #008080 }
.mdescLeft {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.mdescRight {
padding: 0px 8px 4px 8px;
font-size: 80%;
font-style: italic;
background-color: #FAFAFA;
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.memItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemLeft {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplItemRight {
padding: 1px 8px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
background-color: #FAFAFA;
font-size: 80%;
}
.memTemplParams {
padding: 1px 0px 0px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #E0E0E0;
border-right-color: #E0E0E0;
border-bottom-color: #E0E0E0;
border-left-color: #E0E0E0;
border-top-style: solid;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
color: #606060;
background-color: #FAFAFA;
font-size: 80%;
}
.search { color: #003399;
font-weight: bold;
}
FORM.search {
margin-bottom: 0px;
margin-top: 0px;
}
INPUT.search { font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
TD.tiny { font-size: 75%;
}
a {
color: #1A41A8;
}
a:visited {
color: #2A3798;
}
.dirtab { padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
TH.dirtab { background: #e8eef2;
font-weight: bold;
}
HR { height: 1px;
border: none;
border-top: 1px solid black;
}
/* Style for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 4px;
background-color: #eef3f5;
border-width: 1px;
border-style: solid;
border-color: #dedeee;
-moz-border-radius: 8px 8px 8px 8px;
}
.memname {
white-space: nowrap;
font-weight: bold;
}
.memdoc{
padding-left: 10px;
}
.memproto {
background-color: #d5e1e8;
width: 100%;
border-width: 1px;
border-style: solid;
border-color: #84b0c7;
font-weight: bold;
-moz-border-radius: 8px 8px 8px 8px;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
font-style: italic;
}
/* End Styling for detailed member documentation */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin:0.5em;
}
.directory { font-size: 9pt; font-weight: bold; }
.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
.directory > h3 { margin-top: 0; }
.directory p { margin: 0px; white-space: nowrap; }
.directory div { display: none; margin: 0px; }
.directory img { vertical-align: -30%; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,24 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: File Index</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>libhpsangoma File List</h1>Here is a list of all documented files with brief descriptions:<table>
<tr><td class="indexkey"><b>libhpsangoma.c</b> <a href="libhpsangoma_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>libhpsangoma.h</b> <a href="libhpsangoma_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>libhpsangoma_priv.c</b> <a href="libhpsangoma__priv_8c-source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>libhpsangoma_priv.h</b> <a href="libhpsangoma__priv_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,120 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Class Members</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li id="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
<p>
Here is a list of all documented class members with links to the class documentation for each member:
<p>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>chan
: <a class="el" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">sangoma_hptdm_chan_map</a><li>chan_idx
: <a class="el" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">sangoma_hptdm_span</a><li>chan_no
: <a class="el" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">sangoma_hptdm_chan</a><li>chan_no_hw
: <a class="el" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">sangoma_hptdm_chan_map</a><li>chan_reg
: <a class="el" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">sangoma_hptdm_chan</a><li>chunk_sz
: <a class="el" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">sangoma_hptdm_span</a><li>close_chan
: <a class="el" href="structsangoma__hptdm__span.html#04ab1744bee8d7333303e8da52c46b74">sangoma_hptdm_span</a><li>close_span
: <a class="el" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>data
: <a class="el" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">hp_tdm_chunk</a></ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>event_ctrl
: <a class="el" href="structsangoma__hptdm__span.html#c40f099ec1797a9188596912cd9bc545">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
<li>get_cfg
: <a class="el" href="structsangoma__hptdm__span.html#96b3b3ada170989b083646b3f8e4004b">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
<li>hwcoding
: <a class="el" href="structsangoma__hptdm__span.html#fb940d35a9dc0a91871be3100c0a90f5">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>idle
: <a class="el" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">sangoma_hptdm_span</a><li>if_name
: <a class="el" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">sangoma_hptdm_span</a><li>init
: <a class="el" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">sangoma_hptdm_chan</a>, <a class="el" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">hp_tdm_chunk</a><li>is_chan_closed
: <a class="el" href="structsangoma__hptdm__span.html#3a41fea372d8c4c8318f842134b93b3e">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>len
: <a class="el" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">hp_tdm_chunk</a><li>log
: <a class="el" href="structsangoma__hptdm__span__reg.html#7bf92eb6462caa381461bd9816b6a913">sangoma_hptdm_span_reg</a></ul>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
<li>max_chans
: <a class="el" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
<li>offset
: <a class="el" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">hp_tdm_chunk</a><li>open_chan
: <a class="el" href="structsangoma__hptdm__span.html#01c3eefc1ed1e4482093deba3d167806">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>p
: <a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">sangoma_hptdm_chan_reg</a>, <a class="el" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">sangoma_hptdm_span_reg</a><li>push
: <a class="el" href="structsangoma__hptdm__chan.html#40fbdc65035c69d876d4a1a806e5a5db">sangoma_hptdm_chan</a></ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>run_span
: <a class="el" href="structsangoma__hptdm__span.html#df409d25fbe30c631146616298d715b8">sangoma_hptdm_span</a><li>rx_chunk
: <a class="el" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">sangoma_hptdm_chan</a><li>rx_data
: <a class="el" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">sangoma_hptdm_chan_reg</a><li>rx_event
: <a class="el" href="structsangoma__hptdm__chan__reg.html#5e46cef596c1d6db9e3d92294527312f">sangoma_hptdm_chan_reg</a>, <a class="el" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">sangoma_hptdm_span_reg</a><li>rx_len
: <a class="el" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>sock
: <a class="el" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sangoma_hptdm_span</a><li>span
: <a class="el" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">sangoma_hptdm_chan</a><li>span_cfg
: <a class="el" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">sangoma_hptdm_span</a><li>span_no
: <a class="el" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">sangoma_hptdm_chan</a><li>span_reg
: <a class="el" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>timeslot_cfg
: <a class="el" href="structsangoma__hptdm__span.html#ee171f9edaddbe0c76c56c151d0ca18e">sangoma_hptdm_span</a><li>tx_data
: <a class="el" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">sangoma_hptdm_span</a><li>tx_idx
: <a class="el" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">sangoma_hptdm_chan</a><li>tx_idx_in
: <a class="el" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">sangoma_hptdm_chan</a><li>tx_idx_out
: <a class="el" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">sangoma_hptdm_chan</a><li>tx_len
: <a class="el" href="structsangoma__hptdm__span.html#70ddcf83aeb3c5f7a4792fa50042bf42">sangoma_hptdm_span</a><li>tx_size
: <a class="el" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
<li>wan_udp
: <a class="el" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">sangoma_hptdm_span</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,120 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Class Members - Variables</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li id="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li id="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li id="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
<p>
&nbsp;
<p>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>chan
: <a class="el" href="structsangoma__hptdm__chan__map.html#65a3733433aa931afb5002994bb4a4cf">sangoma_hptdm_chan_map</a><li>chan_idx
: <a class="el" href="structsangoma__hptdm__span.html#63de8342af835a970d8105c2fe5282dc">sangoma_hptdm_span</a><li>chan_no
: <a class="el" href="structsangoma__hptdm__chan.html#5e5053195c086b7e5bfa683573484e8c">sangoma_hptdm_chan</a><li>chan_no_hw
: <a class="el" href="structsangoma__hptdm__chan__map.html#895d7b39838f0245ac6829cd72489818">sangoma_hptdm_chan_map</a><li>chan_reg
: <a class="el" href="structsangoma__hptdm__chan.html#0a79dfe92034591ad20bd1656e585776">sangoma_hptdm_chan</a><li>chunk_sz
: <a class="el" href="structsangoma__hptdm__span.html#c8ea25063a09267bbe22084e6cb7a32c">sangoma_hptdm_span</a><li>close_chan
: <a class="el" href="structsangoma__hptdm__span.html#04ab1744bee8d7333303e8da52c46b74">sangoma_hptdm_span</a><li>close_span
: <a class="el" href="structsangoma__hptdm__span.html#374c4f8d8a6df82f7a22ee777d3c0cc9">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>data
: <a class="el" href="structhp__tdm__chunk.html#2ef17e4e751a2e523849c09a43727cb6">hp_tdm_chunk</a></ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>event_ctrl
: <a class="el" href="structsangoma__hptdm__span.html#c40f099ec1797a9188596912cd9bc545">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
<li>get_cfg
: <a class="el" href="structsangoma__hptdm__span.html#96b3b3ada170989b083646b3f8e4004b">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_h">- h -</a></h3><ul>
<li>hwcoding
: <a class="el" href="structsangoma__hptdm__span.html#fb940d35a9dc0a91871be3100c0a90f5">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>idle
: <a class="el" href="structsangoma__hptdm__span.html#15230551ba1429679eda4ac11cf7ebf7">sangoma_hptdm_span</a><li>if_name
: <a class="el" href="structsangoma__hptdm__span.html#ea2f0206a546ae74962f84e482f63276">sangoma_hptdm_span</a><li>init
: <a class="el" href="structsangoma__hptdm__span.html#6cacbe722a1744a26412799552186cb5">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan.html#7a43df2f36462e48e1104704fe38ccc1">sangoma_hptdm_chan</a>, <a class="el" href="structhp__tdm__chunk.html#499da7fa85efbeef88ef5e2a499e2191">hp_tdm_chunk</a><li>is_chan_closed
: <a class="el" href="structsangoma__hptdm__span.html#3a41fea372d8c4c8318f842134b93b3e">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>len
: <a class="el" href="structhp__tdm__chunk.html#985fc4301c6bc466ae05e2bc57b0d37c">hp_tdm_chunk</a><li>log
: <a class="el" href="structsangoma__hptdm__span__reg.html#7bf92eb6462caa381461bd9816b6a913">sangoma_hptdm_span_reg</a></ul>
<h3><a class="anchor" name="index_m">- m -</a></h3><ul>
<li>max_chans
: <a class="el" href="structsangoma__hptdm__span.html#9efd139e4214d62b07060147acfd2849">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_o">- o -</a></h3><ul>
<li>offset
: <a class="el" href="structhp__tdm__chunk.html#959a167c4d18c409c56f500982026e2a">hp_tdm_chunk</a><li>open_chan
: <a class="el" href="structsangoma__hptdm__span.html#01c3eefc1ed1e4482093deba3d167806">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>p
: <a class="el" href="structsangoma__hptdm__chan__reg.html#5c1df036c59cdb8dbf90bc5f39dab51e">sangoma_hptdm_chan_reg</a>, <a class="el" href="structsangoma__hptdm__span__reg.html#23010e26a1e33a91d94fa7f22fe588c1">sangoma_hptdm_span_reg</a><li>push
: <a class="el" href="structsangoma__hptdm__chan.html#40fbdc65035c69d876d4a1a806e5a5db">sangoma_hptdm_chan</a></ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>run_span
: <a class="el" href="structsangoma__hptdm__span.html#df409d25fbe30c631146616298d715b8">sangoma_hptdm_span</a><li>rx_chunk
: <a class="el" href="structsangoma__hptdm__chan.html#c8d95d0d59d5f34fd70a9d700f6896f0">sangoma_hptdm_chan</a><li>rx_data
: <a class="el" href="structsangoma__hptdm__span.html#917ee1efbde4fef0550aff1b1a5ae5cf">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan__reg.html#1caaaa25e6cafef313bca8ea29c6b612">sangoma_hptdm_chan_reg</a><li>rx_event
: <a class="el" href="structsangoma__hptdm__chan__reg.html#5e46cef596c1d6db9e3d92294527312f">sangoma_hptdm_chan_reg</a>, <a class="el" href="structsangoma__hptdm__span__reg.html#30987897dd298e9f5e604e8c6cef9081">sangoma_hptdm_span_reg</a><li>rx_len
: <a class="el" href="structsangoma__hptdm__span.html#88165ecfc96fcdc432154d7cdc93b7aa">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>sock
: <a class="el" href="structsangoma__hptdm__span.html#2beb9a0490cfda191875bbaf58e79453">sangoma_hptdm_span</a><li>span
: <a class="el" href="structsangoma__hptdm__chan.html#bb56d955a8e925149cbd28d4fd2dbb6a">sangoma_hptdm_chan</a><li>span_cfg
: <a class="el" href="structsangoma__hptdm__span.html#000b5bc46e96a6ce6ce0601b262758a4">sangoma_hptdm_span</a><li>span_no
: <a class="el" href="structsangoma__hptdm__span.html#6ddf12c36674099ef529234d9057e5ef">sangoma_hptdm_span</a>, <a class="el" href="structsangoma__hptdm__chan.html#1604a853c601891fe97c0e1dfef97430">sangoma_hptdm_chan</a><li>span_reg
: <a class="el" href="structsangoma__hptdm__span.html#3fe0c377ed097e61a98b9b278a2ec870">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_t">- t -</a></h3><ul>
<li>timeslot_cfg
: <a class="el" href="structsangoma__hptdm__span.html#ee171f9edaddbe0c76c56c151d0ca18e">sangoma_hptdm_span</a><li>tx_data
: <a class="el" href="structsangoma__hptdm__span.html#79ae4bccb7e92866e20e816a629c9ce7">sangoma_hptdm_span</a><li>tx_idx
: <a class="el" href="structsangoma__hptdm__chan.html#7e12d6e901b165fc5589bd9b88cf15fc">sangoma_hptdm_chan</a><li>tx_idx_in
: <a class="el" href="structsangoma__hptdm__chan.html#14b1cadb6d30cb61a7fcd163f72a417c">sangoma_hptdm_chan</a><li>tx_idx_out
: <a class="el" href="structsangoma__hptdm__chan.html#f006a684b96712e6ad2a14b13a2665cc">sangoma_hptdm_chan</a><li>tx_len
: <a class="el" href="structsangoma__hptdm__span.html#70ddcf83aeb3c5f7a4792fa50042bf42">sangoma_hptdm_span</a><li>tx_size
: <a class="el" href="structsangoma__hptdm__span.html#c3bad0a028665de4385f792bf0be3c55">sangoma_hptdm_span</a></ul>
<h3><a class="anchor" name="index_w">- w -</a></h3><ul>
<li>wan_udp
: <a class="el" href="structsangoma__hptdm__span.html#06aa115c3c6f6cf024484fdd6bf1bff4">sangoma_hptdm_span</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

View File

@ -0,0 +1,22 @@
digraph G
{
edge [fontname="FreeSans.ttf",fontsize=10,labelfontname="FreeSans.ttf",labelfontsize=10];
node [fontname="FreeSans.ttf",fontsize=10,shape=record];
Node9 [shape="box",label="Inherited",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",fillcolor="grey75",style="filled" fontcolor="black"];
Node10 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node10 [shape="box",label="PublicBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPublicBase.html"];
Node11 -> Node10 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node11 [shape="box",label="Truncated",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="red",URL="$classTruncated.html"];
Node13 -> Node9 [dir=back,color="darkgreen",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node13 [shape="box",label="ProtectedBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classProtectedBase.html"];
Node14 -> Node9 [dir=back,color="firebrick4",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node14 [shape="box",label="PrivateBase",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classPrivateBase.html"];
Node15 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node15 [shape="box",label="Undocumented",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="grey75"];
Node16 -> Node9 [dir=back,color="midnightblue",fontsize=10,style="solid",fontname="FreeSans.ttf"];
Node16 [shape="box",label="Templ< int >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"];
Node17 -> Node16 [dir=back,color="orange",fontsize=10,style="dashed",label="< int >",fontname="FreeSans.ttf"];
Node17 [shape="box",label="Templ< T >",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classTempl.html"];
Node18 -> Node9 [dir=back,color="darkorchid3",fontsize=10,style="dashed",label="m_usedClass",fontname="FreeSans.ttf"];
Node18 [shape="box",label="Used",fontsize=10,height=0.2,width=0.4,fontname="FreeSans.ttf",color="black",URL="$classUsed.html"];
}

View File

@ -0,0 +1,80 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Graph Legend</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>Graph Legend</h1>This page explains how to interpret the graphs that are generated by doxygen.<p>
Consider the following example: <div class="fragment"><pre class="fragment"><span class="comment">/*! Invisible class because of truncation */</span>
<span class="keyword">class </span>Invisible { };
<span class="comment"></span>
<span class="comment">/*! Truncated class, inheritance relation is hidden */</span>
<span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };
<span class="comment">/* Class not documented with doxygen comments */</span>
<span class="keyword">class </span>Undocumented { };
<span class="comment"></span>
<span class="comment">/*! Class that is inherited using public inheritance */</span>
<span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };
<span class="comment"></span>
<span class="comment">/*! A template class */</span>
<span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };
<span class="comment"></span>
<span class="comment">/*! Class that is inherited using protected inheritance */</span>
<span class="keyword">class </span>ProtectedBase { };
<span class="comment"></span>
<span class="comment">/*! Class that is inherited using private inheritance */</span>
<span class="keyword">class </span>PrivateBase { };
<span class="comment"></span>
<span class="comment">/*! Class that is used by the Inherited class */</span>
<span class="keyword">class </span>Used { };
<span class="comment"></span>
<span class="comment">/*! Super class that inherits a number of other classes */</span>
<span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,
<span class="keyword">protected</span> ProtectedBase,
<span class="keyword">private</span> PrivateBase,
<span class="keyword">public</span> Undocumented
<span class="keyword">public</span> Templ&lt;int&gt;
{
<span class="keyword">private</span>:
Used *m_usedClass;
};
</pre></div> If the <code>MAX_DOT_GRAPH_HEIGHT</code> tag in the configuration file is set to 240 this will result in the following graph:<p>
<center><div align="center">
<img src="graph_legend.png" alt="graph_legend.png">
</div>
</center> <p>
The boxes in the above graph have the following meaning: <ul>
<li>
A filled black box represents the struct or class for which the graph is generated. </li>
<li>
A box with a black border denotes a documented struct or class. </li>
<li>
A box with a grey border denotes an undocumented struct or class. </li>
<li>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
The arrows have the following meaning: <ul>
<li>
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
<li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
</ul>
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libhpsangoma: Main Page</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li id="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<h1>libhpsangoma Documentation</h1>
<p>
<h3 align="center">1 </h3><hr size="1"><address style="align: right;"><small>Generated on Sun Aug 17 23:56:55 2008 for libhpsangoma by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>

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