wanpipe-3.3.2.tgz
This commit is contained in:
parent
b40a1554e2
commit
feb6422bea
|
@ -0,0 +1,208 @@
|
|||
------------------------------------------------------------------------------
|
||||
WANPIPE TDM VOICE - IP/WAN Package
|
||||
|
||||
Linux Voice TDM/WAN Router Package
|
||||
For more info visit: http://wiki.sangoma.com
|
||||
------------------------------------------------------------------------------
|
||||
Author: Nenad Corbic <ncorbic@sangoma.com>
|
||||
Copyright (c) 1995-2008 Sangoma Technologies Inc.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
* Wed Feb 12 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.2
|
||||
======================================================================
|
||||
|
||||
- Support for A500 hardware support with NetBricks BRI Stack
|
||||
- Major A500 driver updates and fixes
|
||||
- Serial A142/A144 hardware support
|
||||
- AFT A056 56K hardware support
|
||||
|
||||
- Support for HW DTMF
|
||||
|
||||
- Updates for AFT PMC and MAXIM framers
|
||||
PMC - lowered LOS sensitivity
|
||||
Fixes fake up/down state changes on
|
||||
started inactive lines.
|
||||
|
||||
MAXIM - lowered sensistivy
|
||||
Fixes cable cross talk on 8 port cards.
|
||||
- Enabled Unframed E1
|
||||
- Enabled Tri-State Mode
|
||||
- Fixed loopback commands
|
||||
|
||||
- Updated loopback commands for AFT Maxim cards
|
||||
|
||||
- Updated for AstLinux
|
||||
The make file can now build all WAN and Voice Protocols
|
||||
|
||||
- Updated legacy protocols for new front end architecture
|
||||
|
||||
-
|
||||
|
||||
|
||||
* Fri Feb 01 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.2.p8
|
||||
======================================================================
|
||||
|
||||
- wancfg_zaptel now asks for the default_tei value for
|
||||
- BRI cards in TE mode
|
||||
|
||||
- Fix for HWEC not being enabled when non-consecutive modules are using
|
||||
- in BRI cards
|
||||
|
||||
* Fri Feb 01 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.2.p4
|
||||
======================================================================
|
||||
|
||||
- Fixed AFT memory leak
|
||||
Memory leak introduced in 3.3 release
|
||||
- Fixed AFT 56K bug
|
||||
Bug introduced in 3.3 releae
|
||||
|
||||
|
||||
* Fri Feb 01 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.2.p3
|
||||
======================================================================
|
||||
|
||||
- Fix bug in BRI protocol for fast local hangups.
|
||||
|
||||
* Mon Jan 18 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.2.p1
|
||||
======================================================================
|
||||
|
||||
- Bug fix in Hardware EC code for E1.
|
||||
Bug introduced in 3.3 release.
|
||||
|
||||
|
||||
* Mon Jan 18 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.1
|
||||
====================================================================
|
||||
|
||||
|
||||
* Mon Jan 16 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.22
|
||||
====================================================================
|
||||
|
||||
- BRI protocol:Increased internal timer that could cause issue in systems with
|
||||
- more than 8 BRI spans
|
||||
|
||||
* Mon Jan 15 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.21
|
||||
====================================================================
|
||||
|
||||
- BRI protocol:Fix for smg_brid daemon crashing on race condition
|
||||
- BRI protocol:default_tei parameter is not ignored when using point to
|
||||
- multipoint anymore
|
||||
|
||||
* Mon Jan 14 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.20
|
||||
====================================================================
|
||||
|
||||
- BRI protocol: Additional prefix options.
|
||||
- BRI protocol: Check is caller ID number is all digits on incoming calls
|
||||
- Sangoma MGD: Removed dynamic user period causing skb panics
|
||||
- chan_woomera: Fixed issue with rxgain and txgain values set to 0 if
|
||||
- coding not set in woomera.conf
|
||||
- wancfg_zaptel: Support for fractional T1/E1 spans.
|
||||
- wancfg_zaptel: fix issue BRI always being configured as bri_net introduced in v3.3.0.19
|
||||
|
||||
* Mon Jan 07 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.19
|
||||
====================================================================
|
||||
|
||||
- Support for national/international prefix in BRI stack
|
||||
|
||||
* Mon Jan 07 2008 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.18
|
||||
====================================================================
|
||||
|
||||
- Changed Makefile in wanpipe/api/fr causing compilation errors
|
||||
|
||||
|
||||
* Thu Dec 20 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.17
|
||||
====================================================================
|
||||
|
||||
- Fix for smg_ctrl boot script starting before network services on some systems
|
||||
- Support for language parameter in chan_woomera
|
||||
|
||||
* Thu Dec 20 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.16
|
||||
====================================================================
|
||||
|
||||
- Fix for Sangoma BRI Daemon crashing on incoming call if chan_woomera is not installed on that system
|
||||
|
||||
* Tue Dec 18 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.15
|
||||
====================================================================
|
||||
|
||||
- Fix for caller ID value being corrupted sometimes
|
||||
- Support for call confirmation in chan_woomera
|
||||
|
||||
* Tue Dec 18 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.14
|
||||
====================================================================
|
||||
|
||||
- Fix in smg_brid not releasing some b-channels properly
|
||||
- Fix in wancfg_smg not setting MTU to 80 when configuring cards for SS7
|
||||
|
||||
* Fri Dec 14 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.13
|
||||
====================================================================
|
||||
|
||||
- Fix for Kernel panic on 64-bit systems when enabling hardware echo canceller
|
||||
|
||||
|
||||
* Thu Dec 5 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.11
|
||||
====================================================================
|
||||
|
||||
- Support for AFT Serial Cards
|
||||
- Updates for AFT PMC and MAXIM framers
|
||||
PMC - lowered LOS sensitivity
|
||||
Fixes fake up/down state changes on
|
||||
started inactive lines.
|
||||
|
||||
MAXIM - lowered sensistivy
|
||||
Fixes cable cross talk on 8 port cards.
|
||||
- Enabled Unframed E1
|
||||
- Enabled Tri-State Mode
|
||||
- Fixed loopback commands
|
||||
|
||||
- Fixed HWEC_PERSIST_DISABLE
|
||||
This option was broken in previous release
|
||||
This option lets Asterisk control HWEC
|
||||
on each call start/stop.
|
||||
By default all hwec channels are enabled on
|
||||
device startup.
|
||||
|
||||
- Updated SMG/SS7
|
||||
- Updated loopback commands for AFT Maxim cards
|
||||
|
||||
- Updated for AstLinux
|
||||
The make file can now build all WAN and Voice Protocols
|
||||
|
||||
- Fixed add_timer warnings for ALL AFT cards
|
||||
Caused when a port is left in unconnected state.
|
||||
|
||||
- Updated legacy protocols for new front end architecture
|
||||
|
||||
- Updated Setup script
|
||||
|
||||
|
||||
|
||||
* Thu Nov 8 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.4
|
||||
====================================================================
|
||||
|
||||
- Fixed A101/2 (Old) bug introduced in previous releaes
|
||||
|
||||
* Mon Oct 31 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.4
|
||||
====================================================================
|
||||
|
||||
- Updated BRI caller name
|
||||
- Updaged Setup
|
||||
|
||||
|
||||
* Mon Oct 15 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.1
|
||||
====================================================================
|
||||
|
||||
- Major Updates
|
||||
- New BRI architecture/support
|
||||
SMG with Netbricks BRI Stack
|
||||
- Support for Hardware DTMF
|
||||
|
||||
|
||||
* Thu Aug 22 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.p3
|
||||
======================================================================
|
||||
|
||||
- Updated wancfg_zaptel to support HW DTMF
|
||||
|
||||
|
||||
* Thu Aug 21 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.3.0.p2
|
||||
======================================================================
|
||||
|
||||
- Major Updates
|
||||
- Hardware DTMF for Asterisk and TDM API
|
404
ChangeLog.stable
404
ChangeLog.stable
|
@ -1,404 +0,0 @@
|
|||
------------------------------------------------------------------------------
|
||||
WANPIPE
|
||||
|
||||
Linux Voice TDM/WAN Router Package
|
||||
------------------------------------------------------------------------------
|
||||
Author: Nenad Corbic <ncorbic@sangoma.com>
|
||||
Copyright (c) 1995-2008 Sangoma Technologies Inc.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
* Thu Aug 21 2008 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.7.1
|
||||
========================================================================
|
||||
- Fixed bug in wancfg_zaptel configuration utility
|
||||
This bug was introduced in previous release. It will set d-channels
|
||||
as "dchan" instead of "hardhdlc" for zaptel-1.4.x .
|
||||
No driver changes.
|
||||
|
||||
* Thu Jul 16 2008 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.7
|
||||
========================================================================
|
||||
|
||||
- Removed the Excessive Error check that disables the port.
|
||||
This feature was introduced in 3.2.6 release.
|
||||
Some lines are extremely noisy on startup which can cause
|
||||
excessive crc errors (5000 per sec). In this case driver would
|
||||
take the port down for few sec before bringing it back up in order to
|
||||
avoid irq overlaod. This release will only print the
|
||||
warning but will not take any up/down actions.
|
||||
|
||||
- Added support for new PLX2 or TUNDRA PCIe chip.
|
||||
|
||||
|
||||
* Thu Jun 4 2008 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.6
|
||||
========================================================================
|
||||
|
||||
- Updated hwprobe to add A056 card
|
||||
|
||||
- Updated for 2.6.25 kernel
|
||||
|
||||
- wanpipemon PRI/BRI wireshark tracing
|
||||
http://wiki.sangoma.com/wanpipe-wireshark-pcap-pri-bri-wan-t1-e1-tracing
|
||||
|
||||
- LIP Layer Update
|
||||
Optimized packet handling in bh
|
||||
|
||||
- Fixed WAN Protocol for 2.6.24 kernels and higher
|
||||
|
||||
- AFT TE1 Code
|
||||
Defaulted Maxim T1 Rx Level to 36DB
|
||||
Defaulted Maxim E1 Rx Level to 42DB
|
||||
This will improve T1/E1 connectivity on noisy or low power lines.
|
||||
|
||||
- Wanpipemon PRI/BRI PCAP Tracing for Wireshark
|
||||
Using wanpipemon dchan trace one can now capture
|
||||
pcap files that can be opened by Wireshark.
|
||||
http://wiki.sangoma.com/wanpipe-wireshark-pcap-pri-bri-wan-t1-e1-tracing
|
||||
|
||||
|
||||
- Add pci parity check to wanrouter
|
||||
wanrouter parity -> displays current system pci parity
|
||||
wanrouter parity off -> disables system pci parity
|
||||
wanrouter parity on -> enables system pci parity
|
||||
|
||||
/etc/wanpipe/wanrouter.rc
|
||||
WAN_PCI_PARITY=OFF -> on wanrouter start disable pci parity
|
||||
-> event logged in /var/log/wanrouter
|
||||
|
||||
On some servers pci parity can cause NMI interrupts that
|
||||
can lead to reboots. Parity can be caused by unsuported
|
||||
or buggy pci/bridge chipsets. The above commands can be used
|
||||
to combat pci parity reboots.
|
||||
|
||||
Another option is to disable PCI parity in BIOS :)
|
||||
|
||||
|
||||
|
||||
* Thu Apr 4 2008 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.5.1
|
||||
========================================================================
|
||||
|
||||
- RTP TAP Bug fix
|
||||
The driver was sending out invalid rtp tap header
|
||||
http://wiki.sangoma.com/wanpipe-voice-rtp-tap
|
||||
|
||||
|
||||
* Thu Apr 2 2008 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.5
|
||||
========================================================================
|
||||
|
||||
- T3/E3 Update
|
||||
Fixed T3 Loopback commands
|
||||
|
||||
- Updated T3/E3 Driver
|
||||
Performance improvement on T3/E3 drivers when handling
|
||||
VOIP and Data traffic.
|
||||
|
||||
- Update ifconfig MTU change from protocol interface
|
||||
|
||||
|
||||
* Thu Mar 6 2008 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.4
|
||||
========================================================================
|
||||
|
||||
- Updated for 2.6.24 kernels
|
||||
TDM Voice (Zaptel) tested with 2.6.24 kernel.
|
||||
Known issues: WAN protocols are broken for 2.6.24 kernels.
|
||||
Its a compilation issue that will be fixed ASAP.
|
||||
|
||||
- TDM API bug fix
|
||||
Check for max frame size on audio stream
|
||||
|
||||
- Updated for Zaptel 1.4.9
|
||||
|
||||
- AFT IRQ Throttling feature
|
||||
This feature is use to protect the server from
|
||||
terrible lines. In some cases a bad hdlc line can
|
||||
cause thousands of interrupts per sec. Rx errors are now
|
||||
throttled so that system does not get compromized.
|
||||
|
||||
- AFT RTP TAP Feature
|
||||
RTP TAP Feature allows user to tap voice channels during
|
||||
Asterisk-Zaptel/TMD API operation at the driver/kernel level.
|
||||
Each voice stream is encapsulated in UDP/RTP header and transmitted over
|
||||
neghbouring ethernet address directly from kenrel space.
|
||||
Tapping 4E1s worth of voice channels adds estra 2% system load :)
|
||||
http://wiki.sangoma.com/wanpipe-voice-rtp-tap
|
||||
|
||||
- AFT Software Ring Buffers on A200/A400 Analog Cards
|
||||
This feature improves analog preformance under Asterisk/TDM API
|
||||
mode. In particualr it improves faxing reliability and
|
||||
minimizes frame slippage due to system load or bad incoming
|
||||
clock from the line.
|
||||
Note: All AFT T1/E1 cards have this feature in hardare :)
|
||||
|
||||
|
||||
* Thu Jan 18 2008 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.3
|
||||
========================================================================
|
||||
|
||||
- No changes from 3.2.2
|
||||
Version updated for versioning sake.
|
||||
|
||||
* Thu Jan 18 2008 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.2
|
||||
========================================================================
|
||||
|
||||
- AFT Maxim Front end update
|
||||
Implemented graceful recovery on short circuit.
|
||||
|
||||
- AFT Driver update
|
||||
Added a check for TDM IRQ timeout.
|
||||
On some machines its possible for TDM IRQ to timeout.
|
||||
|
||||
- SMG updated
|
||||
Fixed wancfg_smg
|
||||
MTU not properly set on ports 2 and up
|
||||
Voice only ports were not being added to startup sequence
|
||||
Updated for callweaver
|
||||
|
||||
- Added Zaptel 1.4 HW HDLC Support
|
||||
No Sangoma zaptel patch needed with Zaptel 1.4
|
||||
|
||||
- Added HWEC Noise flag in wanpipe config file
|
||||
|
||||
- Updated SMG
|
||||
- Updated E1 Unframed on Maxim Cards
|
||||
|
||||
- Updates for AFT PMC and MAXIM framers
|
||||
PMC - lowered LOS sensitivity
|
||||
Fixes fake up/down state changes on
|
||||
started inactive lines.
|
||||
|
||||
MAXIM - lowered sensistivy
|
||||
Fixes cable cross talk on 8 port cards.
|
||||
- Enabled Unframed E1
|
||||
- Enabled Tri-State Mode
|
||||
- Fixed loopback commands
|
||||
|
||||
- Fixed HWEC_PERSIST_DISABLE
|
||||
This option was broken in previous release
|
||||
This option lets Asterisk control HWEC
|
||||
on each call start/stop.
|
||||
By default all hwec channels are enabled on
|
||||
device startup.
|
||||
|
||||
- Updated SMG/SS7
|
||||
- Updated loopback commands for AFT Maxim cards
|
||||
|
||||
- Updated for AstLinux
|
||||
The make file can now build all WAN and Voice Protocols
|
||||
|
||||
- Fixed add_timer warnings for ALL AFT cards
|
||||
Caused when a port is left in unconnected state.
|
||||
|
||||
- Updated legacy protocols for new front end architecture
|
||||
|
||||
- Updated Setup script
|
||||
|
||||
|
||||
* Wed Oct 6 2007 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.1
|
||||
=====================================================================
|
||||
|
||||
- Setup Zap Chunk Size Patch updated for Zaptel 1.4
|
||||
Patch allows running zaptel in 8,16,40,80 chunk size.
|
||||
However wct drivers must be removed from compilation :)
|
||||
Patch is now fixed for Zaptel 1.4
|
||||
|
||||
- Update to All AFT drivers for 64bit 2.6.22 kernel.
|
||||
Updated affects: AFT A101/2/4/8/200/400 (all cards)
|
||||
The major 2.6.20+ updates extend to 64bit as well.
|
||||
Previous drivers segfaulted under 2.6.22 64bit
|
||||
kernels. This does not affect you if you are running
|
||||
kennels lower than 2.6.22.
|
||||
|
||||
- Updated legacy drivers for 2.6.22 kernel
|
||||
|
||||
|
||||
|
||||
* Wed Oct 3 2007 Nenad Corbic <ncorbic@sangoma.com> - Stable - 3.2.0
|
||||
=====================================================================
|
||||
|
||||
- The Beta 3.1.X releases has now been declared as STABLE 3.2.X
|
||||
|
||||
- Fixed AMI/D4 on MAXIM (A101/2/4/8D) cards
|
||||
- Fixed A200/A400 tip/ring no dial tone issues.
|
||||
- Fixed 2.6.22 support and above
|
||||
- Fixed RPM Build post install issue
|
||||
- Updated Setup install script
|
||||
Option to build for zaptel: ./Setup zaptel
|
||||
- Working E&M/RBS/CAS Channel Bank support for MAXIM (A101/2/4/8) cards.
|
||||
- Fixed wanpipe crashing on system shutdown on some machines.
|
||||
Caused by RedHat /var/lock/subsys mandatory lock file.
|
||||
- New Firmware for all MAXIM Cards (A101/2/4/8D)
|
||||
Firmware V33: Fixes EC Chip Security errors that can cause
|
||||
PRI to go down on some computers. Firmware is backward compatible
|
||||
to any previous release.
|
||||
- Faxes/Modems working through hardware echo canceler.
|
||||
Tested at 56K from one port to another.
|
||||
New octasic update.
|
||||
- Analog Network SYNC Feature for Fax Support
|
||||
Analog cards can be synced to T1/E1 clock
|
||||
from adjacent A101/2/4/8 cards for flawless faxing
|
||||
from FXO/FXS to T1/E1.
|
||||
|
||||
- Known Issues:
|
||||
T1/E1 High Impedance Tap for MAXIM (A101/2/4/8D) cards.
|
||||
It works on original PMC A101/2/4 cards
|
||||
|
||||
For more info: http://wiki.sangoma.com
|
||||
|
||||
|
||||
* Mon Oct 1 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.4.6
|
||||
====================================================================
|
||||
|
||||
- Fixed Makefile for 2.6.22.9 kernel.
|
||||
- Fixed all gcc4 warnings.
|
||||
|
||||
|
||||
* Tue Sep 26 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.4.5
|
||||
====================================================================
|
||||
|
||||
- Updated Setup install script
|
||||
- A200/A400 Analog driver update
|
||||
Fixed noise issue introduced in 3.1.4.3 release
|
||||
- Updated SMG for Asterisk 1.4 & Callweaver
|
||||
|
||||
|
||||
* Tue Sep 18 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.4.3
|
||||
====================================================================
|
||||
|
||||
- A200/A400 Analog driver update
|
||||
Fixed a problem where analog port starts up without
|
||||
dialtone.
|
||||
|
||||
* Tue Sep 14 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.4.2
|
||||
====================================================================
|
||||
|
||||
- Update for 2.6.22 kernel.
|
||||
- wanrouter startup script update for redhat distros.
|
||||
Fixes the issue on system shutdown, where wanpipe
|
||||
module sometimes do not unload due to /var/lock/subsys/
|
||||
lockfile check. This issue is only related or RedHat style distros.
|
||||
|
||||
|
||||
* Tue Aug 15 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.4
|
||||
====================================================================
|
||||
|
||||
- Added A101-SH old config support.
|
||||
So onld A101u or A101c config file can be used with new A101-SH cards.
|
||||
|
||||
- Updated KATM support in the LIP Layer.
|
||||
Used to connect Kernel ATM Layer to Wanpipe ATM AAL5 layer
|
||||
over all AFT cards.
|
||||
|
||||
- Added a sanity checker for enabling HWEC.
|
||||
Used to prevent duble hwec enable.
|
||||
|
||||
- Added wancfg_tdmapi configurator
|
||||
|
||||
- Updated SMG
|
||||
|
||||
|
||||
* Mon Jun 30 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.3
|
||||
====================================================================
|
||||
|
||||
- Update to Ocatsic Hardware Echo Canceler Library
|
||||
Turned of the NOISE suppression because it can interfere
|
||||
with faxes. If you faxes did not work properly on 3.1.2
|
||||
release they will work fine with this one.
|
||||
|
||||
- Cleaned up the Setup installation script.
|
||||
|
||||
|
||||
* Mon Jun 16 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.2
|
||||
====================================================================
|
||||
|
||||
- Update to Octasic Hardware Echo Canceler library
|
||||
This is a very important update that affects all AFT cards
|
||||
with octasic hardware echo canceler. The new octasic update
|
||||
fixes faxing/modem issues over octasic hwec. The previous
|
||||
release contained a bug that limited the faxing/modem speeds
|
||||
to 26k. The new update properly detects fax/modem and works
|
||||
with full speed of 33k fax and 56k modem.
|
||||
|
||||
- A200/A400 Updated
|
||||
This update fixes the offhook startup failure.
|
||||
On startup if fxs is offhook driver will start correctly
|
||||
|
||||
- Wanpipe Startup order changed
|
||||
The wanpipe startup scripts on bootup were previously
|
||||
set too early "S03wanrouter". This caused unpredictable
|
||||
behaviour on some systems. We have now moved wanrouter
|
||||
startup on boot up to "S11wanrouter", after networking
|
||||
code.
|
||||
|
||||
- Zaptel Adjustable Chunk Size Feature
|
||||
Wanpipe drivers can work with 1,2,5 and 10ms
|
||||
chunk size. Zaptel also supports this, however
|
||||
the wct4xx driver breaks compilation when chunk
|
||||
size is changed. ./Setup can how change the
|
||||
zaptel chunk size for you and update zaptel
|
||||
Makefiles to remove wct4xx driver out.
|
||||
|
||||
Zaptel with 1ms generates 1000 interrupts per sec
|
||||
Zaptel with 10ms generates 100 interrupts per sec.
|
||||
|
||||
As you can see its a drastic interrupt performance
|
||||
increase.
|
||||
|
||||
NOTE: This breaks software echo cancelation, but
|
||||
its not needed since we have hwec.
|
||||
|
||||
|
||||
* Fri Jun 06 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.1
|
||||
====================================================================
|
||||
|
||||
- A101/2/4/8 (MAXIM) AFT Update IMPORTANT
|
||||
A major bug fix for AFT Maxim E1 cards for E1 CRC4 Mode.
|
||||
On some lines the E1/CRC4 mode causes line errors on
|
||||
the telco side which results in PRI not coming up.
|
||||
|
||||
Symptiom: E1 is up (no alarms) on local side but pri is
|
||||
not coming up! (Only in E1 CRC4 Mode)
|
||||
|
||||
- A101/2/4/8 (MAXIM) Mandatory Firmware Update
|
||||
An echo canceler bug has been fixed for all AFT
|
||||
MAXIM Cards A101/2/4/8dm. New firmware version is V31.
|
||||
If you are running MAXIM cards with hwec wiht older
|
||||
firmware version you must upgrade.
|
||||
|
||||
- Updated SMG
|
||||
Fixed DTMF synchronization
|
||||
|
||||
|
||||
|
||||
- Updated SMG
|
||||
Fixed DTMF synchronization
|
||||
|
||||
|
||||
* Fri Jun 06 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.0.1
|
||||
====================================================================
|
||||
|
||||
- Minor release
|
||||
- Contains zaptel patch for zaptel 1.2.17 and above.
|
||||
- No driver changes
|
||||
|
||||
* Fri May 17 2007 Nenad Corbic <ncorbic@sangoma.com> - Beta - 3.1.0
|
||||
====================================================================
|
||||
|
||||
- Major new BETA wanpipe release
|
||||
Changed wanpipe versioning:
|
||||
Release: A.B.C.D
|
||||
A - Major Relase number
|
||||
B - Indicates Stable or Beta
|
||||
Odd number is Beta
|
||||
Even number is Stable
|
||||
C - Minor Release number
|
||||
D - Optional pre-release and custom releases
|
||||
|
||||
- Fixed RBS Support for all Maxim cards A101/2/4/8.
|
||||
|
||||
- Support for 2.6.20 kernels.
|
||||
|
||||
- Support for New: A101D A102D A104D Maxim cards
|
||||
:
|
||||
- Support for New: AFT 56K DDS card
|
||||
|
||||
- Redesigned TDM API Events
|
||||
|
||||
- TDM API Analog Support
|
||||
|
94
Makefile
94
Makefile
|
@ -19,29 +19,6 @@ ifndef ZAPDIR
|
|||
ZAPDIR=/usr/src/zaptel
|
||||
endif
|
||||
|
||||
#Check if zaptel exists
|
||||
ifneq (,$(wildcard $(ZAPDIR)/zaptel.h))
|
||||
ZAPDIR_PRIV=$(ZAPDIR)
|
||||
ENABLE_WANPIPEMON_ZAP=YES
|
||||
EXTRA_CFLGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE
|
||||
ZAP_OPTS= --zaptel-path=$(ZAPDIR)
|
||||
ZAP_PROT=TDM
|
||||
else
|
||||
ifneq (,$(wildcard $(ZAPDIR)/kernel/zaptel.h))
|
||||
ZAPDIR=/usr/src/zaptel/kernel
|
||||
ZAPDIR_PRIV=$(ZAPDIR)
|
||||
ENABLE_WANPIPEMON_ZAP=YES
|
||||
EXTRA_CFLGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE
|
||||
ZAP_OPTS= --zaptel-path=$(ZAPDIR)
|
||||
ZAP_PROT=TDM
|
||||
else
|
||||
ZAP_OPTS=
|
||||
ZAP_PROT=
|
||||
ZAPDIR_PRIV=
|
||||
ENABLE_WANPIPEMON_ZAP=NO
|
||||
endif
|
||||
endif
|
||||
|
||||
#Kernel version and location
|
||||
ifndef KVER
|
||||
KVER=$(shell uname -r)
|
||||
|
@ -59,6 +36,10 @@ endif
|
|||
ifndef ARCH
|
||||
ARCH=$(shell uname -m)
|
||||
endif
|
||||
ifndef ASTDIR
|
||||
ASTDIR=/usr/src/asterisk
|
||||
endif
|
||||
|
||||
|
||||
INSTALLPREFIX=
|
||||
|
||||
|
@ -84,32 +65,23 @@ EXTRA_UTIL_FLAGS += -I$(PWD)/patches/kdrivers/wanec -I$(PWD)/patches/kdrivers/wa
|
|||
ENABLE_WANPIPEMON_ZAP=NO
|
||||
ZAPHDLC_PRIV=/etc/wanpipe/.zaphdlc
|
||||
|
||||
RM = @rm -rf
|
||||
JUNK = *~ *.bak DEADJOE
|
||||
|
||||
#Check if zaptel exists
|
||||
#ifneq (,$(wildcard $(ZAPDIR)/zaptel.h))
|
||||
# ZAPDIR_PRIV=$(ZAPDIR)
|
||||
# ENABLE_WANPIPEMON_ZAP=YES
|
||||
# EXTRA_CFLGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE
|
||||
# ZAP_OPTS= --zaptel-path=$(ZAPDIR)
|
||||
# ZAP_PROT=TDM
|
||||
#else
|
||||
# ifneq (,$(wildcard $(ZAPDIR)/kernel/zaptel.h))
|
||||
# ZAPDIR=/usr/src/zaptel/kernel
|
||||
# ZAPDIR_PRIV=$(ZAPDIR)
|
||||
# ENABLE_WANPIPEMON_ZAP=YES
|
||||
# EXTRA_CFLGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE
|
||||
# ZAP_OPTS= --zaptel-path=$(ZAPDIR)
|
||||
# ZAP_PROT=TDM
|
||||
# else
|
||||
# ZAP_OPTS=
|
||||
# ZAP_PROT=
|
||||
# ZAPDIR_PRIV=
|
||||
# ENABLE_WANPIPEMON_ZAP=NO
|
||||
# endif
|
||||
#endif
|
||||
ifneq (,$(wildcard $(ZAPDIR)/zaptel.h))
|
||||
ZAPDIR_PRIV=$(ZAPDIR)
|
||||
ENABLE_WANPIPEMON_ZAP=YES
|
||||
EXTRA_CFLGS+= -DSTANDALONE_ZAPATA -DBUILDING_TONEZONE
|
||||
ZAP_OPTS= --zaptel-path=$(ZAPDIR)
|
||||
ZAP_PROT=TDM
|
||||
else
|
||||
ZAP_OPTS=
|
||||
ZAP_PROT=
|
||||
ZAPDIR_PRIV=
|
||||
ENABLE_WANPIPEMON_ZAP=NO
|
||||
endif
|
||||
|
||||
RM = @rm -rf
|
||||
JUNK = *~ *.bak DEADJOE
|
||||
|
||||
|
||||
# First pass, kernel Makefile reads module objects
|
||||
|
@ -121,14 +93,10 @@ else
|
|||
|
||||
#This will check for zaptel, kenrel source and build utilites and kernel modules
|
||||
#within local directory structure
|
||||
|
||||
#Build with all binaries
|
||||
all: _checkzap _checksrc all_bin_kmod all_util
|
||||
|
||||
#Build only source (NO WAN protocols)
|
||||
all_src: _checkzap _checksrc all_kmod all_util
|
||||
|
||||
|
||||
#Build only kernel modules
|
||||
all_kmod: _checkzap _checksrc _cleanoldwanpipe _check_kver
|
||||
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C $(KDIR) SUBDIRS=$(WAN_DIR) EXTRA_FLAGS="$(EXTRA_CFLAGS) $(shell cat ./patches/kfeatures)" ZAPDIR=$(ZAPDIR_PRIV) ZAPHDLC=$(ZAPHDLC_PRIV) HOMEDIR=$(PWD) modules
|
||||
|
@ -215,12 +183,12 @@ install_kmod:
|
|||
install -m 644 -D $(WAN_DIR)/sdladrv.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/sdladrv.${MODTYPE}
|
||||
install -m 644 -D $(WAN_DIR)/wanpipe.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/wanpipe.${MODTYPE}
|
||||
@rm -f $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/wanpipe_syncppp.${MODTYPE}
|
||||
@if [ -e $(WAN_DIR)/wanpipe_syncppp.${MODTYPE} ]; then \
|
||||
@if [ -f $(WAN_DIR)/wanpipe_syncppp.${MODTYPE} ]; then \
|
||||
echo "install -m 644 -D $(WAN_DIR)/wanpipe_syncppp.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/wanpipe_syncppp.${MODTYPE}"; \
|
||||
install -m 644 -D $(WAN_DIR)/wanpipe_syncppp.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/drivers/net/wan/wanpipe_syncppp.${MODTYPE}; \
|
||||
fi
|
||||
@rm -f $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/wanpipe_lip.${MODTYPE};
|
||||
@if [ -e $(WAN_DIR)/wanpipe_lip.${MODTYPE} ]; then \
|
||||
@if [ -f $(WAN_DIR)/wanpipe_lip.${MODTYPE} ]; then \
|
||||
echo "install -m 644 -D $(WAN_DIR)/wanpipe_lip.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/wanpipe_lip.${MODTYPE}"; \
|
||||
install -m 644 -D $(WAN_DIR)/wanpipe_lip.${MODTYPE} $(INSTALLPREFIX)/$(KINSTDIR)/net/wanrouter/wanpipe_lip.${MODTYPE}; \
|
||||
fi
|
||||
|
@ -243,6 +211,14 @@ clean_util:
|
|||
install_util:
|
||||
$(MAKE) -C util install SYSINC=$(PWD)/$(WINCLUDE) CC=$(CC) PREFIX=$(INSTALLPREFIX)
|
||||
|
||||
install_smgbri:
|
||||
$(MAKE) -C ssmg/sangoma_mgd.trunk/ install SYSINC=$(PWD)/$(WINCLUDE) CC=$(CC) PREFIX=$(INSTALLPREFIX)
|
||||
install -D -m 755 ssmg/sangoma_bri/smg_ctrl $(INSTALLPREFIX)/usr/sbin/smg_ctrl
|
||||
install -D -m 755 ssmg/sangoma_bri/sangoma_brid $(INSTALLPREFIX)/usr/sbin/sangoma_brid
|
||||
$(MAKE) -C ssmg/libsangoma.trunk/ install DESTDIR=$(INSTALLPREFIX)
|
||||
$(MAKE) -C ssmg/sangoma_mgd.trunk/lib/libteletone install DESTDIR=$(INSTALLPREFIX)
|
||||
|
||||
|
||||
#Install etc files
|
||||
install_etc:
|
||||
@if [ ! -e $(INSTALLPREFIX)/etc/wanpipe ]; then \
|
||||
|
@ -277,3 +253,17 @@ install_inc:
|
|||
@\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/
|
||||
|
||||
smgbri:
|
||||
@cd ssmg/libsangoma.trunk; ./configure --prefix=/usr ; cd ../..;
|
||||
$(MAKE) -C ssmg/libsangoma.trunk/ CC=$(CC) PREFIX=$(INSTALLPREFIX) KDIR=$(KDIR)
|
||||
@cd ssmg/sangoma_mgd.trunk/lib/libteletone; ./configure --prefix=/usr ; cd ../../..;
|
||||
$(MAKE) -C ssmg/sangoma_mgd.trunk/lib/libteletone CC=$(CC) PREFIX=$(INSTALLPREFIX) KDIR=$(KDIR)
|
||||
$(MAKE) -C ssmg/sangoma_mgd.trunk/ CC=$(CC) PREFIX=$(INSTALLPREFIX) KDIR=$(KDIR) ASTDIR=$(ASTDIR)
|
||||
|
||||
|
||||
clean_smgbri:
|
||||
$(MAKE) -C ssmg/libsangoma.trunk/ clean CC=$(CC) PREFIX=$(INSTALLPREFIX) KDIR=$(KDIR)
|
||||
$(MAKE) -C ssmg/sangoma_mgd.trunk/lib/libteletone clean CC=$(CC) PREFIX=$(INSTALLPREFIX) KDIR=$(KDIR)
|
||||
$(MAKE) -C ssmg/sangoma_mgd.trunk/ clean CC=$(CC) PREFIX=$(INSTALLPREFIX) KDIR=$(KDIR)
|
||||
|
||||
|
|
|
@ -2,29 +2,31 @@ Wanpipe Configuration
|
|||
======================
|
||||
|
||||
For Latest Info please visit
|
||||
-------------------------------------------------
|
||||
http://wiki.sangoma.com
|
||||
-------------------------------------------------
|
||||
|
||||
|
||||
Asterisk/Zaptel Configuration
|
||||
-> /usr/sbin/wancfg_zaptel
|
||||
|
||||
TDM API Config
|
||||
-> /usr/sbin/wancfg_tdmapi
|
||||
|
||||
SMG/SS7 Config
|
||||
-> /usr/sbin/wancfg_smg
|
||||
|
||||
WAN Configuration
|
||||
-> /usr/sbin/wancfg
|
||||
|
||||
|
||||
Before starting WANPIPE, a configuration file (wanpipeN.conf, where
|
||||
N=1,2,3..etc.)must be created in /etc/wanpipe directory.
|
||||
This file contains the line, hardware and interface definitions
|
||||
for the WAN connection.
|
||||
|
||||
RELEASE 2.3.2 and on:
|
||||
The new WANCFG utility has been release. It should
|
||||
be used to configure standard WAN protocols like:
|
||||
FR, PPP, CHDLC,
|
||||
MULTILINK PPP (TTY), TDM_VOICE
|
||||
HDLC API
|
||||
ADSL
|
||||
|
||||
|
||||
For both AFT and S514 series cards.
|
||||
|
||||
The old WANCFG utility has been renamed to wancfg_legacy.
|
||||
This utility should be used for all API protocols like:
|
||||
X25, SDLC, BITSTREAMING ...
|
||||
|
||||
|
||||
The program /usr/sbin/wancfg should be used to create the
|
||||
configuration file(s). It is a GUI, ncurses based,
|
||||
configurator that contains all wanpipe options
|
||||
|
@ -38,16 +40,11 @@ the sample configuration files located in
|
|||
|
||||
Things you should know before starting /usr/sbin/wancfg:
|
||||
|
||||
1. Operatoin Mode:
|
||||
VOICE : Asterisk/Zaptel, TDM API
|
||||
WAN/IP: Frame Relay, MultiLink PPP etc..
|
||||
|
||||
2. Protocol:
|
||||
Asterisk/Voice/TDM,
|
||||
1. Protocol:
|
||||
Frame Relay, MulitPort Frame Relay,
|
||||
CHDLC, PPP, MultiPort PPP, ADSL, X25 ...
|
||||
|
||||
3. Protocol/IP Info:
|
||||
2. Protocol/IP Info:
|
||||
Frame Relay: Type of Status Signaling (LMI,
|
||||
ANSI, or Q.933
|
||||
Number of DLCI to configure
|
||||
|
@ -94,7 +91,7 @@ Things you should know before starting /usr/sbin/wancfg:
|
|||
|
||||
IP Info: (Not needed for PPPoE)
|
||||
|
||||
4. CSU/DSU Info:
|
||||
3. CSU/DSU Info:
|
||||
|
||||
T1/E1: Encoding
|
||||
Framing
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
ChangeLog.stable
|
|
@ -0,0 +1,87 @@
|
|||
WANPIPE OFFICIAL RELEASE CHANGE LOG
|
||||
===================================
|
||||
|
||||
|
||||
Author: Nenad Corbic <ncorbic@sangoma.com>
|
||||
|
||||
|
||||
Wanpipe Linux Web Page:
|
||||
-------------------
|
||||
For latest docs please visit Sangoma Wiki
|
||||
Sangoma Wiki: http://wiki.sangoma.com
|
||||
|
||||
|
||||
MAJOR CHANGES
|
||||
-------------
|
||||
|
||||
o The 2.3.4 release contains:
|
||||
|
||||
AFT A108 & A108D Drivers.
|
||||
Updated TDMV Channelized Driver for Asterisk
|
||||
with support for hardware echo cancellation.
|
||||
|
||||
TDM API Drivers.
|
||||
Used to create custom TDM applications over
|
||||
sangoma AFT devices.
|
||||
|
||||
Sangoma Signal Media Gateway:
|
||||
SS7 Support for Asterisk
|
||||
|
||||
LIP Protocol Layer:
|
||||
New protocols: ATM (AAL5), Frame Relay EEK
|
||||
|
||||
|
||||
o The 2.3.3 release contains:
|
||||
|
||||
AFT A104 TDMV Channelized Driver for Asterisk
|
||||
The A104 TDMV Driver uses the channelization feature
|
||||
of the A104 Card, to DMA 8byte chunks directly
|
||||
into Zaptel buffers.
|
||||
|
||||
AFT A104 TDMV DCHAN Feature
|
||||
The DCHAN PRI has hardware HDLC support.
|
||||
|
||||
o The 2.3.2 release contains:
|
||||
|
||||
Stable TDMV Wanpipe drivers for Asterisk.
|
||||
The TDMV drivers support both A102 and A104 cars.
|
||||
Please read wanpipe/doc/README.asterisk
|
||||
|
||||
Stable TE3 Drivers for AFT A301 TE3 Unchannelized Card.
|
||||
All WAN protocols are supported: Frame Relay, PPP, CHDLC..
|
||||
|
||||
Stable LIP Network Layer: Separates Wanpipe hardware from
|
||||
the Network Protocols: Frame Relay, CHDLC,
|
||||
PPP, LAPB API, XDLC API
|
||||
|
||||
o The 2.3.1 contains major structural driver changes.
|
||||
The new Hardware Abstraction layer cleanly separates, the
|
||||
physical layer from the driver/protocol layers.
|
||||
|
||||
Support for 2.6.X kernel.
|
||||
|
||||
o The 2.3.0 contains major structural driver changes
|
||||
most notably the ADSL OS abstraction layer. ADLS drivers
|
||||
can now be compiled against any custom kernel.
|
||||
|
||||
o From 2.2.6 release forward the new S514-7 Dual T/E1,
|
||||
S514-8 Single TE1 and S518 ADSL cards are supproted.
|
||||
|
||||
o From 2.2.4 release forward the new S514-4 T/E1 and S514-5 56K
|
||||
cards are supported.
|
||||
|
||||
o From 2.2.3 release forward ALL wanpipe modules
|
||||
including API modules, can be recompiled from
|
||||
./Setup installation script!
|
||||
NO KERNEL RE-COMPILATION is necessary.
|
||||
|
||||
o From 2.2.3 release forward, wanpipe directory
|
||||
architecture has been changed. New home directory
|
||||
for wanpipe is /etc/wanpipe.
|
||||
|
||||
o All old releases are in ../old_releases/wanpipe directory.
|
||||
|
||||
o Custom RPMs can be build based on current kernel image
|
||||
by using the ./Setup buildrpm command.
|
||||
Read the README.rpmbuild.
|
||||
|
|
@ -16,7 +16,7 @@ SYSINC=/usr/src/linux/include
|
|||
endif
|
||||
VPATH = $(SYSINC)
|
||||
|
||||
DIR_EC_APILIB=../wanec_apilib
|
||||
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)
|
||||
|
||||
|
@ -26,8 +26,7 @@ CFLAGS += -I/usr/include/wanpipe
|
|||
|
||||
TARGETS=aft_api
|
||||
TARGETS+= aft_api_events
|
||||
TARGETS+= aft_integrity
|
||||
TARGETS+= aft_echo
|
||||
TARGETS+= aft_api_repeater
|
||||
#TARGETS+= aft_api_ss7
|
||||
#TARGETS+= aft_api_check
|
||||
#TARGETS+= aft_tdm_api
|
||||
|
@ -43,6 +42,9 @@ aft_api: aft_api.c ../lib/lib_api.c
|
|||
aft_api_events: aft_api_events.c $(SRC_EC_APILIB) ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) $(INC_EC_APILIB) -o $@ $^
|
||||
|
||||
aft_api_repeater: aft_api_repeater.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
|
||||
aft_api_check: aft_api_check.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
|
||||
|
@ -52,11 +54,5 @@ aft_tdm_api: aft_tdm_api.c ../lib/lib_api.c
|
|||
aft_api_ss7: aft_api_ss7.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
|
||||
aft_integrity: aft_integrity.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
|
||||
aft_echo: aft_echo.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(TARGETS)
|
||||
|
|
BIN
api/aft/aft_api
BIN
api/aft/aft_api
Binary file not shown.
|
@ -34,10 +34,10 @@
|
|||
#include <linux/sdla_xilinx.h>
|
||||
#include "lib_api.h"
|
||||
|
||||
#define MAX_TX_DATA 5000 /* Size of tx data */
|
||||
#define MAX_TX_DATA 1024*10 /* Size of tx data */
|
||||
#define MAX_FRAMES 5000 /* Number of frames to transmit */
|
||||
|
||||
#define MAX_RX_DATA 5000
|
||||
#define MAX_RX_DATA 1024*10
|
||||
|
||||
unsigned short Rx_lgth;
|
||||
|
||||
|
@ -90,8 +90,8 @@ int MakeConnection(void)
|
|||
|
||||
printf("\nConnecting to card %s, interface %s prot %x\n", card_name, if_name,htons(PVC_PROT));
|
||||
|
||||
strcpy( (char*)sa.sll_device, if_name);
|
||||
strcpy( (char*)sa.sll_card, card_name);
|
||||
strcpy( sa.sll_device, if_name);
|
||||
strcpy( sa.sll_card, card_name);
|
||||
sa.sll_protocol = htons(PVC_PROT);
|
||||
sa.sll_family=AF_WANPIPE;
|
||||
|
||||
|
@ -543,7 +543,7 @@ int main(int argc, char* argv[])
|
|||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage((unsigned char*)argv[0]);
|
||||
usage(argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
|
@ -85,8 +85,8 @@ int MakeConnection(void)
|
|||
|
||||
printf("\nConnecting to card %s, interface %s prot %x\n", card_name, if_name,htons(PVC_PROT));
|
||||
|
||||
strcpy( (char*)sa.sll_device, if_name);
|
||||
strcpy( (char*)sa.sll_card, card_name);
|
||||
strcpy( sa.sll_device, if_name);
|
||||
strcpy( sa.sll_card, card_name);
|
||||
sa.sll_protocol = htons(PVC_PROT);
|
||||
sa.sll_family=AF_WANPIPE;
|
||||
|
||||
|
@ -234,7 +234,6 @@ tone_try_again:
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static int ringdetect_event_ctrl(u_int8_t mode, int channel, int tone)
|
||||
{
|
||||
api_tx_hdr_t api_tx_hdr;
|
||||
|
@ -259,7 +258,6 @@ ringdetect_try_again:
|
|||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int event_decode(api_rx_hdr_t *rx_hdr)
|
||||
{
|
||||
|
@ -729,7 +727,7 @@ int main(int argc, char* argv[])
|
|||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage((unsigned char*)argv[0]);
|
||||
usage(argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,596 @@
|
|||
/*****************************************************************************
|
||||
* aft_api.c AFT T1/E1: HDLC API Sample Code
|
||||
*
|
||||
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 2003-2004 Sangoma Technologies Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <linux/if_wanpipe.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <signal.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/wanpipe_defines.h>
|
||||
#include <linux/wanpipe_cfg.h>
|
||||
#include <linux/wanpipe.h>
|
||||
#include <linux/sdla_aft_te1.h>
|
||||
#include "lib_api.h"
|
||||
|
||||
#define MAX_TX_DATA 5000 /* Size of tx data */
|
||||
#define MAX_FRAMES 5000 /* Number of frames to transmit */
|
||||
|
||||
#define MAX_RX_DATA 5000
|
||||
|
||||
unsigned short Rx_lgth;
|
||||
|
||||
unsigned char Rx_data[MAX_RX_DATA];
|
||||
unsigned char Tx_data[MAX_TX_DATA + sizeof(api_tx_hdr_t)];
|
||||
|
||||
/* Prototypes */
|
||||
int MakeConnection(void);
|
||||
void handle_socket( void);
|
||||
void sig_end(int sigid);
|
||||
|
||||
int sock;
|
||||
FILE *tx_fd=NULL,*rx_fd=NULL;
|
||||
|
||||
/***************************************************
|
||||
* MakeConnection
|
||||
*
|
||||
* o Create a Socket
|
||||
* o Bind a socket to a wanpipe network interface
|
||||
* (Interface name is supplied by the user)
|
||||
*/
|
||||
|
||||
void print_packet(unsigned char *buf, int len)
|
||||
{
|
||||
int x;
|
||||
printf("{ | ");
|
||||
for (x=0;x<len;x++){
|
||||
if (x && x%24 == 0){
|
||||
printf("\n ");
|
||||
}
|
||||
if (x && x%8 == 0)
|
||||
printf(" | ");
|
||||
printf("%02x ",buf[x]);
|
||||
}
|
||||
printf("}\n");
|
||||
}
|
||||
|
||||
|
||||
int MakeConnection(void)
|
||||
{
|
||||
struct wan_sockaddr_ll sa;
|
||||
|
||||
memset(&sa,0,sizeof(struct wan_sockaddr_ll));
|
||||
errno = 0;
|
||||
sock = socket(AF_WANPIPE, SOCK_RAW, 0);
|
||||
if( sock < 0 ) {
|
||||
perror("Socket");
|
||||
return( WAN_FALSE );
|
||||
} /* if */
|
||||
|
||||
printf("\nConnecting to card %s, interface %s prot %x\n", card_name, if_name,htons(PVC_PROT));
|
||||
|
||||
strcpy( sa.sll_device, if_name);
|
||||
strcpy( sa.sll_card, card_name);
|
||||
sa.sll_protocol = htons(PVC_PROT);
|
||||
sa.sll_family=AF_WANPIPE;
|
||||
|
||||
if(bind(sock, (struct sockaddr *)&sa, sizeof(struct wan_sockaddr_ll)) < 0){
|
||||
perror("bind");
|
||||
printf("Failed to bind a socket to %s interface\n",if_name);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
{
|
||||
unsigned int customer_id;
|
||||
int err = ioctl(sock,SIOC_AFT_CUSTOMER_ID,&customer_id);
|
||||
if (err){
|
||||
perror("Customer ID: ");
|
||||
}else{
|
||||
printf("Customer ID 0x%X\n",customer_id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
printf("Socket bound to %s\n\n",if_name);
|
||||
|
||||
return( WAN_TRUE );
|
||||
|
||||
}
|
||||
|
||||
|
||||
int sangoma_read_socket(int sock, void *data, int len, int flag)
|
||||
{
|
||||
return recv(sock,data,len,flag);
|
||||
|
||||
}
|
||||
|
||||
int sangoma_readmsg_socket(int sock, void *hdrbuf, int hdrlen, void *databuf, int datalen, int flag)
|
||||
{
|
||||
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;
|
||||
|
||||
return recvmsg(sock,&msg,flag);
|
||||
}
|
||||
|
||||
int sangoma_send_socket(int sock, void *data, int len, int flag)
|
||||
{
|
||||
return send(sock,data,len,flag);
|
||||
|
||||
}
|
||||
|
||||
int sangoma_sendmsg_socket(int sock, void *hdrbuf, int hdrlen, void *databuf, int datalen, int flag)
|
||||
{
|
||||
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;
|
||||
|
||||
return sendmsg(sock,&msg,flag);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************
|
||||
* HANDLE SOCKET
|
||||
*
|
||||
* o Read a socket
|
||||
* o Cast data received to api_rx_element_t data type
|
||||
* o The received packet contains 16 bytes header
|
||||
*
|
||||
* ------------------------------------------
|
||||
* | 16 bytes | X bytes ...
|
||||
* ------------------------------------------
|
||||
* Header Data
|
||||
*
|
||||
* o Data structures:
|
||||
*
|
||||
* typedef struct {
|
||||
* unsigned char error_flag;
|
||||
* unsigned short time_stamp;
|
||||
* unsigned char reserved[13];
|
||||
* } api_rx_hdr_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* api_rx_hdr_t api_rx_hdr;
|
||||
* unsigned char data[1];
|
||||
* } api_rx_element_t;
|
||||
*
|
||||
*/
|
||||
|
||||
void handle_socket(void)
|
||||
{
|
||||
unsigned int Rx_count,Tx_count,Tx_length;
|
||||
api_rx_element_t* api_rx_el;
|
||||
api_tx_element_t * api_tx_el;
|
||||
fd_set ready,write,oob;
|
||||
int err,i;
|
||||
int rlen;
|
||||
#if 0
|
||||
int stream_sync=0;
|
||||
#endif
|
||||
Rx_count = 0;
|
||||
Tx_count = 0;
|
||||
Tx_length = tx_size;
|
||||
|
||||
printf("\n\nSocket Handler: Rx=%d Tx=%i TxCnt=%i TxLen=%i TxDelay=%i\n",
|
||||
read_enable,write_enable,tx_cnt,tx_size,tx_delay);
|
||||
|
||||
/* Initialize the Tx Data buffer */
|
||||
memset(&Tx_data[0],0,MAX_TX_DATA + sizeof(api_tx_hdr_t));
|
||||
|
||||
/* If rx file is specified, open
|
||||
* it and prepare it for writing */
|
||||
if (files_used & RX_FILE_USED){
|
||||
rx_fd=fopen(rx_file,"wb");
|
||||
if (!rx_fd){
|
||||
printf("Failed to open file %s\n",rx_file);
|
||||
perror("File: ");
|
||||
return;
|
||||
}
|
||||
printf("Opening %s rx file\n",rx_file);
|
||||
}
|
||||
|
||||
/* Cast the Tx data packet with the tx element
|
||||
* structure. We must insert a 16 byte
|
||||
* driver header, which driver will remove
|
||||
* before passing packet out the physical port */
|
||||
api_tx_el = (api_tx_element_t*)&Tx_data[0];
|
||||
|
||||
if (files_used & TX_FILE_USED){
|
||||
|
||||
/* TX file is used to transmit data */
|
||||
|
||||
tx_fd=fopen(tx_file,"rb");
|
||||
if (!tx_fd){
|
||||
printf("Failed to open file %s\n",tx_file);
|
||||
perror("File: ");
|
||||
return;
|
||||
}
|
||||
|
||||
printf("Opening %s tx file\n",rx_file);
|
||||
|
||||
rlen=fread((void*)&Tx_data[sizeof(api_tx_hdr_t)],
|
||||
sizeof(char),
|
||||
Tx_length,tx_fd);
|
||||
if (!rlen){
|
||||
printf("%s: File empty!\n",
|
||||
tx_file);
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
|
||||
/* Create a Tx packet based on user info, or
|
||||
* by deafult incrementing number starting from 0 */
|
||||
for (i=0;i<Tx_length;i++){
|
||||
if (tx_data == -1){
|
||||
api_tx_el->data[i] = (unsigned char)i;
|
||||
}else{
|
||||
#if 0
|
||||
api_tx_el->data[i] = (unsigned char)tx_data+(i%4);
|
||||
#else
|
||||
api_tx_el->data[i] = (unsigned char)tx_data;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
memset(api_tx_el->api_tx_hdr.wp_api_tx_hdr_hdlc_rpt_data,tx_data+1,4);
|
||||
api_tx_el->api_tx_hdr.wp_api_tx_hdr_hdlc_rpt_len=4;
|
||||
|
||||
/* Main Rx Tx OOB routine */
|
||||
for(;;) {
|
||||
|
||||
/* Initialize all select() descriptors */
|
||||
FD_ZERO(&ready);
|
||||
FD_ZERO(&write);
|
||||
FD_ZERO(&oob);
|
||||
FD_SET(sock,&oob);
|
||||
FD_SET(sock,&ready);
|
||||
|
||||
if (write_enable){
|
||||
FD_SET(sock,&write);
|
||||
}
|
||||
|
||||
/* Select will block, until:
|
||||
* 1: OOB event, link level change
|
||||
* 2: Rx data available
|
||||
* 3: Interface able to Tx */
|
||||
|
||||
if(select(sock + 1,&ready, &write, &oob, NULL)){
|
||||
|
||||
fflush(stdout);
|
||||
if (FD_ISSET(sock,&oob)){
|
||||
|
||||
/* An OOB event is pending, usually indicating
|
||||
* a link level change */
|
||||
|
||||
err = recv(sock, Rx_data, MAX_RX_DATA, MSG_OOB);
|
||||
|
||||
if(err < 0 ) {
|
||||
printf("Failed to receive OOB %i , %i\n", Rx_count, err);
|
||||
err = ioctl(sock,SIOC_WANPIPE_SOCK_STATE,0);
|
||||
printf("Sock state is %s\n",
|
||||
(err == 0) ? "CONNECTED" :
|
||||
(err == 1) ? "DISCONNECTED" :
|
||||
"CONNECTING");
|
||||
break;
|
||||
}
|
||||
|
||||
printf("GOT OOB EXCEPTION CMD Exiting\n");
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (FD_ISSET(sock,&ready)){
|
||||
|
||||
/* An Rx packet is pending
|
||||
* 1: Read the rx packet into the Rx_data
|
||||
* buffer. Confirm len > 0
|
||||
*
|
||||
* 2: Cast Rx_data to the api_rx_element.
|
||||
* Thus, removing a 16 byte header
|
||||
* attached by the driver.
|
||||
*
|
||||
* 3. Check error_flag:
|
||||
* CRC,Abort..etc
|
||||
*/
|
||||
|
||||
memset(Rx_data, 0, sizeof(Rx_data));
|
||||
|
||||
#if 1
|
||||
err = sangoma_readmsg_socket(sock,
|
||||
Rx_data,16,
|
||||
&Rx_data[16], MAX_RX_DATA-16,
|
||||
0);
|
||||
#else
|
||||
err = sangoma_read_socket(sock, Rx_data, MAX_RX_DATA, 0);
|
||||
#endif
|
||||
if (!read_enable){
|
||||
goto bitstrm_skip_read;
|
||||
}
|
||||
|
||||
|
||||
/* err indicates bytes received */
|
||||
if(err <= 0) {
|
||||
printf("\nError receiving data\n");
|
||||
break;
|
||||
}
|
||||
|
||||
api_rx_el = (api_rx_element_t*)&Rx_data[0];
|
||||
|
||||
/* Check the packet length */
|
||||
Rx_lgth = err - sizeof(api_rx_hdr_t);
|
||||
if(Rx_lgth<=0) {
|
||||
printf("\nShort frame received (%d)\n",
|
||||
Rx_lgth);
|
||||
return;
|
||||
}
|
||||
|
||||
if (api_rx_el->api_rx_hdr.error_flag){
|
||||
printf("Data: ");
|
||||
for(i=0;i<Rx_lgth; i ++) {
|
||||
printf("0x%02X ", Rx_data[i+16]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
if (api_rx_el->api_rx_hdr.error_flag & (1<<WP_FIFO_ERROR_BIT)){
|
||||
printf("\nPacket with fifo overflow err=0x%X len=%i\n",
|
||||
api_rx_el->api_rx_hdr.error_flag,Rx_lgth);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (api_rx_el->api_rx_hdr.error_flag & (1<<WP_CRC_ERROR_BIT)){
|
||||
printf("\nPacket with invalid crc! err=0x%X len=%i\n",
|
||||
api_rx_el->api_rx_hdr.error_flag,Rx_lgth);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (api_rx_el->api_rx_hdr.error_flag & (1<<WP_ABORT_ERROR_BIT)){
|
||||
printf("\nPacket with abort! err=0x%X len=%i\n",
|
||||
api_rx_el->api_rx_hdr.error_flag,Rx_lgth);
|
||||
continue;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (api_rx_el->data[0] == tx_data && api_rx_el->data[1] == (tx_data+1)){
|
||||
if (!stream_sync){
|
||||
printf("GOT SYNC %x\n",api_rx_el->data[0]);
|
||||
}
|
||||
stream_sync=1;
|
||||
}else{
|
||||
if (stream_sync){
|
||||
printf("OUT OF SYNC: %x\n",api_rx_el->data[0]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((files_used & RX_FILE_USED) && rx_fd){
|
||||
fwrite((void*)&Rx_data[sizeof(api_rx_hdr_t)],
|
||||
sizeof(char),
|
||||
Rx_lgth,
|
||||
rx_fd);
|
||||
}
|
||||
|
||||
++Rx_count;
|
||||
|
||||
//printf("RECEIVE:\n");
|
||||
//print_packet(&Rx_data[16],Rx_lgth);
|
||||
|
||||
if (Rx_lgth > 8) {
|
||||
verbose=3;
|
||||
} else {
|
||||
if (verbose) {
|
||||
verbose--;
|
||||
}
|
||||
}
|
||||
|
||||
if (verbose){
|
||||
printf("Received %i Olen=%i Length = %i\n",
|
||||
Rx_count, err,Rx_lgth);
|
||||
#if 1
|
||||
printf("Data: ");
|
||||
for(i=0;i<Rx_lgth; i ++) {
|
||||
printf("%02X ", api_rx_el->data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
#endif
|
||||
}else{
|
||||
//putchar('R');
|
||||
}
|
||||
|
||||
if (rx_cnt > 0 && Rx_count >= rx_cnt){
|
||||
break;
|
||||
}
|
||||
bitstrm_skip_read:
|
||||
;
|
||||
}
|
||||
|
||||
if (FD_ISSET(sock,&write)){
|
||||
|
||||
|
||||
if (Tx_count == 0){
|
||||
//printf("SEND: Len=%i\n",Tx_length);
|
||||
//print_packet(&Tx_data[16],Tx_length);
|
||||
}
|
||||
|
||||
#if 1
|
||||
err = sangoma_sendmsg_socket(sock,
|
||||
Tx_data,16,
|
||||
&Tx_data[16], Tx_length,
|
||||
0);
|
||||
#else
|
||||
err = sangoma_send_socket(sock,Tx_data,
|
||||
Tx_length + sizeof(api_tx_hdr_t), 0);
|
||||
#endif
|
||||
if (err <= 0){
|
||||
if (errno == EBUSY){
|
||||
if (verbose){
|
||||
printf("Sock busy try again!\n");
|
||||
}
|
||||
/* Socket busy try sending again !*/
|
||||
}else{
|
||||
/* Check socket state */
|
||||
err = ioctl(sock,SIOC_WANPIPE_SOCK_STATE,0);
|
||||
printf("Sock state is %s\n",
|
||||
(err == 0) ? "CONNECTED" :
|
||||
(err == 1) ? "DISCONNECTED" :
|
||||
"CONNECTING");
|
||||
|
||||
printf("Failed to send errno=%i len=%i \n",errno,Tx_length);
|
||||
perror("Send: ");
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
++Tx_count;
|
||||
tx_data++;
|
||||
|
||||
memset(api_tx_el->data,tx_data,Tx_length);
|
||||
memset(api_tx_el->api_tx_hdr.wp_api_tx_hdr_hdlc_rpt_data,tx_data+1,4);
|
||||
api_tx_el->api_tx_hdr.wp_api_tx_hdr_hdlc_rpt_len=4;
|
||||
|
||||
|
||||
if (verbose){
|
||||
printf("Packet sent: Sent %i : %i\n",
|
||||
err,Tx_count);
|
||||
}else{
|
||||
//putchar('T');
|
||||
}
|
||||
|
||||
if ((files_used & TX_FILE_USED) && tx_fd){
|
||||
rlen=fread((void*)&Tx_data[sizeof(api_tx_hdr_t)],
|
||||
sizeof(char),
|
||||
Tx_length,tx_fd);
|
||||
if (!rlen){
|
||||
printf("\nTx of file %s is done!\n",
|
||||
tx_file);
|
||||
break;
|
||||
}
|
||||
if (Tx_length != rlen){
|
||||
Tx_length = rlen;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tx_delay){
|
||||
usleep(tx_delay);
|
||||
}
|
||||
|
||||
if (tx_cnt && tx_size && Tx_count >= tx_cnt && !(files_used & TX_FILE_USED)){
|
||||
|
||||
write_enable=0;
|
||||
if (rx_cnt > 0){
|
||||
/* Dont break let rx finish */
|
||||
}else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tx_fd){
|
||||
fclose(tx_fd);
|
||||
}
|
||||
if (rx_fd){
|
||||
fclose(rx_fd);
|
||||
}
|
||||
close (sock);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************
|
||||
* Main:
|
||||
*
|
||||
* o Make a socket connection to the driver.
|
||||
* o Call handle_socket() to read the socket
|
||||
*
|
||||
**************************************************************/
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int proceed;
|
||||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage(argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
signal(SIGINT,&sig_end);
|
||||
|
||||
proceed = MakeConnection();
|
||||
if( proceed == WAN_TRUE){
|
||||
handle_socket();
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
||||
void sig_end(int sigid)
|
||||
{
|
||||
|
||||
printf("Got Signal %i\n",sigid);
|
||||
|
||||
if (tx_fd){
|
||||
fclose(tx_fd);
|
||||
}
|
||||
if (rx_fd){
|
||||
fclose(rx_fd);
|
||||
}
|
||||
|
||||
if (sock){
|
||||
close (sock);
|
||||
}
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
BIN
api/aft/aft_echo
BIN
api/aft/aft_echo
Binary file not shown.
|
@ -1,316 +0,0 @@
|
|||
/*****************************************************************************
|
||||
* chdlc_api.c CHDLC API: Receive Module
|
||||
*
|
||||
* Author(s): Gideon Hack & Nenad Corbic <ncorbic@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 1995-2001 Sangoma Technologies Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
* ============================================================================
|
||||
* Description:
|
||||
*
|
||||
* The chdlc_api.c utility will bind to a socket to a chdlc network
|
||||
* interface, and continously tx and rx packets to an from the sockets.
|
||||
*
|
||||
* This example has been written for a single interface in mind,
|
||||
* where the same process handles tx and rx data.
|
||||
*
|
||||
* A real world example, should use different processes to handle
|
||||
* tx and rx spearately.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <linux/if_wanpipe.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <linux/wanpipe.h>
|
||||
#include <linux/sdla_aft_te1.h>
|
||||
#include "lib_api.h"
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE 1
|
||||
|
||||
#define LGTH_CRC_BYTES 0
|
||||
#define MAX_TX_DATA 5000 /* Size of tx data */
|
||||
#define MAX_RX_DATA MAX_TX_DATA
|
||||
|
||||
|
||||
#define SOCK_TIMEOUT 1
|
||||
|
||||
|
||||
/*===================================================
|
||||
* Golobal data
|
||||
*==================================================*/
|
||||
|
||||
unsigned char HDLC_streaming = FALSE;
|
||||
unsigned short Rx_lgth;
|
||||
|
||||
unsigned char Rx_data[MAX_RX_DATA];
|
||||
unsigned char Tx_data[MAX_TX_DATA];
|
||||
int sock;
|
||||
|
||||
|
||||
/*===================================================
|
||||
* Function Prototypes
|
||||
*==================================================*/
|
||||
int MakeConnection(void);
|
||||
void handle_socket( void);
|
||||
|
||||
|
||||
|
||||
|
||||
/*===================================================
|
||||
* MakeConnection
|
||||
*
|
||||
* o Create a Socket
|
||||
* o Bind a socket to a wanpipe network interface
|
||||
* (Interface name is supplied by the user)
|
||||
*==================================================*/
|
||||
|
||||
int MakeConnection(void)
|
||||
{
|
||||
struct wan_sockaddr_ll sa;
|
||||
|
||||
memset(&sa,0,sizeof(struct wan_sockaddr_ll));
|
||||
errno = 0;
|
||||
sock = socket(AF_WANPIPE, SOCK_RAW, 0);
|
||||
if( sock < 0 ) {
|
||||
perror("Socket");
|
||||
return(FALSE);
|
||||
} /* if */
|
||||
|
||||
printf("\nConnecting to router %s, interface %s\n", card_name, if_name);
|
||||
|
||||
strcpy( (char*)sa.sll_device, if_name);
|
||||
strcpy( (char*)sa.sll_card, card_name);
|
||||
sa.sll_protocol = htons(PVC_PROT);
|
||||
sa.sll_family=AF_WANPIPE;
|
||||
|
||||
if(bind(sock, (struct sockaddr *)&sa, sizeof(struct wan_sockaddr_ll)) < 0){
|
||||
perror("bind");
|
||||
printf("Failed to bind a socket to %s interface\n",if_name);
|
||||
exit(0);
|
||||
}
|
||||
printf("Socket bound to %s\n\n",if_name);
|
||||
|
||||
return(TRUE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*===========================================================
|
||||
* handle_socket
|
||||
*
|
||||
* o Tx/Rx data to and from the socket
|
||||
* o Cast received data to an api_rx_element_t data type
|
||||
* o The received packet contains 16 bytes header
|
||||
*
|
||||
* ------------------------------------------
|
||||
* | 16 bytes | X bytes ...
|
||||
* ------------------------------------------
|
||||
* Header Data
|
||||
*
|
||||
* RX DATA:
|
||||
* --------
|
||||
* Each rx data packet contains the 16 byte header!
|
||||
*
|
||||
* o Rx 16 byte data structure:
|
||||
*
|
||||
* typedef struct {
|
||||
* unsigned char error_flag PACKED;
|
||||
* unsigned short time_stamp PACKED;
|
||||
* unsigned char reserved[13] PACKED;
|
||||
* } api_rx_hdr_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* api_rx_hdr_t api_rx_hdr PACKED;
|
||||
* void * data PACKED;
|
||||
* } api_rx_element_t;
|
||||
*
|
||||
* error_flag:
|
||||
* bit 0: incoming frame was aborted
|
||||
* bit 1: incoming frame has a CRC error
|
||||
* bit 2: incoming frame has an overrun eror
|
||||
*
|
||||
* time_stamp:
|
||||
* absolute time value in ms.
|
||||
*
|
||||
* TX_DATA:
|
||||
* --------
|
||||
* Each tx data packet MUST contain a 16 byte header!
|
||||
*
|
||||
* o Tx 16 byte data structure
|
||||
*
|
||||
* typedef struct {
|
||||
* unsigned char attr PACKED;
|
||||
* unsigned char reserved[15] PACKED;
|
||||
* } api_tx_hdr_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* api_tx_hdr_t api_tx_hdr PACKED;
|
||||
* void * data PACKED;
|
||||
* } api_tx_element_t;
|
||||
*
|
||||
* Currently the chdlc device driver doesn't use any of
|
||||
* the above fields. Thus, the user can set the 16 bytes
|
||||
* to ZERO.
|
||||
*
|
||||
*/
|
||||
|
||||
void handle_socket(void)
|
||||
{
|
||||
unsigned int Rx_count,Tx_count,Tx_length;
|
||||
api_tx_element_t * api_tx_el;
|
||||
fd_set ready,write,oob;
|
||||
int err;
|
||||
struct timeval tv;
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = SOCK_TIMEOUT;
|
||||
|
||||
|
||||
Rx_count = 0;
|
||||
Tx_count = 0;
|
||||
Tx_length = tx_size;
|
||||
|
||||
printf("\n\nSocket Handler: Rx=%d Tx=%i TxCnt=%i TxLen=%i TxDelay=%i RxCnt=%i\n",
|
||||
read_enable,write_enable,tx_cnt,tx_size,tx_delay,rx_cnt);
|
||||
|
||||
/* If running HDLC_STREAMING then the received CRC bytes
|
||||
* will be passed to the application as part of the
|
||||
* received data.
|
||||
*/
|
||||
|
||||
api_tx_el = (api_tx_element_t*)&Tx_data[0];
|
||||
memset(&Tx_data[0],0,MAX_TX_DATA);
|
||||
|
||||
while (1) {
|
||||
err = ioctl(sock,SIOC_WANPIPE_SOCK_STATE,0);
|
||||
printf("Interface %s state is %s (%d)\n",
|
||||
if_name,
|
||||
(err == 0) ? "CONNECTED" :
|
||||
(err == 1) ? "DISCONNECTED" :
|
||||
"CONNECTING",err);
|
||||
|
||||
if (err < 0) {
|
||||
printf("Error interface down %s sock disconnected! (%s)\n",
|
||||
if_name,strerror(errno));
|
||||
return;
|
||||
}
|
||||
|
||||
if (err > 0) {
|
||||
printf("Waiting for interface %s to come up!\n",if_name);
|
||||
sleep(10);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for(;;) {
|
||||
FD_ZERO(&ready);
|
||||
FD_ZERO(&write);
|
||||
FD_ZERO(&oob);
|
||||
FD_SET(sock,&oob);
|
||||
FD_SET(sock,&ready);
|
||||
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = SOCK_TIMEOUT;
|
||||
|
||||
if (write_enable){
|
||||
FD_SET(sock,&write);
|
||||
}
|
||||
|
||||
fflush(stdout);
|
||||
err= select(sock + 1,&ready, NULL, &oob, NULL);
|
||||
|
||||
if (err < 0) {
|
||||
printf("Error: inteface down: %s socket disconnected %s\n",
|
||||
if_name,strerror(errno));
|
||||
break;
|
||||
|
||||
} else if (err == 0) {
|
||||
/* Timeout do something */
|
||||
|
||||
} else {
|
||||
|
||||
if (FD_ISSET(sock,&oob)){
|
||||
|
||||
err = recv(sock, Rx_data, MAX_RX_DATA, MSG_OOB);
|
||||
|
||||
if(err < 0 ) {
|
||||
printf("Failed to receive OOB %i , %i\n", Rx_count, err);
|
||||
err = ioctl(sock,SIOC_WANPIPE_SOCK_STATE,0);
|
||||
printf("Sock state is %s\n",
|
||||
(err == 0) ? "CONNECTED" :
|
||||
(err == 1) ? "DISCONNECTED" :
|
||||
"CONNECTING");
|
||||
break;
|
||||
}
|
||||
|
||||
printf("Got OOB exception: Link Down !\n");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (FD_ISSET(sock,&ready)){
|
||||
|
||||
err = recv(sock, Rx_data, MAX_RX_DATA, 0);
|
||||
|
||||
/* err indicates bytes received */
|
||||
if (err > 0){
|
||||
Rx_count++;
|
||||
err = send(sock, Rx_data, err, 0);
|
||||
Tx_count++;
|
||||
printf("Rx Len=%i Rx=%i Tx=%i : Echo Ok\r",
|
||||
err-sizeof(api_rx_hdr_t), Tx_count,Rx_count);
|
||||
} else {
|
||||
printf("\nError receiving data\n");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
close (sock);
|
||||
}
|
||||
|
||||
/***************************************************************
|
||||
* Main:
|
||||
*
|
||||
* o Make a socket connection to the driver.
|
||||
* o Call handle_socket() to read/write the socket
|
||||
*
|
||||
**************************************************************/
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int proceed;
|
||||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage((unsigned char*)argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
proceed = MakeConnection();
|
||||
if(proceed == WAN_TRUE){
|
||||
handle_socket();
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
};
|
Binary file not shown.
|
@ -11,8 +11,8 @@ OS_TYPE = __LINUX__
|
|||
DEBUG = 2
|
||||
|
||||
# Project file paths.
|
||||
SYSINC = /usr/src/linux/include
|
||||
APIINC = /usr/src/linux/include
|
||||
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)
|
||||
|
@ -22,6 +22,7 @@ CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib -I$(SYSINC)
|
|||
all: chdlc_api \
|
||||
chdlc_rts_cts \
|
||||
chdlc_integrity \
|
||||
chdlc_modem_cmd \
|
||||
chdlc_echo
|
||||
@echo "Ok."
|
||||
|
||||
|
@ -38,6 +39,9 @@ chdlc_rts_cts: chdlc_rts_cts.c
|
|||
chdlc_integrity: chdlc_integrity.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
|
||||
chdlc_modem_cmd: chdlc_modem_cmd.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f chdlc_api
|
||||
rm -f chdlc_rts_cts
|
||||
|
|
Binary file not shown.
|
@ -1,9 +1,9 @@
|
|||
/*****************************************************************************
|
||||
* chdlc_api.c CHDLC API: Receive Module
|
||||
* chdlc_modem_cmd.c CHDLC API: Modem CMD Example
|
||||
*
|
||||
* Author(s): Gideon Hack & Nenad Corbic <ncorbic@sangoma.com>
|
||||
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 1995-2001 Sangoma Technologies Inc.
|
||||
* Copyright: (c) 1995-2008 Sangoma Technologies Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
|
@ -37,24 +37,26 @@
|
|||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <linux/wanpipe.h>
|
||||
#include <linux/sdla_aft_te1.h>
|
||||
#include <linux/sdla_chdlc.h>
|
||||
#include "lib_api.h"
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE 1
|
||||
|
||||
#define LGTH_CRC_BYTES 0
|
||||
#define LGTH_CRC_BYTES 2
|
||||
#define MAX_TX_DATA 5000 /* Size of tx data */
|
||||
#define MAX_RX_DATA MAX_TX_DATA
|
||||
|
||||
|
||||
#define SOCK_TIMEOUT 1
|
||||
FILE *tx_fd=NULL,*rx_fd=NULL;
|
||||
wan_mbox_t gmbox;
|
||||
|
||||
|
||||
/*===================================================
|
||||
* Golobal data
|
||||
*==================================================*/
|
||||
|
||||
unsigned short no_CRC_bytes_Rx;
|
||||
unsigned char HDLC_streaming = FALSE;
|
||||
unsigned short Rx_lgth;
|
||||
|
||||
|
@ -69,10 +71,6 @@ int sock;
|
|||
int MakeConnection(void);
|
||||
void handle_socket( void);
|
||||
|
||||
static unsigned char test_data[]={0x00,0x5A, 0xAA, 0xA5, 0xFF};
|
||||
static unsigned char tx_index=0;
|
||||
|
||||
|
||||
|
||||
/*===================================================
|
||||
* MakeConnection
|
||||
|
@ -96,8 +94,8 @@ int MakeConnection(void)
|
|||
|
||||
printf("\nConnecting to router %s, interface %s\n", card_name, if_name);
|
||||
|
||||
strcpy( (char*)sa.sll_device, if_name);
|
||||
strcpy( (char*)sa.sll_card, card_name);
|
||||
strcpy( sa.sll_device, if_name);
|
||||
strcpy( sa.sll_card, card_name);
|
||||
sa.sll_protocol = htons(PVC_PROT);
|
||||
sa.sll_family=AF_WANPIPE;
|
||||
|
||||
|
@ -113,31 +111,90 @@ int MakeConnection(void)
|
|||
}
|
||||
|
||||
|
||||
void init_tx_pattern(void)
|
||||
static int exec_cmd(int fd, wan_mbox_t * mb)
|
||||
{
|
||||
api_tx_element_t * api_tx_el;
|
||||
unsigned char *data;
|
||||
int i;
|
||||
|
||||
memset(&Tx_data[0],0,MAX_TX_DATA);
|
||||
|
||||
/* Initialize the tx packet. The 16 byte header must
|
||||
* be inserted before tx data. In CHDLC protocol,
|
||||
* the tx x25 header is not used, thus it can be
|
||||
* set to zero */
|
||||
api_tx_el = (api_tx_element_t*)&Tx_data[0];
|
||||
data = (unsigned char *)api_tx_el->data;
|
||||
|
||||
for (i=0;i<tx_size;i++){
|
||||
data[i] = test_data[tx_index];
|
||||
|
||||
tx_index++;
|
||||
if (tx_index >= sizeof(test_data)){
|
||||
tx_index=0;
|
||||
}
|
||||
int err = ioctl(sock,SIOC_MBOX_CMD,mb);
|
||||
if (err) {
|
||||
perror("SIOC_MBOX_CMD");
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch (mb->wan_return_code) {
|
||||
|
||||
case 0:
|
||||
return 0;
|
||||
default:
|
||||
printf("Error: CMD returned 0x%0X\n",
|
||||
mb->wan_return_code);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static unsigned char gstatus=0;
|
||||
static int exec_read_modem_cmd(int fd, wan_mbox_t * mb)
|
||||
{
|
||||
MODEM_STATUS_STRUCT *mstat;
|
||||
int err=0;
|
||||
memset(mb,0,sizeof(wan_mbox_t));
|
||||
|
||||
mb->wan_data_len = 0;
|
||||
mb->wan_command = READ_MODEM_STATUS;
|
||||
|
||||
err=exec_cmd(fd,mb);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
mstat=(MODEM_STATUS_STRUCT*)mb->wan_data;
|
||||
|
||||
if (mstat->modem_status == gstatus) {
|
||||
return 0;
|
||||
}
|
||||
gstatus = mstat->modem_status;
|
||||
|
||||
printf("MODEM CMD rc=0x%02X data_len=%i data=0x%02X\n",
|
||||
mb->wan_return_code, mb->wan_data_len, mb->wan_data[0]);
|
||||
|
||||
mstat=(MODEM_STATUS_STRUCT*)mb->wan_data;
|
||||
|
||||
printf("MODEM STATUS (Data=0x%02X) DCD=%i CTS=%i\n",
|
||||
mstat->modem_status,
|
||||
(mstat->modem_status&MODEM_DCD_MASK)?1:0,
|
||||
(mstat->modem_status&MODEM_CTS_MASK)?1:0);
|
||||
}
|
||||
|
||||
static int exec_set_modem_cmd(int fd, wan_mbox_t * mb, int dtr, int rts)
|
||||
{
|
||||
MODEM_STATUS_STRUCT *mstat=(MODEM_STATUS_STRUCT*)mb->wan_data;
|
||||
|
||||
int err=0;
|
||||
memset(mb,0,sizeof(wan_mbox_t));
|
||||
|
||||
mb->wan_data_len = 0;
|
||||
mb->wan_command = SET_MODEM_STATUS;
|
||||
mb->wan_data_len = 1;
|
||||
|
||||
mstat->modem_status = 0;
|
||||
if (dtr) {
|
||||
mstat->modem_status |= SET_MODEM_DTR_HIGH;
|
||||
}
|
||||
if (rts) {
|
||||
mstat->modem_status |= SET_MODEM_RTS_HIGH;
|
||||
}
|
||||
|
||||
|
||||
err=exec_cmd(fd,mb);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
|
||||
printf("MODEM CMD rc=0x%02X data_len=%i data=0x%02X (dtr=%i rts=%i)\n",
|
||||
mb->wan_return_code, mb->wan_data_len, mb->wan_data[0],dtr,rts);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*===========================================================
|
||||
* handle_socket
|
||||
|
@ -205,12 +262,16 @@ void handle_socket(void)
|
|||
api_tx_element_t * api_tx_el;
|
||||
fd_set ready,write,oob;
|
||||
int err,i;
|
||||
int rlen;
|
||||
int ferr;
|
||||
int txfile_bytes=0;
|
||||
void *pRx_data,*pTx_data;
|
||||
int no_CRC_bytes_Rx = LGTH_CRC_BYTES;
|
||||
struct timeval tv;
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = SOCK_TIMEOUT;
|
||||
|
||||
|
||||
pRx_data = (void*)&Rx_data[sizeof(api_rx_hdr_t)];
|
||||
pTx_data = (void*)&Tx_data[sizeof(api_tx_hdr_t)];
|
||||
|
||||
Rx_count = 0;
|
||||
Tx_count = 0;
|
||||
Tx_length = tx_size;
|
||||
|
@ -223,33 +284,73 @@ void handle_socket(void)
|
|||
* received data.
|
||||
*/
|
||||
|
||||
api_tx_el = (api_tx_element_t*)&Tx_data[0];
|
||||
memset(&Tx_data[0],0,MAX_TX_DATA);
|
||||
|
||||
init_tx_pattern();
|
||||
if (files_used & RX_FILE_USED){
|
||||
rx_fd=fopen(rx_file,"wb");
|
||||
if (!rx_fd){
|
||||
printf("Failed to open file %s\n",rx_file);
|
||||
perror("File: ");
|
||||
return;
|
||||
}
|
||||
printf("Opening %s rx file\n",rx_file);
|
||||
}
|
||||
|
||||
while (1) {
|
||||
err = ioctl(sock,SIOC_WANPIPE_SOCK_STATE,0);
|
||||
printf("Interface %s state is %s (%d)\n",
|
||||
if_name,
|
||||
(err == 0) ? "CONNECTED" :
|
||||
(err == 1) ? "DISCONNECTED" :
|
||||
"CONNECTING",err);
|
||||
|
||||
if (err < 0) {
|
||||
printf("Error interface down %s sock disconnected! (%s)\n",
|
||||
if_name,strerror(errno));
|
||||
if (files_used & TX_FILE_USED){
|
||||
|
||||
tx_fd=fopen(tx_file,"rb");
|
||||
if (!tx_fd){
|
||||
printf("Failed to open file %s\n",tx_file);
|
||||
perror("File: ");
|
||||
return;
|
||||
}
|
||||
|
||||
if (err > 0) {
|
||||
printf("Waiting for interface %s to come up!\n",if_name);
|
||||
sleep(10);
|
||||
} else {
|
||||
break;
|
||||
printf("Opening %s tx file\n",tx_file);
|
||||
|
||||
rlen=fread(pTx_data,
|
||||
sizeof(char),
|
||||
Tx_length,tx_fd);
|
||||
|
||||
|
||||
if (!rlen){
|
||||
printf("%s: File empty!\n",
|
||||
tx_file);
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
api_tx_el = (api_tx_element_t*)&Tx_data[0];
|
||||
|
||||
for (i=0;i<Tx_length;i++){
|
||||
if (tx_data == -1){
|
||||
api_tx_el->data[i] = (unsigned char)i;
|
||||
}else{
|
||||
api_tx_el->data[i] = (unsigned char)tx_data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!write_enable) {
|
||||
while (1) {
|
||||
exec_read_modem_cmd(sock, &gmbox);
|
||||
sleep(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sleep(4);
|
||||
exec_set_modem_cmd(sock, &gmbox, 0, 0);
|
||||
sleep(4);
|
||||
exec_set_modem_cmd(sock, &gmbox, 1, 0);
|
||||
sleep(4);
|
||||
exec_set_modem_cmd(sock, &gmbox, 0, 1);
|
||||
sleep(4);
|
||||
exec_set_modem_cmd(sock, &gmbox, 1, 1);
|
||||
sleep(4);
|
||||
|
||||
exit(1);
|
||||
|
||||
|
||||
for(;;) {
|
||||
FD_ZERO(&ready);
|
||||
FD_ZERO(&write);
|
||||
|
@ -257,25 +358,12 @@ void handle_socket(void)
|
|||
FD_SET(sock,&oob);
|
||||
FD_SET(sock,&ready);
|
||||
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = SOCK_TIMEOUT;
|
||||
|
||||
if (write_enable){
|
||||
FD_SET(sock,&write);
|
||||
}
|
||||
|
||||
fflush(stdout);
|
||||
err= select(sock + 1,&ready, &write, &oob, &tv);
|
||||
|
||||
if (err < 0) {
|
||||
printf("Error: inteface down: %s socket disconnected %s\n",
|
||||
if_name,strerror(errno));
|
||||
break;
|
||||
|
||||
} else if (err == 0) {
|
||||
/* Timeout do someting if you like */
|
||||
|
||||
} else {
|
||||
if(select(sock + 1,&ready, &write, &oob, NULL)){
|
||||
|
||||
if (FD_ISSET(sock,&oob)){
|
||||
|
||||
|
@ -300,6 +388,10 @@ void handle_socket(void)
|
|||
|
||||
err = recv(sock, Rx_data, MAX_RX_DATA, 0);
|
||||
|
||||
if (!read_enable){
|
||||
goto bitstrm_skip_read;
|
||||
}
|
||||
|
||||
/* err indicates bytes received */
|
||||
if (err > 0){
|
||||
|
||||
|
@ -310,36 +402,64 @@ void handle_socket(void)
|
|||
if(Rx_lgth<=0) {
|
||||
printf("\nShort frame received (%d)\n",
|
||||
Rx_lgth);
|
||||
Rx_count++;
|
||||
continue;
|
||||
return;
|
||||
}
|
||||
|
||||
switch (api_rx_el->api_rx_hdr.error_flag){
|
||||
|
||||
case 0:
|
||||
/* Rx packet is good */
|
||||
break;
|
||||
|
||||
case RX_FRM_ABORT:
|
||||
/* Frame was aborted */
|
||||
break;
|
||||
case RX_FRM_CRC_ERROR:
|
||||
/* Frame has crc error */
|
||||
break;
|
||||
case RX_FRM_OVERRUN_ERROR:
|
||||
/* Frame has an overrun error */
|
||||
break;
|
||||
default:
|
||||
/* Error with the rx packet
|
||||
* handle it ... */
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ((files_used & RX_FILE_USED) && rx_fd){
|
||||
ferr=fwrite(pRx_data,
|
||||
sizeof(char),
|
||||
Rx_lgth,
|
||||
rx_fd);
|
||||
if (ferr != Rx_lgth){
|
||||
printf("Error: fwrite failed: written=%i should have %i\n",
|
||||
ferr,Rx_lgth);
|
||||
}
|
||||
}
|
||||
|
||||
++Rx_count;
|
||||
|
||||
if (Rx_lgth != Tx_length){
|
||||
printf("Rx Error cnt %i: Rx length %i not equal to %i\n",
|
||||
Rx_count,Rx_lgth,Tx_length);
|
||||
break;
|
||||
if (verbose){
|
||||
printf("Received %i Olen=%i Length = %i\n",
|
||||
Rx_count, err,Rx_lgth);
|
||||
}else{
|
||||
putchar('R');
|
||||
}
|
||||
|
||||
for (i=0;i<Rx_lgth;i++){
|
||||
if (((unsigned char*)api_rx_el->data)[i] !=
|
||||
((unsigned char*)api_tx_el->data)[i]){
|
||||
printf("Rx Error cnt=%i: Packet corruption on offset %i\n",
|
||||
Rx_count,i);
|
||||
break;
|
||||
#if 1
|
||||
if (verbose){
|
||||
printf("Data: ");
|
||||
for(i=0;(i<Rx_lgth)&&(i<32); i ++) {
|
||||
printf("0x%02X ", api_rx_el->data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
if (verbose) {
|
||||
printf("Tx Len=%i Tx=%i Rx=%i : Data Ok\r",
|
||||
Tx_length, Tx_count,Rx_count);
|
||||
}
|
||||
|
||||
if (Rx_count == tx_cnt){
|
||||
init_tx_pattern();
|
||||
Rx_count=0;
|
||||
write_enable=1;
|
||||
if (rx_cnt == Rx_count){
|
||||
printf("Rxcnt %i == RxCount=%i\n",rx_cnt,Rx_count);
|
||||
break;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -349,12 +469,16 @@ void handle_socket(void)
|
|||
|
||||
}
|
||||
|
||||
bitstrm_skip_read:
|
||||
if (FD_ISSET(sock,&write)){
|
||||
|
||||
err = send(sock,Tx_data, Tx_length + sizeof(api_tx_hdr_t), 0);
|
||||
|
||||
if (err <= 0){
|
||||
if (errno == EBUSY){
|
||||
if (verbose){
|
||||
printf("Sock busy try again!\n");
|
||||
}
|
||||
/* Socket busy try sending again !*/
|
||||
}else{
|
||||
/* Check socket state */
|
||||
|
@ -369,12 +493,31 @@ void handle_socket(void)
|
|||
break;
|
||||
}
|
||||
}else{
|
||||
++Tx_count;
|
||||
if (verbose && Rx_count < 1) {
|
||||
printf("Tx Len=%i Tx=%i Rx=%i : Data Ok\r",
|
||||
Tx_length, Tx_count,Rx_count);
|
||||
}
|
||||
|
||||
++Tx_count;
|
||||
|
||||
if (verbose){
|
||||
printf("Packet sent: Sent %i : %i\n",
|
||||
err,Tx_count);
|
||||
}else{
|
||||
//putchar('T');
|
||||
}
|
||||
txfile_bytes+=Tx_length;
|
||||
|
||||
if ((files_used & TX_FILE_USED) && tx_fd){
|
||||
rlen=fread(pTx_data,
|
||||
sizeof(char),
|
||||
Tx_length,tx_fd);
|
||||
|
||||
if (!rlen){
|
||||
printf("\nTx of file %s is done %i bytes!\n",
|
||||
tx_file,txfile_bytes);
|
||||
break;
|
||||
}
|
||||
if (Tx_length != rlen){
|
||||
Tx_length = rlen;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -382,13 +525,22 @@ void handle_socket(void)
|
|||
sleep(tx_delay);
|
||||
}
|
||||
|
||||
if (tx_size && Tx_count == tx_cnt){
|
||||
if (tx_size && Tx_count == tx_cnt && !(files_used & TX_FILE_USED)){
|
||||
write_enable=0;
|
||||
Tx_count=0;
|
||||
if (!rx_cnt){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tx_fd){
|
||||
fclose(tx_fd);
|
||||
}
|
||||
if (rx_fd){
|
||||
fclose(rx_fd);
|
||||
}
|
||||
|
||||
close (sock);
|
||||
}
|
||||
|
||||
|
@ -407,7 +559,7 @@ int main(int argc, char* argv[])
|
|||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage((unsigned char*)argv[0]);
|
||||
usage(argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -16,13 +16,19 @@ SYSINC = /usr/src/linux/include
|
|||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I$(SYSINC) -I$(APIINC)
|
||||
|
||||
TARGETS = fr_api
|
||||
#TARGETS += fr_api_fast
|
||||
|
||||
|
||||
####### RULES ################################################################
|
||||
|
||||
all: fr_api
|
||||
all: $(TARGETS)
|
||||
@echo "Ok."
|
||||
|
||||
fr_api: fr_api.c
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
#fr_api_fast: fr_api_fast.c
|
||||
# $(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
clean:
|
||||
rm -f fr_api
|
||||
rm -f $(TARGETS)
|
||||
|
|
|
@ -407,7 +407,7 @@ int init_args(int argc, char *argv[])
|
|||
return WAN_TRUE;
|
||||
}
|
||||
|
||||
static unsigned char api_usage[]="\n"
|
||||
static char api_usage[]="\n"
|
||||
"\n"
|
||||
"<options>:\n"
|
||||
" -i <ifname> #interface name\n"
|
||||
|
@ -466,7 +466,7 @@ static unsigned char api_usage[]="\n"
|
|||
" -diagn <digit> #disconnect diagnostic (dflt=0)\n"
|
||||
"\n";
|
||||
|
||||
void usage(unsigned char *api_name)
|
||||
void usage(char *api_name)
|
||||
{
|
||||
printf ("\n\nAPI %s USAGE:\n\n%s <options> <extra options>\n\n%s\n",
|
||||
api_name,api_name,api_usage);
|
||||
|
|
|
@ -38,14 +38,14 @@ extern int cause;
|
|||
extern int card_cnt;
|
||||
extern int i_cnt;
|
||||
|
||||
extern char tx_file[WAN_IFNAME_SZ];
|
||||
extern char rx_file[WAN_IFNAME_SZ];
|
||||
extern char tx_file[WAN_IFNAME_SZ];
|
||||
extern char rx_file[WAN_IFNAME_SZ];
|
||||
|
||||
#define TX_ADDR_STR_SZ 100
|
||||
|
||||
extern char daddr[TX_ADDR_STR_SZ];
|
||||
extern char saddr[TX_ADDR_STR_SZ];
|
||||
extern char udata[TX_ADDR_STR_SZ];
|
||||
extern char daddr[TX_ADDR_STR_SZ];
|
||||
extern char saddr[TX_ADDR_STR_SZ];
|
||||
extern char udata[TX_ADDR_STR_SZ];
|
||||
|
||||
|
||||
#define TX_FILE_USED 1
|
||||
|
@ -55,11 +55,11 @@ extern char udata[TX_ADDR_STR_SZ];
|
|||
|
||||
extern int init_args(int argc, char *argv[]);
|
||||
|
||||
extern void usage(unsigned char *api_name);
|
||||
extern void usage(char *api_name);
|
||||
extern void u_delay(int usec);
|
||||
|
||||
extern char card_name[WAN_IFNAME_SZ];
|
||||
extern char if_name[WAN_IFNAME_SZ];
|
||||
|
||||
extern char sw_if_name[WAN_IFNAME_SZ];
|
||||
extern char sw_card_name[WAN_IFNAME_SZ];
|
||||
extern char sw_if_name[WAN_IFNAME_SZ];
|
||||
extern char sw_card_name[WAN_IFNAME_SZ];
|
||||
|
|
|
@ -66,12 +66,16 @@ libsangoma_la-libsangoma.lo libsangoma_la-libsangoma.o: libsangoma.c \
|
|||
../../patches/kdrivers/include/linux/wanpipe_version.h \
|
||||
../../patches/kdrivers/include/linux/wanpipe_kernel.h \
|
||||
/lib/modules/2.6.18-8.1.15.el5/build/include/linux/version.h \
|
||||
../../patches/kdrivers/include/linux/wanpipe_abstr_types.h \
|
||||
../../patches/kdrivers/include/linux/wanpipe_cfg.h \
|
||||
../../patches/kdrivers/include/linux/sdla_56k.h \
|
||||
../../patches/kdrivers/include/linux/sdla_te1.h \
|
||||
../../patches/kdrivers/include/linux/sdla_te3.h \
|
||||
../../patches/kdrivers/include/linux/sdla_remora.h \
|
||||
../../patches/kdrivers/include/linux/sdla_remora_proslic.h \
|
||||
../../patches/kdrivers/include/linux/sdla_bri.h \
|
||||
../../patches/kdrivers/include/linux/xhfc24succ.h \
|
||||
../../patches/kdrivers/include/linux/sdla_serial.h \
|
||||
../../patches/kdrivers/include/linux/sdla_front_end.h \
|
||||
../../patches/kdrivers/include/linux/wanpipe.h \
|
||||
../../patches/kdrivers/include/linux/wanpipe_debug.h \
|
||||
|
@ -82,7 +86,8 @@ libsangoma_la-libsangoma.lo libsangoma_la-libsangoma.o: libsangoma.c \
|
|||
../../patches/kdrivers/include/linux/wanpipe_includes.h \
|
||||
../../patches/kdrivers/include/linux/if_wanpipe.h \
|
||||
/lib/modules/2.6.18-8.1.15.el5/build/include/linux/sockios.h \
|
||||
../../patches/kdrivers/include/linux/wanpipe_codec_iface.h
|
||||
../../patches/kdrivers/include/linux/wanpipe_codec_iface.h \
|
||||
../../patches/kdrivers/include/linux/wanpipe_tdm_api_iface.h
|
||||
|
||||
libsangoma.h:
|
||||
|
||||
|
@ -302,6 +307,8 @@ libsangoma.h:
|
|||
|
||||
/lib/modules/2.6.18-8.1.15.el5/build/include/linux/version.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/wanpipe_abstr_types.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/wanpipe_cfg.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/sdla_56k.h:
|
||||
|
@ -314,6 +321,12 @@ libsangoma.h:
|
|||
|
||||
../../patches/kdrivers/include/linux/sdla_remora_proslic.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/sdla_bri.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/xhfc24succ.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/sdla_serial.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/sdla_front_end.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/wanpipe.h:
|
||||
|
@ -335,3 +348,5 @@ libsangoma.h:
|
|||
/lib/modules/2.6.18-8.1.15.el5/build/include/linux/sockios.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/wanpipe_codec_iface.h:
|
||||
|
||||
../../patches/kdrivers/include/linux/wanpipe_tdm_api_iface.h:
|
||||
|
|
|
@ -1,336 +1 @@
|
|||
libsangoma_la-sangoma_pri.lo libsangoma_la-sangoma_pri.o: sangoma_pri.c \
|
||||
./libsangoma.h /usr/include/stdlib.h /usr/include/features.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/gnu/stubs.h \
|
||||
/usr/lib/gcc/i386-redhat-linux/3.4.3/include/stddef.h \
|
||||
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
|
||||
/usr/include/endian.h /usr/include/bits/endian.h /usr/include/xlocale.h \
|
||||
/usr/include/sys/types.h /usr/include/bits/types.h \
|
||||
/usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
|
||||
/usr/include/time.h /usr/include/sys/select.h \
|
||||
/usr/include/bits/select.h /usr/include/bits/sigset.h \
|
||||
/usr/include/bits/time.h /usr/include/sys/sysmacros.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
|
||||
/usr/include/alloca.h /usr/include/stdio.h /usr/include/libio.h \
|
||||
/usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
|
||||
/usr/include/gconv.h \
|
||||
/usr/lib/gcc/i386-redhat-linux/3.4.3/include/stdarg.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
|
||||
/usr/include/bits/stdio.h /usr/include/ctype.h /usr/include/unistd.h \
|
||||
/usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
|
||||
/usr/include/bits/confname.h /usr/include/getopt.h \
|
||||
/usr/include/sys/time.h /usr/include/sys/socket.h \
|
||||
/usr/include/sys/uio.h /usr/include/bits/uio.h \
|
||||
/usr/include/bits/socket.h \
|
||||
/usr/lib/gcc/i386-redhat-linux/3.4.3/include/limits.h \
|
||||
/usr/lib/gcc/i386-redhat-linux/3.4.3/include/syslimits.h \
|
||||
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
|
||||
/usr/include/bits/local_lim.h /usr/src/linux/include/linux/limits.h \
|
||||
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
|
||||
/usr/include/bits/sockaddr.h /usr/src/linux/include/asm/socket.h \
|
||||
/usr/src/linux/include/asm/sockios.h /usr/include/netinet/in.h \
|
||||
/usr/include/stdint.h /usr/include/bits/in.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/string.h \
|
||||
/usr/include/bits/string.h /usr/include/bits/string2.h \
|
||||
/usr/include/errno.h /usr/include/bits/errno.h \
|
||||
/usr/src/linux/include/linux/errno.h /usr/src/linux/include/asm/errno.h \
|
||||
/usr/src/linux/include/asm-generic/errno.h \
|
||||
/usr/src/linux/include/asm-generic/errno-base.h /usr/include/fcntl.h \
|
||||
/usr/include/bits/fcntl.h /usr/include/sys/stat.h \
|
||||
/usr/include/bits/stat.h /usr/include/sys/ioctl.h \
|
||||
/usr/include/bits/ioctls.h /usr/src/linux/include/asm/ioctls.h \
|
||||
/usr/src/linux/include/asm/ioctl.h /usr/include/bits/ioctl-types.h \
|
||||
/usr/include/sys/ttydefaults.h /usr/src/linux/include/linux/if.h \
|
||||
/usr/src/linux/include/linux/types.h \
|
||||
/usr/src/linux/include/linux/posix_types.h \
|
||||
/usr/src/linux/include/linux/stddef.h \
|
||||
/usr/src/linux/include/linux/compiler.h \
|
||||
/usr/src/linux/include/asm/posix_types.h \
|
||||
/usr/src/linux/include/asm/types.h \
|
||||
/usr/src/linux/include/linux/socket.h \
|
||||
/usr/src/linux/include/linux/hdlc/ioctl.h \
|
||||
/usr/src/linux/include/linux/wanpipe_defines.h \
|
||||
/usr/src/linux/include/linux/wanpipe_version.h \
|
||||
/usr/src/linux/include/linux/wanpipe_kernel.h \
|
||||
/usr/src/linux/include/linux/version.h \
|
||||
/usr/src/linux/include/linux/wanpipe_cfg.h \
|
||||
/usr/src/linux/include/linux/sdla_56k.h \
|
||||
/usr/src/linux/include/linux/sdla_te1.h \
|
||||
/usr/src/linux/include/linux/sdla_te3.h \
|
||||
/usr/src/linux/include/linux/sdla_remora.h \
|
||||
/usr/src/linux/include/linux/sdla_remora_proslic.h \
|
||||
/usr/src/linux/include/linux/sdla_front_end.h \
|
||||
/usr/src/linux/include/linux/wanpipe.h \
|
||||
/usr/src/linux/include/linux/wanpipe_debug.h \
|
||||
/usr/src/linux/include/linux/wanpipe_common.h \
|
||||
/usr/src/linux/include/linux/wanpipe_events.h \
|
||||
/usr/src/linux/include/linux/wanrouter.h /usr/include/poll.h \
|
||||
/usr/include/sys/poll.h /usr/include/bits/poll.h \
|
||||
/usr/src/linux/include/linux/wanpipe_tdm_api.h \
|
||||
/usr/src/linux/include/linux/wanpipe_includes.h \
|
||||
/usr/src/linux/include/linux/if_wanpipe.h \
|
||||
/usr/src/linux/include/linux/sockios.h \
|
||||
/usr/src/linux/include/linux/wanpipe_codec_iface.h \
|
||||
/usr/include/signal.h /usr/include/bits/signum.h \
|
||||
/usr/include/bits/siginfo.h /usr/include/bits/sigaction.h \
|
||||
/usr/include/bits/sigcontext.h /usr/src/linux/include/asm/sigcontext.h \
|
||||
/usr/include/bits/sigstack.h /usr/include/sys/ucontext.h \
|
||||
/usr/include/bits/sigthread.h /usr/include/sys/signal.h \
|
||||
/usr/include/sys/wait.h /usr/include/sys/resource.h \
|
||||
/usr/include/bits/resource.h ./sangoma_pri.h /usr/src/libpri/libpri.h \
|
||||
/usr/src/libpri/pri_internal.h
|
||||
|
||||
./libsangoma.h:
|
||||
|
||||
/usr/include/stdlib.h:
|
||||
|
||||
/usr/include/features.h:
|
||||
|
||||
/usr/include/sys/cdefs.h:
|
||||
|
||||
/usr/include/gnu/stubs.h:
|
||||
|
||||
/usr/lib/gcc/i386-redhat-linux/3.4.3/include/stddef.h:
|
||||
|
||||
/usr/include/bits/waitflags.h:
|
||||
|
||||
/usr/include/bits/waitstatus.h:
|
||||
|
||||
/usr/include/endian.h:
|
||||
|
||||
/usr/include/bits/endian.h:
|
||||
|
||||
/usr/include/xlocale.h:
|
||||
|
||||
/usr/include/sys/types.h:
|
||||
|
||||
/usr/include/bits/types.h:
|
||||
|
||||
/usr/include/bits/wordsize.h:
|
||||
|
||||
/usr/include/bits/typesizes.h:
|
||||
|
||||
/usr/include/time.h:
|
||||
|
||||
/usr/include/sys/select.h:
|
||||
|
||||
/usr/include/bits/select.h:
|
||||
|
||||
/usr/include/bits/sigset.h:
|
||||
|
||||
/usr/include/bits/time.h:
|
||||
|
||||
/usr/include/sys/sysmacros.h:
|
||||
|
||||
/usr/include/bits/pthreadtypes.h:
|
||||
|
||||
/usr/include/bits/sched.h:
|
||||
|
||||
/usr/include/alloca.h:
|
||||
|
||||
/usr/include/stdio.h:
|
||||
|
||||
/usr/include/libio.h:
|
||||
|
||||
/usr/include/_G_config.h:
|
||||
|
||||
/usr/include/wchar.h:
|
||||
|
||||
/usr/include/bits/wchar.h:
|
||||
|
||||
/usr/include/gconv.h:
|
||||
|
||||
/usr/lib/gcc/i386-redhat-linux/3.4.3/include/stdarg.h:
|
||||
|
||||
/usr/include/bits/stdio_lim.h:
|
||||
|
||||
/usr/include/bits/sys_errlist.h:
|
||||
|
||||
/usr/include/bits/stdio.h:
|
||||
|
||||
/usr/include/ctype.h:
|
||||
|
||||
/usr/include/unistd.h:
|
||||
|
||||
/usr/include/bits/posix_opt.h:
|
||||
|
||||
/usr/include/bits/environments.h:
|
||||
|
||||
/usr/include/bits/confname.h:
|
||||
|
||||
/usr/include/getopt.h:
|
||||
|
||||
/usr/include/sys/time.h:
|
||||
|
||||
/usr/include/sys/socket.h:
|
||||
|
||||
/usr/include/sys/uio.h:
|
||||
|
||||
/usr/include/bits/uio.h:
|
||||
|
||||
/usr/include/bits/socket.h:
|
||||
|
||||
/usr/lib/gcc/i386-redhat-linux/3.4.3/include/limits.h:
|
||||
|
||||
/usr/lib/gcc/i386-redhat-linux/3.4.3/include/syslimits.h:
|
||||
|
||||
/usr/include/limits.h:
|
||||
|
||||
/usr/include/bits/posix1_lim.h:
|
||||
|
||||
/usr/include/bits/local_lim.h:
|
||||
|
||||
/usr/src/linux/include/linux/limits.h:
|
||||
|
||||
/usr/include/bits/posix2_lim.h:
|
||||
|
||||
/usr/include/bits/xopen_lim.h:
|
||||
|
||||
/usr/include/bits/sockaddr.h:
|
||||
|
||||
/usr/src/linux/include/asm/socket.h:
|
||||
|
||||
/usr/src/linux/include/asm/sockios.h:
|
||||
|
||||
/usr/include/netinet/in.h:
|
||||
|
||||
/usr/include/stdint.h:
|
||||
|
||||
/usr/include/bits/in.h:
|
||||
|
||||
/usr/include/bits/byteswap.h:
|
||||
|
||||
/usr/include/string.h:
|
||||
|
||||
/usr/include/bits/string.h:
|
||||
|
||||
/usr/include/bits/string2.h:
|
||||
|
||||
/usr/include/errno.h:
|
||||
|
||||
/usr/include/bits/errno.h:
|
||||
|
||||
/usr/src/linux/include/linux/errno.h:
|
||||
|
||||
/usr/src/linux/include/asm/errno.h:
|
||||
|
||||
/usr/src/linux/include/asm-generic/errno.h:
|
||||
|
||||
/usr/src/linux/include/asm-generic/errno-base.h:
|
||||
|
||||
/usr/include/fcntl.h:
|
||||
|
||||
/usr/include/bits/fcntl.h:
|
||||
|
||||
/usr/include/sys/stat.h:
|
||||
|
||||
/usr/include/bits/stat.h:
|
||||
|
||||
/usr/include/sys/ioctl.h:
|
||||
|
||||
/usr/include/bits/ioctls.h:
|
||||
|
||||
/usr/src/linux/include/asm/ioctls.h:
|
||||
|
||||
/usr/src/linux/include/asm/ioctl.h:
|
||||
|
||||
/usr/include/bits/ioctl-types.h:
|
||||
|
||||
/usr/include/sys/ttydefaults.h:
|
||||
|
||||
/usr/src/linux/include/linux/if.h:
|
||||
|
||||
/usr/src/linux/include/linux/types.h:
|
||||
|
||||
/usr/src/linux/include/linux/posix_types.h:
|
||||
|
||||
/usr/src/linux/include/linux/stddef.h:
|
||||
|
||||
/usr/src/linux/include/linux/compiler.h:
|
||||
|
||||
/usr/src/linux/include/asm/posix_types.h:
|
||||
|
||||
/usr/src/linux/include/asm/types.h:
|
||||
|
||||
/usr/src/linux/include/linux/socket.h:
|
||||
|
||||
/usr/src/linux/include/linux/hdlc/ioctl.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_defines.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_version.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_kernel.h:
|
||||
|
||||
/usr/src/linux/include/linux/version.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_cfg.h:
|
||||
|
||||
/usr/src/linux/include/linux/sdla_56k.h:
|
||||
|
||||
/usr/src/linux/include/linux/sdla_te1.h:
|
||||
|
||||
/usr/src/linux/include/linux/sdla_te3.h:
|
||||
|
||||
/usr/src/linux/include/linux/sdla_remora.h:
|
||||
|
||||
/usr/src/linux/include/linux/sdla_remora_proslic.h:
|
||||
|
||||
/usr/src/linux/include/linux/sdla_front_end.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_debug.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_common.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_events.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanrouter.h:
|
||||
|
||||
/usr/include/poll.h:
|
||||
|
||||
/usr/include/sys/poll.h:
|
||||
|
||||
/usr/include/bits/poll.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_tdm_api.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_includes.h:
|
||||
|
||||
/usr/src/linux/include/linux/if_wanpipe.h:
|
||||
|
||||
/usr/src/linux/include/linux/sockios.h:
|
||||
|
||||
/usr/src/linux/include/linux/wanpipe_codec_iface.h:
|
||||
|
||||
/usr/include/signal.h:
|
||||
|
||||
/usr/include/bits/signum.h:
|
||||
|
||||
/usr/include/bits/siginfo.h:
|
||||
|
||||
/usr/include/bits/sigaction.h:
|
||||
|
||||
/usr/include/bits/sigcontext.h:
|
||||
|
||||
/usr/src/linux/include/asm/sigcontext.h:
|
||||
|
||||
/usr/include/bits/sigstack.h:
|
||||
|
||||
/usr/include/sys/ucontext.h:
|
||||
|
||||
/usr/include/bits/sigthread.h:
|
||||
|
||||
/usr/include/sys/signal.h:
|
||||
|
||||
/usr/include/sys/wait.h:
|
||||
|
||||
/usr/include/sys/resource.h:
|
||||
|
||||
/usr/include/bits/resource.h:
|
||||
|
||||
./sangoma_pri.h:
|
||||
|
||||
/usr/src/libpri/libpri.h:
|
||||
|
||||
/usr/src/libpri/pri_internal.h:
|
||||
# dummy
|
||||
|
|
|
@ -0,0 +1,215 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 32
|
||||
/svn/libsangoma/!svn/ver/1/trunk
|
||||
END
|
||||
configure
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 42
|
||||
/svn/libsangoma/!svn/ver/1/trunk/configure
|
||||
END
|
||||
Makefile.in
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 44
|
||||
/svn/libsangoma/!svn/ver/1/trunk/Makefile.in
|
||||
END
|
||||
config.log
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 43
|
||||
/svn/libsangoma/!svn/ver/1/trunk/config.log
|
||||
END
|
||||
AUTHORS
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/libsangoma/!svn/ver/1/trunk/AUTHORS
|
||||
END
|
||||
depcomp
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/libsangoma/!svn/ver/1/trunk/depcomp
|
||||
END
|
||||
compile
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/libsangoma/!svn/ver/1/trunk/compile
|
||||
END
|
||||
config.guess
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 45
|
||||
/svn/libsangoma/!svn/ver/1/trunk/config.guess
|
||||
END
|
||||
svn-commit.2.tmp
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 49
|
||||
/svn/libsangoma/!svn/ver/1/trunk/svn-commit.2.tmp
|
||||
END
|
||||
ltmain.sh
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 42
|
||||
/svn/libsangoma/!svn/ver/1/trunk/ltmain.sh
|
||||
END
|
||||
config.sub
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 43
|
||||
/svn/libsangoma/!svn/ver/1/trunk/config.sub
|
||||
END
|
||||
libsangoma.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 45
|
||||
/svn/libsangoma/!svn/ver/1/trunk/libsangoma.c
|
||||
END
|
||||
libsangoma.dsp
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 47
|
||||
/svn/libsangoma/!svn/ver/1/trunk/libsangoma.dsp
|
||||
END
|
||||
libsangoma.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 45
|
||||
/svn/libsangoma/!svn/ver/1/trunk/libsangoma.h
|
||||
END
|
||||
g711.h
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 39
|
||||
/svn/libsangoma/!svn/ver/1/trunk/g711.h
|
||||
END
|
||||
INSTALL
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/libsangoma/!svn/ver/1/trunk/INSTALL
|
||||
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
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 41
|
||||
/svn/libsangoma/!svn/ver/1/trunk/Makefile
|
||||
END
|
||||
sangoma_pri.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 46
|
||||
/svn/libsangoma/!svn/ver/1/trunk/sangoma_pri.c
|
||||
END
|
||||
libsangoma.so.conf
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 51
|
||||
/svn/libsangoma/!svn/ver/1/trunk/libsangoma.so.conf
|
||||
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
|
||||
configure.in
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 45
|
||||
/svn/libsangoma/!svn/ver/1/trunk/configure.in
|
||||
END
|
||||
ChangeLog
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 42
|
||||
/svn/libsangoma/!svn/ver/1/trunk/ChangeLog
|
||||
END
|
||||
config.status
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 46
|
||||
/svn/libsangoma/!svn/ver/1/trunk/config.status
|
||||
END
|
||||
svn-commit.tmp
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 47
|
||||
/svn/libsangoma/!svn/ver/1/trunk/svn-commit.tmp
|
||||
END
|
||||
README
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 39
|
||||
/svn/libsangoma/!svn/ver/1/trunk/README
|
||||
END
|
||||
config.h.in
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 44
|
||||
/svn/libsangoma/!svn/ver/1/trunk/config.h.in
|
||||
END
|
||||
libtool
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/libsangoma/!svn/ver/1/trunk/libtool
|
||||
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
|
||||
V 43
|
||||
/svn/libsangoma/!svn/ver/1/trunk/install-sh
|
||||
END
|
||||
libsangoma.vcproj
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/libsangoma/!svn/ver/1/trunk/libsangoma.vcproj
|
||||
END
|
|
@ -1,15 +1,15 @@
|
|||
8
|
||||
|
||||
dir
|
||||
237
|
||||
svn://sangoma.freeswitch.org/libsangoma/trunk
|
||||
svn://sangoma.freeswitch.org
|
||||
1
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
||||
|
||||
2007-07-24T23:10:36.931930Z
|
||||
231
|
||||
ncorbic
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
|
||||
svn:special svn:externals svn:needs-lock
|
||||
|
@ -24,7 +24,7 @@ svn:special svn:externals svn:needs-lock
|
|||
|
||||
|
||||
|
||||
2028fedf-720c-0410-83b8-d54a3e729fb0
|
||||
8fe45b59-3c47-0410-bdf9-e5d932a076a6
|
||||
|
||||
configure
|
||||
file
|
||||
|
@ -32,11 +32,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
cdcb22cae8ad2d0de88542d1adf5b13d
|
||||
2007-02-07T19:00:12.109961Z
|
||||
166
|
||||
ncorbic
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
has-props
|
||||
|
||||
Makefile.in
|
||||
|
@ -45,11 +45,23 @@ file
|
|||
|
||||
|
||||
|
||||
2007-07-24T22:45:02.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
1c05e844314274f082a74abf3f446239
|
||||
2007-05-29T18:03:36.038276Z
|
||||
206
|
||||
ncorbic
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
config.log
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2008-02-28T19:04:34.000000Z
|
||||
1584c0969324cd96c0864b8e43ee0b0f
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
AUTHORS
|
||||
file
|
||||
|
@ -57,11 +69,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
d41d8cd98f00b204e9800998ecf8427e
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
|
||||
depcomp
|
||||
file
|
||||
|
@ -69,11 +81,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
e181e2c8720c60522c4c4c981108e367
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
has-props
|
||||
|
||||
compile
|
||||
|
@ -82,11 +94,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
a7ecc032b527a0d578545f19d3418073
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
has-props
|
||||
|
||||
config.guess
|
||||
|
@ -95,11 +107,48 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
9ae396244b8f138c76514a6b7531e696
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
has-props
|
||||
|
||||
svn-commit.2.tmp
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2008-02-28T19:04:34.000000Z
|
||||
9bf5427f205140ba936f4feb06d54cac
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
ltmain.sh
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2008-02-28T19:04:34.000000Z
|
||||
c8215e3aa0858d700783015614f53b79
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
config.sub
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2008-02-28T19:04:34.000000Z
|
||||
3d36962d51070d30b7554203b0d7c01c
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
has-props
|
||||
|
||||
libsangoma.c
|
||||
|
@ -108,36 +157,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-07-24T23:09:55.000000Z
|
||||
cb02ecd239d3d3d37cf6d5e704a0dc39
|
||||
2007-07-24T23:10:36.931930Z
|
||||
231
|
||||
ncorbic
|
||||
|
||||
ltmain.sh
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
c8215e3aa0858d700783015614f53b79
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
20fa69ba4181e245e810703d4c1787bd
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
|
||||
config.sub
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
3d36962d51070d30b7554203b0d7c01c
|
||||
2006-02-10T16:20:41.709688Z
|
||||
1
|
||||
anthm
|
||||
has-props
|
||||
root
|
||||
|
||||
libsangoma.dsp
|
||||
file
|
||||
|
@ -145,11 +169,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
f934aab66c529599725686f321d182e6
|
||||
2006-12-04T20:48:10.874618Z
|
||||
156
|
||||
anthm
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
libsangoma.h
|
||||
file
|
||||
|
@ -157,11 +181,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-07-24T22:47:49.000000Z
|
||||
19c2545ffa4e1a11f2a1b5f4850a10bd
|
||||
2007-07-24T22:47:39.060265Z
|
||||
230
|
||||
ncorbic
|
||||
2008-02-28T19:04:34.000000Z
|
||||
3a381ddb82700688b9ea1dcdb1f10d6a
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
g711.h
|
||||
file
|
||||
|
@ -169,11 +193,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
0f725f95ced42af15dcaef21f3a1722b
|
||||
2006-11-06T23:11:15.401413Z
|
||||
119
|
||||
ncorbic
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
INSTALL
|
||||
file
|
||||
|
@ -181,23 +205,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
40539bd3eff06e4b82f380103145415b
|
||||
2006-08-08T19:52:23.727343Z
|
||||
94
|
||||
ncorbic
|
||||
|
||||
libsangoma.dsw
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
f13496d2105bae2add104c36a1d656f6
|
||||
2006-12-04T20:48:10.874618Z
|
||||
156
|
||||
anthm
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
COPYING
|
||||
file
|
||||
|
@ -205,11 +217,47 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
d41d8cd98f00b204e9800998ecf8427e
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
|
||||
libsangoma.dsw
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2008-02-28T19:04:34.000000Z
|
||||
f13496d2105bae2add104c36a1d656f6
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
diff
|
||||
file
|
||||
2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
deleted
|
||||
|
||||
NEWS
|
||||
file
|
||||
|
@ -217,11 +265,23 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
d41d8cd98f00b204e9800998ecf8427e
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
|
||||
Makefile
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2008-02-28T19:04:34.000000Z
|
||||
c4406ae0adf00115003a0530d2e2c5d0
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
libsangoma.so.conf
|
||||
file
|
||||
|
@ -229,11 +289,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
bcdcb23c5d5fb460cee2ce315ef7bd32
|
||||
2006-10-19T19:27:09.335085Z
|
||||
101
|
||||
ncorbic
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
sangoma_pri.c
|
||||
file
|
||||
|
@ -241,11 +301,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
e2a6c68fadfefb2d2b16c52534e85675
|
||||
2006-12-04T20:47:20.283144Z
|
||||
155
|
||||
anthm
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
win_api_common.h
|
||||
file
|
||||
|
@ -253,11 +313,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
b6be170d18fa90b79f7264cf8b0f7348
|
||||
2006-12-04T22:21:07.339224Z
|
||||
157
|
||||
mikej
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
version
|
||||
file
|
||||
|
@ -265,11 +325,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
35f672d1fb01b542f667952c9dbb26fe
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
|
||||
sangoma_pri.h
|
||||
file
|
||||
|
@ -277,11 +337,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
f24c6cf396aeaa6df2747f7f6b32969d
|
||||
2006-03-24T14:19:31.976520Z
|
||||
28
|
||||
anthm
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
configure.in
|
||||
file
|
||||
|
@ -289,11 +349,24 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
5b9888fc365c4ebffdbb55656c091a2f
|
||||
2007-02-07T19:00:12.109961Z
|
||||
166
|
||||
ncorbic
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
config.status
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2008-02-28T19:04:34.000000Z
|
||||
75ac9809637055fcbd3f4be64fab529f
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
has-props
|
||||
|
||||
ChangeLog
|
||||
file
|
||||
|
@ -301,11 +374,23 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
d41d8cd98f00b204e9800998ecf8427e
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
|
||||
svn-commit.tmp
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2008-02-28T19:04:34.000000Z
|
||||
4ac38b24bcff9c3975171af8ccbcfa36
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
README
|
||||
file
|
||||
|
@ -313,11 +398,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
e8a0abce86211364eb60bbe6e07d4b05
|
||||
2006-02-14T19:06:52.853886Z
|
||||
6
|
||||
nenad
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
config.h.in
|
||||
file
|
||||
|
@ -325,23 +410,24 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
5c51918deee8d041af37226bd4b4271e
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
|
||||
Makefile.am
|
||||
libtool
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2007-07-24T22:45:02.000000Z
|
||||
061d814c4cf9a1066e4ff2501fa0a100
|
||||
2007-05-29T18:03:36.038276Z
|
||||
206
|
||||
ncorbic
|
||||
2008-02-28T19:04:34.000000Z
|
||||
898515184ba0d7df32a1913b7f3ee099
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
has-props
|
||||
|
||||
missing
|
||||
file
|
||||
|
@ -349,24 +435,27 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
fd5dd60aa8cefab9462677280ea74a61
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
has-props
|
||||
|
||||
aclocal.m4
|
||||
Makefile.am
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
dd02d76e53ac83f5112d68797e8f52e3
|
||||
2007-02-07T19:00:12.109961Z
|
||||
166
|
||||
ncorbic
|
||||
2008-02-28T19:04:34.000000Z
|
||||
061d814c4cf9a1066e4ff2501fa0a100
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
examples
|
||||
dir
|
||||
|
||||
install-sh
|
||||
file
|
||||
|
@ -374,25 +463,22 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
92067666ddce97609bd0ec67d36460cd
|
||||
2006-02-10T16:20:41.709688Z
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
anthm
|
||||
root
|
||||
has-props
|
||||
|
||||
examples
|
||||
dir
|
||||
|
||||
libsangoma.vcproj
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
a09711e3b6aac93dd48d8e9b3014955f
|
||||
2006-12-04T22:24:41.715361Z
|
||||
158
|
||||
mikej
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 14
|
||||
svn:executable
|
||||
V 0
|
||||
|
||||
END
|
|
@ -0,0 +1,679 @@
|
|||
# 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:
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,983 @@
|
|||
#! /bin/sh
|
||||
# Generated by configure.
|
||||
# Run this file to recreate the current configuration.
|
||||
# Compiler output produced by configure, useful for debugging
|
||||
# configure, is in config.log if it exists.
|
||||
|
||||
debug=false
|
||||
ac_cs_recheck=false
|
||||
ac_cs_silent=false
|
||||
SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
## --------------------- ##
|
||||
## M4sh Initialization. ##
|
||||
## --------------------- ##
|
||||
|
||||
# Be Bourne compatible
|
||||
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
|
||||
emulate sh
|
||||
NULLCMD=:
|
||||
# Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
|
||||
# is contrary to our usage. Disable this feature.
|
||||
alias -g '${1+"$@"}'='"$@"'
|
||||
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
|
||||
set -o posix
|
||||
fi
|
||||
DUALCASE=1; export DUALCASE # for MKS sh
|
||||
|
||||
# Support unset when possible.
|
||||
if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
|
||||
as_unset=unset
|
||||
else
|
||||
as_unset=false
|
||||
fi
|
||||
|
||||
|
||||
# Work around bugs in pre-3.0 UWIN ksh.
|
||||
$as_unset ENV MAIL MAILPATH
|
||||
PS1='$ '
|
||||
PS2='> '
|
||||
PS4='+ '
|
||||
|
||||
# NLS nuisances.
|
||||
for as_var in \
|
||||
LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
|
||||
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
|
||||
LC_TELEPHONE LC_TIME
|
||||
do
|
||||
if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
|
||||
eval $as_var=C; export $as_var
|
||||
else
|
||||
$as_unset $as_var
|
||||
fi
|
||||
done
|
||||
|
||||
# Required to use basename.
|
||||
if expr a : '\(a\)' >/dev/null 2>&1; then
|
||||
as_expr=expr
|
||||
else
|
||||
as_expr=false
|
||||
fi
|
||||
|
||||
if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
|
||||
as_basename=basename
|
||||
else
|
||||
as_basename=false
|
||||
fi
|
||||
|
||||
|
||||
# Name of the executable.
|
||||
as_me=`$as_basename "$0" ||
|
||||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
|
||||
X"$0" : 'X\(//\)$' \| \
|
||||
X"$0" : 'X\(/\)$' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X/"$0" |
|
||||
sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
|
||||
/^X\/\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\/\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
|
||||
|
||||
# PATH needs CR, and LINENO needs CR and PATH.
|
||||
# Avoid depending upon Character Ranges.
|
||||
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
|
||||
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
|
||||
as_cr_digits='0123456789'
|
||||
as_cr_alnum=$as_cr_Letters$as_cr_digits
|
||||
|
||||
# The user is always right.
|
||||
if test "${PATH_SEPARATOR+set}" != set; then
|
||||
echo "#! /bin/sh" >conf$$.sh
|
||||
echo "exit 0" >>conf$$.sh
|
||||
chmod +x conf$$.sh
|
||||
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
|
||||
PATH_SEPARATOR=';'
|
||||
else
|
||||
PATH_SEPARATOR=:
|
||||
fi
|
||||
rm -f conf$$.sh
|
||||
fi
|
||||
|
||||
|
||||
as_lineno_1=$LINENO
|
||||
as_lineno_2=$LINENO
|
||||
as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
|
||||
test "x$as_lineno_1" != "x$as_lineno_2" &&
|
||||
test "x$as_lineno_3" = "x$as_lineno_2" || {
|
||||
# Find who we are. Look in the path if we contain no path at all
|
||||
# relative or not.
|
||||
case $0 in
|
||||
*[\\/]* ) as_myself=$0 ;;
|
||||
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
|
||||
done
|
||||
|
||||
;;
|
||||
esac
|
||||
# We did not find ourselves, most probably we were run as `sh COMMAND'
|
||||
# in which case we are not to be found in the path.
|
||||
if test "x$as_myself" = x; then
|
||||
as_myself=$0
|
||||
fi
|
||||
if test ! -f "$as_myself"; then
|
||||
{ { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
|
||||
echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
case $CONFIG_SHELL in
|
||||
'')
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for as_base in sh bash ksh sh5; do
|
||||
case $as_dir in
|
||||
/*)
|
||||
if ("$as_dir/$as_base" -c '
|
||||
as_lineno_1=$LINENO
|
||||
as_lineno_2=$LINENO
|
||||
as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
|
||||
test "x$as_lineno_1" != "x$as_lineno_2" &&
|
||||
test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
|
||||
$as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
|
||||
$as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
|
||||
CONFIG_SHELL=$as_dir/$as_base
|
||||
export CONFIG_SHELL
|
||||
exec "$CONFIG_SHELL" "$0" ${1+"$@"}
|
||||
fi;;
|
||||
esac
|
||||
done
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
# Create $as_me.lineno as a copy of $as_myself, but with $LINENO
|
||||
# uniformly replaced by the line number. The first 'sed' inserts a
|
||||
# line-number line before each line; the second 'sed' does the real
|
||||
# work. The second script uses 'N' to pair each line-number line
|
||||
# with the numbered line, and appends trailing '-' during
|
||||
# substitution so that $LINENO is not a special case at line end.
|
||||
# (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
|
||||
# second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
|
||||
sed '=' <$as_myself |
|
||||
sed '
|
||||
N
|
||||
s,$,-,
|
||||
: loop
|
||||
s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
|
||||
t loop
|
||||
s,-$,,
|
||||
s,^['$as_cr_digits']*\n,,
|
||||
' >$as_me.lineno &&
|
||||
chmod +x $as_me.lineno ||
|
||||
{ { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
|
||||
echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
|
||||
# Don't try to exec as it changes $[0], causing all sort of problems
|
||||
# (the dirname of $[0] is not the place where we might find the
|
||||
# original and so on. Autoconf is especially sensible to this).
|
||||
. ./$as_me.lineno
|
||||
# Exit status is that of the last command.
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
|
||||
*c*,-n*) ECHO_N= ECHO_C='
|
||||
' ECHO_T=' ' ;;
|
||||
*c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
|
||||
*) ECHO_N= ECHO_C='\c' ECHO_T= ;;
|
||||
esac
|
||||
|
||||
if expr a : '\(a\)' >/dev/null 2>&1; then
|
||||
as_expr=expr
|
||||
else
|
||||
as_expr=false
|
||||
fi
|
||||
|
||||
rm -f conf$$ conf$$.exe conf$$.file
|
||||
echo >conf$$.file
|
||||
if ln -s conf$$.file conf$$ 2>/dev/null; then
|
||||
# We could just check for DJGPP; but this test a) works b) is more generic
|
||||
# and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
|
||||
if test -f conf$$.exe; then
|
||||
# Don't use ln at all; we don't have any links
|
||||
as_ln_s='cp -p'
|
||||
else
|
||||
as_ln_s='ln -s'
|
||||
fi
|
||||
elif ln conf$$.file conf$$ 2>/dev/null; then
|
||||
as_ln_s=ln
|
||||
else
|
||||
as_ln_s='cp -p'
|
||||
fi
|
||||
rm -f conf$$ conf$$.exe conf$$.file
|
||||
|
||||
if mkdir -p . 2>/dev/null; then
|
||||
as_mkdir_p=:
|
||||
else
|
||||
test -d ./-p && rmdir ./-p
|
||||
as_mkdir_p=false
|
||||
fi
|
||||
|
||||
as_executable_p="test -f"
|
||||
|
||||
# Sed expression to map a string onto a valid CPP name.
|
||||
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
||||
|
||||
# Sed expression to map a string onto a valid variable name.
|
||||
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
|
||||
|
||||
|
||||
# IFS
|
||||
# We need space, tab and new line, in precisely that order.
|
||||
as_nl='
|
||||
'
|
||||
IFS=" $as_nl"
|
||||
|
||||
# CDPATH.
|
||||
$as_unset CDPATH
|
||||
|
||||
exec 6>&1
|
||||
|
||||
# Open the log real soon, to keep \$[0] and so on meaningful, and to
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling. Logging --version etc. is OK.
|
||||
exec 5>>config.log
|
||||
{
|
||||
echo
|
||||
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
|
||||
## Running $as_me. ##
|
||||
_ASBOX
|
||||
} >&5
|
||||
cat >&5 <<_CSEOF
|
||||
|
||||
This file was extended by libsangoma $as_me 1.0.0, which was
|
||||
generated by GNU Autoconf 2.59. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
CONFIG_HEADERS = $CONFIG_HEADERS
|
||||
CONFIG_LINKS = $CONFIG_LINKS
|
||||
CONFIG_COMMANDS = $CONFIG_COMMANDS
|
||||
$ $0 $@
|
||||
|
||||
_CSEOF
|
||||
echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
|
||||
echo >&5
|
||||
config_files=" Makefile"
|
||||
config_commands=" depfiles"
|
||||
|
||||
ac_cs_usage="\
|
||||
\`$as_me' instantiates files from templates according to the
|
||||
current configuration.
|
||||
|
||||
Usage: $0 [OPTIONS] [FILE]...
|
||||
|
||||
-h, --help print this help, then exit
|
||||
-V, --version print version number, then exit
|
||||
-q, --quiet do not print progress messages
|
||||
-d, --debug don't remove temporary files
|
||||
--recheck update $as_me by reconfiguring in the same conditions
|
||||
--file=FILE[:TEMPLATE]
|
||||
instantiate the configuration file FILE
|
||||
|
||||
Configuration files:
|
||||
$config_files
|
||||
|
||||
Configuration commands:
|
||||
$config_commands
|
||||
|
||||
Report bugs to <bug-autoconf@gnu.org>."
|
||||
ac_cs_version="\
|
||||
libsangoma config.status 1.0.0
|
||||
configured by ./configure, generated by GNU Autoconf 2.59,
|
||||
with options \"\"
|
||||
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
This config.status script is free software; the Free Software Foundation
|
||||
gives unlimited permission to copy, distribute and modify it."
|
||||
srcdir=.
|
||||
INSTALL="/usr/bin/install -c"
|
||||
# If no file are specified by the user, then we need to provide default
|
||||
# value. By we need to know if files were specified by the user.
|
||||
ac_need_defaults=:
|
||||
while test $# != 0
|
||||
do
|
||||
case $1 in
|
||||
--*=*)
|
||||
ac_option=`expr "x$1" : 'x\([^=]*\)='`
|
||||
ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
|
||||
ac_shift=:
|
||||
;;
|
||||
-*)
|
||||
ac_option=$1
|
||||
ac_optarg=$2
|
||||
ac_shift=shift
|
||||
;;
|
||||
*) # This is not an option, so the user has probably given explicit
|
||||
# arguments.
|
||||
ac_option=$1
|
||||
ac_need_defaults=false;;
|
||||
esac
|
||||
|
||||
case $ac_option in
|
||||
# Handling of the options.
|
||||
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
|
||||
ac_cs_recheck=: ;;
|
||||
--version | --vers* | -V )
|
||||
echo "$ac_cs_version"; exit 0 ;;
|
||||
--he | --h)
|
||||
# Conflict between --help and --header
|
||||
{ { echo "$as_me:$LINENO: error: ambiguous option: $1
|
||||
Try \`$0 --help' for more information." >&5
|
||||
echo "$as_me: error: ambiguous option: $1
|
||||
Try \`$0 --help' for more information." >&2;}
|
||||
{ (exit 1); exit 1; }; };;
|
||||
--help | --hel | -h )
|
||||
echo "$ac_cs_usage"; exit 0 ;;
|
||||
--debug | --d* | -d )
|
||||
debug=: ;;
|
||||
--file | --fil | --fi | --f )
|
||||
$ac_shift
|
||||
CONFIG_FILES="$CONFIG_FILES $ac_optarg"
|
||||
ac_need_defaults=false;;
|
||||
--header | --heade | --head | --hea )
|
||||
$ac_shift
|
||||
CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
|
||||
ac_need_defaults=false;;
|
||||
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
|
||||
| -silent | --silent | --silen | --sile | --sil | --si | --s)
|
||||
ac_cs_silent=: ;;
|
||||
|
||||
# This is an error.
|
||||
-*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
|
||||
Try \`$0 --help' for more information." >&5
|
||||
echo "$as_me: error: unrecognized option: $1
|
||||
Try \`$0 --help' for more information." >&2;}
|
||||
{ (exit 1); exit 1; }; } ;;
|
||||
|
||||
*) ac_config_targets="$ac_config_targets $1" ;;
|
||||
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
ac_configure_extra_args=
|
||||
|
||||
if $ac_cs_silent; then
|
||||
exec 6>/dev/null
|
||||
ac_configure_extra_args="$ac_configure_extra_args --silent"
|
||||
fi
|
||||
|
||||
if $ac_cs_recheck; then
|
||||
echo "running /bin/sh ./configure " $ac_configure_extra_args " --no-create --no-recursion" >&6
|
||||
exec /bin/sh ./configure $ac_configure_extra_args --no-create --no-recursion
|
||||
fi
|
||||
|
||||
#
|
||||
# INIT-COMMANDS section.
|
||||
#
|
||||
|
||||
AMDEP_TRUE="" ac_aux_dir="."
|
||||
|
||||
for ac_config_target in $ac_config_targets
|
||||
do
|
||||
case "$ac_config_target" in
|
||||
# Handling of arguments.
|
||||
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||
"depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
|
||||
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
|
||||
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
|
||||
{ (exit 1); exit 1; }; };;
|
||||
esac
|
||||
done
|
||||
|
||||
# If the user did not use the arguments to specify the items to instantiate,
|
||||
# then the envvar interface is used. Set only those that are not.
|
||||
# We use the long form for the default assignment because of an extremely
|
||||
# bizarre bug on SunOS 4.1.3.
|
||||
if $ac_need_defaults; then
|
||||
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
|
||||
test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
|
||||
fi
|
||||
|
||||
# Have a temporary directory for convenience. Make it in the build tree
|
||||
# simply because there is no reason to put it here, and in addition,
|
||||
# creating and moving files from /tmp can sometimes cause problems.
|
||||
# Create a temporary directory, and hook for its removal unless debugging.
|
||||
$debug ||
|
||||
{
|
||||
trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
|
||||
trap '{ (exit 1); exit 1; }' 1 2 13 15
|
||||
}
|
||||
|
||||
# Create a (secure) tmp directory for tmp files.
|
||||
|
||||
{
|
||||
tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
|
||||
test -n "$tmp" && test -d "$tmp"
|
||||
} ||
|
||||
{
|
||||
tmp=./confstat$$-$RANDOM
|
||||
(umask 077 && mkdir $tmp)
|
||||
} ||
|
||||
{
|
||||
echo "$me: cannot create a temporary directory in ." >&2
|
||||
{ (exit 1); exit 1; }
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# CONFIG_FILES section.
|
||||
#
|
||||
|
||||
# No need to generate the scripts if there are no CONFIG_FILES.
|
||||
# This happens for instance when ./config.status config.h
|
||||
if test -n "$CONFIG_FILES"; then
|
||||
# Protect against being on the right side of a sed subst in config.status.
|
||||
sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g;
|
||||
s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF
|
||||
s,@SHELL@,/bin/sh,;t t
|
||||
s,@PATH_SEPARATOR@,:,;t t
|
||||
s,@PACKAGE_NAME@,libsangoma,;t t
|
||||
s,@PACKAGE_TARNAME@,libsangoma,;t t
|
||||
s,@PACKAGE_VERSION@,1.0.0,;t t
|
||||
s,@PACKAGE_STRING@,libsangoma 1.0.0,;t t
|
||||
s,@PACKAGE_BUGREPORT@,anthmct@yahoo.com,;t t
|
||||
s,@exec_prefix@,${prefix},;t t
|
||||
s,@prefix@,/usr/local,;t t
|
||||
s,@program_transform_name@,s,x,x,,;t t
|
||||
s,@bindir@,${exec_prefix}/bin,;t t
|
||||
s,@sbindir@,${exec_prefix}/sbin,;t t
|
||||
s,@libexecdir@,${exec_prefix}/libexec,;t t
|
||||
s,@datadir@,${prefix}/share,;t t
|
||||
s,@sysconfdir@,${prefix}/etc,;t t
|
||||
s,@sharedstatedir@,${prefix}/com,;t t
|
||||
s,@localstatedir@,${prefix}/var,;t t
|
||||
s,@libdir@,${exec_prefix}/lib,;t t
|
||||
s,@includedir@,${prefix}/include,;t t
|
||||
s,@oldincludedir@,/usr/include,;t t
|
||||
s,@infodir@,${prefix}/info,;t t
|
||||
s,@mandir@,${prefix}/man,;t t
|
||||
s,@build_alias@,,;t t
|
||||
s,@host_alias@,,;t t
|
||||
s,@target_alias@,,;t t
|
||||
s,@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 ,;t t
|
||||
s,@ECHO_C@,,;t t
|
||||
s,@ECHO_N@,-n,;t t
|
||||
s,@ECHO_T@,,;t t
|
||||
s,@LIBS@,,;t t
|
||||
s,@INSTALL_PROGRAM@,${INSTALL},;t t
|
||||
s,@INSTALL_SCRIPT@,${INSTALL},;t t
|
||||
s,@INSTALL_DATA@,${INSTALL} -m 644,;t t
|
||||
s,@CYGPATH_W@,echo,;t t
|
||||
s,@PACKAGE@,libsangoma,;t t
|
||||
s,@VERSION@,1.0.0,;t t
|
||||
s,@ACLOCAL@,${SHELL} /usr/src/libsangoma/trunk/missing --run aclocal-1.9,;t t
|
||||
s,@AUTOCONF@,${SHELL} /usr/src/libsangoma/trunk/missing --run autoconf,;t t
|
||||
s,@AUTOMAKE@,${SHELL} /usr/src/libsangoma/trunk/missing --run automake-1.9,;t t
|
||||
s,@AUTOHEADER@,${SHELL} /usr/src/libsangoma/trunk/missing --run autoheader,;t t
|
||||
s,@MAKEINFO@,${SHELL} /usr/src/libsangoma/trunk/missing --run makeinfo,;t t
|
||||
s,@install_sh@,/usr/src/libsangoma/trunk/install-sh,;t t
|
||||
s,@STRIP@,strip,;t t
|
||||
s,@ac_ct_STRIP@,strip,;t t
|
||||
s,@INSTALL_STRIP_PROGRAM@,${SHELL} $(install_sh) -c -s,;t t
|
||||
s,@mkdir_p@,mkdir -p --,;t t
|
||||
s,@AWK@,gawk,;t t
|
||||
s,@SET_MAKE@,,;t t
|
||||
s,@am__leading_dot@,.,;t t
|
||||
s,@AMTAR@,${SHELL} /usr/src/libsangoma/trunk/missing --run tar,;t t
|
||||
s,@am__tar@,${AMTAR} chof - "$$tardir",;t t
|
||||
s,@am__untar@,${AMTAR} xf -,;t t
|
||||
s,@CC@,gcc,;t t
|
||||
s,@CFLAGS@,-g -O2,;t t
|
||||
s,@LDFLAGS@,,;t t
|
||||
s,@CPPFLAGS@,,;t t
|
||||
s,@ac_ct_CC@,gcc,;t t
|
||||
s,@EXEEXT@,,;t t
|
||||
s,@OBJEXT@,o,;t t
|
||||
s,@DEPDIR@,.deps,;t t
|
||||
s,@am__include@,include,;t t
|
||||
s,@am__quote@,,;t t
|
||||
s,@AMDEP_TRUE@,,;t t
|
||||
s,@AMDEP_FALSE@,#,;t t
|
||||
s,@AMDEPBACKSLASH@,\,;t t
|
||||
s,@CCDEPMODE@,depmode=gcc3,;t t
|
||||
s,@am__fastdepCC_TRUE@,,;t t
|
||||
s,@am__fastdepCC_FALSE@,#,;t t
|
||||
s,@build@,i686-pc-linux-gnu,;t t
|
||||
s,@build_cpu@,i686,;t t
|
||||
s,@build_vendor@,pc,;t t
|
||||
s,@build_os@,linux-gnu,;t t
|
||||
s,@host@,i686-pc-linux-gnu,;t t
|
||||
s,@host_cpu@,i686,;t t
|
||||
s,@host_vendor@,pc,;t t
|
||||
s,@host_os@,linux-gnu,;t t
|
||||
s,@EGREP@,grep -E,;t t
|
||||
s,@LN_S@,ln -s,;t t
|
||||
s,@ECHO@,echo,;t t
|
||||
s,@AR@,ar,;t t
|
||||
s,@ac_ct_AR@,ar,;t t
|
||||
s,@RANLIB@,ranlib,;t t
|
||||
s,@ac_ct_RANLIB@,ranlib,;t t
|
||||
s,@CPP@,gcc -E,;t t
|
||||
s,@CXX@,g++,;t t
|
||||
s,@CXXFLAGS@,-g -O2,;t t
|
||||
s,@ac_ct_CXX@,g++,;t t
|
||||
s,@CXXDEPMODE@,depmode=gcc3,;t t
|
||||
s,@am__fastdepCXX_TRUE@,,;t t
|
||||
s,@am__fastdepCXX_FALSE@,#,;t t
|
||||
s,@CXXCPP@,g++ -E,;t t
|
||||
s,@F77@,g77,;t t
|
||||
s,@FFLAGS@,-g -O2,;t t
|
||||
s,@ac_ct_F77@,g77,;t t
|
||||
s,@LIBTOOL@,$(SHELL) $(top_builddir)/libtool,;t t
|
||||
s,@LIBPRI_TRUE@,#,;t t
|
||||
s,@LIBPRI_FALSE@,,;t t
|
||||
s,@libpripath@,,;t t
|
||||
s,@LIBOBJS@,,;t t
|
||||
s,@LTLIBOBJS@,,;t t
|
||||
CEOF
|
||||
|
||||
# Split the substitutions into bite-sized pieces for seds with
|
||||
# small command number limits, like on Digital OSF/1 and HP-UX.
|
||||
ac_max_sed_lines=48
|
||||
ac_sed_frag=1 # Number of current file.
|
||||
ac_beg=1 # First line for current file.
|
||||
ac_end=$ac_max_sed_lines # Line after last line for current file.
|
||||
ac_more_lines=:
|
||||
ac_sed_cmds=
|
||||
while $ac_more_lines; do
|
||||
if test $ac_beg -gt 1; then
|
||||
sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
|
||||
else
|
||||
sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
|
||||
fi
|
||||
if test ! -s $tmp/subs.frag; then
|
||||
ac_more_lines=false
|
||||
else
|
||||
# The purpose of the label and of the branching condition is to
|
||||
# speed up the sed processing (if there are no `@' at all, there
|
||||
# is no need to browse any of the substitutions).
|
||||
# These are the two extra sed commands mentioned above.
|
||||
(echo ':t
|
||||
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
|
||||
if test -z "$ac_sed_cmds"; then
|
||||
ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
|
||||
else
|
||||
ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
|
||||
fi
|
||||
ac_sed_frag=`expr $ac_sed_frag + 1`
|
||||
ac_beg=$ac_end
|
||||
ac_end=`expr $ac_end + $ac_max_sed_lines`
|
||||
fi
|
||||
done
|
||||
if test -z "$ac_sed_cmds"; then
|
||||
ac_sed_cmds=cat
|
||||
fi
|
||||
fi # test -n "$CONFIG_FILES"
|
||||
|
||||
for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
|
||||
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
|
||||
case $ac_file in
|
||||
- | *:- | *:-:* ) # input from stdin
|
||||
cat >$tmp/stdin
|
||||
ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
|
||||
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
|
||||
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
|
||||
ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
|
||||
* ) ac_file_in=$ac_file.in ;;
|
||||
esac
|
||||
|
||||
# Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
|
||||
ac_dir=`(dirname "$ac_file") 2>/dev/null ||
|
||||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$ac_file" : 'X\(//\)[^/]' \| \
|
||||
X"$ac_file" : 'X\(//\)$' \| \
|
||||
X"$ac_file" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$ac_file" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
{ if $as_mkdir_p; then
|
||||
mkdir -p "$ac_dir"
|
||||
else
|
||||
as_dir="$ac_dir"
|
||||
as_dirs=
|
||||
while test ! -d "$as_dir"; do
|
||||
as_dirs="$as_dir $as_dirs"
|
||||
as_dir=`(dirname "$as_dir") 2>/dev/null ||
|
||||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$as_dir" : 'X\(//\)[^/]' \| \
|
||||
X"$as_dir" : 'X\(//\)$' \| \
|
||||
X"$as_dir" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$as_dir" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
done
|
||||
test ! -n "$as_dirs" || mkdir $as_dirs
|
||||
fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
|
||||
echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
|
||||
{ (exit 1); exit 1; }; }; }
|
||||
|
||||
ac_builddir=.
|
||||
|
||||
if test "$ac_dir" != .; then
|
||||
ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
|
||||
# A "../" for each directory in $ac_dir_suffix.
|
||||
ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
|
||||
else
|
||||
ac_dir_suffix= ac_top_builddir=
|
||||
fi
|
||||
|
||||
case $srcdir in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
ac_srcdir=.
|
||||
if test -z "$ac_top_builddir"; then
|
||||
ac_top_srcdir=.
|
||||
else
|
||||
ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
|
||||
fi ;;
|
||||
[\\/]* | ?:[\\/]* ) # Absolute path.
|
||||
ac_srcdir=$srcdir$ac_dir_suffix;
|
||||
ac_top_srcdir=$srcdir ;;
|
||||
*) # Relative path.
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir ;;
|
||||
esac
|
||||
|
||||
# Do not use `cd foo && pwd` to compute absolute paths, because
|
||||
# the directories may not exist.
|
||||
case `pwd` in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
*)
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=`pwd`;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
|
||||
*) ac_abs_builddir=`pwd`/"$ac_dir";;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*)
|
||||
case ${ac_top_builddir}. in
|
||||
.) ac_abs_top_builddir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_srcdir=$ac_srcdir;;
|
||||
*)
|
||||
case $ac_srcdir in
|
||||
.) ac_abs_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
|
||||
*) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*)
|
||||
case $ac_top_srcdir in
|
||||
.) ac_abs_top_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
|
||||
case $INSTALL in
|
||||
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
|
||||
*) ac_INSTALL=$ac_top_builddir$INSTALL ;;
|
||||
esac
|
||||
|
||||
if test x"$ac_file" != x-; then
|
||||
{ echo "$as_me:$LINENO: creating $ac_file" >&5
|
||||
echo "$as_me: creating $ac_file" >&6;}
|
||||
rm -f "$ac_file"
|
||||
fi
|
||||
# Let's still pretend it is `configure' which instantiates (i.e., don't
|
||||
# use $as_me), people would be surprised to read:
|
||||
# /* config.h. Generated by config.status. */
|
||||
if test x"$ac_file" = x-; then
|
||||
configure_input=
|
||||
else
|
||||
configure_input="$ac_file. "
|
||||
fi
|
||||
configure_input=$configure_input"Generated from `echo $ac_file_in |
|
||||
sed 's,.*/,,'` by configure."
|
||||
|
||||
# First look for the input files in the build tree, otherwise in the
|
||||
# src tree.
|
||||
ac_file_inputs=`IFS=:
|
||||
for f in $ac_file_in; do
|
||||
case $f in
|
||||
-) echo $tmp/stdin ;;
|
||||
[\\/$]*)
|
||||
# Absolute (can't be DOS-style, as IFS=:)
|
||||
test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
|
||||
echo "$as_me: error: cannot find input file: $f" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
echo "$f";;
|
||||
*) # Relative
|
||||
if test -f "$f"; then
|
||||
# Build tree
|
||||
echo "$f"
|
||||
elif test -f "$srcdir/$f"; then
|
||||
# Source tree
|
||||
echo "$srcdir/$f"
|
||||
else
|
||||
# /dev/null tree
|
||||
{ { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
|
||||
echo "$as_me: error: cannot find input file: $f" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi;;
|
||||
esac
|
||||
done` || { (exit 1); exit 1; }
|
||||
sed "/^[ ]*VPATH[ ]*=/{
|
||||
s/:*\$(srcdir):*/:/;
|
||||
s/:*\${srcdir}:*/:/;
|
||||
s/:*@srcdir@:*/:/;
|
||||
s/^\([^=]*=[ ]*\):*/\1/;
|
||||
s/:*$//;
|
||||
s/^[^=]*=[ ]*$//;
|
||||
}
|
||||
|
||||
:t
|
||||
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
|
||||
s,@configure_input@,$configure_input,;t t
|
||||
s,@srcdir@,$ac_srcdir,;t t
|
||||
s,@abs_srcdir@,$ac_abs_srcdir,;t t
|
||||
s,@top_srcdir@,$ac_top_srcdir,;t t
|
||||
s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
|
||||
s,@builddir@,$ac_builddir,;t t
|
||||
s,@abs_builddir@,$ac_abs_builddir,;t t
|
||||
s,@top_builddir@,$ac_top_builddir,;t t
|
||||
s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
|
||||
s,@INSTALL@,$ac_INSTALL,;t t
|
||||
" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
|
||||
rm -f $tmp/stdin
|
||||
if test x"$ac_file" != x-; then
|
||||
mv $tmp/out $ac_file
|
||||
else
|
||||
cat $tmp/out
|
||||
rm -f $tmp/out
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
#
|
||||
# CONFIG_COMMANDS section.
|
||||
#
|
||||
for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
|
||||
ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
|
||||
ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
|
||||
ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
|
||||
$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$ac_dest" : 'X\(//\)[^/]' \| \
|
||||
X"$ac_dest" : 'X\(//\)$' \| \
|
||||
X"$ac_dest" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$ac_dest" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
{ if $as_mkdir_p; then
|
||||
mkdir -p "$ac_dir"
|
||||
else
|
||||
as_dir="$ac_dir"
|
||||
as_dirs=
|
||||
while test ! -d "$as_dir"; do
|
||||
as_dirs="$as_dir $as_dirs"
|
||||
as_dir=`(dirname "$as_dir") 2>/dev/null ||
|
||||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$as_dir" : 'X\(//\)[^/]' \| \
|
||||
X"$as_dir" : 'X\(//\)$' \| \
|
||||
X"$as_dir" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$as_dir" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
done
|
||||
test ! -n "$as_dirs" || mkdir $as_dirs
|
||||
fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
|
||||
echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
|
||||
{ (exit 1); exit 1; }; }; }
|
||||
|
||||
ac_builddir=.
|
||||
|
||||
if test "$ac_dir" != .; then
|
||||
ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
|
||||
# A "../" for each directory in $ac_dir_suffix.
|
||||
ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
|
||||
else
|
||||
ac_dir_suffix= ac_top_builddir=
|
||||
fi
|
||||
|
||||
case $srcdir in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
ac_srcdir=.
|
||||
if test -z "$ac_top_builddir"; then
|
||||
ac_top_srcdir=.
|
||||
else
|
||||
ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
|
||||
fi ;;
|
||||
[\\/]* | ?:[\\/]* ) # Absolute path.
|
||||
ac_srcdir=$srcdir$ac_dir_suffix;
|
||||
ac_top_srcdir=$srcdir ;;
|
||||
*) # Relative path.
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir ;;
|
||||
esac
|
||||
|
||||
# Do not use `cd foo && pwd` to compute absolute paths, because
|
||||
# the directories may not exist.
|
||||
case `pwd` in
|
||||
.) ac_abs_builddir="$ac_dir";;
|
||||
*)
|
||||
case "$ac_dir" in
|
||||
.) ac_abs_builddir=`pwd`;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
|
||||
*) ac_abs_builddir=`pwd`/"$ac_dir";;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*)
|
||||
case ${ac_top_builddir}. in
|
||||
.) ac_abs_top_builddir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
|
||||
*) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_srcdir=$ac_srcdir;;
|
||||
*)
|
||||
case $ac_srcdir in
|
||||
.) ac_abs_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
|
||||
*) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
case $ac_abs_builddir in
|
||||
.) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*)
|
||||
case $ac_top_srcdir in
|
||||
.) ac_abs_top_srcdir=$ac_abs_builddir;;
|
||||
[\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
|
||||
*) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
|
||||
{ echo "$as_me:$LINENO: executing $ac_dest commands" >&5
|
||||
echo "$as_me: executing $ac_dest commands" >&6;}
|
||||
case $ac_dest in
|
||||
depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# So let's grep whole file.
|
||||
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
|
||||
dirpart=`(dirname "$mf") 2>/dev/null ||
|
||||
$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$mf" : 'X\(//\)[^/]' \| \
|
||||
X"$mf" : 'X\(//\)$' \| \
|
||||
X"$mf" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$mf" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`(dirname "$file") 2>/dev/null ||
|
||||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$file" : 'X\(//\)[^/]' \| \
|
||||
X"$file" : 'X\(//\)$' \| \
|
||||
X"$file" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$file" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
{ if $as_mkdir_p; then
|
||||
mkdir -p $dirpart/$fdir
|
||||
else
|
||||
as_dir=$dirpart/$fdir
|
||||
as_dirs=
|
||||
while test ! -d "$as_dir"; do
|
||||
as_dirs="$as_dir $as_dirs"
|
||||
as_dir=`(dirname "$as_dir") 2>/dev/null ||
|
||||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$as_dir" : 'X\(//\)[^/]' \| \
|
||||
X"$as_dir" : 'X\(//\)$' \| \
|
||||
X"$as_dir" : 'X\(/\)' \| \
|
||||
. : '\(.\)' 2>/dev/null ||
|
||||
echo X"$as_dir" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
|
||||
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
|
||||
/^X\(\/\/\)$/{ s//\1/; q; }
|
||||
/^X\(\/\).*/{ s//\1/; q; }
|
||||
s/.*/./; q'`
|
||||
done
|
||||
test ! -n "$as_dirs" || mkdir $as_dirs
|
||||
fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
|
||||
echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
|
||||
{ (exit 1); exit 1; }; }; }
|
||||
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
{ (exit 0); exit 0; }
|
|
@ -22,16 +22,17 @@
|
|||
#include "libsangoma.h"
|
||||
#define DFT_CARD "wanpipe1"
|
||||
|
||||
|
||||
#ifndef WP_TDM_EVENT_FE_ALARM
|
||||
#ifndef WP_TDM_FEATURE_FE_ALARM
|
||||
#warning "Warning: TDM FE ALARM not supported by driver"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef WP_TDMAPI_EVENT_DTMF
|
||||
#warning "Warning: TDM EVENTS not supported by driver"
|
||||
#ifndef WP_TDM_FEATURE_DTMF_EVENTS
|
||||
#warning "Warning: TDM DTMF not supported by driver"
|
||||
#endif
|
||||
|
||||
#ifndef WP_TDM_FEATURE_EVENTS
|
||||
#warning "Warning: TDM EVENTS not supported by driver"
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(WIN32)
|
||||
|
@ -520,7 +521,7 @@ int sangoma_get_full_cfg(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
printf("\tusr_mtu_mru:\t%d\n",tdm_api->wp_tdm_cmd.usr_mtu_mru);
|
||||
printf("\tidle flag:\t0x%02X\n",tdm_api->wp_tdm_cmd.idle_flag);
|
||||
|
||||
#ifdef WP_TDM_EVENT_FE_ALARM
|
||||
#ifdef WP_TDM_FEATURE_FE_ALARM
|
||||
printf("\tfe alarms:\t0x%02X\n",tdm_api->wp_tdm_cmd.fe_alarms);
|
||||
#endif
|
||||
|
||||
|
@ -765,7 +766,7 @@ int sangoma_tdm_write_rbs(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned char
|
|||
int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
|
||||
#ifdef WP_TDM_EVENT_TDM_API_EVENTS
|
||||
#ifdef WP_TDM_FEATURE_EVENTS
|
||||
|
||||
wp_tdm_api_event_t *rx_event;
|
||||
|
||||
|
@ -794,6 +795,7 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
|
||||
break;
|
||||
|
||||
#ifdef WP_TDM_FEATURE_DTMF_EVENTS
|
||||
case WP_TDMAPI_EVENT_DTMF:
|
||||
printf("%d: GOT DTMF EVENT\n",(int)fd);
|
||||
if (tdm_api->wp_tdm_event.wp_dtmf_event) {
|
||||
|
@ -803,6 +805,7 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
rx_event->wp_tdm_api_event_dtmf_port);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case WP_TDMAPI_EVENT_RXHOOK:
|
||||
printf("%d: GOT RXHOOK EVENT\n",(int)fd);
|
||||
|
@ -828,13 +831,13 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
}
|
||||
break;
|
||||
|
||||
#ifdef WP_TDM_EVENT_FE_ALARM
|
||||
case WP_TDMAPI_EVENT_FE_ALARM:
|
||||
#ifdef WP_TDM_FEATURE_FE_ALARM
|
||||
case WP_TDMAPI_EVENT_ALARM:
|
||||
printf("%d: GOT FE ALARMS EVENT %i\n",(int)fd,
|
||||
rx_event->wp_tdm_api_event_fe_alarm);
|
||||
rx_event->wp_tdm_api_event_alarm);
|
||||
if (tdm_api->wp_tdm_event.wp_fe_alarm_event) {
|
||||
tdm_api->wp_tdm_event.wp_fe_alarm_event(fd,
|
||||
rx_event->wp_tdm_api_event_fe_alarm);
|
||||
rx_event->wp_tdm_api_event_alarm);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -845,13 +848,12 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
|
||||
return 0;
|
||||
#else
|
||||
return -EINVAL;
|
||||
printf("Error: Read Event not supported!\n");
|
||||
return -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#ifdef WP_TDMAPI_EVENT_DTMF
|
||||
|
||||
#ifdef WP_TDM_FEATURE_DTMF_EVENTS
|
||||
int sangoma_tdm_enable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
@ -911,6 +913,7 @@ 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)
|
||||
{
|
||||
|
@ -927,33 +930,6 @@ int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_HWEC;
|
||||
err=sangoma_tdm_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_HWEC;
|
||||
err=sangoma_tdm_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
@ -1156,13 +1132,39 @@ 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;
|
||||
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_HWEC;
|
||||
err=sangoma_tdm_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_HWEC;
|
||||
err=sangoma_tdm_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*========================================================
|
||||
* GET Front End Alarms
|
||||
*
|
||||
*/
|
||||
#ifdef WP_TDM_EVENT_FE_ALARM
|
||||
#ifdef WP_TDM_FEATURE_FE_ALARM
|
||||
int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
@ -1178,4 +1180,26 @@ int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
}
|
||||
#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)
|
||||
{
|
||||
int err;
|
||||
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_GET_FE_STATUS;
|
||||
err = sangoma_tdm_cmd_exec(fd, tdm_api);
|
||||
*current_status = tdm_api->wp_tdm_cmd.fe_status;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
/* 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)
|
||||
{
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_FE_STATUS;
|
||||
tdm_api->wp_tdm_cmd.fe_status = new_status;
|
||||
|
||||
return sangoma_tdm_cmd_exec(fd, tdm_api);
|
||||
}
|
||||
|
||||
#endif /* WANPIPE_TDM_API */
|
||||
|
|
|
@ -50,6 +50,7 @@ typedef unsigned __int32 u_int32_t;
|
|||
|
||||
typedef HANDLE sng_fd_t;
|
||||
#else
|
||||
/* L I N U X */
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
|
@ -76,6 +77,7 @@ typedef HANDLE sng_fd_t;
|
|||
#ifdef WANPIPE_TDM_API
|
||||
# include <linux/wanpipe_tdm_api.h>
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define FNAME_LEN 50
|
||||
|
@ -176,15 +178,20 @@ int sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
|||
|
||||
int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
|
||||
int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
|
||||
|
||||
int sangoma_tdm_txsig_onhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_txsig_offhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_txsig_start(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_txsig_kewl(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
|
||||
int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
|
||||
/* 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);
|
||||
/* 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);
|
||||
|
||||
|
||||
#ifndef LIBSANGOMA_GET_HWCODING
|
||||
#define LIBSANGOMA_GET_HWCODING 1
|
||||
#endif
|
||||
|
@ -193,3 +200,4 @@ int sangoma_tdm_get_hw_coding(int fd, wanpipe_tdm_api_t *tdm_api);
|
|||
#endif /* WANPIPE_TDM_API */
|
||||
|
||||
#endif
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,5 @@
|
|||
Added new event support
|
||||
--This line, and those below, will be ignored--
|
||||
|
||||
M libsangoma.c
|
||||
M libsangoma.h
|
|
@ -0,0 +1,5 @@
|
|||
Added new event features
|
||||
--This line, and those below, will be ignored--
|
||||
|
||||
M libsangoma.c
|
||||
M libsangoma.h
|
|
@ -1,8 +1,8 @@
|
|||
# Makefile.in generated by automake 1.9.2 from Makefile.am.
|
||||
# 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 Free Software Foundation, Inc.
|
||||
# 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.
|
||||
|
@ -16,8 +16,6 @@
|
|||
|
||||
|
||||
|
||||
SOURCES = $(libsangoma_a_SOURCES) $(libsangoma_la_SOURCES)
|
||||
|
||||
srcdir = .
|
||||
top_srcdir = .
|
||||
|
||||
|
@ -87,11 +85,11 @@ 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) \
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
|
||||
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||
$(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
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) \
|
||||
|
@ -112,14 +110,14 @@ DIST_ARCHIVES = $(distdir).tar.gz
|
|||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = ${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run aclocal-1.9
|
||||
ACLOCAL = ${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run aclocal-1.9
|
||||
AMDEP_FALSE = #
|
||||
AMDEP_TRUE =
|
||||
AMTAR = ${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run tar
|
||||
AMTAR = ${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run tar
|
||||
AR = ar
|
||||
AUTOCONF = ${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run autoconf
|
||||
AUTOHEADER = ${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run autoheader
|
||||
AUTOMAKE = ${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run automake-1.9
|
||||
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
|
||||
AWK = gawk
|
||||
CC = gcc
|
||||
CCDEPMODE = depmode=gcc3
|
||||
|
@ -153,7 +151,7 @@ LIBS =
|
|||
LIBTOOL = $(SHELL) $(top_builddir)/libtool
|
||||
LN_S = ln -s
|
||||
LTLIBOBJS =
|
||||
MAKEINFO = ${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run makeinfo
|
||||
MAKEINFO = ${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run makeinfo
|
||||
OBJEXT = o
|
||||
PACKAGE = libsangoma
|
||||
PACKAGE_BUGREPORT = anthmct@yahoo.com
|
||||
|
@ -163,6 +161,7 @@ PACKAGE_TARNAME = libsangoma
|
|||
PACKAGE_VERSION = 1.0.0
|
||||
PATH_SEPARATOR = :
|
||||
RANLIB = ranlib
|
||||
SED = /bin/sed
|
||||
SET_MAKE =
|
||||
SHELL = /bin/sh
|
||||
STRIP = strip
|
||||
|
@ -197,7 +196,7 @@ host_os = linux-gnu
|
|||
host_vendor = pc
|
||||
includedir = ${prefix}/include
|
||||
infodir = ${prefix}/info
|
||||
install_sh = /root/3.2/wanpipe/api/libsangoma/install-sh
|
||||
install_sh = /root/3.3/wanpipe/api/libsangoma/install-sh
|
||||
libdir = ${exec_prefix}/lib
|
||||
libexecdir = ${exec_prefix}/libexec
|
||||
libpripath =
|
||||
|
@ -357,18 +356,18 @@ include ./$(DEPDIR)/libsangoma_la-sangoma_pri.Plo
|
|||
# $(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; \
|
||||
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) --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
|
||||
# $(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) --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; \
|
||||
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) --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
|
||||
# $(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
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Makefile.in generated by automake 1.9.2 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# 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.
|
||||
|
@ -16,8 +16,6 @@
|
|||
|
||||
|
||||
|
||||
SOURCES = $(libsangoma_a_SOURCES) $(libsangoma_la_SOURCES)
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
@ -87,11 +85,11 @@ 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) \
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
|
||||
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||
$(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
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) \
|
||||
|
@ -163,6 +161,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
|||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
|
@ -357,18 +356,18 @@ distclean-compile:
|
|||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
libsangoma_la-libsangoma.lo: libsangoma.c
|
||||
@am__fastdepCC_TRUE@ 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; \
|
||||
@am__fastdepCC_TRUE@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libsangoma_la_CFLAGS) $(CFLAGS) -MT libsangoma_la-libsangoma.lo -MD -MP -MF "$(DEPDIR)/libsangoma_la-libsangoma.Tpo" -c -o libsangoma_la-libsangoma.lo `test -f 'libsangoma.c' || echo '$(srcdir)/'`libsangoma.c; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libsangoma_la-libsangoma.Tpo" "$(DEPDIR)/libsangoma_la-libsangoma.Plo"; else rm -f "$(DEPDIR)/libsangoma_la-libsangoma.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libsangoma.c' object='libsangoma_la-libsangoma.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(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
|
||||
@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-sangoma_pri.lo: sangoma_pri.c
|
||||
@am__fastdepCC_TRUE@ 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; \
|
||||
@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
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sangoma_pri.c' object='libsangoma_la-sangoma_pri.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(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
|
||||
@am__fastdepCC_FALSE@ $(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
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,350 @@
|
|||
# This file was generated.
|
||||
# It contains the lists of macros which have been traced.
|
||||
# It can be safely removed.
|
||||
|
||||
@request = (
|
||||
bless( [
|
||||
'0',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'/usr/share/aclocal/libtool.m4',
|
||||
'/usr/share/aclocal-1.9/amversion.m4',
|
||||
'/usr/share/aclocal-1.9/auxdir.m4',
|
||||
'/usr/share/aclocal-1.9/cond.m4',
|
||||
'/usr/share/aclocal-1.9/depend.m4',
|
||||
'/usr/share/aclocal-1.9/depout.m4',
|
||||
'/usr/share/aclocal-1.9/init.m4',
|
||||
'/usr/share/aclocal-1.9/install-sh.m4',
|
||||
'/usr/share/aclocal-1.9/lead-dot.m4',
|
||||
'/usr/share/aclocal-1.9/make.m4',
|
||||
'/usr/share/aclocal-1.9/missing.m4',
|
||||
'/usr/share/aclocal-1.9/mkdirp.m4',
|
||||
'/usr/share/aclocal-1.9/options.m4',
|
||||
'/usr/share/aclocal-1.9/runlog.m4',
|
||||
'/usr/share/aclocal-1.9/sanity.m4',
|
||||
'/usr/share/aclocal-1.9/strip.m4',
|
||||
'/usr/share/aclocal-1.9/tar.m4',
|
||||
'configure.in'
|
||||
],
|
||||
{
|
||||
'AM_ENABLE_STATIC' => 1,
|
||||
'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
|
||||
'AC_TYPE_OFF_T' => 1,
|
||||
'AC_C_VOLATILE' => 1,
|
||||
'AC_FUNC_CLOSEDIR_VOID' => 1,
|
||||
'_LT_AC_SHELL_INIT' => 1,
|
||||
'AC_REPLACE_FNMATCH' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'_LT_AC_LANG_CXX_CONFIG' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AC_FUNC_STAT' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AC_FUNC_WAIT3' => 1,
|
||||
'AC_STRUCT_TM' => 1,
|
||||
'AC_FUNC_LSTAT' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_FUNC_STRTOD' => 1,
|
||||
'AC_CHECK_HEADERS' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'AC_FUNC_STRNLEN' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
|
||||
'AC_PROG_CXX' => 1,
|
||||
'_LT_AC_LANG_C_CONFIG' => 1,
|
||||
'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'AC_PROG_AWK' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_LIBTOOL_OBJDIR' => 1,
|
||||
'AC_HEADER_MAJOR' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
|
||||
'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
|
||||
'_LT_AC_CHECK_DLFCN' => 1,
|
||||
'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'AC_LIBTOOL_GCJ' => 1,
|
||||
'AC_PROG_GCC_TRADITIONAL' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_STRUCT_ST_BLOCKS' => 1,
|
||||
'AC_LIBTOOL_CONFIG' => 1,
|
||||
'_LT_AC_LANG_F77' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'AC_PROG_MAKE_SET' => 1,
|
||||
'sinclude' => 1,
|
||||
'AM_DISABLE_SHARED' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'_LT_AC_LANG_CXX' => 1,
|
||||
'AM_PROG_LD' => 1,
|
||||
'_LT_AC_FILE_LTDLL_C' => 1,
|
||||
'AC_FUNC_STRERROR_R' => 1,
|
||||
'AC_FUNC_FORK' => 1,
|
||||
'AC_DECL_SYS_SIGLIST' => 1,
|
||||
'AC_FUNC_VPRINTF' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'AC_PROG_NM' => 1,
|
||||
'AC_LIBTOOL_DLOPEN' => 1,
|
||||
'AC_PROG_LD' => 1,
|
||||
'AC_PROG_LD_GNU' => 1,
|
||||
'AC_ENABLE_FAST_INSTALL' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AC_STRUCT_TIMEZONE' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_FUNC_ALLOCA' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'_LT_LINKER_BOILERPLATE' => 1,
|
||||
'AC_PROG_RANLIB' => 1,
|
||||
'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
|
||||
'AC_LIBTOOL_PROG_CC_C_O' => 1,
|
||||
'AC_FUNC_SETPGRP' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AC_FUNC_MMAP' => 1,
|
||||
'AC_TYPE_SIZE_T' => 1,
|
||||
'AC_CHECK_TYPES' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AC_CHECK_MEMBERS' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'AC_FUNC_UTIME_NULL' => 1,
|
||||
'AC_FUNC_SELECT_ARGTYPES' => 1,
|
||||
'_LT_AC_LANG_GCJ' => 1,
|
||||
'AC_HEADER_STAT' => 1,
|
||||
'AC_FUNC_STRFTIME' => 1,
|
||||
'AC_C_INLINE' => 1,
|
||||
'AC_LIBTOOL_RC' => 1,
|
||||
'AC_DISABLE_FAST_INSTALL' => 1,
|
||||
'_LT_AC_PROG_ECHO_BACKSLASH' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'include' => 1,
|
||||
'_LT_AC_SYS_LIBPATH_AIX' => 1,
|
||||
'_LT_AC_TRY_DLOPEN_SELF' => 1,
|
||||
'LT_AC_PROG_SED' => 1,
|
||||
'AM_ENABLE_SHARED' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'_LT_AC_LANG_GCJ_CONFIG' => 1,
|
||||
'AC_FUNC_OBSTACK' => 1,
|
||||
'AC_CHECK_LIB' => 1,
|
||||
'AC_ENABLE_SHARED' => 1,
|
||||
'AC_FUNC_MALLOC' => 1,
|
||||
'AC_FUNC_GETGROUPS' => 1,
|
||||
'AC_FUNC_GETLOADAVG' => 1,
|
||||
'AC_FUNC_FSEEKO' => 1,
|
||||
'AC_ENABLE_STATIC' => 1,
|
||||
'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'_LT_AC_TAGVAR' => 1,
|
||||
'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
|
||||
'AC_FUNC_MKTIME' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_HEADER_SYS_WAIT' => 1,
|
||||
'AC_PROG_LN_S' => 1,
|
||||
'AC_FUNC_MEMCMP' => 1,
|
||||
'm4_include' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'AC_HEADER_DIRENT' => 1,
|
||||
'AC_PROG_EGREP' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'AC_PATH_MAGIC' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_LIBTOOL_COMPILER_OPTION' => 1,
|
||||
'AC_DISABLE_SHARED' => 1,
|
||||
'_LT_COMPILER_BOILERPLATE' => 1,
|
||||
'AC_LIBTOOL_SETUP' => 1,
|
||||
'AC_LIBTOOL_WIN32_DLL' => 1,
|
||||
'AC_PROG_LD_RELOAD_FLAG' => 1,
|
||||
'AC_HEADER_TIME' => 1,
|
||||
'AC_TYPE_MODE_T' => 1,
|
||||
'AC_FUNC_GETMNTENT' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AC_LIBTOOL_DLOPEN_SELF' => 1,
|
||||
'AC_PATH_X' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
|
||||
'AC_HEADER_STDC' => 1,
|
||||
'AC_LIBTOOL_LINKER_OPTION' => 1,
|
||||
'AC_LIBTOOL_CXX' => 1,
|
||||
'LT_AC_PROG_RC' => 1,
|
||||
'LT_AC_PROG_GCJ' => 1,
|
||||
'AC_FUNC_ERROR_AT_LINE' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'_LT_AC_PROG_CXXCPP' => 1,
|
||||
'AM_DISABLE_STATIC' => 1,
|
||||
'AC_FUNC_MBRTOWC' => 1,
|
||||
'_AC_PROG_LIBTOOL' => 1,
|
||||
'AC_TYPE_SIGNAL' => 1,
|
||||
'AC_TYPE_UID_T' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'AC_PATH_TOOL_PREFIX' => 1,
|
||||
'AC_LIBTOOL_F77' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'AC_LIBTOOL_LANG_C_CONFIG' => 1,
|
||||
'AC_PROG_CC' => 1,
|
||||
'_LT_AC_SYS_COMPILER' => 1,
|
||||
'AM_PROG_NM' => 1,
|
||||
'AC_FUNC_STRCOLL' => 1,
|
||||
'AC_PROG_YACC' => 1,
|
||||
'AC_LIBLTDL_CONVENIENCE' => 1,
|
||||
'AC_DEPLIBS_CHECK_METHOD' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'AC_LIBLTDL_INSTALLABLE' => 1,
|
||||
'AC_FUNC_CHOWN' => 1,
|
||||
'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
|
||||
'AC_FUNC_GETPGRP' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_FUNC_REALLOC' => 1,
|
||||
'AC_DISABLE_STATIC' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'_LT_AC_LOCK' => 1,
|
||||
'_LT_AC_LANG_RC_CONFIG' => 1,
|
||||
'AC_PROG_CPP' => 1,
|
||||
'AC_TYPE_PID_T' => 1,
|
||||
'AC_PROG_LEX' => 1,
|
||||
'AC_C_CONST' => 1,
|
||||
'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
|
||||
'AC_FUNC_SETVBUF_REVERSED' => 1,
|
||||
'AC_PROG_INSTALL' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
|
||||
'_LT_AC_LANG_F77_CONFIG' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AC_LIBTOOL_PICMODE' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AC_CHECK_LIBM' => 1,
|
||||
'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'_LT_CC_BASENAME' => 1,
|
||||
'AC_CHECK_FUNCS' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'1',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'configure.in'
|
||||
],
|
||||
{
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_C_VOLATILE' => 1,
|
||||
'AC_TYPE_OFF_T' => 1,
|
||||
'AC_FUNC_CLOSEDIR_VOID' => 1,
|
||||
'AC_REPLACE_FNMATCH' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AC_FUNC_STAT' => 1,
|
||||
'AC_FUNC_WAIT3' => 1,
|
||||
'AC_HEADER_TIME' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_FUNC_LSTAT' => 1,
|
||||
'AC_STRUCT_TM' => 1,
|
||||
'AC_FUNC_GETMNTENT' => 1,
|
||||
'AC_TYPE_MODE_T' => 1,
|
||||
'AC_CHECK_HEADERS' => 1,
|
||||
'AC_FUNC_STRTOD' => 1,
|
||||
'AC_FUNC_STRNLEN' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AC_PROG_CXX' => 1,
|
||||
'AC_PATH_X' => 1,
|
||||
'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
|
||||
'AC_PROG_AWK' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_HEADER_STDC' => 1,
|
||||
'AC_HEADER_MAJOR' => 1,
|
||||
'AC_FUNC_ERROR_AT_LINE' => 1,
|
||||
'AC_PROG_GCC_TRADITIONAL' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_FUNC_MBRTOWC' => 1,
|
||||
'AC_STRUCT_ST_BLOCKS' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AC_TYPE_SIGNAL' => 1,
|
||||
'AC_TYPE_UID_T' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'AC_PROG_MAKE_SET' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'sinclude' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AC_FUNC_STRERROR_R' => 1,
|
||||
'AC_PROG_CC' => 1,
|
||||
'AC_DECL_SYS_SIGLIST' => 1,
|
||||
'AC_FUNC_FORK' => 1,
|
||||
'AC_FUNC_STRCOLL' => 1,
|
||||
'AC_FUNC_VPRINTF' => 1,
|
||||
'AC_PROG_YACC' => 1,
|
||||
'AC_STRUCT_TIMEZONE' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AC_FUNC_CHOWN' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_FUNC_ALLOCA' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AC_FUNC_GETPGRP' => 1,
|
||||
'AC_PROG_RANLIB' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_FUNC_SETPGRP' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AC_FUNC_MMAP' => 1,
|
||||
'AC_FUNC_REALLOC' => 1,
|
||||
'AC_TYPE_SIZE_T' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AC_CHECK_TYPES' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AC_CHECK_MEMBERS' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AC_FUNC_UTIME_NULL' => 1,
|
||||
'AC_FUNC_SELECT_ARGTYPES' => 1,
|
||||
'AC_FUNC_STRFTIME' => 1,
|
||||
'AC_HEADER_STAT' => 1,
|
||||
'AC_C_INLINE' => 1,
|
||||
'AC_PROG_CPP' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AC_C_CONST' => 1,
|
||||
'AC_PROG_LEX' => 1,
|
||||
'AC_TYPE_PID_T' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'include' => 1,
|
||||
'AC_FUNC_SETVBUF_REVERSED' => 1,
|
||||
'AC_PROG_INSTALL' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AC_FUNC_OBSTACK' => 1,
|
||||
'AC_CHECK_LIB' => 1,
|
||||
'AC_FUNC_MALLOC' => 1,
|
||||
'AC_FUNC_GETGROUPS' => 1,
|
||||
'AC_FUNC_GETLOADAVG' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AC_FUNC_FSEEKO' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AC_FUNC_MKTIME' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_HEADER_SYS_WAIT' => 1,
|
||||
'AC_FUNC_MEMCMP' => 1,
|
||||
'AC_PROG_LN_S' => 1,
|
||||
'm4_include' => 1,
|
||||
'AC_HEADER_DIRENT' => 1,
|
||||
'AC_CHECK_FUNCS' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,441 @@
|
|||
m4trace:configure.in:5: -1- AC_INIT([libsangoma], [1.0.0], [anthmct@yahoo.com])
|
||||
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.in:5: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.in:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
m4trace:configure.in:5: -1- m4_pattern_allow([^AS_FLAGS$])
|
||||
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?m4_])
|
||||
m4trace:configure.in:5: -1- m4_pattern_forbid([^dnl$])
|
||||
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?AS_])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([PATH_SEPARATOR])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([exec_prefix], [NONE])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([prefix], [NONE])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([program_transform_name], [s,x,x,])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([datadir], ['${prefix}/share'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([includedir], ['${prefix}/include'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([oldincludedir], ['/usr/include'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([infodir], ['${prefix}/info'])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([mandir], ['${prefix}/man'])
|
||||
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
|
||||
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME])
|
||||
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
|
||||
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME])
|
||||
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
|
||||
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION])
|
||||
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
|
||||
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING])
|
||||
m4trace:configure.in:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.in:5: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([build_alias])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([host_alias])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([target_alias])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([DEFS])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([ECHO_C])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([ECHO_N])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([ECHO_T])
|
||||
m4trace:configure.in:5: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.in:6: -1- AM_INIT_AUTOMAKE([libsangoma], [1.0.0])
|
||||
m4trace:configure.in:6: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
|
||||
m4trace:configure.in:6: -1- AM_AUTOMAKE_VERSION([1.9.6])
|
||||
m4trace:configure.in:6: -1- AC_PROG_INSTALL
|
||||
m4trace:configure.in:6: -1- AC_SUBST([INSTALL_PROGRAM])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([INSTALL_SCRIPT])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([INSTALL_DATA])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([CYGPATH_W])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([PACKAGE], [libsangoma])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([VERSION], [1.0.0])
|
||||
m4trace:configure.in:6: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
|
||||
m4trace:configure.in:6: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
|
||||
#undef PACKAGE])
|
||||
m4trace:configure.in:6: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
|
||||
m4trace:configure.in:6: -1- AH_OUTPUT([VERSION], [/* Version number of package */
|
||||
#undef VERSION])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([ACLOCAL])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([AUTOCONF])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([AUTOMAKE])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([AUTOHEADER])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([MAKEINFO])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([install_sh])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([ac_ct_STRIP])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([mkdir_p])
|
||||
m4trace:configure.in:6: -1- AC_PROG_AWK
|
||||
m4trace:configure.in:6: -1- AC_SUBST([AWK])
|
||||
m4trace:configure.in:6: -1- AC_PROG_MAKE_SET
|
||||
m4trace:configure.in:6: -1- AC_SUBST([SET_MAKE])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([am__leading_dot])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([AMTAR])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([am__tar])
|
||||
m4trace:configure.in:6: -1- AC_SUBST([am__untar])
|
||||
m4trace:configure.in:8: -1- AC_PROG_CC
|
||||
m4trace:configure.in:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([CFLAGS])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([am__include])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([am__quote])
|
||||
m4trace:configure.in:8: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([AMDEP_TRUE])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([AMDEP_FALSE])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([AMDEPBACKSLASH])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
|
||||
m4trace:configure.in:8: -1- AM_CONDITIONAL([am__fastdepCC], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([am__fastdepCC_TRUE])
|
||||
m4trace:configure.in:8: -1- AC_SUBST([am__fastdepCC_FALSE])
|
||||
m4trace:configure.in:9: -1- AC_PROG_LIBTOOL
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
|
||||
You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from...
|
||||
autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from...
|
||||
aclocal.m4:1955: AC_ENABLE_SHARED is expanded from...
|
||||
configure.in:9: AC_ENABLE_SHARED is required by...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
|
||||
You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from...
|
||||
autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from...
|
||||
aclocal.m4:1994: AC_ENABLE_STATIC is expanded from...
|
||||
configure.in:9: AC_ENABLE_STATIC is required by...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
|
||||
You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from...
|
||||
autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from...
|
||||
aclocal.m4:2033: AC_ENABLE_FAST_INSTALL is expanded from...
|
||||
configure.in:9: AC_ENABLE_FAST_INSTALL is required by...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- AC_CANONICAL_HOST
|
||||
m4trace:configure.in:9: -1- AC_CANONICAL_BUILD
|
||||
m4trace:configure.in:9: -1- AC_SUBST([build], [$ac_cv_build])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([build_cpu], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([build_vendor], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([build_os], [`echo $ac_cv_build | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([host], [$ac_cv_host])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([host_cpu], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([host_vendor], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([host_os], [`echo $ac_cv_host | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
|
||||
You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from...
|
||||
autoconf/general.m4:1331: AC_ARG_WITH is expanded from...
|
||||
aclocal.m4:2230: AC_PROG_LD is expanded from...
|
||||
configure.in:9: AC_PROG_LD is required by...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([SED])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([EGREP])
|
||||
m4trace:configure.in:9: -1- AC_PROG_LN_S
|
||||
m4trace:configure.in:9: -1- AC_SUBST([LN_S], [$as_ln_s])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([ECHO])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([AR])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([ac_ct_AR])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([RANLIB])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([ac_ct_RANLIB])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([ac_ct_STRIP])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
|
||||
You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from...
|
||||
autoconf/general.m4:1303: AC_ARG_ENABLE is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
|
||||
You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from...
|
||||
autoconf/general.m4:1331: AC_ARG_WITH is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
|
||||
You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from...
|
||||
autoconf/general.m4:1799: AC_CACHE_VAL is expanded from...
|
||||
autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from...
|
||||
aclocal.m4:614: _LT_AC_LOCK is expanded from...
|
||||
configure.in:9: _LT_AC_LOCK is required by...
|
||||
aclocal.m4:1100: AC_LIBTOOL_SYS_HARD_LINK_LOCKS is expanded from...
|
||||
aclocal.m4:2742: _LT_AC_LANG_C_CONFIG is expanded from...
|
||||
aclocal.m4:2673: AC_LIBTOOL_LANG_C_CONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- AC_CHECK_HEADERS([dlfcn.h])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H])
|
||||
m4trace:configure.in:9: -1- AC_HEADER_STDC
|
||||
m4trace:configure.in:9: -1- AC_PROG_CPP
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.in:9: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS])
|
||||
m4trace:configure.in:9: -1- AC_CHECK_HEADERS([sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
|
||||
inttypes.h stdint.h unistd.h], [], [], [$ac_includes_default])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H])
|
||||
m4trace:configure.in:9: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H])
|
||||
m4trace:configure.in:9: -1- AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [
|
||||
lt_cv_dlopen="dyld"
|
||||
lt_cv_dlopen_libs=
|
||||
lt_cv_dlopen_self=yes
|
||||
])
|
||||
m4trace:configure.in:9: -1- AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], [AC_CHECK_FUNC([dlopen],
|
||||
[lt_cv_dlopen="dlopen"],
|
||||
[AC_CHECK_LIB([dl], [dlopen],
|
||||
[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
|
||||
[AC_CHECK_LIB([svld], [dlopen],
|
||||
[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
|
||||
[AC_CHECK_LIB([dld], [dld_link],
|
||||
[lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
|
||||
])
|
||||
])
|
||||
])
|
||||
])
|
||||
m4trace:configure.in:9: -1- AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen],
|
||||
[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
|
||||
[AC_CHECK_LIB([dld], [dld_link],
|
||||
[lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
|
||||
])
|
||||
])
|
||||
m4trace:configure.in:9: -1- AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link],
|
||||
[lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
|
||||
])
|
||||
m4trace:configure.in:9: -1- AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
|
||||
m4trace:configure.in:9: -1- _LT_AC_TAGCONFIG
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
|
||||
You should run autoupdate.], [autoconf/general.m4:219: AC_HELP_STRING is expanded from...
|
||||
autoconf/general.m4:1331: AC_ARG_WITH is expanded from...
|
||||
aclocal.m4:1909: _LT_AC_TAGCONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me:$LINENO: error: tag name \"$tagname\" already exists], [aclocal.m4:1909: _LT_AC_TAGCONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me: error: tag name \"$tagname\" already exists], [aclocal.m4:1909: _LT_AC_TAGCONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- AC_PROG_CXX
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CXXFLAGS])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([ac_ct_CXX])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
|
||||
m4trace:configure.in:9: -1- AM_CONDITIONAL([am__fastdepCXX], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([am__fastdepCXX_TRUE])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([am__fastdepCXX_FALSE])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CXXCPP])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([CXXCPP])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([F77])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([FFLAGS])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([F77])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([ac_ct_F77])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
|
||||
You should run autoupdate.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from...
|
||||
aclocal.m4:4063: _LT_AC_LANG_GCJ_CONFIG is expanded from...
|
||||
aclocal.m4:4015: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from...
|
||||
aclocal.m4:1909: _LT_AC_TAGCONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [instead of using `AC_LANG', `AC_LANG_SAVE',
|
||||
and `AC_LANG_RESTORE', you should use `AC_LANG_PUSH' and `AC_LANG_POP'.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from...
|
||||
aclocal.m4:4063: _LT_AC_LANG_GCJ_CONFIG is expanded from...
|
||||
aclocal.m4:4015: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from...
|
||||
aclocal.m4:1909: _LT_AC_TAGCONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
|
||||
You should run autoupdate.], [autoconf/lang.m4:172: AC_LANG_RESTORE is expanded from...
|
||||
aclocal.m4:4063: _LT_AC_LANG_GCJ_CONFIG is expanded from...
|
||||
aclocal.m4:4015: AC_LIBTOOL_LANG_GCJ_CONFIG is expanded from...
|
||||
aclocal.m4:1909: _LT_AC_TAGCONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_SAVE' is obsolete.
|
||||
You should run autoupdate.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from...
|
||||
aclocal.m4:4107: _LT_AC_LANG_RC_CONFIG is expanded from...
|
||||
aclocal.m4:4071: AC_LIBTOOL_LANG_RC_CONFIG is expanded from...
|
||||
aclocal.m4:1909: _LT_AC_TAGCONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [instead of using `AC_LANG', `AC_LANG_SAVE',
|
||||
and `AC_LANG_RESTORE', you should use `AC_LANG_PUSH' and `AC_LANG_POP'.], [autoconf/lang.m4:166: AC_LANG_SAVE is expanded from...
|
||||
aclocal.m4:4107: _LT_AC_LANG_RC_CONFIG is expanded from...
|
||||
aclocal.m4:4071: AC_LIBTOOL_LANG_RC_CONFIG is expanded from...
|
||||
aclocal.m4:1909: _LT_AC_TAGCONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- _m4_warn([obsolete], [The macro `AC_LANG_RESTORE' is obsolete.
|
||||
You should run autoupdate.], [autoconf/lang.m4:172: AC_LANG_RESTORE is expanded from...
|
||||
aclocal.m4:4107: _LT_AC_LANG_RC_CONFIG is expanded from...
|
||||
aclocal.m4:4071: AC_LIBTOOL_LANG_RC_CONFIG is expanded from...
|
||||
aclocal.m4:1909: _LT_AC_TAGCONFIG is expanded from...
|
||||
aclocal.m4:226: AC_LIBTOOL_SETUP is expanded from...
|
||||
configure.in:9: AC_LIBTOOL_SETUP is required by...
|
||||
aclocal.m4:81: _AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: _AC_PROG_LIBTOOL is required by...
|
||||
aclocal.m4:61: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.in:9: the top level])
|
||||
m4trace:configure.in:9: -1- AC_SUBST([LIBTOOL])
|
||||
m4trace:configure.in:10: -1- AC_PROG_RANLIB
|
||||
m4trace:configure.in:10: -1- AC_SUBST([RANLIB])
|
||||
m4trace:configure.in:10: -1- AC_SUBST([ac_ct_RANLIB])
|
||||
m4trace:configure.in:13: -1- AC_CHECK_HEADERS([fcntl.h netinet/in.h stdlib.h string.h sys/ioctl.h sys/socket.h sys/time.h unistd.h math.h])
|
||||
m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H])
|
||||
m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the <netinet/in.h> header file. */
|
||||
#undef HAVE_NETINET_IN_H])
|
||||
m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H])
|
||||
m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H])
|
||||
m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_SYS_IOCTL_H], [/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#undef HAVE_SYS_IOCTL_H])
|
||||
m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#undef HAVE_SYS_SOCKET_H])
|
||||
m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H])
|
||||
m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H])
|
||||
m4trace:configure.in:13: -1- AH_OUTPUT([HAVE_MATH_H], [/* Define to 1 if you have the <math.h> header file. */
|
||||
#undef HAVE_MATH_H])
|
||||
m4trace:configure.in:18: -1- AM_CONDITIONAL([LIBPRI], [test -d "$libpripath" ])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([LIBPRI_TRUE])
|
||||
m4trace:configure.in:18: -1- AC_SUBST([LIBPRI_FALSE])
|
||||
m4trace:configure.in:19: -1- AC_SUBST([libpripath])
|
||||
m4trace:configure.in:22: -1- AC_HEADER_TIME
|
||||
m4trace:configure.in:22: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME])
|
||||
m4trace:configure.in:22: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#undef TIME_WITH_SYS_TIME])
|
||||
m4trace:configure.in:25: -1- AC_FUNC_SELECT_ARGTYPES
|
||||
m4trace:configure.in:25: -1- AC_CHECK_HEADERS([sys/select.h sys/socket.h])
|
||||
m4trace:configure.in:25: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the <sys/select.h> header file. */
|
||||
#undef HAVE_SYS_SELECT_H])
|
||||
m4trace:configure.in:25: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||
#undef HAVE_SYS_SOCKET_H])
|
||||
m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([SELECT_TYPE_ARG1])
|
||||
m4trace:configure.in:25: -1- AH_OUTPUT([SELECT_TYPE_ARG1], [/* Define to the type of arg 1 for `select\'. */
|
||||
#undef SELECT_TYPE_ARG1])
|
||||
m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([SELECT_TYPE_ARG234])
|
||||
m4trace:configure.in:25: -1- AH_OUTPUT([SELECT_TYPE_ARG234], [/* Define to the type of args 2, 3 and 4 for `select\'. */
|
||||
#undef SELECT_TYPE_ARG234])
|
||||
m4trace:configure.in:25: -1- AC_DEFINE_TRACE_LITERAL([SELECT_TYPE_ARG5])
|
||||
m4trace:configure.in:25: -1- AH_OUTPUT([SELECT_TYPE_ARG5], [/* Define to the type of arg 5 for `select\'. */
|
||||
#undef SELECT_TYPE_ARG5])
|
||||
m4trace:configure.in:26: -1- AC_CHECK_FUNCS([gettimeofday memset select socket])
|
||||
m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */
|
||||
#undef HAVE_GETTIMEOFDAY])
|
||||
m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */
|
||||
#undef HAVE_MEMSET])
|
||||
m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */
|
||||
#undef HAVE_SELECT])
|
||||
m4trace:configure.in:26: -1- AH_OUTPUT([HAVE_SOCKET], [/* Define to 1 if you have the `socket\' function. */
|
||||
#undef HAVE_SOCKET])
|
||||
m4trace:configure.in:27: -1- AC_CONFIG_FILES([Makefile])
|
||||
m4trace:configure.in:28: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
|
||||
m4trace:configure.in:28: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
|
File diff suppressed because it is too large
Load Diff
|
@ -480,12 +480,12 @@ s,@INSTALL_DATA@,${INSTALL} -m 644,;t t
|
|||
s,@CYGPATH_W@,echo,;t t
|
||||
s,@PACKAGE@,libsangoma,;t t
|
||||
s,@VERSION@,1.0.0,;t t
|
||||
s,@ACLOCAL@,${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run aclocal-1.9,;t t
|
||||
s,@AUTOCONF@,${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run autoconf,;t t
|
||||
s,@AUTOMAKE@,${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run automake-1.9,;t t
|
||||
s,@AUTOHEADER@,${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run autoheader,;t t
|
||||
s,@MAKEINFO@,${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run makeinfo,;t t
|
||||
s,@install_sh@,/root/3.2/wanpipe/api/libsangoma/install-sh,;t t
|
||||
s,@ACLOCAL@,${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run aclocal-1.9,;t t
|
||||
s,@AUTOCONF@,${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run autoconf,;t t
|
||||
s,@AUTOMAKE@,${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run automake-1.9,;t t
|
||||
s,@AUTOHEADER@,${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run autoheader,;t t
|
||||
s,@MAKEINFO@,${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run makeinfo,;t t
|
||||
s,@install_sh@,/root/3.3/wanpipe/api/libsangoma/install-sh,;t t
|
||||
s,@STRIP@,strip,;t t
|
||||
s,@ac_ct_STRIP@,strip,;t t
|
||||
s,@INSTALL_STRIP_PROGRAM@,${SHELL} $(install_sh) -c -s,;t t
|
||||
|
@ -493,7 +493,7 @@ s,@mkdir_p@,mkdir -p --,;t t
|
|||
s,@AWK@,gawk,;t t
|
||||
s,@SET_MAKE@,,;t t
|
||||
s,@am__leading_dot@,.,;t t
|
||||
s,@AMTAR@,${SHELL} /root/3.2/wanpipe/api/libsangoma/missing --run tar,;t t
|
||||
s,@AMTAR@,${SHELL} /root/3.3/wanpipe/api/libsangoma/missing --run tar,;t t
|
||||
s,@am__tar@,${AMTAR} chof - "$$tardir",;t t
|
||||
s,@am__untar@,${AMTAR} xf -,;t t
|
||||
s,@CC@,gcc,;t t
|
||||
|
@ -520,6 +520,7 @@ s,@host@,i686-pc-linux-gnu,;t t
|
|||
s,@host_cpu@,i686,;t t
|
||||
s,@host_vendor@,pc,;t t
|
||||
s,@host_os@,linux-gnu,;t t
|
||||
s,@SED@,/bin/sed,;t t
|
||||
s,@EGREP@,grep -E,;t t
|
||||
s,@LN_S@,ln -s,;t t
|
||||
s,@ECHO@,echo,;t t
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,35 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 41
|
||||
/svn/libsangoma/!svn/ver/1/trunk/examples
|
||||
END
|
||||
sound.raw
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 51
|
||||
/svn/libsangoma/!svn/ver/1/trunk/examples/sound.raw
|
||||
END
|
||||
priserver.c
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 53
|
||||
/svn/libsangoma/!svn/ver/1/trunk/examples/priserver.c
|
||||
END
|
||||
librc
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 47
|
||||
/svn/libsangoma/!svn/ver/1/trunk/examples/librc
|
||||
END
|
||||
Makefile
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/libsangoma/!svn/ver/1/trunk/examples/Makefile
|
||||
END
|
||||
README
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 48
|
||||
/svn/libsangoma/!svn/ver/1/trunk/examples/README
|
||||
END
|
|
@ -1,15 +1,15 @@
|
|||
8
|
||||
|
||||
dir
|
||||
237
|
||||
svn://sangoma.freeswitch.org/libsangoma/trunk/examples
|
||||
svn://sangoma.freeswitch.org
|
||||
1
|
||||
https://www.sangomapbx.com/svn/libsangoma/trunk/examples
|
||||
https://www.sangomapbx.com/svn/libsangoma
|
||||
|
||||
|
||||
|
||||
2007-05-29T18:03:36.038276Z
|
||||
206
|
||||
ncorbic
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
|
||||
svn:special svn:externals svn:needs-lock
|
||||
|
@ -24,7 +24,7 @@ svn:special svn:externals svn:needs-lock
|
|||
|
||||
|
||||
|
||||
2028fedf-720c-0410-83b8-d54a3e729fb0
|
||||
8fe45b59-3c47-0410-bdf9-e5d932a076a6
|
||||
|
||||
sound.raw
|
||||
file
|
||||
|
@ -32,11 +32,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
da36acc78b83d5047481df0cca63d969
|
||||
2006-03-23T23:03:41.659017Z
|
||||
26
|
||||
mikej
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
has-props
|
||||
|
||||
priserver.c
|
||||
|
@ -45,11 +45,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
9f83030c20158d91b7ec6bb7a9392dcb
|
||||
2006-03-23T23:54:12.054610Z
|
||||
27
|
||||
ncorbic
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
librc
|
||||
file
|
||||
|
@ -57,11 +57,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
5c222b74d68b1c7df3f937a9d6321d40
|
||||
2006-03-23T23:03:41.659017Z
|
||||
26
|
||||
mikej
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
Makefile
|
||||
file
|
||||
|
@ -69,11 +69,11 @@ file
|
|||
|
||||
|
||||
|
||||
2007-07-24T22:45:02.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
b58ee42eeb2d5e921bdab940a9fda738
|
||||
2007-05-29T18:03:36.038276Z
|
||||
206
|
||||
ncorbic
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
README
|
||||
file
|
||||
|
@ -81,9 +81,9 @@ file
|
|||
|
||||
|
||||
|
||||
2007-05-17T23:49:20.000000Z
|
||||
2008-02-28T19:04:34.000000Z
|
||||
40538792592cd766e4941d9b37dbaf56
|
||||
2006-03-23T23:03:41.659017Z
|
||||
26
|
||||
mikej
|
||||
2008-02-28T18:51:53.196120Z
|
||||
1
|
||||
root
|
||||
|
||||
|
|
|
@ -22,26 +22,18 @@
|
|||
#include "libsangoma.h"
|
||||
#define DFT_CARD "wanpipe1"
|
||||
|
||||
|
||||
#ifndef WP_TDM_EVENT_FE_ALARM
|
||||
#warning "Note: TDM FE ALARM not supported by driver"
|
||||
#ifndef WP_TDM_FEATURE_FE_ALARM
|
||||
#warning "Warning: TDM FE ALARM not supported by driver"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef WP_TDMAPI_EVENT_DTMF
|
||||
#warning "Note: TDM DTMF EVENTS not supported by driver"
|
||||
#ifndef WP_TDM_FEATURE_DTMF_EVENTS
|
||||
#warning "Warning: TDM DTMF not supported by driver"
|
||||
#endif
|
||||
|
||||
#ifndef WP_TDMAPI_EVENT_RING
|
||||
#warning "Note: TDM RING EVENTS not supported by driver"
|
||||
#ifndef WP_TDM_FEATURE_EVENTS
|
||||
#warning "Warning: TDM EVENTS not supported by driver"
|
||||
#endif
|
||||
|
||||
#ifndef WP_TDMAPI_EVENT_RXHOOK
|
||||
#warning "Note: TDM RXHOOK EVENTS not supported by driver"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#if defined(WIN32)
|
||||
//extern int verbose;
|
||||
|
@ -529,7 +521,7 @@ int sangoma_get_full_cfg(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
printf("\tusr_mtu_mru:\t%d\n",tdm_api->wp_tdm_cmd.usr_mtu_mru);
|
||||
printf("\tidle flag:\t0x%02X\n",tdm_api->wp_tdm_cmd.idle_flag);
|
||||
|
||||
#ifdef WP_TDM_EVENT_FE_ALARM
|
||||
#ifdef WP_TDM_FEATURE_FE_ALARM
|
||||
printf("\tfe alarms:\t0x%02X\n",tdm_api->wp_tdm_cmd.fe_alarms);
|
||||
#endif
|
||||
|
||||
|
@ -774,7 +766,7 @@ int sangoma_tdm_write_rbs(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api, unsigned char
|
|||
int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
|
||||
#ifdef WP_TDM_EVENT_TDM_API_EVENTS
|
||||
#ifdef WP_TDM_FEATURE_EVENTS
|
||||
|
||||
wp_tdm_api_event_t *rx_event;
|
||||
|
||||
|
@ -803,6 +795,7 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
|
||||
break;
|
||||
|
||||
#ifdef WP_TDM_FEATURE_DTMF_EVENTS
|
||||
case WP_TDMAPI_EVENT_DTMF:
|
||||
printf("%d: GOT DTMF EVENT\n",(int)fd);
|
||||
if (tdm_api->wp_tdm_event.wp_dtmf_event) {
|
||||
|
@ -812,6 +805,7 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
rx_event->wp_tdm_api_event_dtmf_port);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case WP_TDMAPI_EVENT_RXHOOK:
|
||||
printf("%d: GOT RXHOOK EVENT\n",(int)fd);
|
||||
|
@ -837,13 +831,13 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
}
|
||||
break;
|
||||
|
||||
#ifdef WP_TDM_EVENT_FE_ALARM
|
||||
case WP_TDMAPI_EVENT_FE_ALARM:
|
||||
#ifdef WP_TDM_FEATURE_FE_ALARM
|
||||
case WP_TDMAPI_EVENT_ALARM:
|
||||
printf("%d: GOT FE ALARMS EVENT %i\n",(int)fd,
|
||||
rx_event->wp_tdm_api_event_fe_alarm);
|
||||
rx_event->wp_tdm_api_event_alarm);
|
||||
if (tdm_api->wp_tdm_event.wp_fe_alarm_event) {
|
||||
tdm_api->wp_tdm_event.wp_fe_alarm_event(fd,
|
||||
rx_event->wp_tdm_api_event_fe_alarm);
|
||||
rx_event->wp_tdm_api_event_alarm);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -854,13 +848,12 @@ int sangoma_tdm_read_event(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
|
||||
return 0;
|
||||
#else
|
||||
return -EINVAL;
|
||||
printf("Error: Read Event not supported!\n");
|
||||
return -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#ifdef WP_TDMAPI_EVENT_DTMF
|
||||
|
||||
#ifdef WP_TDM_FEATURE_DTMF_EVENTS
|
||||
int sangoma_tdm_enable_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
@ -920,12 +913,8 @@ int sangoma_tdm_disable_rm_dtmf_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef WP_TDMAPI_EVENT_RXHOOK
|
||||
|
||||
int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
@ -940,8 +929,6 @@ int sangoma_tdm_enable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
|
||||
return 0;
|
||||
}
|
||||
NNN
|
||||
|
||||
|
||||
int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
|
@ -958,10 +945,6 @@ int sangoma_tdm_disable_rxhook_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef WP_TDMAPI_EVENT_RING
|
||||
|
||||
int sangoma_tdm_enable_ring_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api) {
|
||||
|
||||
int err;
|
||||
|
@ -1149,40 +1132,39 @@ 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;
|
||||
int err;
|
||||
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_HWEC;
|
||||
err=sangoma_tdm_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_ENABLE_HWEC;
|
||||
err=sangoma_tdm_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
int err;
|
||||
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_HWEC;
|
||||
err=sangoma_tdm_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_DISABLE_HWEC;
|
||||
err=sangoma_tdm_cmd_exec(fd,tdm_api);
|
||||
if (err){
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*========================================================
|
||||
* GET Front End Alarms
|
||||
*
|
||||
*/
|
||||
#ifdef WP_TDM_EVENT_FE_ALARM
|
||||
#ifdef WP_TDM_FEATURE_FE_ALARM
|
||||
int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
||||
{
|
||||
int err;
|
||||
|
@ -1198,4 +1180,26 @@ int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api)
|
|||
}
|
||||
#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)
|
||||
{
|
||||
int err;
|
||||
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_GET_FE_STATUS;
|
||||
err = sangoma_tdm_cmd_exec(fd, tdm_api);
|
||||
*current_status = tdm_api->wp_tdm_cmd.fe_status;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
/* 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)
|
||||
{
|
||||
tdm_api->wp_tdm_cmd.cmd = SIOC_WP_TDM_SET_FE_STATUS;
|
||||
tdm_api->wp_tdm_cmd.fe_status = new_status;
|
||||
|
||||
return sangoma_tdm_cmd_exec(fd, tdm_api);
|
||||
}
|
||||
|
||||
#endif /* WANPIPE_TDM_API */
|
||||
|
|
|
@ -50,6 +50,7 @@ typedef unsigned __int32 u_int32_t;
|
|||
|
||||
typedef HANDLE sng_fd_t;
|
||||
#else
|
||||
/* L I N U X */
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
|
@ -76,6 +77,7 @@ typedef HANDLE sng_fd_t;
|
|||
#ifdef WANPIPE_TDM_API
|
||||
# include <linux/wanpipe_tdm_api.h>
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#define FNAME_LEN 50
|
||||
|
@ -176,15 +178,20 @@ int sangoma_tdm_disable_tone_events(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
|||
|
||||
int sangoma_tdm_get_fe_alarms(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
|
||||
int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
|
||||
|
||||
int sangoma_tdm_txsig_onhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_txsig_offhook(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_txsig_start(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_txsig_kewl(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
|
||||
int sangoma_tdm_enable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
int sangoma_tdm_disable_hwec(sng_fd_t fd, wanpipe_tdm_api_t *tdm_api);
|
||||
|
||||
/* 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);
|
||||
/* 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);
|
||||
|
||||
|
||||
#ifndef LIBSANGOMA_GET_HWCODING
|
||||
#define LIBSANGOMA_GET_HWCODING 1
|
||||
#endif
|
||||
|
@ -193,3 +200,4 @@ int sangoma_tdm_get_hw_coding(int fd, wanpipe_tdm_api_t *tdm_api);
|
|||
#endif /* WANPIPE_TDM_API */
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
|
@ -33,11 +33,11 @@
|
|||
SED="/bin/sed"
|
||||
|
||||
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
|
||||
Xsed="/bin/sed -e s/^X//"
|
||||
Xsed="/bin/sed -e 1s/^X//"
|
||||
|
||||
# The HP-UX ksh and POSIX shell print the target directory to stdout
|
||||
# if CDPATH is set.
|
||||
if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
|
||||
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
||||
|
||||
# The names of the tagged configurations supported by this script.
|
||||
available_tags=" CXX F77"
|
||||
|
@ -67,6 +67,12 @@ fast_install=yes
|
|||
# The host system.
|
||||
host_alias=
|
||||
host=i686-pc-linux-gnu
|
||||
host_os=linux-gnu
|
||||
|
||||
# The build system.
|
||||
build_alias=
|
||||
build=i686-pc-linux-gnu
|
||||
build_os=linux-gnu
|
||||
|
||||
# An echo program that does not interpret backslashes.
|
||||
echo="echo"
|
||||
|
@ -78,12 +84,18 @@ AR_FLAGS="cru"
|
|||
# A C compiler.
|
||||
LTCC="gcc"
|
||||
|
||||
# LTCC compiler flags.
|
||||
LTCFLAGS="-g -O2"
|
||||
|
||||
# A language-specific compiler.
|
||||
CC="gcc"
|
||||
|
||||
# Is the compiler the GNU C compiler?
|
||||
with_gcc=yes
|
||||
|
||||
gcc_dir=`gcc -print-file-name=. | /bin/sed 's,/\.$,,'`
|
||||
gcc_ver=`gcc -dumpversion`
|
||||
|
||||
# An ERE matcher.
|
||||
EGREP="grep -E"
|
||||
|
||||
|
@ -143,7 +155,7 @@ max_cmd_len=32768
|
|||
# Does compiler simultaneously support -c and -o options?
|
||||
compiler_c_o="yes"
|
||||
|
||||
# Must we lock files when doing compilation ?
|
||||
# Must we lock files when doing compilation?
|
||||
need_locks="no"
|
||||
|
||||
# Do we need the lib prefix for modules?
|
||||
|
@ -192,7 +204,7 @@ soname_spec="\${libname}\${release}\${shared_ext}\$major"
|
|||
# Commands used to build and install an old-style archive.
|
||||
RANLIB="ranlib"
|
||||
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
|
||||
old_postinstall_cmds="\$RANLIB \$oldlib~chmod 644 \$oldlib"
|
||||
old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
|
||||
old_postuninstall_cmds=""
|
||||
|
||||
# Create an old-style archive from a shared archive.
|
||||
|
@ -204,9 +216,9 @@ old_archive_from_expsyms_cmds=""
|
|||
# Commands used to build and install a shared archive.
|
||||
archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
|
||||
archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
|
||||
cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
|
||||
\$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
|
||||
\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
|
||||
cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
|
||||
\$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
|
||||
\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
|
||||
postinstall_cmds=""
|
||||
postuninstall_cmds=""
|
||||
|
||||
|
@ -220,11 +232,11 @@ striplib="strip --strip-unneeded"
|
|||
|
||||
# Dependencies to place before the objects being linked to create a
|
||||
# shared library.
|
||||
predep_objects=""
|
||||
predep_objects=`echo "" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Dependencies to place after the objects being linked to create a
|
||||
# shared library.
|
||||
postdep_objects=""
|
||||
postdep_objects=`echo "" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Dependencies to place before the objects being linked to create a
|
||||
# shared library.
|
||||
|
@ -236,7 +248,7 @@ postdeps=""
|
|||
|
||||
# The library search path used internally by the compiler when linking
|
||||
# a shared library.
|
||||
compiler_lib_search_path=""
|
||||
compiler_lib_search_path=`echo "" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Method to check whether dependent libraries are shared objects.
|
||||
deplibs_check_method="pass_all"
|
||||
|
@ -257,7 +269,7 @@ finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
|
|||
finish_eval=""
|
||||
|
||||
# Take the output of nm and produce a listing of raw symbols and C names.
|
||||
global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\(\\)\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2\\3 \\3/p'"
|
||||
global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
|
||||
|
||||
# Transform the output of nm in a proper C declaration
|
||||
global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
|
||||
|
@ -310,16 +322,16 @@ hardcode_automatic=no
|
|||
|
||||
# Variables whose values should be saved in libtool wrapper scripts and
|
||||
# restored at relink time.
|
||||
variables_saved_for_relink="PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
|
||||
variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
|
||||
|
||||
# Whether libtool must link a program against all its dependency libraries.
|
||||
link_all_deplibs=unknown
|
||||
|
||||
# Compile-time system search path for libraries
|
||||
sys_lib_search_path_spec=" /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../ /lib/i386-redhat-linux/4.1.1/ /lib/ /usr/lib/i386-redhat-linux/4.1.1/ /usr/lib/"
|
||||
sys_lib_search_path_spec=`echo " /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../ /lib/i386-redhat-linux/4.1.1/ /lib/ /usr/lib/i386-redhat-linux/4.1.1/ /usr/lib/" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Run-time system search path for libraries
|
||||
sys_lib_dlsearch_path_spec="/lib /usr/lib include ld.so.conf.d/*.conf /usr/local/lib "
|
||||
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/local/lib /usr/lib/qt-3.3/lib "
|
||||
|
||||
# Fix the shell variable $srcfile for the compiler.
|
||||
fix_srcfile_path=""
|
||||
|
@ -6768,6 +6780,12 @@ fast_install=yes
|
|||
# The host system.
|
||||
host_alias=
|
||||
host=i686-pc-linux-gnu
|
||||
host_os=linux-gnu
|
||||
|
||||
# The build system.
|
||||
build_alias=
|
||||
build=i686-pc-linux-gnu
|
||||
build_os=linux-gnu
|
||||
|
||||
# An echo program that does not interpret backslashes.
|
||||
echo="echo"
|
||||
|
@ -6779,12 +6797,18 @@ AR_FLAGS="cru"
|
|||
# A C compiler.
|
||||
LTCC="gcc"
|
||||
|
||||
# LTCC compiler flags.
|
||||
LTCFLAGS="-g -O2"
|
||||
|
||||
# A language-specific compiler.
|
||||
CC="g++"
|
||||
|
||||
# Is the compiler the GNU C compiler?
|
||||
with_gcc=yes
|
||||
|
||||
gcc_dir=`gcc -print-file-name=. | /bin/sed 's,/\.$,,'`
|
||||
gcc_ver=`gcc -dumpversion`
|
||||
|
||||
# An ERE matcher.
|
||||
EGREP="grep -E"
|
||||
|
||||
|
@ -6844,7 +6868,7 @@ max_cmd_len=32768
|
|||
# Does compiler simultaneously support -c and -o options?
|
||||
compiler_c_o="yes"
|
||||
|
||||
# Must we lock files when doing compilation ?
|
||||
# Must we lock files when doing compilation?
|
||||
need_locks="no"
|
||||
|
||||
# Do we need the lib prefix for modules?
|
||||
|
@ -6893,7 +6917,7 @@ soname_spec="\${libname}\${release}\${shared_ext}\$major"
|
|||
# Commands used to build and install an old-style archive.
|
||||
RANLIB="ranlib"
|
||||
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
|
||||
old_postinstall_cmds="\$RANLIB \$oldlib~chmod 644 \$oldlib"
|
||||
old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
|
||||
old_postuninstall_cmds=""
|
||||
|
||||
# Create an old-style archive from a shared archive.
|
||||
|
@ -6918,11 +6942,11 @@ striplib="strip --strip-unneeded"
|
|||
|
||||
# Dependencies to place before the objects being linked to create a
|
||||
# shared library.
|
||||
predep_objects="/usr/lib/gcc/i386-redhat-linux/4.1.1/../../../crti.o /usr/lib/gcc/i386-redhat-linux/4.1.1/crtbeginS.o"
|
||||
predep_objects=`echo "/usr/lib/gcc/i386-redhat-linux/4.1.1/../../../crti.o /usr/lib/gcc/i386-redhat-linux/4.1.1/crtbeginS.o" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Dependencies to place after the objects being linked to create a
|
||||
# shared library.
|
||||
postdep_objects="/usr/lib/gcc/i386-redhat-linux/4.1.1/crtendS.o /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../crtn.o"
|
||||
postdep_objects=`echo "/usr/lib/gcc/i386-redhat-linux/4.1.1/crtendS.o /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../crtn.o" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Dependencies to place before the objects being linked to create a
|
||||
# shared library.
|
||||
|
@ -6934,7 +6958,7 @@ postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
|
|||
|
||||
# The library search path used internally by the compiler when linking
|
||||
# a shared library.
|
||||
compiler_lib_search_path="-L/usr/lib/gcc/i386-redhat-linux/4.1.1 -L/usr/lib/gcc/i386-redhat-linux/4.1.1 -L/usr/lib/gcc/i386-redhat-linux/4.1.1/../../.."
|
||||
compiler_lib_search_path=`echo "-L/usr/lib/gcc/i386-redhat-linux/4.1.1 -L/usr/lib/gcc/i386-redhat-linux/4.1.1 -L/usr/lib/gcc/i386-redhat-linux/4.1.1/../../.." | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Method to check whether dependent libraries are shared objects.
|
||||
deplibs_check_method="pass_all"
|
||||
|
@ -6955,7 +6979,7 @@ finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
|
|||
finish_eval=""
|
||||
|
||||
# Take the output of nm and produce a listing of raw symbols and C names.
|
||||
global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\(\\)\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2\\3 \\3/p'"
|
||||
global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
|
||||
|
||||
# Transform the output of nm in a proper C declaration
|
||||
global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
|
||||
|
@ -7000,7 +7024,7 @@ hardcode_minus_L=no
|
|||
|
||||
# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
|
||||
# the resulting binary.
|
||||
hardcode_shlibpath_var=
|
||||
hardcode_shlibpath_var=unsupported
|
||||
|
||||
# Set to yes if building a shared library automatically hardcodes DIR into the library
|
||||
# and all subsequent libraries and executables linked against it.
|
||||
|
@ -7014,10 +7038,10 @@ variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COM
|
|||
link_all_deplibs=unknown
|
||||
|
||||
# Compile-time system search path for libraries
|
||||
sys_lib_search_path_spec=" /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../ /lib/i386-redhat-linux/4.1.1/ /lib/ /usr/lib/i386-redhat-linux/4.1.1/ /usr/lib/"
|
||||
sys_lib_search_path_spec=`echo " /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../ /lib/i386-redhat-linux/4.1.1/ /lib/ /usr/lib/i386-redhat-linux/4.1.1/ /usr/lib/" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Run-time system search path for libraries
|
||||
sys_lib_dlsearch_path_spec="/lib /usr/lib include ld.so.conf.d/*.conf /usr/local/lib "
|
||||
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/local/lib /usr/lib/qt-3.3/lib "
|
||||
|
||||
# Fix the shell variable $srcfile for the compiler.
|
||||
fix_srcfile_path=""
|
||||
|
@ -7064,6 +7088,12 @@ fast_install=yes
|
|||
# The host system.
|
||||
host_alias=
|
||||
host=i686-pc-linux-gnu
|
||||
host_os=linux-gnu
|
||||
|
||||
# The build system.
|
||||
build_alias=
|
||||
build=i686-pc-linux-gnu
|
||||
build_os=linux-gnu
|
||||
|
||||
# An echo program that does not interpret backslashes.
|
||||
echo="echo"
|
||||
|
@ -7075,12 +7105,18 @@ AR_FLAGS="cru"
|
|||
# A C compiler.
|
||||
LTCC="gcc"
|
||||
|
||||
# LTCC compiler flags.
|
||||
LTCFLAGS="-g -O2"
|
||||
|
||||
# A language-specific compiler.
|
||||
CC="f95"
|
||||
|
||||
# Is the compiler the GNU C compiler?
|
||||
with_gcc=yes
|
||||
|
||||
gcc_dir=`gcc -print-file-name=. | /bin/sed 's,/\.$,,'`
|
||||
gcc_ver=`gcc -dumpversion`
|
||||
|
||||
# An ERE matcher.
|
||||
EGREP="grep -E"
|
||||
|
||||
|
@ -7140,7 +7176,7 @@ max_cmd_len=32768
|
|||
# Does compiler simultaneously support -c and -o options?
|
||||
compiler_c_o="yes"
|
||||
|
||||
# Must we lock files when doing compilation ?
|
||||
# Must we lock files when doing compilation?
|
||||
need_locks="no"
|
||||
|
||||
# Do we need the lib prefix for modules?
|
||||
|
@ -7189,7 +7225,7 @@ soname_spec="\${libname}\${release}\${shared_ext}\$major"
|
|||
# Commands used to build and install an old-style archive.
|
||||
RANLIB="ranlib"
|
||||
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB \$oldlib"
|
||||
old_postinstall_cmds="\$RANLIB \$oldlib~chmod 644 \$oldlib"
|
||||
old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib"
|
||||
old_postuninstall_cmds=""
|
||||
|
||||
# Create an old-style archive from a shared archive.
|
||||
|
@ -7201,9 +7237,9 @@ old_archive_from_expsyms_cmds=""
|
|||
# Commands used to build and install a shared archive.
|
||||
archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib"
|
||||
archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
|
||||
cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
|
||||
\$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
|
||||
\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
|
||||
cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
|
||||
\$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
|
||||
\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
|
||||
postinstall_cmds=""
|
||||
postuninstall_cmds=""
|
||||
|
||||
|
@ -7217,11 +7253,11 @@ striplib="strip --strip-unneeded"
|
|||
|
||||
# Dependencies to place before the objects being linked to create a
|
||||
# shared library.
|
||||
predep_objects=""
|
||||
predep_objects=`echo "" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Dependencies to place after the objects being linked to create a
|
||||
# shared library.
|
||||
postdep_objects=""
|
||||
postdep_objects=`echo "" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Dependencies to place before the objects being linked to create a
|
||||
# shared library.
|
||||
|
@ -7233,7 +7269,7 @@ postdeps=""
|
|||
|
||||
# The library search path used internally by the compiler when linking
|
||||
# a shared library.
|
||||
compiler_lib_search_path=""
|
||||
compiler_lib_search_path=`echo "" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Method to check whether dependent libraries are shared objects.
|
||||
deplibs_check_method="pass_all"
|
||||
|
@ -7254,7 +7290,7 @@ finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir"
|
|||
finish_eval=""
|
||||
|
||||
# Take the output of nm and produce a listing of raw symbols and C names.
|
||||
global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\(\\)\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2\\3 \\3/p'"
|
||||
global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
|
||||
|
||||
# Transform the output of nm in a proper C declaration
|
||||
global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'"
|
||||
|
@ -7313,10 +7349,10 @@ variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COM
|
|||
link_all_deplibs=unknown
|
||||
|
||||
# Compile-time system search path for libraries
|
||||
sys_lib_search_path_spec=" /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../ /lib/i386-redhat-linux/4.1.1/ /lib/ /usr/lib/i386-redhat-linux/4.1.1/ /usr/lib/"
|
||||
sys_lib_search_path_spec=`echo " /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../../i386-redhat-linux/lib/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../i386-redhat-linux/4.1.1/ /usr/lib/gcc/i386-redhat-linux/4.1.1/../../../ /lib/i386-redhat-linux/4.1.1/ /lib/ /usr/lib/i386-redhat-linux/4.1.1/ /usr/lib/" | $SED -e "s@${gcc_dir}@\${gcc_dir}@g;s@${gcc_ver}@\${gcc_ver}@g"`
|
||||
|
||||
# Run-time system search path for libraries
|
||||
sys_lib_dlsearch_path_spec="/lib /usr/lib include ld.so.conf.d/*.conf /usr/local/lib "
|
||||
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/local/lib /usr/lib/qt-3.3/lib "
|
||||
|
||||
# Fix the shell variable $srcfile for the compiler.
|
||||
fix_srcfile_path=""
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
Added new event support
|
||||
--This line, and those below, will be ignored--
|
||||
|
||||
M libsangoma.c
|
||||
M libsangoma.h
|
|
@ -1,4 +1,5 @@
|
|||
|
||||
Added new event features
|
||||
--This line, and those below, will be ignored--
|
||||
|
||||
A libsangoma.so.conf
|
||||
M libsangoma.c
|
||||
M libsangoma.h
|
||||
|
|
|
@ -12,18 +12,21 @@ DEBUG = 2
|
|||
|
||||
SYSINC=$(shell if [ -f ../../.sysinclude ]; then cat ../../.sysinclude; else echo ""; fi)
|
||||
ifeq "$(SYSINC)" ""
|
||||
SYSINC=/lib/modules/$(shell uname -r)/build/include
|
||||
SYSINC=/usr/src/linux/include
|
||||
endif
|
||||
SRCINC=../../patches/kdrivers/include
|
||||
VPATH = $(SYSINC)
|
||||
|
||||
# Tools options.
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib/hdlc -I../lib -I$(SYSINC) -I$(SRCINC)
|
||||
CFLAGS = -Wall -O2 -D$(OS_TYPE) -DWANPIPE_TDM_API -D_DEBUG_=$(DEBUG) -D_GNUC_ -I../lib/hdlc -I../lib
|
||||
CFLAGS += -I/usr/include/wanpipe
|
||||
#CFLAGS = -I$(SYSINC)
|
||||
|
||||
TARGETS = aft_tdm_voice_api
|
||||
TARGETS += aft_tdm_voice_api_switch
|
||||
TARGETS += aft_tdm_hdlc_test
|
||||
TARGETS += aft_tdm_voice_api_rbs
|
||||
#TARGETS += aft_tdm_voice_api_dtmf
|
||||
TARGETS += aft_tdm_voice_api_dtmf
|
||||
TARGETS += aft_tdm_voice_api_rm_events
|
||||
#TARGETS += aft_tdm_voice_api_rm_dtmf
|
||||
#TARGETS += aft_tdm_voice_api_rxhook
|
||||
|
||||
|
@ -32,9 +35,18 @@ TARGETS += aft_tdm_voice_api_rbs
|
|||
all: $(TARGETS)
|
||||
@echo "Ok."
|
||||
|
||||
install:
|
||||
for x in $(TARGETS); do \
|
||||
install -D -m 755 $$x /usr/bin/$$x; \
|
||||
done;
|
||||
|
||||
|
||||
aft_tdm_voice_api: aft_tdm_voice_api.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm
|
||||
|
||||
aft_tdm_voice_api_switch: aft_tdm_voice_api_switch.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm
|
||||
|
||||
aft_tdm_hdlc_test: aft_tdm_hdlc_test.c ../lib/hdlc/wanpipe_hdlc.c
|
||||
$(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm
|
||||
|
||||
|
@ -44,6 +56,9 @@ aft_tdm_voice_api_rbs: aft_tdm_voice_api_rbs.c ../lib/lib_api.c
|
|||
aft_tdm_voice_api_dtmf: aft_tdm_voice_api_dtmf.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm
|
||||
|
||||
aft_tdm_voice_api_rm_events: aft_tdm_voice_api_rm_events.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm
|
||||
|
||||
aft_tdm_voice_api_rm_dtmf: aft_tdm_voice_api_rm_dtmf.c ../lib/lib_api.c
|
||||
$(CC) $(CFLAGS) -o $@ $^ -lsangoma -lm
|
||||
|
||||
|
|
Binary file not shown.
|
@ -48,12 +48,12 @@
|
|||
#define TRUE 1
|
||||
|
||||
/* Enable/Disable tx of random frames */
|
||||
#define RAND_FRAME 1
|
||||
#define RAND_FRAME 0
|
||||
|
||||
#define MAX_NUM_OF_TIMESLOTS 31*16
|
||||
|
||||
#define LGTH_CRC_BYTES 2
|
||||
#define MAX_TX_DATA 5000 //MAX_NUM_OF_TIMESLOTS*10 /* Size of tx data */
|
||||
#define MAX_TX_DATA 1000 //MAX_NUM_OF_TIMESLOTS*10 /* Size of tx data */
|
||||
#define MAX_TX_FRAMES 1000000 /* Number of frames to transmit */
|
||||
|
||||
#define WRITE 1
|
||||
|
@ -126,7 +126,6 @@ int MakeConnection(timeslot_t *slot, char *router_name )
|
|||
|
||||
int span,chan;
|
||||
sangoma_span_chan_fromif(slot->if_name,&span,&chan);
|
||||
printf("Socket bound %s to Span=%i Chan=%i\n\n",slot->if_name,span,chan);
|
||||
|
||||
if (span > 0 && chan > 0) {
|
||||
wanpipe_tdm_api_t tdm_api;
|
||||
|
@ -432,7 +431,7 @@ void process_con_tx(timeslot_t *slot)
|
|||
*/
|
||||
|
||||
memset(&Tx_data[0],0,MAX_TX_DATA + sizeof(wp_tdm_api_tx_hdr_t));
|
||||
slot->data=1;
|
||||
slot->data=0;
|
||||
for (i=0;i<Tx_hdlc_len;i++){
|
||||
if (slot->data){
|
||||
Tx_data[i+sizeof(wp_tdm_api_tx_hdr_t)] = slot->data;
|
||||
|
@ -480,7 +479,7 @@ void process_con_tx(timeslot_t *slot)
|
|||
printf("TX DATA ORIG: Len=%i\n",Tx_hdlc_len);
|
||||
print_packet(&Tx_data[sizeof(wp_tdm_api_tx_hdr_t)],Tx_hdlc_len);
|
||||
#endif
|
||||
wanpipe_hdlc_encode(hdlc_eng,&Tx_data[16],Tx_hdlc_len,&Tx_hdlc_data[16],(int*)&Tx_encoded_hdlc_len,&next_idle);
|
||||
wanpipe_hdlc_encode(hdlc_eng,&Tx_data[16],Tx_hdlc_len,&Tx_hdlc_data[16],&Tx_encoded_hdlc_len,&next_idle);
|
||||
if (Tx_encoded_hdlc_len < (max_tx_len*2)){
|
||||
int j;
|
||||
for (j=0;j<((max_tx_len*2) - Tx_encoded_hdlc_len);j++){
|
||||
|
|
Binary file not shown.
|
@ -414,7 +414,7 @@ int main(int argc, char* argv[])
|
|||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage((unsigned char*)argv[0]);
|
||||
usage(argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,254 @@
|
|||
/*****************************************************************************
|
||||
* aft_api.c AFT T1/E1: HDLC API Sample Code
|
||||
*
|
||||
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 2003-2004 Sangoma Technologies Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <linux/if_wanpipe.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <signal.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/wanpipe_defines.h>
|
||||
#include <linux/wanpipe_cfg.h>
|
||||
#include <linux/wanpipe.h>
|
||||
#include <libsangoma.h>
|
||||
#include "lib_api.h"
|
||||
|
||||
#define MAX_TX_DATA 5000 /* Size of tx data */
|
||||
#define MAX_FRAMES 5000 /* Number of frames to transmit */
|
||||
|
||||
#define MAX_RX_DATA 5000
|
||||
|
||||
unsigned short Rx_lgth;
|
||||
|
||||
unsigned char Rx_data[MAX_RX_DATA];
|
||||
unsigned char Tx_data[MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t)];
|
||||
|
||||
/* Prototypes */
|
||||
int MakeConnection(void);
|
||||
void handle_span_chan( void);
|
||||
void sig_end(int sigid);
|
||||
|
||||
int dev_fd;
|
||||
FILE *tx_fd=NULL,*rx_fd=NULL;
|
||||
wanpipe_tdm_api_t tdm_api;
|
||||
|
||||
|
||||
/***************************************************
|
||||
* HANDLE SOCKET
|
||||
*
|
||||
* o Read a socket
|
||||
* o Cast data received to api_rx_element_t data type
|
||||
* o The received packet contains 16 bytes header
|
||||
*
|
||||
* ------------------------------------------
|
||||
* | 16 bytes | X bytes ...
|
||||
* ------------------------------------------
|
||||
* Header Data
|
||||
*
|
||||
* o Data structures:
|
||||
* ------------------
|
||||
* typedef struct {
|
||||
* union {
|
||||
* struct {
|
||||
* unsigned char _event_type;
|
||||
* unsigned char _rbs_rx_bits;
|
||||
* unsigned int _time_stamp;
|
||||
* }wp_event;
|
||||
* struct {
|
||||
* unsigned char _rbs_rx_bits;
|
||||
* unsigned int _time_stamp;
|
||||
* }wp_rx;
|
||||
* unsigned char reserved[16];
|
||||
* }wp_rx_hdr_u;
|
||||
* #define wp_api_event_type wp_rx_hdr_u.wp_event._event_type
|
||||
* #define wp_api_event_rbs_rx_bits wp_rx_hdr_u.wp_event._rbs_rx_bits
|
||||
* #define wp_api_event_time_stamp wp_rx_hdr_u.wp_event._time_stamp
|
||||
* } wp_tdm_api_rx_hdr_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* wp_tdm_api_rx_hdr_t hdr;
|
||||
* unsigned char data[1];
|
||||
* } wp_tdm_api_rx_element_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* union {
|
||||
* struct {
|
||||
* unsigned char _rbs_rx_bits;
|
||||
* unsigned int _time_stamp;
|
||||
* }wp_tx;
|
||||
* unsigned char reserved[16];
|
||||
* }wp_tx_hdr_u;
|
||||
* #define wp_api_time_stamp wp_tx_hdr_u.wp_tx._time_stamp
|
||||
* } wp_tdm_api_tx_hdr_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* wp_tdm_api_tx_hdr_t hdr;
|
||||
* unsigned char data[1];
|
||||
* } wp_tdm_api_tx_element_t;
|
||||
*
|
||||
* #define WPTDM_A_BIT 0x08
|
||||
* #define WPTDM_B_BIT 0x04
|
||||
* #define WPTDM_C_BIT 0x02
|
||||
* #define WPTDM_D_BIT 0x01
|
||||
*
|
||||
*/
|
||||
|
||||
void handle_span_chan(void)
|
||||
{
|
||||
unsigned int Rx_count,Tx_count,Tx_length;
|
||||
int err;
|
||||
|
||||
#if 0
|
||||
int rlen;
|
||||
int stream_sync=0;
|
||||
#endif
|
||||
|
||||
Rx_count = 0;
|
||||
Tx_count = 0;
|
||||
|
||||
if (tdm_api.wp_tdm_cmd.hdlc) {
|
||||
Tx_length = tx_size;
|
||||
} else {
|
||||
Tx_length = tdm_api.wp_tdm_cmd.usr_mtu_mru;
|
||||
}
|
||||
|
||||
printf("\n\nSocket Handler: Rx=%d Tx=%i TxCnt=%i TxLen=%i TxDelay=%i\n",
|
||||
read_enable,write_enable,tx_cnt,tx_size,tx_delay);
|
||||
|
||||
sangoma_tdm_enable_dtmf_events(dev_fd, &tdm_api);
|
||||
|
||||
/* Main Rx Tx OOB routine */
|
||||
for(;;) {
|
||||
|
||||
err = sangoma_socket_waitfor(dev_fd, 1000, POLLPRI);
|
||||
printf("ret:%d\n", err);
|
||||
if (err){
|
||||
err=sangoma_tdm_read_event(dev_fd,&tdm_api);
|
||||
if(err < 0 ) {
|
||||
printf("Failed to receive EVENT %d\n", err);
|
||||
break;
|
||||
}
|
||||
|
||||
printf("GOT OOB EXCEPTION CMD Exiting\n");
|
||||
}
|
||||
|
||||
if (++Rx_count >= rx_cnt){
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sangoma_tdm_disable_dtmf_events(dev_fd, &tdm_api);
|
||||
if (tx_fd){
|
||||
fclose(tx_fd);
|
||||
}
|
||||
if (rx_fd){
|
||||
fclose(rx_fd);
|
||||
}
|
||||
close (dev_fd);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int dtmf_event (int fd, unsigned char digit, unsigned char type, unsigned char port)
|
||||
{
|
||||
printf("%d: DTMV Event: %c (%s:%s)!\n",
|
||||
fd,
|
||||
digit,
|
||||
(port == WAN_EC_CHANNEL_PORT_ROUT)?"ROUT":"SOUT",
|
||||
(type == WAN_EC_TONE_PRESENT)?"PRESET":"STOP");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/***************************************************************
|
||||
* Main:
|
||||
*
|
||||
* o Make a socket connection to the driver.
|
||||
* o Call handle_span_chan() to read the socket
|
||||
*
|
||||
**************************************************************/
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int proceed;
|
||||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage(argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
signal(SIGINT,&sig_end);
|
||||
memset(&tdm_api,0,sizeof(tdm_api));
|
||||
tdm_api.wp_tdm_event.wp_dtmf_event = &dtmf_event;
|
||||
|
||||
printf("TDM DTMF PTR = %p\n",tdm_api.wp_tdm_event.wp_dtmf_event);
|
||||
|
||||
dev_fd =-1;
|
||||
|
||||
dev_fd = sangoma_open_tdmapi_span_chan(atoi(card_name),atoi(if_name));
|
||||
if( dev_fd < 0){
|
||||
printf("Failed to open span chan(%s:%d,%s:%d)\n",
|
||||
card_name,atoi(card_name),if_name,atoi(if_name));
|
||||
exit (1);
|
||||
}
|
||||
printf("HANDLING SPAN %i CHAN %i FD=%i\n",
|
||||
atoi(card_name),atoi(if_name),dev_fd);
|
||||
|
||||
sangoma_tdm_set_codec(dev_fd,&tdm_api,WP_NONE);
|
||||
sangoma_get_full_cfg(dev_fd, &tdm_api);
|
||||
|
||||
handle_span_chan();
|
||||
close(dev_fd);
|
||||
return 0;
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
||||
void sig_end(int sigid)
|
||||
{
|
||||
|
||||
printf("Got Signal %i\n",sigid);
|
||||
|
||||
sangoma_tdm_disable_dtmf_events(dev_fd, &tdm_api);
|
||||
|
||||
if (tx_fd){
|
||||
fclose(tx_fd);
|
||||
}
|
||||
if (rx_fd){
|
||||
fclose(rx_fd);
|
||||
}
|
||||
|
||||
if (dev_fd){
|
||||
close (dev_fd);
|
||||
}
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
Binary file not shown.
|
@ -449,7 +449,7 @@ int main(int argc, char* argv[])
|
|||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage((unsigned char*)argv[0]);
|
||||
usage(argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,445 @@
|
|||
/*****************************************************************************
|
||||
* aft_api.c AFT T1/E1: HDLC API Sample Code
|
||||
*
|
||||
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 2003-2004 Sangoma Technologies Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <linux/if_wanpipe.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <signal.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/wanpipe_defines.h>
|
||||
#include <linux/wanpipe_cfg.h>
|
||||
#include <linux/wanpipe.h>
|
||||
#include <libsangoma.h>
|
||||
#include "lib_api.h"
|
||||
|
||||
#define MAX_TX_DATA 5000 /* Size of tx data */
|
||||
#define MAX_FRAMES 5000 /* Number of frames to transmit */
|
||||
|
||||
#define MAX_RX_DATA 5000
|
||||
|
||||
unsigned short Rx_lgth;
|
||||
|
||||
unsigned char Rx_data[MAX_RX_DATA];
|
||||
unsigned char Tx_data[MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t)];
|
||||
|
||||
/* Prototypes */
|
||||
int MakeConnection(void);
|
||||
void handle_span_chan( void);
|
||||
void sig_end(int sigid);
|
||||
|
||||
int dev_fd;
|
||||
FILE *tx_fd=NULL,*rx_fd=NULL;
|
||||
wanpipe_tdm_api_t tdm_api;
|
||||
|
||||
|
||||
/***************************************************
|
||||
* HANDLE SOCKET
|
||||
*
|
||||
* o Read a socket
|
||||
* o Cast data received to api_rx_element_t data type
|
||||
* o The received packet contains 16 bytes header
|
||||
*
|
||||
* ------------------------------------------
|
||||
* | 16 bytes | X bytes ...
|
||||
* ------------------------------------------
|
||||
* Header Data
|
||||
*
|
||||
* o Data structures:
|
||||
* ------------------
|
||||
* typedef struct {
|
||||
* union {
|
||||
* struct {
|
||||
* unsigned char _event_type;
|
||||
* unsigned char _rbs_rx_bits;
|
||||
* unsigned int _time_stamp;
|
||||
* }wp_event;
|
||||
* struct {
|
||||
* unsigned char _rbs_rx_bits;
|
||||
* unsigned int _time_stamp;
|
||||
* }wp_rx;
|
||||
* unsigned char reserved[16];
|
||||
* }wp_rx_hdr_u;
|
||||
* #define wp_api_event_type wp_rx_hdr_u.wp_event._event_type
|
||||
* #define wp_api_event_rbs_rx_bits wp_rx_hdr_u.wp_event._rbs_rx_bits
|
||||
* #define wp_api_event_time_stamp wp_rx_hdr_u.wp_event._time_stamp
|
||||
* } wp_tdm_api_rx_hdr_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* wp_tdm_api_rx_hdr_t hdr;
|
||||
* unsigned char data[1];
|
||||
* } wp_tdm_api_rx_element_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* union {
|
||||
* struct {
|
||||
* unsigned char _rbs_rx_bits;
|
||||
* unsigned int _time_stamp;
|
||||
* }wp_tx;
|
||||
* unsigned char reserved[16];
|
||||
* }wp_tx_hdr_u;
|
||||
* #define wp_api_time_stamp wp_tx_hdr_u.wp_tx._time_stamp
|
||||
* } wp_tdm_api_tx_hdr_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* wp_tdm_api_tx_hdr_t hdr;
|
||||
* unsigned char data[1];
|
||||
* } wp_tdm_api_tx_element_t;
|
||||
*
|
||||
* #define WPTDM_A_BIT 0x08
|
||||
* #define WPTDM_B_BIT 0x04
|
||||
* #define WPTDM_C_BIT 0x02
|
||||
* #define WPTDM_D_BIT 0x01
|
||||
*
|
||||
*/
|
||||
|
||||
void handle_span_chan(void)
|
||||
{
|
||||
unsigned int Rx_count,Tx_count,Tx_length;
|
||||
wp_tdm_api_rx_element_t* api_rx_el;
|
||||
wp_tdm_api_tx_element_t * api_tx_el;
|
||||
fd_set ready,write,oob;
|
||||
int err,i;
|
||||
|
||||
#if 0
|
||||
int rlen;
|
||||
int stream_sync=0;
|
||||
#endif
|
||||
|
||||
Rx_count = 0;
|
||||
Tx_count = 0;
|
||||
|
||||
if (tdm_api.wp_tdm_cmd.hdlc) {
|
||||
Tx_length = tx_size;
|
||||
} else {
|
||||
Tx_length = tdm_api.wp_tdm_cmd.usr_mtu_mru;
|
||||
}
|
||||
|
||||
printf("\n\nSocket Handler: Rx=%d Tx=%i TxCnt=%i TxLen=%i TxDelay=%i\n",
|
||||
read_enable,write_enable,tx_cnt,tx_size,tx_delay);
|
||||
|
||||
/* Initialize the Tx Data buffer */
|
||||
memset(&Tx_data[0],0,MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t));
|
||||
|
||||
/* Cast the Tx data packet with the tx element
|
||||
* structure. We must insert a 16 byte
|
||||
* driver header, which driver will remove
|
||||
* before passing packet out the physical port */
|
||||
api_tx_el = (wp_tdm_api_tx_element_t*)&Tx_data[0];
|
||||
|
||||
|
||||
/* Create a Tx packet based on user info, or
|
||||
* by deafult incrementing number starting from 0 */
|
||||
for (i=0;i<Tx_length;i++){
|
||||
if (tx_data == -1){
|
||||
api_tx_el->data[i] = (unsigned char)i;
|
||||
}else{
|
||||
#if 0
|
||||
api_tx_el->data[i] = (unsigned char)tx_data+(i%4);
|
||||
#else
|
||||
api_tx_el->data[i] = (unsigned char)tx_data;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
sangoma_tdm_enable_rm_dtmf_events(dev_fd, &tdm_api);
|
||||
|
||||
/* Main Rx Tx OOB routine */
|
||||
for(;;) {
|
||||
|
||||
/* Initialize all select() descriptors */
|
||||
FD_ZERO(&ready);
|
||||
FD_ZERO(&write);
|
||||
FD_ZERO(&oob);
|
||||
FD_SET(dev_fd,&oob);
|
||||
FD_SET(dev_fd,&ready);
|
||||
|
||||
if (write_enable){
|
||||
FD_SET(dev_fd,&write);
|
||||
}
|
||||
|
||||
/* Select will block, until:
|
||||
* 1: OOB event, link level change
|
||||
* 2: Rx data available
|
||||
* 3: Interface able to Tx */
|
||||
|
||||
if(select(dev_fd + 1,&ready, &write, &oob, NULL)){
|
||||
|
||||
fflush(stdout);
|
||||
if (FD_ISSET(dev_fd,&oob)){
|
||||
|
||||
/* An OOB event is pending, usually indicating
|
||||
* a link level change */
|
||||
|
||||
err=sangoma_tdm_read_event(dev_fd,&tdm_api);
|
||||
|
||||
if(err < 0 ) {
|
||||
printf("Failed to receive OOB %i , %i\n", Rx_count, err);
|
||||
err = ioctl(dev_fd,SIOC_WANPIPE_SOCK_STATE,0);
|
||||
printf("Sock state is %s\n",
|
||||
(err == 0) ? "CONNECTED" :
|
||||
(err == 1) ? "DISCONNECTED" :
|
||||
"CONNECTING");
|
||||
break;
|
||||
}
|
||||
|
||||
printf("GOT OOB EXCEPTION CMD Exiting\n");
|
||||
}
|
||||
|
||||
|
||||
if (FD_ISSET(dev_fd,&ready)){
|
||||
|
||||
/* An Rx packet is pending
|
||||
* 1: Read the rx packet into the Rx_data
|
||||
* buffer. Confirm len > 0
|
||||
*
|
||||
* 2: Cast Rx_data to the api_rx_element.
|
||||
* Thus, removing a 16 byte header
|
||||
* attached by the driver.
|
||||
*
|
||||
* 3. Check error_flag:
|
||||
* CRC,Abort..etc
|
||||
*/
|
||||
|
||||
memset(Rx_data, 0, sizeof(Rx_data));
|
||||
|
||||
err = sangoma_readmsg_tdm(dev_fd,
|
||||
Rx_data,
|
||||
sizeof(wp_tdm_api_rx_hdr_t),
|
||||
&Rx_data[sizeof(wp_tdm_api_rx_hdr_t)],
|
||||
MAX_RX_DATA, 0);
|
||||
|
||||
|
||||
if (!read_enable){
|
||||
goto bitstrm_skip_read;
|
||||
}
|
||||
|
||||
/* err indicates bytes received */
|
||||
if(err <= 0) {
|
||||
printf("\nError receiving data\n");
|
||||
break;
|
||||
}
|
||||
|
||||
api_rx_el = (wp_tdm_api_rx_element_t*)&Rx_data[0];
|
||||
|
||||
/* Check the packet length */
|
||||
Rx_lgth = err;
|
||||
if(Rx_lgth<=0) {
|
||||
printf("\nShort frame received (%d)\n",
|
||||
Rx_lgth);
|
||||
return;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (api_rx_el->data[0] == tx_data && api_rx_el->data[1] == (tx_data+1)){
|
||||
if (!stream_sync){
|
||||
printf("GOT SYNC %x\n",api_rx_el->data[0]);
|
||||
}
|
||||
stream_sync=1;
|
||||
}else{
|
||||
if (stream_sync){
|
||||
printf("OUT OF SYNC: %x\n",api_rx_el->data[0]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
++Rx_count;
|
||||
|
||||
if (verbose){
|
||||
printf("Received %i Length = %i\n",
|
||||
Rx_count,Rx_lgth);
|
||||
#if 1
|
||||
printf("Data: ");
|
||||
for(i=0;i<Rx_lgth; i ++) {
|
||||
printf("0x%02X ", api_rx_el->data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
#endif
|
||||
}else{
|
||||
//putchar('R');
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
switch(api_rx_el->hdr.wp_api_event_type){
|
||||
case WP_TDM_EVENT_DTMF:
|
||||
printf("DTMV Event: %c (%s:%s)!\n",
|
||||
api_rx_el->hdr.wp_api_event_dtmf_digit,
|
||||
(api_rx_el->hdr.wp_api_event_dtmf_type&WP_TDM_EVENT_DTMF_ROUT)?"ROUT":"SOUT",
|
||||
(api_rx_el->hdr.wp_api_event_dtmf_type&WP_TDM_EVENT_DTMF_PRESET)?"PRESET":"STOP");
|
||||
break;
|
||||
case WP_TDM_EVENT_RXHOOK:
|
||||
printf("RXHOOK Event: %s!\n",
|
||||
(api_rx_el->hdr.wp_api_event_rxhook_state&WP_TDM_EVENT_RXHOOK_OFF)?"OFF-HOOK":"ON-HOOK");
|
||||
break;
|
||||
case WP_TDM_EVENT_RING:
|
||||
printf("RING Event: %s!\n",
|
||||
(api_rx_el->hdr.wp_api_event_ring_state&WP_TDM_EVENT_RING_PRESENT)?"PRESENT":"STOP");
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
if (rx_cnt > 0 && Rx_count >= rx_cnt){
|
||||
break;
|
||||
}
|
||||
bitstrm_skip_read:
|
||||
;
|
||||
}
|
||||
|
||||
if (FD_ISSET(dev_fd,&write)){
|
||||
|
||||
|
||||
err = sangoma_writemsg_tdm(dev_fd,
|
||||
Tx_data,16,
|
||||
&Tx_data[16], Tx_length,
|
||||
0);
|
||||
if (err <= 0){
|
||||
if (errno == EBUSY){
|
||||
if (verbose){
|
||||
printf("Sock busy try again!\n");
|
||||
}
|
||||
/* Socket busy try sending again !*/
|
||||
}else{
|
||||
printf("Faild to send %i \n",errno);
|
||||
perror("Send: ");
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
|
||||
++Tx_count;
|
||||
|
||||
if (verbose){
|
||||
printf("Packet sent: Sent %i : %i\n",
|
||||
err,Tx_count);
|
||||
}else{
|
||||
//putchar('T');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tx_delay){
|
||||
usleep(tx_delay);
|
||||
}
|
||||
|
||||
if (tx_cnt && tx_size && Tx_count >= tx_cnt && !(files_used & TX_FILE_USED)){
|
||||
|
||||
write_enable=0;
|
||||
if (rx_cnt > 0){
|
||||
/* Dont break let rx finish */
|
||||
}else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sangoma_tdm_disable_rm_dtmf_events(dev_fd, &tdm_api);
|
||||
if (tx_fd){
|
||||
fclose(tx_fd);
|
||||
}
|
||||
if (rx_fd){
|
||||
fclose(rx_fd);
|
||||
}
|
||||
close (dev_fd);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int dtmf_event (int fd, unsigned char digit, unsigned char type, unsigned char port)
|
||||
{
|
||||
printf("%d: DTMV Event: %c (%s:%s)!\n",
|
||||
fd,
|
||||
digit,
|
||||
(port == WAN_EC_CHANNEL_PORT_ROUT)?"ROUT":"SOUT",
|
||||
(type == WAN_EC_TONE_PRESENT)?"PRESET":"STOP");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***************************************************************
|
||||
* Main:
|
||||
*
|
||||
* o Make a socket connection to the driver.
|
||||
* o Call handle_span_chan() to read the socket
|
||||
*
|
||||
**************************************************************/
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int proceed;
|
||||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage(argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
signal(SIGINT,&sig_end);
|
||||
memset(&tdm_api,0,sizeof(tdm_api));
|
||||
tdm_api.wp_tdm_event.wp_dtmf_event = &dtmf_event;
|
||||
|
||||
printf("TDM DTMF PTR = %p\n",tdm_api.wp_tdm_event.wp_dtmf_event);
|
||||
|
||||
dev_fd =-1;
|
||||
|
||||
dev_fd = sangoma_open_tdmapi_span_chan(1,1/*atoi(card_name),atoi(if_name)*/);
|
||||
if( dev_fd < 0){
|
||||
printf("Failed to open span chan:%s:%s\n",card_name,if_name);
|
||||
exit (1);
|
||||
}
|
||||
printf("HANDLING SPAN %i CHAN %i FD=%i\n",
|
||||
atoi(card_name),atoi(if_name),dev_fd);
|
||||
|
||||
sangoma_tdm_set_codec(dev_fd,&tdm_api,WP_NONE);
|
||||
sangoma_get_full_cfg(dev_fd, &tdm_api);
|
||||
|
||||
handle_span_chan();
|
||||
close(dev_fd);
|
||||
return 0;
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
||||
void sig_end(int sigid)
|
||||
{
|
||||
|
||||
printf("Got Signal %i\n",sigid);
|
||||
|
||||
sangoma_tdm_disable_rm_dtmf_events(dev_fd, &tdm_api);
|
||||
|
||||
if (tx_fd){
|
||||
fclose(tx_fd);
|
||||
}
|
||||
if (rx_fd){
|
||||
fclose(rx_fd);
|
||||
}
|
||||
|
||||
if (dev_fd){
|
||||
close (dev_fd);
|
||||
}
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
Binary file not shown.
|
@ -0,0 +1,448 @@
|
|||
/*****************************************************************************
|
||||
* aft_api.c AFT T1/E1: HDLC API Sample Code
|
||||
*
|
||||
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 2003-2004 Sangoma Technologies Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
* ============================================================================
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <linux/if_wanpipe.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <signal.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/wanpipe_defines.h>
|
||||
#include <linux/wanpipe_cfg.h>
|
||||
#include <linux/wanpipe.h>
|
||||
#include <libsangoma.h>
|
||||
#include "lib_api.h"
|
||||
|
||||
#define MAX_TX_DATA 5000 /* Size of tx data */
|
||||
#define MAX_FRAMES 5000 /* Number of frames to transmit */
|
||||
|
||||
#define MAX_RX_DATA 5000
|
||||
|
||||
unsigned short Rx_lgth;
|
||||
|
||||
unsigned char Rx_data[MAX_RX_DATA];
|
||||
unsigned char Tx_data[MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t)];
|
||||
|
||||
/* Prototypes */
|
||||
int MakeConnection(void);
|
||||
void handle_span_chan( void);
|
||||
void sig_end(int sigid);
|
||||
|
||||
int dev_fd;
|
||||
FILE *tx_fd=NULL,*rx_fd=NULL;
|
||||
wanpipe_tdm_api_t tdm_api;
|
||||
|
||||
|
||||
/***************************************************
|
||||
* HANDLE SOCKET
|
||||
*
|
||||
* o Read a socket
|
||||
* o Cast data received to api_rx_element_t data type
|
||||
* o The received packet contains 16 bytes header
|
||||
*
|
||||
* ------------------------------------------
|
||||
* | 16 bytes | X bytes ...
|
||||
* ------------------------------------------
|
||||
* Header Data
|
||||
*
|
||||
* o Data structures:
|
||||
* ------------------
|
||||
* typedef struct {
|
||||
* union {
|
||||
* struct {
|
||||
* unsigned char _event_type;
|
||||
* unsigned char _rbs_rx_bits;
|
||||
* unsigned int _time_stamp;
|
||||
* }wp_event;
|
||||
* struct {
|
||||
* unsigned char _rbs_rx_bits;
|
||||
* unsigned int _time_stamp;
|
||||
* }wp_rx;
|
||||
* unsigned char reserved[16];
|
||||
* }wp_rx_hdr_u;
|
||||
* #define wp_api_event_type wp_rx_hdr_u.wp_event._event_type
|
||||
* #define wp_api_event_rbs_rx_bits wp_rx_hdr_u.wp_event._rbs_rx_bits
|
||||
* #define wp_api_event_time_stamp wp_rx_hdr_u.wp_event._time_stamp
|
||||
* } wp_tdm_api_rx_hdr_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* wp_tdm_api_rx_hdr_t hdr;
|
||||
* unsigned char data[1];
|
||||
* } wp_tdm_api_rx_element_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* union {
|
||||
* struct {
|
||||
* unsigned char _rbs_rx_bits;
|
||||
* unsigned int _time_stamp;
|
||||
* }wp_tx;
|
||||
* unsigned char reserved[16];
|
||||
* }wp_tx_hdr_u;
|
||||
* #define wp_api_time_stamp wp_tx_hdr_u.wp_tx._time_stamp
|
||||
* } wp_tdm_api_tx_hdr_t;
|
||||
*
|
||||
* typedef struct {
|
||||
* wp_tdm_api_tx_hdr_t hdr;
|
||||
* unsigned char data[1];
|
||||
* } wp_tdm_api_tx_element_t;
|
||||
*
|
||||
* #define WPTDM_A_BIT 0x08
|
||||
* #define WPTDM_B_BIT 0x04
|
||||
* #define WPTDM_C_BIT 0x02
|
||||
* #define WPTDM_D_BIT 0x01
|
||||
*
|
||||
*/
|
||||
|
||||
void handle_span_chan(void)
|
||||
{
|
||||
unsigned int Rx_count,Tx_count,Tx_length;
|
||||
wp_tdm_api_rx_element_t* api_rx_el;
|
||||
wp_tdm_api_tx_element_t * api_tx_el;
|
||||
fd_set ready,write,oob;
|
||||
int err,i;
|
||||
|
||||
#if 0
|
||||
int rlen;
|
||||
int stream_sync=0;
|
||||
#endif
|
||||
|
||||
Rx_count = 0;
|
||||
Tx_count = 0;
|
||||
|
||||
if (tdm_api.wp_tdm_cmd.hdlc) {
|
||||
Tx_length = tx_size;
|
||||
} else {
|
||||
Tx_length = tdm_api.wp_tdm_cmd.usr_mtu_mru;
|
||||
}
|
||||
|
||||
printf("\n\nSocket Handler: Rx=%d Tx=%i TxCnt=%i TxLen=%i TxDelay=%i\n",
|
||||
read_enable,write_enable,tx_cnt,tx_size,tx_delay);
|
||||
|
||||
/* Initialize the Tx Data buffer */
|
||||
memset(&Tx_data[0],0,MAX_TX_DATA + sizeof(wp_tdm_api_rx_hdr_t));
|
||||
|
||||
/* Cast the Tx data packet with the tx element
|
||||
* structure. We must insert a 16 byte
|
||||
* driver header, which driver will remove
|
||||
* before passing packet out the physical port */
|
||||
api_tx_el = (wp_tdm_api_tx_element_t*)&Tx_data[0];
|
||||
|
||||
|
||||
/* Create a Tx packet based on user info, or
|
||||
* by deafult incrementing number starting from 0 */
|
||||
for (i=0;i<Tx_length;i++){
|
||||
if (tx_data == -1){
|
||||
api_tx_el->data[i] = (unsigned char)i;
|
||||
}else{
|
||||
#if 0
|
||||
api_tx_el->data[i] = (unsigned char)tx_data+(i%4);
|
||||
#else
|
||||
api_tx_el->data[i] = (unsigned char)tx_data;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
sangoma_tdm_enable_rxhook_events(dev_fd, &tdm_api);
|
||||
|
||||
/* Main Rx Tx OOB routine */
|
||||
for(;;) {
|
||||
|
||||
/* Initialize all select() descriptors */
|
||||
FD_ZERO(&ready);
|
||||
FD_ZERO(&write);
|
||||
FD_ZERO(&oob);
|
||||
FD_SET(dev_fd,&oob);
|
||||
FD_SET(dev_fd,&ready);
|
||||
|
||||
if (write_enable){
|
||||
FD_SET(dev_fd,&write);
|
||||
}
|
||||
|
||||
/* Select will block, until:
|
||||
* 1: OOB event, link level change
|
||||
* 2: Rx data available
|
||||
* 3: Interface able to Tx */
|
||||
|
||||
if(select(dev_fd + 1,&ready, &write, &oob, NULL)){
|
||||
|
||||
fflush(stdout);
|
||||
if (FD_ISSET(dev_fd,&oob)){
|
||||
|
||||
/* An OOB event is pending, usually indicating
|
||||
* a link level change */
|
||||
|
||||
err=sangoma_tdm_read_event(dev_fd,&tdm_api);
|
||||
|
||||
if(err < 0 ) {
|
||||
printf("Failed to receive OOB %i , %i\n", Rx_count, err);
|
||||
err = ioctl(dev_fd,SIOC_WANPIPE_SOCK_STATE,0);
|
||||
printf("Sock state is %s\n",
|
||||
(err == 0) ? "CONNECTED" :
|
||||
(err == 1) ? "DISCONNECTED" :
|
||||
"CONNECTING");
|
||||
break;
|
||||
}
|
||||
|
||||
printf("GOT OOB EXCEPTION CMD Exiting\n");
|
||||
}
|
||||
|
||||
|
||||
if (FD_ISSET(dev_fd,&ready)){
|
||||
|
||||
/* An Rx packet is pending
|
||||
* 1: Read the rx packet into the Rx_data
|
||||
* buffer. Confirm len > 0
|
||||
*
|
||||
* 2: Cast Rx_data to the api_rx_element.
|
||||
* Thus, removing a 16 byte header
|
||||
* attached by the driver.
|
||||
*
|
||||
* 3. Check error_flag:
|
||||
* CRC,Abort..etc
|
||||
*/
|
||||
|
||||
memset(Rx_data, 0, sizeof(Rx_data));
|
||||
|
||||
err = sangoma_readmsg_tdm(dev_fd,
|
||||
Rx_data,
|
||||
sizeof(wp_tdm_api_rx_hdr_t),
|
||||
&Rx_data[sizeof(wp_tdm_api_rx_hdr_t)],
|
||||
MAX_RX_DATA, 0);
|
||||
|
||||
|
||||
if (!read_enable){
|
||||
goto bitstrm_skip_read;
|
||||
}
|
||||
|
||||
/* err indicates bytes received */
|
||||
if(err <= 0) {
|
||||
printf("\nError receiving data\n");
|
||||
break;
|
||||
}
|
||||
|
||||
api_rx_el = (wp_tdm_api_rx_element_t*)&Rx_data[0];
|
||||
|
||||
/* Check the packet length */
|
||||
Rx_lgth = err;
|
||||
if(Rx_lgth<=0) {
|
||||
printf("\nShort frame received (%d)\n",
|
||||
Rx_lgth);
|
||||
return;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (api_rx_el->data[0] == tx_data && api_rx_el->data[1] == (tx_data+1)){
|
||||
if (!stream_sync){
|
||||
printf("GOT SYNC %x\n",api_rx_el->data[0]);
|
||||
}
|
||||
stream_sync=1;
|
||||
}else{
|
||||
if (stream_sync){
|
||||
printf("OUT OF SYNC: %x\n",api_rx_el->data[0]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
++Rx_count;
|
||||
|
||||
if (verbose){
|
||||
#if 0
|
||||
printf("Received %i Length = %i\n",
|
||||
Rx_count,Rx_lgth);
|
||||
|
||||
printf("Data: ");
|
||||
for(i=0;i<Rx_lgth; i ++) {
|
||||
printf("0x%02X ", api_rx_el->data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
#endif
|
||||
}else{
|
||||
//putchar('R');
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
switch(api_rx_el->hdr.wp_api_event_type){
|
||||
case WP_TDM_EVENT_DTMF:
|
||||
printf("DTMV Event: %c (%s:%s)!\n",
|
||||
api_rx_el->hdr.wp_api_event_dtmf_digit,
|
||||
(api_rx_el->hdr.wp_api_event_dtmf_type&WP_TDM_EVENT_DTMF_ROUT)?"ROUT":"SOUT",
|
||||
(api_rx_el->hdr.wp_api_event_dtmf_type&WP_TDM_EVENT_DTMF_PRESET)?"PRESET":"STOP");
|
||||
break;
|
||||
case WP_TDM_EVENT_RXHOOK:
|
||||
printf("RXHOOK Event: %s!\n",
|
||||
(api_rx_el->hdr.wp_api_event_rxhook_state&WP_TDM_EVENT_RXHOOK_OFF)?"OFF-HOOK":"ON-HOOK");
|
||||
break;
|
||||
case WP_TDM_EVENT_RING:
|
||||
printf("RING Event: %s!\n",
|
||||
(api_rx_el->hdr.wp_api_event_ring_state&WP_TDM_EVENT_RING_PRESENT)?"PRESENT":"STOP");
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (rx_cnt > 0 && Rx_count >= rx_cnt){
|
||||
break;
|
||||
}
|
||||
bitstrm_skip_read:
|
||||
;
|
||||
}
|
||||
|
||||
if (FD_ISSET(dev_fd,&write)){
|
||||
|
||||
|
||||
err = sangoma_writemsg_tdm(dev_fd,
|
||||
Tx_data,16,
|
||||
&Tx_data[16], Tx_length,
|
||||
0);
|
||||
if (err <= 0){
|
||||
if (errno == EBUSY){
|
||||
if (verbose){
|
||||
printf("Sock busy try again!\n");
|
||||
}
|
||||
/* Socket busy try sending again !*/
|
||||
}else{
|
||||
printf("Faild to send %i \n",errno);
|
||||
perror("Send: ");
|
||||
break;
|
||||
}
|
||||
}else{
|
||||
|
||||
++Tx_count;
|
||||
|
||||
if (verbose){
|
||||
//printf("Packet sent: Sent %i : %i\n",
|
||||
// err,Tx_count);
|
||||
}else{
|
||||
//putchar('T');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tx_delay){
|
||||
usleep(tx_delay);
|
||||
}
|
||||
|
||||
if (tx_cnt && tx_size && Tx_count >= tx_cnt && !(files_used & TX_FILE_USED)){
|
||||
|
||||
write_enable=0;
|
||||
if (rx_cnt > 0){
|
||||
/* Dont break let rx finish */
|
||||
}else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sangoma_tdm_disable_rxhook_events(dev_fd, &tdm_api);
|
||||
if (tx_fd){
|
||||
fclose(tx_fd);
|
||||
}
|
||||
if (rx_fd){
|
||||
fclose(rx_fd);
|
||||
}
|
||||
close (dev_fd);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
int rxhook_event (int fd, unsigned char state)
|
||||
{
|
||||
printf("%d: RXHOOK Event: %s!\n",
|
||||
fd, (state & WAN_EVENT_RXHOOK_OFF)?"OFF-HOOK":"ON-HOOK");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***************************************************************
|
||||
* Main:
|
||||
*
|
||||
* o Make a socket connection to the driver.
|
||||
* o Call handle_span_chan() to read the socket
|
||||
*
|
||||
**************************************************************/
|
||||
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int proceed;
|
||||
|
||||
proceed=init_args(argc,argv);
|
||||
if (proceed != WAN_TRUE){
|
||||
usage(argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
signal(SIGINT,&sig_end);
|
||||
memset(&tdm_api,0,sizeof(tdm_api));
|
||||
tdm_api.wp_tdm_event.wp_rxhook_event = &rxhook_event;
|
||||
|
||||
printf("TDM RXHOOK PTR = %p\n",tdm_api.wp_tdm_event.wp_rxhook_event);
|
||||
|
||||
dev_fd =-1;
|
||||
|
||||
dev_fd = sangoma_open_tdmapi_span_chan(atoi(card_name),atoi(if_name));
|
||||
if( dev_fd < 0){
|
||||
printf("Failed to open span chan (%s:%s:%d:%d)\n",
|
||||
card_name, if_name,
|
||||
atoi(card_name),atoi(if_name));
|
||||
exit (1);
|
||||
}
|
||||
printf("HANDLING SPAN %i CHAN %i FD=%i\n",
|
||||
atoi(card_name),atoi(if_name),dev_fd);
|
||||
|
||||
sangoma_tdm_set_codec(dev_fd,&tdm_api,WP_NONE);
|
||||
sangoma_get_full_cfg(dev_fd, &tdm_api);
|
||||
|
||||
handle_span_chan();
|
||||
close(dev_fd);
|
||||
return 0;
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
||||
void sig_end(int sigid)
|
||||
{
|
||||
|
||||
printf("Got Signal %i\n",sigid);
|
||||
|
||||
sangoma_tdm_disable_rxhook_events(dev_fd, &tdm_api);
|
||||
|
||||
if (tx_fd){
|
||||
fclose(tx_fd);
|
||||
}
|
||||
if (rx_fd){
|
||||
fclose(rx_fd);
|
||||
}
|
||||
|
||||
if (dev_fd){
|
||||
close (dev_fd);
|
||||
}
|
||||
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1,368 +0,0 @@
|
|||
/*****************************************************************************
|
||||
* bstrm_hdlc_test_multi.c: Multiple Bstrm Test Receive Module
|
||||
*
|
||||
* Author(s): Nenad Corbic <ncorbic@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 1995-2006 Sangoma Technologies Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
* ============================================================================
|
||||
* Description:
|
||||
*
|
||||
* The chdlc_api.c utility will bind to a socket to a chdlc network
|
||||
* interface, and continously tx and rx packets to an from the sockets.
|
||||
*
|
||||
* This example has been written for a single interface in mind,
|
||||
* where the same process handles tx and rx data.
|
||||
*
|
||||
* A real world example, should use different processes to handle
|
||||
* tx and rx spearately.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <linux/if_wanpipe.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <wait.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <pthread.h>
|
||||
#include <linux/wanpipe.h>
|
||||
#include <linux/wanpipe_tdm_api.h>
|
||||
#include <libsangoma.h>
|
||||
#include <wanpipe_hdlc.h>
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE 1
|
||||
|
||||
/* Enable/Disable tx of random frames */
|
||||
#define RAND_FRAME 1
|
||||
|
||||
#define MAX_NUM_OF_TIMESLOTS 31*16
|
||||
|
||||
#define LGTH_CRC_BYTES 2
|
||||
#define MAX_TX_DATA 1000 //MAX_NUM_OF_TIMESLOTS*10 /* Size of tx data */
|
||||
#define MAX_TX_FRAMES 1000000 /* Number of frames to transmit */
|
||||
|
||||
#define WRITE 1
|
||||
#define MAX_IF_NAME 20
|
||||
typedef struct {
|
||||
|
||||
int sock;
|
||||
int rx_cnt;
|
||||
int tx_cnt;
|
||||
int data;
|
||||
int last_error;
|
||||
int frames;
|
||||
char if_name[MAX_IF_NAME+1];
|
||||
|
||||
} timeslot_t;
|
||||
|
||||
|
||||
timeslot_t tslot_array[MAX_NUM_OF_TIMESLOTS];
|
||||
|
||||
int tx_change_data=0, tx_change_data_cnt=0;
|
||||
int end=0;
|
||||
|
||||
|
||||
void print_packet(unsigned char *buf, int len)
|
||||
{
|
||||
int x;
|
||||
printf("{ | ");
|
||||
for (x=0;x<len;x++){
|
||||
if (x && x%24 == 0){
|
||||
printf("\n ");
|
||||
}
|
||||
if (x && x%8 == 0)
|
||||
printf(" | ");
|
||||
printf("%02x ",buf[x]);
|
||||
}
|
||||
printf("}\n");
|
||||
}
|
||||
|
||||
void sig_end(int sigid)
|
||||
{
|
||||
printf("%d: Got Signal %i\n",getpid(),sigid);
|
||||
end=1;
|
||||
}
|
||||
|
||||
|
||||
static unsigned long next = 1;
|
||||
|
||||
/* RAND_MAX assumed to be 32767 */
|
||||
int myrand(int max_rand) {
|
||||
next = next * 1103515245 + 12345;
|
||||
return((unsigned)(next/65536) % max_rand);
|
||||
}
|
||||
|
||||
void mysrand(unsigned seed) {
|
||||
next = seed;
|
||||
}
|
||||
|
||||
|
||||
/*===================================================
|
||||
* MakeConnection
|
||||
*
|
||||
* o Create a Socket
|
||||
* o Bind a socket to a wanpipe network interface
|
||||
* (Interface name is supplied by the user)
|
||||
*==================================================*/
|
||||
|
||||
int MakeConnection(timeslot_t *slot, char *router_name )
|
||||
{
|
||||
|
||||
int span,chan;
|
||||
sangoma_span_chan_fromif(slot->if_name,&span,&chan);
|
||||
|
||||
if (span > 0 && chan > 0) {
|
||||
wanpipe_tdm_api_t tdm_api;
|
||||
slot->sock = sangoma_open_tdmapi_span_chan(span,chan);
|
||||
if( slot->sock < 0 ) {
|
||||
perror("Open Span Chan: ");
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
sangoma_tdm_set_codec(slot->sock,&tdm_api,WP_NONE);
|
||||
|
||||
|
||||
printf("Socket bound to Span=%i Chan=%i\n\n",span,chan);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
int api_tdm_fe_alarms_callback(int fd, unsigned char alarm)
|
||||
{
|
||||
int fd_found=0;
|
||||
int i;
|
||||
for (i=0;i<MAX_NUM_OF_TIMESLOTS;i++){
|
||||
if (tslot_array[i].sock == fd) {
|
||||
fd_found=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (fd_found) {
|
||||
printf ("FE ALARMS Call back found device %i Alarm=%i \n",
|
||||
fd,alarm);
|
||||
|
||||
} else {
|
||||
printf ("FE ALARMS Call back no device Alarm=%i\n",alarm);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#define ALL_OK 0
|
||||
#define BOARD_UNDERRUN 1
|
||||
#define TX_ISR_UNDERRUN 2
|
||||
#define UNKNOWN_ERROR 4
|
||||
|
||||
void process_con_rx(void)
|
||||
{
|
||||
unsigned int Rx_count;
|
||||
fd_set oob,ready;
|
||||
int err,serr,i,slots=0;
|
||||
unsigned char Rx_data[1600];
|
||||
int error_bit=0, error_crc=0, error_abort=0, error_frm=0;
|
||||
struct timeval tv;
|
||||
int frame=0;
|
||||
int max_fd=0, packets=0;
|
||||
timeslot_t *slot=NULL;
|
||||
wanpipe_tdm_api_t tdm_api;
|
||||
|
||||
memset(&tdm_api,0,sizeof(tdm_api));
|
||||
|
||||
tdm_api.wp_tdm_event.wp_fe_alarm_event = &api_tdm_fe_alarms_callback;
|
||||
|
||||
|
||||
i=0;
|
||||
for (i=0;i<MAX_NUM_OF_TIMESLOTS;i++){
|
||||
|
||||
if (tslot_array[i].sock < 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (tslot_array[i].sock > max_fd){
|
||||
max_fd=tslot_array[i].sock;
|
||||
}
|
||||
}
|
||||
i=0;
|
||||
|
||||
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = 10;
|
||||
|
||||
Rx_count = 0;
|
||||
|
||||
for(;;) {
|
||||
|
||||
FD_ZERO(&ready);
|
||||
FD_ZERO(&oob);
|
||||
max_fd=0;
|
||||
for (i=0;i<MAX_NUM_OF_TIMESLOTS;i++){
|
||||
|
||||
if (tslot_array[i].sock < 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
FD_SET(tslot_array[i].sock,&ready);
|
||||
FD_SET(tslot_array[i].sock,&oob);
|
||||
if (tslot_array[i].sock > max_fd){
|
||||
max_fd=tslot_array[i].sock;
|
||||
}
|
||||
}
|
||||
|
||||
tv.tv_usec = 0;
|
||||
tv.tv_sec = 10;
|
||||
|
||||
if (end){
|
||||
break;
|
||||
}
|
||||
|
||||
/* The select function must be used to implement flow control.
|
||||
* WANPIPE socket will block the user if the socket cannot send
|
||||
* or there is nothing to receive.
|
||||
*
|
||||
* By using the last socket file descriptor +1 select will wait
|
||||
* for all active sockets.
|
||||
*/
|
||||
slots=0;
|
||||
if((serr=select(max_fd + 1, &ready, NULL, &oob, &tv))){
|
||||
|
||||
for (i=0;i<MAX_NUM_OF_TIMESLOTS;i++){
|
||||
|
||||
if (tslot_array[i].sock < 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
slots++;
|
||||
slot=&tslot_array[i];
|
||||
|
||||
if (FD_ISSET(slot->sock,&oob)){
|
||||
sangoma_tdm_read_event(slot->sock,&tdm_api);
|
||||
}
|
||||
|
||||
|
||||
/* Check for rx packets */
|
||||
if (FD_ISSET(slot->sock,&ready)){
|
||||
|
||||
err = sangoma_readmsg_tdm(slot->sock,
|
||||
Rx_data,sizeof(wp_tdm_api_rx_hdr_t),
|
||||
&Rx_data[sizeof(wp_tdm_api_rx_hdr_t)],
|
||||
sizeof(Rx_data), 0);
|
||||
|
||||
/* err indicates bytes received */
|
||||
if(err > 0) {
|
||||
sangoma_writemsg_tdm(tslot_array[i==1?2:1].sock,
|
||||
Rx_data,sizeof(wp_tdm_api_rx_hdr_t),
|
||||
&Rx_data[sizeof(wp_tdm_api_rx_hdr_t)],
|
||||
err, 0);
|
||||
|
||||
} else {
|
||||
printf("\n%s: Error receiving data\n",slot->if_name);
|
||||
}
|
||||
|
||||
} /* If rx */
|
||||
|
||||
} /* for all slots */
|
||||
|
||||
|
||||
} else {
|
||||
printf("\n: Error selecting rx socket rc=0x%x errno=0x%x\n",
|
||||
serr,errno);
|
||||
perror("Select: ");
|
||||
//break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
printf("\nRx Unloading HDLC\n");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************
|
||||
* Main:
|
||||
*
|
||||
* o Make a socket connection to the driver.
|
||||
* o Call process_con() to read/write the socket
|
||||
*
|
||||
**************************************************************/
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int proceed;
|
||||
char router_name[20];
|
||||
int x,i;
|
||||
|
||||
if (argc < 3){
|
||||
printf("Usage: rec_wan_sock <router name> <interface name> <data> ...\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
nice(-11);
|
||||
|
||||
signal(SIGINT,&sig_end);
|
||||
signal(SIGTERM,&sig_end);
|
||||
|
||||
memset(&tslot_array,0,sizeof(tslot_array));
|
||||
for (i=0;i<MAX_NUM_OF_TIMESLOTS;i++){
|
||||
tslot_array[i].sock=-1;
|
||||
}
|
||||
|
||||
strncpy(router_name,argv[1],(sizeof(router_name)-1));
|
||||
|
||||
|
||||
for (x=1;x<argc-1;x++) {
|
||||
|
||||
strncpy(tslot_array[x].if_name, argv[x+1], MAX_IF_NAME);
|
||||
printf("Connecting to IF=%s\n",tslot_array[x].if_name);
|
||||
|
||||
#if 1
|
||||
proceed = MakeConnection(&tslot_array[x],router_name);
|
||||
if( proceed == TRUE ){
|
||||
|
||||
printf("Creating %s with tx data 0x%x : Sock=%i : x=%i\n",
|
||||
tslot_array[x].if_name,
|
||||
tslot_array[x].data,
|
||||
tslot_array[x].sock,
|
||||
x);
|
||||
}else{
|
||||
if (tslot_array[x].sock){
|
||||
close(tslot_array[x].sock);
|
||||
}
|
||||
tslot_array[x].sock=-1;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
process_con_rx();
|
||||
|
||||
for (x=0;x<MAX_NUM_OF_TIMESLOTS;x++){
|
||||
if (tslot_array[x].sock){
|
||||
close(tslot_array[x].sock);
|
||||
tslot_array[x].sock=0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Wait for the clear call children */
|
||||
return 0;
|
||||
};
|
|
@ -1 +1 @@
|
|||
../util/wanec_apilib
|
||||
../util/wanec_apilib/
|
|
@ -1,5 +1,5 @@
|
|||
Package: wanpipe
|
||||
Version: 3.2.7.1-0
|
||||
Version: 3.3.2-0
|
||||
Section: networking
|
||||
Priority: optional
|
||||
Architecture: all
|
||||
|
|
|
@ -0,0 +1,451 @@
|
|||
Only in /common/wanec/buffers: CVS
|
||||
Only in /common/wanec/buffers: DTMF_0_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_1_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_2_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_3_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_4_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_5_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_6_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_7_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_8_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_9_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_A_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_B_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_C_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_D_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_POUND_ulaw.pcm
|
||||
Only in /common/wanec/buffers: DTMF_STAR_ulaw.pcm
|
||||
Only in /common/wanec/buffers: female_voice1_a_law.pcm
|
||||
Only in /common/wanec/buffers: female_voice1_u_law.pcm
|
||||
Only in /common/wanec/buffers: male_voice1_a_law.pcm
|
||||
Only in /common/wanec/buffers: male_voice1_u_law.pcm
|
||||
Only in /common/wanec/buffers: male_voice2_a_law.pcm
|
||||
Only in /common/wanec/buffers: male_voice2_u_law.pcm
|
||||
Only in /common/wanec/buffers: oct_phone_number_a_law.pcm
|
||||
Only in /common/wanec/buffers: oct_phone_number_u_law.pcm
|
||||
Only in /common/wanec/buffers: Rin_a_law.pcm
|
||||
Only in /common/wanec/buffers: Rin_u_law.pcm
|
||||
Only in /common/wanec/buffers: Sin_a_law.pcm
|
||||
Only in /common/wanec/buffers: Sin_u_law.pcm
|
||||
Only in /common/wanec/buffers: voice_long_a_law.pcm
|
||||
Only in /common/wanec/buffers: voice_long_u_law.pcm
|
||||
Only in /common/wanec: CVS
|
||||
Only in /common/wanec: diff
|
||||
Only in /common/wanec/image: CVS
|
||||
Only in /common/wanec/image: OCT6116-128S.ima
|
||||
Only in /common/wanec/image: OCT6116-256S.ima
|
||||
Only in /common/wanec/image: OCT6116-32S.ima
|
||||
Only in /common/wanec/image: OCT6116-64S.ima
|
||||
Only in /common/wanec/image: OCT6116FW-01.05.01
|
||||
Only in /common/wanec/image: OCT6116FW-01.05.17
|
||||
Only in /common/wanec/image: OCT6126FW-01.03.04
|
||||
Only in /common/wanec/image: OCT6126FW-01.05.00
|
||||
Only in /common/wanec/image: OCT6126FW-01.05.01
|
||||
Only in /common/wanec/lib: CVS
|
||||
diff -dur --exclude='*.svn' --exclude='libsangoma*' --exclude='sangoma_mgd*' wanec/Makefile /common/wanec/Makefile
|
||||
--- wanec/Makefile 2008-03-03 16:12:40.000000000 -0500
|
||||
+++ /common/wanec/Makefile 2007-12-04 15:44:37.000000000 -0500
|
||||
@@ -1,57 +1,37 @@
|
||||
-# Makefile for hello world kernel 2.6 module. -*-makefile-*-
|
||||
#
|
||||
-# Copyright (C) 2004 Joachim Nilsson <joachim.nilsson@member.fsf.org>
|
||||
+# Makefile for the Linux network (wan) device drivers.
|
||||
#
|
||||
-# Licensed under the GNU General Public License, v2.0 or later,
|
||||
-# at your option. See the file COPYING for details, or the web
|
||||
-# page http://www.gnu.org/copyleft/gpl.html
|
||||
+# 3 Aug 2000, Christoph Hellwig <hch@infradead.org>
|
||||
+# Rewritten to use lists instead of if-statements.
|
||||
#
|
||||
|
||||
-OBJS =
|
||||
-MODULE_NAME =
|
||||
-EXTRA_CFLAGS =
|
||||
-KDIR =
|
||||
-$(MODULE_NAME)-objs = $(OBJS)
|
||||
-
|
||||
-RM = @rm -rf
|
||||
-JUNK = *~ *.bak DEADJOE
|
||||
-
|
||||
-PWD := $(shell pwd)
|
||||
-SUBDIRS=$(PWD)
|
||||
-
|
||||
-# First pass, kernel Makefile reads module objects
|
||||
-ifneq ($(KERNELRELEASE),)
|
||||
-obj-m := $(MODULE_NAME).o
|
||||
-
|
||||
-
|
||||
-# Second pass, the actual build.
|
||||
-else
|
||||
-KVER ?= $(shell uname -r)
|
||||
-PWD := $(shell pwd)
|
||||
-KBUILD_VERBOSE=
|
||||
+EXTRA_CFLAGS=-Werror $(EXTRA_FLAGS)
|
||||
+EXTRA_CFLAGS+=-DENABLE_TONE_PLAY -DCONFIG_WANPIPE_HWEC -I/usr/include/wanpipe
|
||||
+HOME=/common/wanec
|
||||
|
||||
-all:
|
||||
- $(MAKE) -C $(KDIR) SUBDIRS=$(SUBDIRS) CC=$(CC) KBUILD_VERBOSE=$(KBUILD_VERBOSE) modules
|
||||
-
|
||||
-clean:
|
||||
- $(shell find $(SUBDIRS) -name '*.*o' | xargs rm)
|
||||
- $(shell find $(SUBDIRS) -name '.*.o.cmd' | xargs rm)
|
||||
- $(shell rm -f build.sh)
|
||||
- $(MAKE) -C $(KDIR) SUBDIRS=$(SUBDIRS) clean
|
||||
-
|
||||
-distclean: clean
|
||||
- $(RM) $(JUNK) $(OBJS)
|
||||
+BTDIR=oct6100_api/apilib/bt
|
||||
+LARGMATHDIR=oct6100_api/apilib/largmath
|
||||
+LLMANDIR=oct6100_api/apilib/llman
|
||||
+OCTAPIDIR=oct6100_api/octdeviceapi/oct6100api/oct6100_api
|
||||
+OCTAPIMIDIR=oct6100_api/octdeviceapi/oct6100api/oct6100_apimi
|
||||
|
||||
-help:
|
||||
- $(MAKE) -C $(KDIR) SUBDIRS=$(SUBDIRS) help
|
||||
+EXTRA_CFLAGS += -I. -I$(HOME)/oct6100_api -I$(HOME)/oct6100_api/include -I$(HOME)/oct6100_api/include/oct6100api -I$(HOME)/oct6100_api/include -I$(HOME)/oct6100_api/include/apilib -I$(HOME)/oct6100_api/include/apilib -I$(HOME)/oct6100_api/include/octrpc -I$(HOME)/oct6100_api/include/oct6100api -I$(HOME)/oct6100_api/octdeviceapi/oct6100api -DENABLE_TONE_PLAY
|
||||
|
||||
+wanec-y := wanec_iface.o wanec_cmd.o wanec_utils.o wanec_dev.o
|
||||
+wanec-y += $(BTDIR)/octapi_bt0.o $(LARGMATHDIR)/octapi_largmath.o
|
||||
+wanec-y += $(LLMANDIR)/octapi_llman.o $(OCTAPIMIDIR)/oct6100_mask_interrupts.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_adpcm_chan.o $(OCTAPIDIR)/oct6100_channel.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_chip_open.o $(OCTAPIDIR)/oct6100_chip_stats.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_conf_bridge.o $(OCTAPIDIR)/oct6100_debug.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_events.o $(OCTAPIDIR)/oct6100_interrupts.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_memory.o $(OCTAPIDIR)/oct6100_miscellaneous.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_mixer.o $(OCTAPIDIR)/oct6100_phasing_tsst.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_playout_buf.o $(OCTAPIDIR)/oct6100_remote_debug.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_tlv.o $(OCTAPIDIR)/oct6100_tone_detection.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_tsi_cnct.o $(OCTAPIDIR)/oct6100_tsst.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_user.o
|
||||
|
||||
-# Indents the kernel source the way linux/Documentation/CodingStyle.txt
|
||||
-# wants it to be.
|
||||
-indent:
|
||||
- indent -kr -i8 $($(MODULE_NAME)-objs:.o=.c)
|
||||
+wanec-objs := $(OBJS)
|
||||
|
||||
-install:
|
||||
- $(MAKE) -C $(KDIR) M=$(SUBDIRS) modules_install
|
||||
+obj-m += wanec.o
|
||||
|
||||
-endif
|
||||
diff -dur --exclude='*.svn' --exclude='libsangoma*' --exclude='sangoma_mgd*' wanec/Makefile.Kbuild.Linux /common/wanec/Makefile.Kbuild.Linux
|
||||
--- wanec/Makefile.Kbuild.Linux 2008-03-03 16:12:40.000000000 -0500
|
||||
+++ /common/wanec/Makefile.Kbuild.Linux 2007-12-04 15:44:37.000000000 -0500
|
||||
@@ -1,57 +1,37 @@
|
||||
-# Makefile for hello world kernel 2.6 module. -*-makefile-*-
|
||||
#
|
||||
-# Copyright (C) 2004 Joachim Nilsson <joachim.nilsson@member.fsf.org>
|
||||
+# Makefile for the Linux network (wan) device drivers.
|
||||
#
|
||||
-# Licensed under the GNU General Public License, v2.0 or later,
|
||||
-# at your option. See the file COPYING for details, or the web
|
||||
-# page http://www.gnu.org/copyleft/gpl.html
|
||||
+# 3 Aug 2000, Christoph Hellwig <hch@infradead.org>
|
||||
+# Rewritten to use lists instead of if-statements.
|
||||
#
|
||||
|
||||
-OBJS =
|
||||
-MODULE_NAME =
|
||||
-EXTRA_CFLAGS =
|
||||
-KDIR =
|
||||
-$(MODULE_NAME)-objs = $(OBJS)
|
||||
-
|
||||
-RM = @rm -rf
|
||||
-JUNK = *~ *.bak DEADJOE
|
||||
-
|
||||
-PWD := $(shell pwd)
|
||||
-SUBDIRS=$(PWD)
|
||||
-
|
||||
-# First pass, kernel Makefile reads module objects
|
||||
-ifneq ($(KERNELRELEASE),)
|
||||
-obj-m := $(MODULE_NAME).o
|
||||
-
|
||||
-
|
||||
-# Second pass, the actual build.
|
||||
-else
|
||||
-KVER ?= $(shell uname -r)
|
||||
-PWD := $(shell pwd)
|
||||
-KBUILD_VERBOSE=
|
||||
+EXTRA_CFLAGS=-Werror $(EXTRA_FLAGS)
|
||||
+EXTRA_CFLAGS+=-DENABLE_TONE_PLAY -DCONFIG_WANPIPE_HWEC -I/usr/include/wanpipe
|
||||
+HOME=/common/wanec
|
||||
|
||||
-all:
|
||||
- $(MAKE) -C $(KDIR) SUBDIRS=$(SUBDIRS) CC=$(CC) KBUILD_VERBOSE=$(KBUILD_VERBOSE) modules
|
||||
-
|
||||
-clean:
|
||||
- $(shell find $(SUBDIRS) -name '*.*o' | xargs rm)
|
||||
- $(shell find $(SUBDIRS) -name '.*.o.cmd' | xargs rm)
|
||||
- $(shell rm -f build.sh)
|
||||
- $(MAKE) -C $(KDIR) SUBDIRS=$(SUBDIRS) clean
|
||||
-
|
||||
-distclean: clean
|
||||
- $(RM) $(JUNK) $(OBJS)
|
||||
+BTDIR=oct6100_api/apilib/bt
|
||||
+LARGMATHDIR=oct6100_api/apilib/largmath
|
||||
+LLMANDIR=oct6100_api/apilib/llman
|
||||
+OCTAPIDIR=oct6100_api/octdeviceapi/oct6100api/oct6100_api
|
||||
+OCTAPIMIDIR=oct6100_api/octdeviceapi/oct6100api/oct6100_apimi
|
||||
|
||||
-help:
|
||||
- $(MAKE) -C $(KDIR) SUBDIRS=$(SUBDIRS) help
|
||||
+EXTRA_CFLAGS += -I. -I$(HOME)/oct6100_api -I$(HOME)/oct6100_api/include -I$(HOME)/oct6100_api/include/oct6100api -I$(HOME)/oct6100_api/include -I$(HOME)/oct6100_api/include/apilib -I$(HOME)/oct6100_api/include/apilib -I$(HOME)/oct6100_api/include/octrpc -I$(HOME)/oct6100_api/include/oct6100api -I$(HOME)/oct6100_api/octdeviceapi/oct6100api -DENABLE_TONE_PLAY
|
||||
|
||||
+wanec-y := wanec_iface.o wanec_cmd.o wanec_utils.o wanec_dev.o
|
||||
+wanec-y += $(BTDIR)/octapi_bt0.o $(LARGMATHDIR)/octapi_largmath.o
|
||||
+wanec-y += $(LLMANDIR)/octapi_llman.o $(OCTAPIMIDIR)/oct6100_mask_interrupts.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_adpcm_chan.o $(OCTAPIDIR)/oct6100_channel.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_chip_open.o $(OCTAPIDIR)/oct6100_chip_stats.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_conf_bridge.o $(OCTAPIDIR)/oct6100_debug.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_events.o $(OCTAPIDIR)/oct6100_interrupts.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_memory.o $(OCTAPIDIR)/oct6100_miscellaneous.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_mixer.o $(OCTAPIDIR)/oct6100_phasing_tsst.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_playout_buf.o $(OCTAPIDIR)/oct6100_remote_debug.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_tlv.o $(OCTAPIDIR)/oct6100_tone_detection.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_tsi_cnct.o $(OCTAPIDIR)/oct6100_tsst.o
|
||||
+wanec-y += $(OCTAPIDIR)/oct6100_user.o
|
||||
|
||||
-# Indents the kernel source the way linux/Documentation/CodingStyle.txt
|
||||
-# wants it to be.
|
||||
-indent:
|
||||
- indent -kr -i8 $($(MODULE_NAME)-objs:.o=.c)
|
||||
+wanec-objs := $(OBJS)
|
||||
|
||||
-install:
|
||||
- $(MAKE) -C $(KDIR) M=$(SUBDIRS) modules_install
|
||||
+obj-m += wanec.o
|
||||
|
||||
-endif
|
||||
Only in /common/wanec/mod: CVS
|
||||
Only in /common/wanec/modinfo: CVS
|
||||
Only in /common/wanec/oct6100_api/apilib/bt: CVS
|
||||
Only in /common/wanec/oct6100_api/apilib/bt: octapi_bt0.o
|
||||
Only in /common/wanec/oct6100_api/apilib/bt: .octapi_bt0.o.cmd
|
||||
Only in /common/wanec/oct6100_api/apilib: CVS
|
||||
Only in /common/wanec/oct6100_api/apilib/largmath: CVS
|
||||
Only in /common/wanec/oct6100_api/apilib/largmath: octapi_largmath.o
|
||||
Only in /common/wanec/oct6100_api/apilib/largmath: .octapi_largmath.o.cmd
|
||||
Only in /common/wanec/oct6100_api/apilib/llman: CVS
|
||||
Only in /common/wanec/oct6100_api/apilib/llman: octapi_llman.o
|
||||
Only in /common/wanec/oct6100_api/apilib/llman: .octapi_llman.o.cmd
|
||||
Only in /common/wanec/oct6100_api: CVS
|
||||
Only in /common/wanec/oct6100_api/include/apilib: CVS
|
||||
Only in /common/wanec/oct6100_api/include: CVS
|
||||
Only in /common/wanec/oct6100_api/include/oct6100api: CVS
|
||||
Only in /common/wanec/oct6100_api/include/octrpc: CVS
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi: CVS
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api: CVS
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: CVS
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_adpcm_chan.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_adpcm_chan.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_channel.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_channel.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_chip_open.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_chip_open.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_chip_stats.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_chip_stats.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_conf_bridge.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_conf_bridge.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_debug.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_debug.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_events.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_events.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_interrupts.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_interrupts.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_memory.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_memory.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_miscellaneous.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_miscellaneous.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_mixer.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_mixer.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_phasing_tsst.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_phasing_tsst.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_playout_buf.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_playout_buf.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_remote_debug.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_remote_debug.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_tlv.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_tlv.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_tone_detection.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_tone_detection.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_tsi_cnct.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_tsi_cnct.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_tsst.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_tsst.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: oct6100_user.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api: .oct6100_user.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi: CVS
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi: oct6100_mask_interrupts.o
|
||||
Only in /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi: .oct6100_mask_interrupts.o.cmd
|
||||
Only in /common/wanec/oct6100_api/octdeviceapiw: CVS
|
||||
Only in /common/wanec/oct6100_api/octdeviceapiw/oct6100_apiw_freebsd: CVS
|
||||
Only in /common/wanec/oct6100_api/octdeviceapiw/oct6100_apiw_linux: CVS
|
||||
Only in /common/wanec: oct6100_api.PR39
|
||||
Only in /common/wanec: oct6100_api.PR41
|
||||
Only in /common/wanec: oct6100_api.PR43
|
||||
Only in /common/wanec: oct6100_api.PR47
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib/bt: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib/bt: octapi_bt0.o
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib/bt: .octapi_bt0.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib/largmath: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib/largmath: octapi_largmath.o
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib/largmath: .octapi_largmath.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib/llman: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib/llman: octapi_llman.o
|
||||
Only in /common/wanec/oct6100_api.PR48/apilib/llman: .octapi_llman.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/include/apilib: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/include: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/include/oct6100api: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/include/octrpc: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_adpcm_chan.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_adpcm_chan.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_channel.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_channel.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_chip_open.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_chip_open.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_chip_stats.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_chip_stats.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_conf_bridge.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_conf_bridge.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_debug.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_debug.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_events.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_events.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_interrupts.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_interrupts.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_memory.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_memory.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_miscellaneous.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_miscellaneous.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_mixer.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_mixer.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_phasing_tsst.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_phasing_tsst.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_playout_buf.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_playout_buf.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_remote_debug.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_remote_debug.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_tlv.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_tlv.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_tone_detection.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_tone_detection.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_tsi_cnct.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_tsi_cnct.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_tsst.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_tsst.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: oct6100_user.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_api: .oct6100_user.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_apimi: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_apimi: oct6100_mask_interrupts.o
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapi/oct6100api/oct6100_apimi: .oct6100_mask_interrupts.o.cmd
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapiw: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapiw/oct6100_apiw_freebsd: CVS
|
||||
Only in /common/wanec/oct6100_api.PR48/octdeviceapiw/oct6100_apiw_linux: CVS
|
||||
Only in /common/wanec/tmp: CVS
|
||||
diff -dur --exclude='*.svn' --exclude='libsangoma*' --exclude='sangoma_mgd*' wanec/.tmp_versions/wanec.mod /common/wanec/.tmp_versions/wanec.mod
|
||||
--- wanec/.tmp_versions/wanec.mod 2008-03-03 16:12:55.000000000 -0500
|
||||
+++ /common/wanec/.tmp_versions/wanec.mod 2008-03-05 18:40:45.000000000 -0500
|
||||
@@ -1,2 +1,2 @@
|
||||
-/root/3.3/wanpipe/patches/kdrivers/wanec/wanec.ko
|
||||
-/root/3.3/wanpipe/patches/kdrivers/wanec/wanec_iface.o /root/3.3/wanpipe/patches/kdrivers/wanec/wanec_cmd.o /root/3.3/wanpipe/patches/kdrivers/wanec/wanec_utils.o /root/3.3/wanpipe/patches/kdrivers/wanec/wanec_dev.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/apilib/bt/octapi_bt0.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/apilib/largmath/octapi_largmath.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/apilib/llman/octapi_llman.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_events.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.o /root/3.3/wanpipe/patches/kdrivers/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_user.o
|
||||
+/common/wanec/wanec.ko
|
||||
+/common/wanec/wanec_iface.o /common/wanec/wanec_cmd.o /common/wanec/wanec_utils.o /common/wanec/wanec_dev.o /common/wanec/oct6100_api/apilib/bt/octapi_bt0.o /common/wanec/oct6100_api/apilib/largmath/octapi_largmath.o /common/wanec/oct6100_api/apilib/llman/octapi_llman.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_apimi/oct6100_mask_interrupts.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_adpcm_chan.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_conf_bridge.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_debug.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_events.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_interrupts.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_memory.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_miscellaneous.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_mixer.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_phasing_tsst.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_playout_buf.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_remote_debug.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tlv.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tone_detection.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsi_cnct.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_tsst.o /common/wanec/oct6100_api/octdeviceapi/oct6100api/oct6100_api/oct6100_user.o
|
||||
diff -dur --exclude='*.svn' --exclude='libsangoma*' --exclude='sangoma_mgd*' wanec/wanec_cmd.c /common/wanec/wanec_cmd.c
|
||||
--- wanec/wanec_cmd.c 2008-02-04 16:39:27.000000000 -0500
|
||||
+++ /common/wanec/wanec_cmd.c 2008-03-05 18:11:47.000000000 -0500
|
||||
@@ -1408,7 +1408,7 @@
|
||||
"%s: Error Pll Jitter\n",
|
||||
ec->name);
|
||||
}
|
||||
- if (ec->f_InterruptFlag.fErrorH100OutOfSync == TRUE){
|
||||
+ if (ec->f_InterruptFlag.fErrorH100OutOfSync == TRUE && !ec->ignore_H100){
|
||||
DEBUG_EVENT(
|
||||
"%s: The H100 slave has lost its framing on the bus!\n",
|
||||
ec->name);
|
||||
Only in /common/wanec: wanec_cmd.o
|
||||
Only in /common/wanec: .wanec_cmd.o.cmd
|
||||
Only in /common/wanec: wanec_dev.o
|
||||
Only in /common/wanec: .wanec_dev.o.cmd
|
||||
diff -dur --exclude='*.svn' --exclude='libsangoma*' --exclude='sangoma_mgd*' wanec/wanec_iface.c /common/wanec/wanec_iface.c
|
||||
--- wanec/wanec_iface.c 2008-02-22 11:21:05.000000000 -0500
|
||||
+++ /common/wanec/wanec_iface.c 2008-03-05 18:11:47.000000000 -0500
|
||||
@@ -1674,16 +1674,18 @@
|
||||
ec_dev_new->fe_start_chan = WAN_FE_START_CHANNEL(&card->fe);
|
||||
ec_dev_new->fe_max_chans = WAN_FE_MAX_CHANNELS(&card->fe); //max_line_no; //
|
||||
ec_dev_new->fe_stop_chan = ec_dev_new->fe_start_chan + ec_dev_new->fe_max_chans - 1;
|
||||
-
|
||||
+ /* Feb 14, 2008
|
||||
+ ** Ignore fe_port_mask for BRI cards. fe_port_mask is for full card,
|
||||
+ ** but ec_dev created per module. In this case, we have always
|
||||
+ ** 2 channels (1 and 2). Create fe_channel_map manually */
|
||||
if (fe_port_mask && ec_dev_new->fe_media != WAN_MEDIA_BRI){
|
||||
- ec_dev_new->fe_channel_map = fe_port_mask;
|
||||
- }else{
|
||||
- int fe_chan = 0;
|
||||
- for(fe_chan = ec_dev_new->fe_start_chan; fe_chan <= ec_dev_new->fe_stop_chan; fe_chan++){
|
||||
- ec_dev_new->fe_channel_map |= (1 << fe_chan);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
+ ec_dev_new->fe_channel_map = fe_port_mask;
|
||||
+ }else{
|
||||
+ int fe_chan = 0;
|
||||
+ for(fe_chan = ec_dev_new->fe_start_chan; fe_chan <= ec_dev_new->fe_stop_chan; fe_chan++){
|
||||
+ ec_dev_new->fe_channel_map |= (1 << fe_chan);
|
||||
+ }
|
||||
+ }
|
||||
if (!WAN_FE_TDMV_LAW(&card->fe)){
|
||||
if (WAN_FE_MEDIA(&card->fe) == WAN_MEDIA_T1){
|
||||
WAN_FE_TDMV_LAW(&card->fe) = WAN_TDMV_MULAW;
|
||||
@@ -1948,6 +1950,13 @@
|
||||
wanec_channel_dtmf(ec_dev, event_ctrl->channel, WAN_FALSE, NULL, wanec_verbose);
|
||||
}
|
||||
break;
|
||||
+ case WAN_EVENT_EC_H100_REPORT:
|
||||
+ if (event_ctrl->mode == WAN_EVENT_DISABLE){
|
||||
+ ec->ignore_H100 = 1;
|
||||
+ }else{
|
||||
+ ec->ignore_H100 = 0;
|
||||
+ }
|
||||
+ break;
|
||||
default:
|
||||
err = -EINVAL;
|
||||
break;
|
||||
diff -dur --exclude='*.svn' --exclude='libsangoma*' --exclude='sangoma_mgd*' wanec/wanec_iface.h /common/wanec/wanec_iface.h
|
||||
--- wanec/wanec_iface.h 2008-02-04 16:37:59.000000000 -0500
|
||||
+++ /common/wanec/wanec_iface.h 2008-03-05 18:11:47.000000000 -0500
|
||||
@@ -293,6 +293,8 @@
|
||||
u_int32_t intcount;
|
||||
u_int32_t critical;
|
||||
|
||||
+ int ignore_H100; /* Temporary for BRI card */
|
||||
+
|
||||
wan_spinlock_t lock;
|
||||
u_int32_t events; /* enable events map */
|
||||
int tone_verbose; /* verbose mode for tone events */
|
||||
Only in /common/wanec: wanec_iface.o
|
||||
Only in /common/wanec: .wanec_iface.o.cmd
|
||||
Only in /common/wanec: wanec.ko
|
||||
Only in /common/wanec: .wanec.ko.cmd
|
||||
diff -dur --exclude='*.svn' --exclude='libsangoma*' --exclude='sangoma_mgd*' wanec/wanec.mod.c /common/wanec/wanec.mod.c
|
||||
--- wanec/wanec.mod.c 2008-02-22 15:56:59.000000000 -0500
|
||||
+++ /common/wanec/wanec.mod.c 2008-03-05 18:24:45.000000000 -0500
|
||||
@@ -55,4 +55,4 @@
|
||||
"depends=";
|
||||
|
||||
|
||||
-MODULE_INFO(srcversion, "7BF6911A99A9CA69B41E9F4");
|
||||
+MODULE_INFO(srcversion, "A6BF1CF61774AE275ECC9A5");
|
||||
Only in /common/wanec: wanec.mod.o
|
||||
Only in /common/wanec: .wanec.mod.o.cmd
|
||||
Only in /common/wanec: wanec.o
|
||||
Only in /common/wanec: .wanec.o.cmd
|
||||
Only in /common/wanec: wanec_utils.o
|
||||
Only in /common/wanec: .wanec_utils.o.cmd
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
diff -dur "$1" "$2" --exclude=*.svn --exclude=libsangoma* --exclude=sangoma_mgd* > diff
|
Binary file not shown.
Binary file not shown.
|
@ -39,7 +39,7 @@
|
|||
|
||||
int a104_global_chip_config(sdla_t *card);
|
||||
int a104_global_chip_unconfig(sdla_t *card);
|
||||
int a104_chip_config(sdla_t *card);
|
||||
int a104_chip_config(sdla_t *card, wandev_conf_t*);
|
||||
int a104_chip_unconfig(sdla_t *card);
|
||||
int a104_chan_dev_config(sdla_t *card, void *chan);
|
||||
int a104_chan_dev_unconfig(sdla_t *card, void *chan);
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
int aft_analog_global_chip_config(sdla_t *card);
|
||||
int aft_analog_global_chip_unconfig(sdla_t *card);
|
||||
int aft_analog_chip_config(sdla_t *card);
|
||||
int aft_analog_chip_config(sdla_t *card, wandev_conf_t *);
|
||||
int aft_analog_chip_unconfig(sdla_t *card);
|
||||
int aft_analog_chan_dev_config(sdla_t *card, void *chan);
|
||||
int aft_analog_chan_dev_unconfig(sdla_t *card, void *chan);
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
/*****************************************************************************
|
||||
* aft_bri.h WANPIPE(tm) BRI Hardware Support
|
||||
*
|
||||
* Authors: David Rokhvarg <davidr@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 1984-2007 Sangoma Technologies Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
* ============================================================================
|
||||
* March 15, 2007 David Rokhvarg Initial version.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef _AFT_BRI_H
|
||||
#define _AFT_BRI_H
|
||||
|
||||
#ifdef WAN_KERNEL
|
||||
|
||||
#if 0
|
||||
#define A200_SECURITY_16_ECCHAN 0x00
|
||||
#define A200_SECURITY_32_ECCHAN 0x01
|
||||
#define A200_SECURITY_0_ECCHAN 0x05
|
||||
#define A200_ECCHAN(val) \
|
||||
((val) == A200_SECURITY_16_ECCHAN) ? 16 : \
|
||||
((val) == A200_SECURITY_32_ECCHAN) ? 32 : 0
|
||||
#endif
|
||||
|
||||
int aft_bri_global_chip_config(sdla_t *card);
|
||||
int aft_bri_global_chip_unconfig(sdla_t *card);
|
||||
int aft_bri_chip_config(sdla_t *card, wandev_conf_t*);
|
||||
int aft_bri_chip_unconfig(sdla_t *card);
|
||||
int aft_bri_chan_dev_config(sdla_t *card, void *chan);
|
||||
int aft_bri_chan_dev_unconfig(sdla_t *card, void *chan);
|
||||
int aft_bri_led_ctrl(sdla_t *card, int color, int led_pos, int on);
|
||||
int aft_bri_test_sync(sdla_t *card, int tx_only);
|
||||
int bri_check_ec_security(sdla_t *card);
|
||||
|
||||
int __aft_bri_write_fe (void* card, ...);
|
||||
int aft_bri_write_fe (void* card, ...);
|
||||
unsigned char __aft_bri_read_fe (void* card, ...);
|
||||
unsigned char aft_bri_read_fe (void* card, ...);
|
||||
|
||||
int aft_bri_write_cpld(sdla_t *card, unsigned short off,unsigned short data);
|
||||
unsigned char aft_bri_read_cpld(sdla_t *card, unsigned short cpld_off);
|
||||
|
||||
void aft_bri_fifo_adjust(sdla_t *card,u32 level);
|
||||
|
||||
int aft_bri_dchan_transmit(sdla_t *card, void *chan_ptr, void *src_data_buffer, unsigned int buffer_len);
|
||||
int aft_bri_dchan_receive( sdla_t *card, void *chan_ptr, void *dst_data_buffer, unsigned int buffer_len);
|
||||
|
||||
#endif/* WAN_KERNEL */
|
||||
|
||||
#endif/* _AFT_BRI_H */
|
|
@ -219,7 +219,7 @@ enum {
|
|||
#define WAN_PACKET_FASTROUTE 6 /* Fastrouted frame */
|
||||
|
||||
|
||||
/* X25 specific */
|
||||
/* AF Socket specific */
|
||||
#define WAN_PACKET_DATA 0
|
||||
#define WAN_PACKET_CMD 1
|
||||
#define WAN_PACKET_ERR 2
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*****************************************************************************
|
||||
* if_wanipe_common.h Sangoma Driver/Socket common area definitions.
|
||||
* if_wanpipe_common.h Sangoma Driver/Socket common area definitions.
|
||||
*
|
||||
* Author: Nenad Corbic <ncorbic@sangoma.com>
|
||||
*
|
||||
|
@ -29,6 +29,10 @@
|
|||
# include <linux/wanpipe_common.h>
|
||||
# include <linux/wanpipe_kernel.h>
|
||||
# include <linux/if_wanpipe.h>
|
||||
#elif defined(__WINDOWS__)
|
||||
# include <wanpipe_debug.h>
|
||||
# include <wanpipe_common.h>
|
||||
# include <wanpipe_kernel.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -42,13 +46,10 @@ typedef struct {
|
|||
int (*output) (netdevice_t*,netskb_t*,struct sockaddr*, struct rtentry*);
|
||||
#else
|
||||
int (*send) (netskb_t* skb, netdevice_t*);
|
||||
#endif
|
||||
struct net_device_stats* (*get_stats) (netdevice_t*);
|
||||
int (*ioctl) (netdevice_t*, struct ifreq*, int);
|
||||
void (*tx_timeout) (netdevice_t*);
|
||||
#if defined (__LINUX__)
|
||||
int (*change_mtu)(netdevice_t *dev, int new_mtu);
|
||||
#endif
|
||||
int (*ioctl) (netdevice_t*, struct ifreq*, wan_ioctl_cmd_t);
|
||||
void (*tx_timeout) (netdevice_t*);
|
||||
} wanpipe_common_iface_t;
|
||||
|
||||
typedef struct {
|
||||
|
@ -58,20 +59,41 @@ typedef struct {
|
|||
/* netdevice_t *next; */ /* netdevice_t *slave; */
|
||||
void *card;
|
||||
netdevice_t *dev;
|
||||
struct mtx ifmtx;
|
||||
unsigned char state;
|
||||
unsigned char usedby;
|
||||
wan_tasklet_t bh_task;
|
||||
wan_timer_t dev_timer;
|
||||
struct socket *sk; /* Wanpipe Sock bind's here (Not used)*/
|
||||
unsigned int protocol;
|
||||
unsigned short lcn;
|
||||
unsigned short lcn;
|
||||
void *lip;
|
||||
unsigned int lip_prot;
|
||||
int is_spppdev; /* special mode for ADSL PPP_VC/PPP_LLC */
|
||||
# if defined(NETGRAPH)
|
||||
char ng_nodename [NG_NODELEN+1];
|
||||
int ng_running;
|
||||
node_p ng_node;
|
||||
hook_p ng_upper_hook;
|
||||
hook_p ng_lower_hook;
|
||||
hook_p ng_debug_hook;
|
||||
int ng_lowerhooks;
|
||||
int ng_upperhooks;
|
||||
int ng_datahooks;
|
||||
struct ifqueue lo_queue;
|
||||
struct ifqueue hi_queue;
|
||||
short ng_timeout;
|
||||
struct callout ng_timeout_handle;
|
||||
u_long ng_out_deficit; /* output since last input */
|
||||
u_char ng_promisc; /* promiscuous mode enabled */
|
||||
u_char ng_autoSrcAddr; /* always overwrite source address */
|
||||
# endif
|
||||
#elif defined(__LINUX__)
|
||||
/* !!! IMPORTANT !!! <- Do not move this parameter (GENERIC-PPP) */
|
||||
void* *prot_ptr;
|
||||
netdevice_t *next; /*slave;*/
|
||||
void *card;
|
||||
struct net_device_stats if_stats;
|
||||
|
||||
atomic_t receive_block;
|
||||
atomic_t command;
|
||||
|
@ -99,6 +121,26 @@ typedef struct {
|
|||
|
||||
void *lip;
|
||||
unsigned int lip_prot;
|
||||
#elif defined(__WINDOWS__)
|
||||
|
||||
void *prot_ptr;
|
||||
netdevice_t* dev;
|
||||
unsigned char state;
|
||||
unsigned char usedby;
|
||||
|
||||
void *card;
|
||||
|
||||
void* sk;
|
||||
|
||||
void *lip;
|
||||
|
||||
//A104 additions
|
||||
unsigned int protocol;
|
||||
wan_tasklet_t bh_task;
|
||||
|
||||
//ADSL additions
|
||||
wan_tasklet_t wanpipe_task; /* Immediate BH handler task */
|
||||
unsigned int lip_prot;
|
||||
#endif
|
||||
int is_netdev;
|
||||
wanpipe_common_iface_t iface;
|
||||
|
|
|
@ -103,7 +103,7 @@ typedef struct {
|
|||
} sdla_56k_param_t;
|
||||
|
||||
extern int sdla_56k_default_cfg(void* arg1, void* p56k_cfg);
|
||||
extern int sdla_56k_iface_init(void* pfe);
|
||||
extern int sdla_56k_iface_init(void* pfe, void *p_fe_iface);
|
||||
|
||||
#endif /* WAN_KERNEL */
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
*/
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
/****** CONSTANTS DEFINITIONS ***********************************************/
|
||||
|
||||
#define X25_MAX_CHAN 255 /* max number of open X.25 circuits */
|
||||
|
@ -54,16 +55,16 @@
|
|||
*/
|
||||
typedef struct X25Cmd
|
||||
{
|
||||
unsigned char command ; /* command code */
|
||||
unsigned short length ; /* transfer data length */
|
||||
unsigned char result ; /* return code */
|
||||
unsigned char pf ; /* P/F bit */
|
||||
unsigned short lcn ; /* logical channel */
|
||||
unsigned char qdm ; /* Q/D/M bits */
|
||||
unsigned char cause ; /* cause field */
|
||||
unsigned char diagn ; /* diagnostics */
|
||||
unsigned char pktType ; /* packet type */
|
||||
unsigned char resrv[4] ; /* reserved */
|
||||
unsigned char command ; /* command code */
|
||||
unsigned short length ; /* transfer data length */
|
||||
unsigned char result ; /* return code */
|
||||
unsigned char pf ; /* P/F bit */
|
||||
unsigned short lcn ; /* logical channel */
|
||||
unsigned char qdm ; /* Q/D/M bits */
|
||||
unsigned char cause ; /* cause field */
|
||||
unsigned char diagn ; /* diagnostics */
|
||||
unsigned char pktType ; /* packet type */
|
||||
unsigned char resrv[4] ; /* reserved */
|
||||
} TX25Cmd;
|
||||
|
||||
/*
|
||||
|
@ -226,9 +227,9 @@ typedef struct X25Cmd
|
|||
*/
|
||||
typedef struct X25Mbox
|
||||
{
|
||||
unsigned char opflag ; /* 00h: execution flag */
|
||||
TX25Cmd cmd ; /* 01h: command block */
|
||||
unsigned char data[1] ; /* 10h: data buffer */
|
||||
unsigned char opflag ; /* 00h: execution flag */
|
||||
TX25Cmd cmd ; /* 01h: command block */
|
||||
unsigned char data[1] ; /* 10h: data buffer */
|
||||
} TX25Mbox;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -236,11 +237,11 @@ typedef struct X25Mbox
|
|||
*/
|
||||
typedef struct X25TimeStamp
|
||||
{
|
||||
unsigned char month ;
|
||||
unsigned char date ;
|
||||
unsigned char sec ;
|
||||
unsigned char min ;
|
||||
unsigned char hour ;
|
||||
unsigned char month ;
|
||||
unsigned char date ;
|
||||
unsigned char sec ;
|
||||
unsigned char min ;
|
||||
unsigned char hour ;
|
||||
} TX25TimeStamp;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -250,11 +251,11 @@ typedef struct X25TimeStamp
|
|||
*/
|
||||
typedef struct X25Status
|
||||
{
|
||||
TX25TimeStamp tstamp ; /* 08h: timestamp (BCD) */
|
||||
unsigned char iflags ; /* 0Dh: interrupt flags */
|
||||
unsigned char imask ; /* 0Eh: interrupt mask */
|
||||
unsigned char hdlc_status ; /* 10h: misc. HDLC/X25 flags */
|
||||
unsigned char ghdlc_status ; /* channel status bytes */
|
||||
TX25TimeStamp tstamp ; /* 08h: timestamp (BCD) */
|
||||
unsigned char iflags ; /* 0Dh: interrupt flags */
|
||||
unsigned char imask ; /* 0Eh: interrupt mask */
|
||||
unsigned char hdlc_status ; /* 10h: misc. HDLC/X25 flags */
|
||||
unsigned char ghdlc_status ; /* channel status bytes */
|
||||
} TX25Status;
|
||||
|
||||
/*
|
||||
|
@ -292,9 +293,9 @@ typedef struct X25Status
|
|||
*/
|
||||
typedef struct X25GlobalVars
|
||||
{
|
||||
unsigned char resrv ; /* 00h: reserved */
|
||||
unsigned char dtrCtl ; /* 01h: DTR control code */
|
||||
unsigned char resErr ; /* 01h: '1' - reset modem error */
|
||||
unsigned char resrv ; /* 00h: reserved */
|
||||
unsigned char dtrCtl ; /* 01h: DTR control code */
|
||||
unsigned char resErr ; /* 01h: '1' - reset modem error */
|
||||
} TX25GlobalVars;
|
||||
|
||||
/*
|
||||
|
@ -308,7 +309,7 @@ typedef struct X25GlobalVars
|
|||
*/
|
||||
typedef struct X25ModemStatus
|
||||
{
|
||||
unsigned char status ; /* 00h: modem status */
|
||||
unsigned char status ; /* 00h: modem status */
|
||||
} TX25ModemStatus;
|
||||
|
||||
/*
|
||||
|
@ -322,11 +323,11 @@ typedef struct X25ModemStatus
|
|||
*/
|
||||
typedef struct X25LinkStatus
|
||||
{
|
||||
unsigned char txQueued ; /* 00h: queued Tx I-frames*/
|
||||
unsigned char rxQueued ; /* 01h: queued Rx I-frames*/
|
||||
unsigned char station ; /* 02h: DTE/DCE config. */
|
||||
unsigned char reserved ; /* 03h: reserved */
|
||||
unsigned char sfTally ; /* 04h: supervisory frame tally */
|
||||
unsigned char txQueued ; /* 00h: queued Tx I-frames*/
|
||||
unsigned char rxQueued ; /* 01h: queued Rx I-frames*/
|
||||
unsigned char station ; /* 02h: DTE/DCE config. */
|
||||
unsigned char reserved ; /* 03h: reserved */
|
||||
unsigned char sfTally ; /* 04h: supervisory frame tally */
|
||||
} TX25LinkStatus;
|
||||
|
||||
/*
|
||||
|
@ -340,23 +341,23 @@ typedef struct X25LinkStatus
|
|||
*/
|
||||
typedef struct HdlcStats
|
||||
{ /* a number of ... */
|
||||
unsigned short rxIFrames ; /* 00h: ready Rx I-frames */
|
||||
unsigned short rxNoseq ; /* 02h: frms out-of-sequence */
|
||||
unsigned short rxNodata ; /* 04h: I-frms without data */
|
||||
unsigned short rxDiscarded ; /* 06h: discarded frames */
|
||||
unsigned short rxTooLong ; /* 08h: frames too long */
|
||||
unsigned short rxBadAddr ; /* 0Ah: frms with inval.addr*/
|
||||
unsigned short txAcked ; /* 0Ch: acknowledged I-frms */
|
||||
unsigned short txRetransm ; /* 0Eh: re-transmit. I-frms */
|
||||
unsigned short t1Timeout ; /* 10h: T1 timeouts */
|
||||
unsigned short rxSABM ; /* 12h: received SABM frames */
|
||||
unsigned short rxDISC ; /* 14h: received DISC frames */
|
||||
unsigned short rxDM ; /* 16h: received DM frames */
|
||||
unsigned short rxFRMR ; /* 18h: FRMR frames received */
|
||||
unsigned short txSABM ; /* 1Ah: transm. SABM frames*/
|
||||
unsigned short txDISC ; /* 1Ch: transm. DISC frames*/
|
||||
unsigned short txDM ; /* 1Eh: transm. DM frames */
|
||||
unsigned short txFRMR ; /* 20h: transm. FRMR frames*/
|
||||
unsigned short rxIFrames ; /* 00h: ready Rx I-frames */
|
||||
unsigned short rxNoseq ; /* 02h: frms out-of-sequence */
|
||||
unsigned short rxNodata ; /* 04h: I-frms without data */
|
||||
unsigned short rxDiscarded ; /* 06h: discarded frames */
|
||||
unsigned short rxTooLong ; /* 08h: frames too long */
|
||||
unsigned short rxBadAddr ; /* 0Ah: frms with inval.addr*/
|
||||
unsigned short txAcked ; /* 0Ch: acknowledged I-frms */
|
||||
unsigned short txRetransm ; /* 0Eh: re-transmit. I-frms */
|
||||
unsigned short t1Timeout ; /* 10h: T1 timeouts */
|
||||
unsigned short rxSABM ; /* 12h: received SABM frames */
|
||||
unsigned short rxDISC ; /* 14h: received DISC frames */
|
||||
unsigned short rxDM ; /* 16h: received DM frames */
|
||||
unsigned short rxFRMR ; /* 18h: FRMR frames received */
|
||||
unsigned short txSABM ; /* 1Ah: transm. SABM frames*/
|
||||
unsigned short txDISC ; /* 1Ch: transm. DISC frames*/
|
||||
unsigned short txDM ; /* 1Eh: transm. DM frames */
|
||||
unsigned short txFRMR ; /* 20h: transm. FRMR frames*/
|
||||
} THdlcStats;
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
|
@ -364,16 +365,16 @@ typedef struct HdlcStats
|
|||
*/
|
||||
typedef struct HdlcCommErr
|
||||
{ /* a number of ... */
|
||||
unsigned char rxOverrun ; /* 00h: Rx overrun errors */
|
||||
unsigned char rxBadCrc ; /* 01h: Rx CRC errors */
|
||||
unsigned char rxAborted ; /* 02h: Rx aborted frames */
|
||||
unsigned char rxDropped ; /* 03h: frames lost */
|
||||
unsigned char txAborted ; /* 04h: Tx aborted frames */
|
||||
unsigned char txUnderrun ; /* 05h: Tx underrun errors */
|
||||
unsigned char txMissIntr ; /* 06h: missed underrun ints */
|
||||
unsigned char reserved ; /* 07h: reserved */
|
||||
unsigned char droppedDCD ; /* 08h: times DCD dropped */
|
||||
unsigned char droppedCTS ; /* 09h: times CTS dropped */
|
||||
unsigned char rxOverrun ; /* 00h: Rx overrun errors */
|
||||
unsigned char rxBadCrc ; /* 01h: Rx CRC errors */
|
||||
unsigned char rxAborted ; /* 02h: Rx aborted frames */
|
||||
unsigned char rxDropped ; /* 03h: frames lost */
|
||||
unsigned char txAborted ; /* 04h: Tx aborted frames */
|
||||
unsigned char txUnderrun ; /* 05h: Tx underrun errors */
|
||||
unsigned char txMissIntr ; /* 06h: missed underrun ints */
|
||||
unsigned char reserved ; /* 07h: reserved */
|
||||
unsigned char droppedDCD ; /* 08h: times DCD dropped */
|
||||
unsigned char droppedCTS ; /* 09h: times CTS dropped */
|
||||
} THdlcCommErr;
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
|
@ -381,47 +382,47 @@ typedef struct HdlcCommErr
|
|||
*/
|
||||
typedef struct X25Config
|
||||
{
|
||||
unsigned char baudRate ; /* 00h: */
|
||||
unsigned char t1 ; /* 01h: */
|
||||
unsigned char t2 ; /* 02h: */
|
||||
unsigned char n2 ; /* 03h: */
|
||||
unsigned short hdlcMTU ; /* 04h: */
|
||||
unsigned char hdlcWindow ; /* 06h: */
|
||||
unsigned char t4 ; /* 07h: */
|
||||
unsigned char autoModem ; /* 08h: */
|
||||
unsigned char autoHdlc ; /* 09h: */
|
||||
unsigned char hdlcOptions ; /* 0Ah: */
|
||||
unsigned char station ; /* 0Bh: */
|
||||
unsigned char local_station_address ;
|
||||
unsigned char baudRate ; /* 00h: */
|
||||
unsigned char t1 ; /* 01h: */
|
||||
unsigned char t2 ; /* 02h: */
|
||||
unsigned char n2 ; /* 03h: */
|
||||
unsigned short hdlcMTU ; /* 04h: */
|
||||
unsigned char hdlcWindow ; /* 06h: */
|
||||
unsigned char t4 ; /* 07h: */
|
||||
unsigned char autoModem ; /* 08h: */
|
||||
unsigned char autoHdlc ; /* 09h: */
|
||||
unsigned char hdlcOptions ; /* 0Ah: */
|
||||
unsigned char station ; /* 0Bh: */
|
||||
unsigned char local_station_address ;
|
||||
|
||||
#if 0
|
||||
unsigned char pktWindow ; /* 0Ch: */
|
||||
unsigned short defPktSize ; /* 0Dh: */
|
||||
unsigned short pktMTU ; /* 0Fh: */
|
||||
unsigned short loPVC ; /* 11h: */
|
||||
unsigned short hiPVC ; /* 13h: */
|
||||
unsigned short loIncommingSVC ; /* 15h: */
|
||||
unsigned short hiIncommingSVC ; /* 17h: */
|
||||
unsigned short loTwoWaySVC ; /* 19h: */
|
||||
unsigned short hiTwoWaySVC ; /* 1Bh: */
|
||||
unsigned short loOutgoingSVC ; /* 1Dh: */
|
||||
unsigned short hiOutgoingSVC ; /* 1Fh: */
|
||||
unsigned short options ; /* 21h: */
|
||||
unsigned char responseOpt ; /* 23h: */
|
||||
unsigned short facil1 ; /* 24h: */
|
||||
unsigned short facil2 ; /* 26h: */
|
||||
unsigned short ccittFacil ; /* 28h: */
|
||||
unsigned short otherFacil ; /* 2Ah: */
|
||||
unsigned short ccittCompat ; /* 2Ch: */
|
||||
unsigned char t10t20 ; /* 2Eh: */
|
||||
unsigned char t11t21 ; /* 2Fh: */
|
||||
unsigned char t12t22 ; /* 30h: */
|
||||
unsigned char t13t23 ; /* 31h: */
|
||||
unsigned char t16t26 ; /* 32H: */
|
||||
unsigned char t28 ; /* 33h: */
|
||||
unsigned char r10r20 ; /* 34h: */
|
||||
unsigned char r12r22 ; /* 35h: */
|
||||
unsigned char r13r23 ; /* 36h: */
|
||||
unsigned char pktWindow ; /* 0Ch: */
|
||||
unsigned short defPktSize ; /* 0Dh: */
|
||||
unsigned short pktMTU ; /* 0Fh: */
|
||||
unsigned short loPVC ; /* 11h: */
|
||||
unsigned short hiPVC ; /* 13h: */
|
||||
unsigned short loIncommingSVC ; /* 15h: */
|
||||
unsigned short hiIncommingSVC ; /* 17h: */
|
||||
unsigned short loTwoWaySVC ; /* 19h: */
|
||||
unsigned short hiTwoWaySVC ; /* 1Bh: */
|
||||
unsigned short loOutgoingSVC ; /* 1Dh: */
|
||||
unsigned short hiOutgoingSVC ; /* 1Fh: */
|
||||
unsigned short options ; /* 21h: */
|
||||
unsigned char responseOpt ; /* 23h: */
|
||||
unsigned short facil1 ; /* 24h: */
|
||||
unsigned short facil2 ; /* 26h: */
|
||||
unsigned short ccittFacil ; /* 28h: */
|
||||
unsigned short otherFacil ; /* 2Ah: */
|
||||
unsigned short ccittCompat ; /* 2Ch: */
|
||||
unsigned char t10t20 ; /* 2Eh: */
|
||||
unsigned char t11t21 ; /* 2Fh: */
|
||||
unsigned char t12t22 ; /* 30h: */
|
||||
unsigned char t13t23 ; /* 31h: */
|
||||
unsigned char t16t26 ; /* 32H: */
|
||||
unsigned char t28 ; /* 33h: */
|
||||
unsigned char r10r20 ; /* 34h: */
|
||||
unsigned char r12r22 ; /* 35h: */
|
||||
unsigned char r13r23 ; /* 36h: */
|
||||
#endif
|
||||
} TX25Config;
|
||||
|
||||
|
@ -431,21 +432,21 @@ typedef struct X25Config
|
|||
*/
|
||||
typedef struct X25ChanAlloc /*----- Channel allocation -*/
|
||||
{
|
||||
unsigned short loPVC ; /* 00h: lowest PVC number */
|
||||
unsigned short hiPVC ; /* 02h: highest PVC number */
|
||||
unsigned short loIncommingSVC ; /* 04h: lowest incoming SVC */
|
||||
unsigned short hiIncommingSVC ; /* 06h: highest incoming SVC */
|
||||
unsigned short loTwoWaySVC ; /* 08h: lowest two-way SVC */
|
||||
unsigned short hiTwoWaySVC ; /* 0Ah: highest two-way SVC */
|
||||
unsigned short loOutgoingSVC ; /* 0Ch: lowest outgoing SVC */
|
||||
unsigned short hiOutgoingSVC ; /* 0Eh: highest outgoing SVC */
|
||||
unsigned short loPVC ; /* 00h: lowest PVC number */
|
||||
unsigned short hiPVC ; /* 02h: highest PVC number */
|
||||
unsigned short loIncommingSVC ; /* 04h: lowest incoming SVC */
|
||||
unsigned short hiIncommingSVC ; /* 06h: highest incoming SVC */
|
||||
unsigned short loTwoWaySVC ; /* 08h: lowest two-way SVC */
|
||||
unsigned short hiTwoWaySVC ; /* 0Ah: highest two-way SVC */
|
||||
unsigned short loOutgoingSVC ; /* 0Ch: lowest outgoing SVC */
|
||||
unsigned short hiOutgoingSVC ; /* 0Eh: highest outgoing SVC */
|
||||
} TX25ChanAlloc;
|
||||
|
||||
typedef struct X25ChanCfg /*------ Channel configuration -----*/
|
||||
{
|
||||
unsigned char type ; /* 00h: channel type */
|
||||
unsigned char txConf ; /* 01h: Tx packet and window sizes */
|
||||
unsigned char rxConf ; /* 01h: Rx packet and window sizes */
|
||||
unsigned char type ; /* 00h: channel type */
|
||||
unsigned char txConf ; /* 01h: Tx packet and window sizes */
|
||||
unsigned char rxConf ; /* 01h: Rx packet and window sizes */
|
||||
} TX25ChanCfg;
|
||||
|
||||
/*
|
||||
|
@ -461,38 +462,38 @@ typedef struct X25ChanCfg /*------ Channel configuration -----*/
|
|||
*/
|
||||
typedef struct X25Stats
|
||||
{ /* number of packets Tx/Rx'ed */
|
||||
unsigned short txRestartRqst ; /* 00h: Restart Request */
|
||||
unsigned short rxRestartRqst ; /* 02h: Restart Request */
|
||||
unsigned short txRestartConf ; /* 04h: Restart Confirmation */
|
||||
unsigned short rxRestartConf ; /* 06h: Restart Confirmation */
|
||||
unsigned short txResetRqst ; /* 08h: Reset Request */
|
||||
unsigned short rxResetRqst ; /* 0Ah: Reset Request */
|
||||
unsigned short txResetConf ; /* 0Ch: Reset Confirmation */
|
||||
unsigned short rxResetConf ; /* 0Eh: Reset Confirmation */
|
||||
unsigned short txCallRequest ; /* 10h: Call Request */
|
||||
unsigned short rxCallRequest ; /* 12h: Call Request */
|
||||
unsigned short txCallAccept ; /* 14h: Call Accept */
|
||||
unsigned short rxCallAccept ; /* 16h: Call Accept */
|
||||
unsigned short txClearRqst ; /* 18h: Clear Request */
|
||||
unsigned short rxClearRqst ; /* 1Ah: Clear Request */
|
||||
unsigned short txClearConf ; /* 1Ch: Clear Confirmation */
|
||||
unsigned short rxClearConf ; /* 1Eh: Clear Confirmation */
|
||||
unsigned short txDiagnostic ; /* 20h: Diagnostic */
|
||||
unsigned short rxDiagnostic ; /* 22h: Diagnostic */
|
||||
unsigned short txRegRqst ; /* 24h: Registration Request */
|
||||
unsigned short rxRegRqst ; /* 26h: Registration Request */
|
||||
unsigned short txRegConf ; /* 28h: Registration Confirm.*/
|
||||
unsigned short rxRegConf ; /* 2Ah: Registration Confirm.*/
|
||||
unsigned short txInterrupt ; /* 2Ch: Interrupt */
|
||||
unsigned short rxInterrupt ; /* 2Eh: Interrupt */
|
||||
unsigned short txIntrConf ; /* 30h: Interrupt Confirm. */
|
||||
unsigned short rxIntrConf ; /* 32h: Interrupt Confirm. */
|
||||
unsigned short txData ; /* 34h: Data */
|
||||
unsigned short rxData ; /* 36h: Data */
|
||||
unsigned short txRR ; /* 38h: RR */
|
||||
unsigned short rxRR ; /* 3Ah: RR */
|
||||
unsigned short txRNR ; /* 3Ch: RNR */
|
||||
unsigned short rxRNR ; /* 3Eh: RNR */
|
||||
unsigned short txRestartRqst ; /* 00h: Restart Request */
|
||||
unsigned short rxRestartRqst ; /* 02h: Restart Request */
|
||||
unsigned short txRestartConf ; /* 04h: Restart Confirmation */
|
||||
unsigned short rxRestartConf ; /* 06h: Restart Confirmation */
|
||||
unsigned short txResetRqst ; /* 08h: Reset Request */
|
||||
unsigned short rxResetRqst ; /* 0Ah: Reset Request */
|
||||
unsigned short txResetConf ; /* 0Ch: Reset Confirmation */
|
||||
unsigned short rxResetConf ; /* 0Eh: Reset Confirmation */
|
||||
unsigned short txCallRequest ; /* 10h: Call Request */
|
||||
unsigned short rxCallRequest ; /* 12h: Call Request */
|
||||
unsigned short txCallAccept ; /* 14h: Call Accept */
|
||||
unsigned short rxCallAccept ; /* 16h: Call Accept */
|
||||
unsigned short txClearRqst ; /* 18h: Clear Request */
|
||||
unsigned short rxClearRqst ; /* 1Ah: Clear Request */
|
||||
unsigned short txClearConf ; /* 1Ch: Clear Confirmation */
|
||||
unsigned short rxClearConf ; /* 1Eh: Clear Confirmation */
|
||||
unsigned short txDiagnostic ; /* 20h: Diagnostic */
|
||||
unsigned short rxDiagnostic ; /* 22h: Diagnostic */
|
||||
unsigned short txRegRqst ; /* 24h: Registration Request */
|
||||
unsigned short rxRegRqst ; /* 26h: Registration Request */
|
||||
unsigned short txRegConf ; /* 28h: Registration Confirm.*/
|
||||
unsigned short rxRegConf ; /* 2Ah: Registration Confirm.*/
|
||||
unsigned short txInterrupt ; /* 2Ch: Interrupt */
|
||||
unsigned short rxInterrupt ; /* 2Eh: Interrupt */
|
||||
unsigned short txIntrConf ; /* 30h: Interrupt Confirm. */
|
||||
unsigned short rxIntrConf ; /* 32h: Interrupt Confirm. */
|
||||
unsigned short txData ; /* 34h: Data */
|
||||
unsigned short rxData ; /* 36h: Data */
|
||||
unsigned short txRR ; /* 38h: RR */
|
||||
unsigned short rxRR ; /* 3Ah: RR */
|
||||
unsigned short txRNR ; /* 3Ch: RNR */
|
||||
unsigned short rxRNR ; /* 3Eh: RNR */
|
||||
} TX25Stats;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -500,12 +501,12 @@ typedef struct X25Stats
|
|||
*/
|
||||
typedef struct X25EventLog
|
||||
{
|
||||
unsigned char type ; /* 00h: transaction type */
|
||||
unsigned short lcn ; /* 01h: logical channel num */
|
||||
unsigned char packet ; /* 03h: async packet type */
|
||||
unsigned char cause ; /* 04h: X.25 cause field */
|
||||
unsigned char diag ; /* 05h: X.25 diag field */
|
||||
TX25TimeStamp ts ; /* 06h: time stamp */
|
||||
unsigned char type ; /* 00h: transaction type */
|
||||
unsigned short lcn ; /* 01h: logical channel num */
|
||||
unsigned char packet ; /* 03h: async packet type */
|
||||
unsigned char cause ; /* 04h: X.25 cause field */
|
||||
unsigned char diag ; /* 05h: X.25 diag field */
|
||||
TX25TimeStamp ts ; /* 06h: time stamp */
|
||||
} TX25EventLog;
|
||||
|
||||
/*
|
||||
|
@ -538,8 +539,8 @@ typedef struct X25EventLog
|
|||
*/
|
||||
typedef struct X25TraceCfg
|
||||
{
|
||||
unsigned char flags ; /* 00h: trace configuration flags */
|
||||
unsigned char timeout ; /* 01h: timeout for trace delay mode*/
|
||||
unsigned char flags ; /* 00h: trace configuration flags */
|
||||
unsigned char timeout ; /* 01h: timeout for trace delay mode*/
|
||||
} TX25TraceCfg;
|
||||
|
||||
/*
|
||||
|
@ -559,12 +560,12 @@ typedef struct X25TraceCfg
|
|||
*/
|
||||
typedef struct X25Trace /*----- Trace data structure -------*/
|
||||
{
|
||||
unsigned short length ; /* 00h: trace data length */
|
||||
unsigned char type ; /* 02h: trace type */
|
||||
unsigned char lost_cnt ; /* 03h: N of traces lost */
|
||||
TX25TimeStamp tstamp ; /* 04h: mon/date/sec/min/hour */
|
||||
unsigned short millisec ; /* 09h: ms time stamp */
|
||||
unsigned char data[0] ; /* 0Bh: traced frame */
|
||||
unsigned short length ; /* 00h: trace data length */
|
||||
unsigned char type ; /* 02h: trace type */
|
||||
unsigned char lost_cnt ; /* 03h: N of traces lost */
|
||||
TX25TimeStamp tstamp ; /* 04h: mon/date/sec/min/hour */
|
||||
unsigned short millisec ; /* 09h: ms time stamp */
|
||||
unsigned char data[0] ; /* 0Bh: traced frame */
|
||||
} TX25Trace;
|
||||
|
||||
/*
|
||||
|
@ -589,17 +590,17 @@ typedef struct X25Trace /*----- Trace data structure -------*/
|
|||
|
||||
typedef struct HDLCFrame /*----- DHLC Frame Format ----------*/
|
||||
{
|
||||
unsigned char addr ; /* address field */
|
||||
unsigned char cntl ; /* control field */
|
||||
unsigned char data[0] ;
|
||||
unsigned char addr ; /* address field */
|
||||
unsigned char cntl ; /* control field */
|
||||
unsigned char data[0] ;
|
||||
} THDLCFrame;
|
||||
|
||||
typedef struct X25Pkt /*----- X.25 Paket Format ----------*/
|
||||
{
|
||||
unsigned char lcn_hi ; /* 4 MSB of Logical Channel Number */
|
||||
unsigned char lcn_lo ; /* 8 LSB of Logical Channel Number */
|
||||
unsigned char type ;
|
||||
unsigned char data[0] ;
|
||||
unsigned char lcn_hi ; /* 4 MSB of Logical Channel Number */
|
||||
unsigned char lcn_lo ; /* 8 LSB of Logical Channel Number */
|
||||
unsigned char type ;
|
||||
unsigned char data[0] ;
|
||||
} TX25Pkt;
|
||||
|
||||
/*
|
||||
|
@ -633,27 +634,27 @@ typedef struct X25Pkt /*----- X.25 Paket Format ----------*/
|
|||
|
||||
|
||||
typedef struct {
|
||||
TX25Cmd cmd ;
|
||||
char data[X25_MAX_DATA] ;
|
||||
TX25Cmd cmd ;
|
||||
char data[X25_MAX_DATA] ;
|
||||
} mbox_cmd_t;
|
||||
|
||||
|
||||
#if 0
|
||||
typedef struct {
|
||||
unsigned char qdm ; /* Q/D/M bits */
|
||||
unsigned char cause ; /* cause field */
|
||||
unsigned char diagn ; /* diagnostics */
|
||||
unsigned char pktType ;
|
||||
unsigned short length ;
|
||||
unsigned char result ;
|
||||
unsigned short lcn ;
|
||||
char reserved[7] ;
|
||||
unsigned char qdm ; /* Q/D/M bits */
|
||||
unsigned char cause ; /* cause field */
|
||||
unsigned char diagn ; /* diagnostics */
|
||||
unsigned char pktType ;
|
||||
unsigned short length ;
|
||||
unsigned char result ;
|
||||
unsigned short lcn ;
|
||||
char reserved[7] ;
|
||||
}x25api_hdr_t;
|
||||
|
||||
|
||||
typedef struct {
|
||||
x25api_hdr_t hdr ;
|
||||
char data[X25_MAX_DATA] ;
|
||||
x25api_hdr_t hdr ;
|
||||
char data[X25_MAX_DATA] ;
|
||||
}x25api_t;
|
||||
#endif
|
||||
|
||||
|
@ -673,75 +674,72 @@ typedef struct {
|
|||
|
||||
#if 0
|
||||
typedef struct {
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* command code */
|
||||
unsigned short length ; /* transfer data length */
|
||||
unsigned char result ; /* return code */
|
||||
unsigned char pf ; /* P/F bit */
|
||||
unsigned short lcn ; /* logical channel */
|
||||
unsigned char qdm ; /* Q/D/M bits */
|
||||
unsigned char cause ; /* cause field */
|
||||
unsigned char diagn ; /* diagnostics */
|
||||
unsigned char pktType ; /* packet type */
|
||||
unsigned char resrv[4] ; /* reserved */
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* command code */
|
||||
unsigned short length ; /* transfer data length */
|
||||
unsigned char result ; /* return code */
|
||||
unsigned char pf ; /* P/F bit */
|
||||
unsigned short lcn ; /* logical channel */
|
||||
unsigned char qdm ; /* Q/D/M bits */
|
||||
unsigned char cause ; /* cause field */
|
||||
unsigned char diagn ; /* diagnostics */
|
||||
unsigned char pktType ; /* packet type */
|
||||
unsigned char resrv[4] ; /* reserved */
|
||||
} cblock_t;
|
||||
|
||||
typedef struct {
|
||||
ip_pkt_t ip_pkt ;
|
||||
udp_pkt_t udp_pkt ;
|
||||
wp_mgmt_t wp_mgmt ;
|
||||
cblock_t cblock ;
|
||||
unsigned char data[4080] ;
|
||||
ip_pkt_t ip_pkt ;
|
||||
udp_pkt_t udp_pkt ;
|
||||
wp_mgmt_t wp_mgmt ;
|
||||
cblock_t cblock ;
|
||||
unsigned char data[4080] ;
|
||||
} x25_udp_pkt_t;
|
||||
#endif
|
||||
|
||||
typedef struct read_hdlc_stat {
|
||||
unsigned short inf_frames_rx_ok ;
|
||||
unsigned short inf_frames_rx_out_of_seq ;
|
||||
unsigned short inf_frames_rx_no_data ;
|
||||
unsigned short inf_frames_rx_dropped ;
|
||||
unsigned short inf_frames_rx_data_too_long ;
|
||||
unsigned short inf_frames_rx_invalid_addr ;
|
||||
unsigned short inf_frames_tx_ok ;
|
||||
unsigned short inf_frames_tx_retransmit ;
|
||||
unsigned short T1_timeouts ;
|
||||
unsigned short SABM_frames_rx ;
|
||||
unsigned short DISC_frames_rx ;
|
||||
unsigned short DM_frames_rx ;
|
||||
unsigned short FRMR_frames_rx ;
|
||||
unsigned short SABM_frames_tx ;
|
||||
unsigned short DISC_frames_tx ;
|
||||
unsigned short DM_frames_tx ;
|
||||
unsigned short FRMR_frames_tx ;
|
||||
unsigned short inf_frames_rx_ok ;
|
||||
unsigned short inf_frames_rx_out_of_seq ;
|
||||
unsigned short inf_frames_rx_no_data ;
|
||||
unsigned short inf_frames_rx_dropped ;
|
||||
unsigned short inf_frames_rx_data_too_long ;
|
||||
unsigned short inf_frames_rx_invalid_addr ;
|
||||
unsigned short inf_frames_tx_ok ;
|
||||
unsigned short inf_frames_tx_retransmit ;
|
||||
unsigned short T1_timeouts ;
|
||||
unsigned short SABM_frames_rx ;
|
||||
unsigned short DISC_frames_rx ;
|
||||
unsigned short DM_frames_rx ;
|
||||
unsigned short FRMR_frames_rx ;
|
||||
unsigned short SABM_frames_tx ;
|
||||
unsigned short DISC_frames_tx ;
|
||||
unsigned short DM_frames_tx ;
|
||||
unsigned short FRMR_frames_tx ;
|
||||
} read_hdlc_stat_t;
|
||||
|
||||
typedef struct read_comms_err_stats{
|
||||
unsigned char overrun_err_rx ;
|
||||
unsigned char CRC_err ;
|
||||
unsigned char abort_frames_rx ;
|
||||
unsigned char frames_dropped_buf_full ;
|
||||
unsigned char abort_frames_tx ;
|
||||
unsigned char transmit_underruns ;
|
||||
unsigned char missed_tx_underruns_intr ;
|
||||
unsigned char reserved ;
|
||||
unsigned char DCD_drop ;
|
||||
unsigned char CTS_drop ;
|
||||
unsigned char overrun_err_rx ;
|
||||
unsigned char CRC_err ;
|
||||
unsigned char abort_frames_rx ;
|
||||
unsigned char frames_dropped_buf_full ;
|
||||
unsigned char abort_frames_tx ;
|
||||
unsigned char transmit_underruns ;
|
||||
unsigned char missed_tx_underruns_intr ;
|
||||
unsigned char reserved ;
|
||||
unsigned char DCD_drop ;
|
||||
unsigned char CTS_drop ;
|
||||
} read_comms_err_stats_t;
|
||||
|
||||
typedef struct trace_data {
|
||||
unsigned short length ;
|
||||
unsigned char type ;
|
||||
unsigned char trace_dropped ;
|
||||
unsigned char reserved[5] ;
|
||||
unsigned short timestamp ;
|
||||
unsigned char data ;
|
||||
unsigned short length ;
|
||||
unsigned char type ;
|
||||
unsigned char trace_dropped ;
|
||||
unsigned char reserved[5] ;
|
||||
unsigned short timestamp ;
|
||||
unsigned char data ;
|
||||
} trace_data_t;
|
||||
|
||||
enum {UDP_XPIPE_TYPE};
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#define XPIPE_ENABLE_TRACING 0x14
|
||||
#define XPIPE_DISABLE_TRACING 0x14
|
||||
#define XPIPE_GET_TRACE_INFO 0x16
|
||||
|
@ -770,5 +768,6 @@ enum {UDP_XPIPE_TYPE};
|
|||
#define TRACE_ALL_HDLC_FRMS 0x40
|
||||
#define TRACE_DATA_FRMS 0x08
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif /* _SDLA_X25_H */
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Copyright (c) 2002
|
||||
* Alex Feldman <al.feldman@sangoma.com>. All rights reserved.
|
||||
*
|
||||
* $Id: sdla_adsl.h,v 1.8 2006/07/25 19:44:50 sangoma Exp $
|
||||
* $Id: sdla_adsl.h,v 1.9 2008/01/09 17:45:29 sangoma Exp $
|
||||
*/
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -24,6 +24,8 @@
|
|||
|
||||
#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
# include <sdla_adsl_iface.h>
|
||||
#elif defined(__WINDOWS__)
|
||||
# include <sdla_adsl_iface.h>
|
||||
#elif defined(__LINUX__) || defined(__KERNEL__)
|
||||
# include <linux/sdla_adsl_iface.h>
|
||||
#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
|
@ -65,10 +67,12 @@ typedef struct adsl_cfg {
|
|||
unsigned char adsl_selected_standard;
|
||||
} adsl_cfg_t;
|
||||
|
||||
#if !defined(__WINDOWS__)
|
||||
#undef wan_udphdr_data
|
||||
#define wan_udphdr_data wan_udphdr_adsl_data
|
||||
#undef wan_udp_data
|
||||
#define wan_udp_data wan_udp_hdr.wan_udphdr_adsl_data
|
||||
#endif
|
||||
|
||||
#ifdef WAN_KERNEL
|
||||
|
||||
|
@ -88,6 +92,13 @@ typedef struct adsl_private_area
|
|||
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
struct ifmedia media; /* media information */
|
||||
#endif
|
||||
#if defined(__WINDOWS__)
|
||||
void *sdla_net_dev;
|
||||
void *card;
|
||||
struct net_device_stats if_stats;
|
||||
wan_tasklet_t adsl_if_send_task; /* Immediate BH handler task */
|
||||
wan_trace_t trace_info;
|
||||
#endif
|
||||
} adsl_private_area_t;
|
||||
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
#define ADSL_ACTUAL_CONFIGURATION 0x15
|
||||
#define ADSL_ACTUAL_INTERLEAVE_STATUS 0x16
|
||||
#define ADSL_ATM_CELL_COUNTER 0x17
|
||||
#define ADSL_EEPROM_WRITE 0x18
|
||||
#define ADSL_EEPROM_READ 0x19
|
||||
|
||||
|
||||
typedef struct adsl_failures
|
||||
|
|
|
@ -25,10 +25,19 @@
|
|||
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
|
||||
# include <aft_a104.h>
|
||||
# include <aft_analog.h>
|
||||
#elif defined(__WINDOWS__)
|
||||
# include <wanpipe_tdm_api.h>
|
||||
# include <aft_a104.h>
|
||||
# include <aft_analog.h>
|
||||
# include <aft_bri.h>
|
||||
# define COMPILE_COMMON_PRIVATE_AREA
|
||||
# include <sdladrv_private.h>
|
||||
# define AFT_MAX_CHIP_SECURITY_CNT 100
|
||||
#else
|
||||
# include <linux/wanpipe_tdm_api.h>
|
||||
# include <linux/aft_a104.h>
|
||||
# include <linux/aft_analog.h>
|
||||
# include <linux/aft_bri.h>
|
||||
#endif
|
||||
|
||||
#define AFT_PORT0_OFFSET 0x00000
|
||||
|
@ -79,6 +88,7 @@
|
|||
# define AFT_CHIPCFG_TE1_CFG_BIT 0
|
||||
# define AFT_CHIPCFG_56K_CFG_BIT 0
|
||||
# define AFT_CHIPCFG_ANALOG_CLOCK_SELECT_BIT 0
|
||||
# define AFT_CHIPCFG_A500_NET_SYNC_CLOCK_SELECT_BIT 0
|
||||
# define AFT_CHIPCFG_SFR_EX_BIT 1
|
||||
# define AFT_CHIPCFG_SFR_IN_BIT 2
|
||||
# define AFT_CHIPCFG_FE_INTR_CFG_BIT 3
|
||||
|
@ -101,12 +111,26 @@
|
|||
# define AFT_CHIPCFG_ANALOG_INTR_MASK 0x0F /* Analog */
|
||||
# define AFT_CHIPCFG_ANALOG_INTR_SHIFT 9
|
||||
|
||||
# define AFT_CHIPCFG_A500_INTR_MASK 0x0F /* A500 BRI - interrupt pending from upto 4 remoras.
|
||||
bit 9 - remora 1
|
||||
bit 10- remora 2
|
||||
bit 11- remora 3
|
||||
bit 12- remora 4
|
||||
*/
|
||||
# define AFT_CHIPCFG_A500_INTR_SHIFT 9
|
||||
# define A500_LINE_SYNC_MASTER_BIT 31
|
||||
|
||||
|
||||
# define AFT_CHIPCFG_A108_EC_CLOCK_SRC_MASK 0x07 /* A108 */
|
||||
# define AFT_CHIPCFG_A108_EC_CLOCK_SRC_SHIFT 9
|
||||
|
||||
# define AFT_CHIPCFG_A104D_EC_SECURITY_BIT 12
|
||||
# define AFT_CHIPCFG_A108_EC_INTR_ENABLE_BIT 12 /* A108 */
|
||||
|
||||
|
||||
# define AFT_CHIPCFG_A500_EC_INTR_ENABLE_BIT 14 /* A500 - BRI not used for now */
|
||||
|
||||
|
||||
# define AFT_CHIPCFG_EC_INTR_STAT_BIT 13
|
||||
|
||||
|
||||
|
@ -122,6 +146,7 @@
|
|||
|
||||
# define AFT_CHIPCFG_A200_EC_SECURITY_BIT 15 /* Analog */
|
||||
# define AFT_CHIPCFG_A108_EC_SECURITY_BIT 15 /* A108 */
|
||||
# define AFT_CHIPCFG_A500_EC_SECURITY_BIT 15 /* A500/BRI */
|
||||
|
||||
# define AFT_CHIPCFG_P3_TDMV_INTR_BIT 16
|
||||
# define AFT_CHIPCFG_A108_A104_TDM_FIFO_SYNC_BIT 16 /* A108 Global Fifo Sync Bit */
|
||||
|
@ -225,12 +250,16 @@ aft_chipcfg_get_tdmv_intr_stats(u32 reg)
|
|||
# define AFT_CHIPCFG_A108_TDMV_INTR_MASK 0xFF
|
||||
# define AFT_CHIPCFG_A108_TDMV_INTR_SHIFT 8
|
||||
|
||||
|
||||
# define AFT_CHIPCFG_A108_FIFO_INTR_MASK 0xFF
|
||||
# define AFT_CHIPCFG_A108_FIFO_INTR_SHIFT 16
|
||||
|
||||
# define AFT_CHIPCFG_A108_DMA_INTR_MASK 0xFF
|
||||
# define AFT_CHIPCFG_A108_DMA_INTR_SHIFT 24
|
||||
|
||||
|
||||
|
||||
|
||||
/* A108 Interrupt Status Functions */
|
||||
|
||||
static __inline u32
|
||||
|
@ -265,6 +294,46 @@ aft_chipcfg_a108_get_tdmv_intr_stats(u32 reg)
|
|||
return reg;
|
||||
}
|
||||
|
||||
|
||||
/* AFT Serial specific bits */
|
||||
|
||||
# define AFT_CHIPCFG_SERIAL_WDT_INTR_MASK 0xF
|
||||
# define AFT_CHIPCFG_SERIAL_WDT_INTR_SHIFT 0
|
||||
|
||||
# define AFT_CHIPCFG_SERIAL_STATUS_INTR_MASK 0xFFF
|
||||
# define AFT_CHIPCFG_SERIAL_STATUS_INTR_SHIFT 4
|
||||
|
||||
# define AFT_CHIPCFG_SERIAL_CTS_STATUS_INTR_BIT 0
|
||||
# define AFT_CHIPCFG_SERIAL_DCD_STATUS_INTR_BIT 1
|
||||
# define AFT_CHIPCFG_SERIAL_RTS_STATUS_INTR_BIT 2
|
||||
|
||||
/* Serial specific functions */
|
||||
|
||||
static __inline u32
|
||||
aft_chipcfg_serial_get_status_intr_stats(u32 reg, int port)
|
||||
{
|
||||
reg=reg>>AFT_CHIPCFG_SERIAL_STATUS_INTR_SHIFT;
|
||||
reg&=AFT_CHIPCFG_SERIAL_STATUS_INTR_MASK;
|
||||
|
||||
if (port) {
|
||||
port--;
|
||||
}
|
||||
reg=(reg>>(3*port))&0x07;
|
||||
|
||||
return reg;
|
||||
}
|
||||
|
||||
|
||||
static __inline u32
|
||||
aft_chipcfg_serial_get_wdt_intr_stats(u32 reg)
|
||||
{
|
||||
reg=reg>>AFT_CHIPCFG_SERIAL_WDT_INTR_SHIFT;
|
||||
reg&=AFT_CHIPCFG_SERIAL_WDT_INTR_MASK;
|
||||
return reg;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 56k IRQ status bits */
|
||||
# define AFT_CHIPCFG_A56K_WDT_INTR_BIT 0
|
||||
# define AFT_CHIPCFG_A56K_DMA_INTR_BIT 24
|
||||
|
@ -382,10 +451,20 @@ aft_fifo_mark_gset(u32 *reg, u8 mark)
|
|||
}
|
||||
|
||||
|
||||
|
||||
/*======================================================
|
||||
* PER PORT
|
||||
*
|
||||
* AFT INTERRUPT Configuration Registers
|
||||
* AFT AFT_CHIP_STAT_REG
|
||||
*
|
||||
*=====================================================*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*======================================================
|
||||
*
|
||||
* AFT_LINE_CFG_REG
|
||||
*
|
||||
*=====================================================*/
|
||||
|
||||
|
@ -403,6 +482,7 @@ aft_fifo_mark_gset(u32 *reg, u8 mark)
|
|||
|
||||
#define AFT_RX_FIFO_INTR_PENDING_REG 0x118
|
||||
|
||||
#define AFT_SERIAL_LINE_CFG_REG 0x210
|
||||
|
||||
# define AFT_LCFG_FE_IFACE_RESET_BIT 0
|
||||
# define AFT_LCFG_TX_FE_SYNC_STAT_BIT 1
|
||||
|
@ -438,8 +518,6 @@ aft_fifo_mark_gset(u32 *reg, u8 mark)
|
|||
# define AFT_LCFG_A108_FE_TE1_MODE_BIT 30 /* A108 */
|
||||
|
||||
|
||||
|
||||
|
||||
static __inline void
|
||||
aft_lcfg_fe_clk_source(u32 *reg, u32 src)
|
||||
{
|
||||
|
@ -541,6 +619,16 @@ aft_dmactrl_set_max_logic_ch(u32 *reg, int max_logic_ch)
|
|||
*reg|=(max_logic_ch<<AFT_DMACTRL_MAX_LOGIC_CH_SHIFT);
|
||||
}
|
||||
|
||||
static __inline u32
|
||||
aft_dmactrl_get_max_logic_ch(u32 reg)
|
||||
{
|
||||
u32 max_logic_ch;
|
||||
reg&=(AFT_DMACTRL_MAX_LOGIC_CH_MASK<<AFT_DMACTRL_MAX_LOGIC_CH_SHIFT);
|
||||
max_logic_ch = reg >> AFT_DMACTRL_MAX_LOGIC_CH_SHIFT;
|
||||
return max_logic_ch;
|
||||
}
|
||||
|
||||
|
||||
/*======================================================
|
||||
* PER PORT
|
||||
*
|
||||
|
@ -717,6 +805,53 @@ aft_dmachain_enable_tdmv_and_mtu_size(u32 *reg, int size)
|
|||
}
|
||||
|
||||
|
||||
|
||||
/*======================================================
|
||||
* PER PORT
|
||||
*
|
||||
* AFT DMA Descr RAM Registers
|
||||
* AFT_SERIAL_LINE_CFG_REG
|
||||
*=====================================================*/
|
||||
|
||||
#define AFT_SERIAL_LCFG_RTS_BIT 0
|
||||
#define AFT_SERIAL_LCFG_DTR_BIT 1
|
||||
#define AFT_SERIAL_LCFG_CTS_BIT 2
|
||||
#define AFT_SERIAL_LCFG_DCD_BIT 3
|
||||
#define AFT_SERIAL_LCFG_POLARITY_BIT 4
|
||||
#define AFT_SERIAL_LCFG_SWMODE_BIT 5
|
||||
|
||||
#define AFT_SERIAL_LCFG_BAUD_SHIFT 8
|
||||
#define AFT_SERIAL_LCFG_BAUD_MASK 0xFFFF
|
||||
|
||||
#define AFT_SERIAL_LCFG_CLK_SRC_BIT 24
|
||||
#define AFT_SERIAL_LCFG_CTS_INTR_EN_BIT 25
|
||||
#define AFT_SERIAL_LCFG_DCD_INTR_EN_BIT 26
|
||||
#define AFT_SERIAL_LCFG_IDLE_DET_BIT 27
|
||||
|
||||
#define AFT_SERIAL_LCFG_LCODING_MASK 0x07
|
||||
#define AFT_SERIAL_LCFG_LCODING_SHIFT 28
|
||||
|
||||
#define AFT_SERIAL_LCFG_IFACE_TYPE_BIT 31
|
||||
|
||||
static __inline void
|
||||
aft_serial_set_baud_rate(u32 *reg, u32 rate)
|
||||
{
|
||||
u32 div= (14745600/(2*rate));
|
||||
u32 remain= (14745600%(2*rate));
|
||||
if (!remain || (remain/2 > rate)) {
|
||||
div=div-1;
|
||||
}
|
||||
*reg&=~(AFT_SERIAL_LCFG_BAUD_MASK<<AFT_SERIAL_LCFG_BAUD_SHIFT);
|
||||
*reg|= ((div)&AFT_SERIAL_LCFG_BAUD_MASK)<<AFT_SERIAL_LCFG_BAUD_SHIFT;
|
||||
}
|
||||
static __inline void
|
||||
aft_serial_set_lcoding(u32 *reg, u32 coding)
|
||||
{
|
||||
*reg&=~(AFT_SERIAL_LCFG_LCODING_MASK<<AFT_SERIAL_LCFG_LCODING_SHIFT);
|
||||
*reg|= (coding&AFT_SERIAL_LCFG_LCODING_MASK)<<AFT_SERIAL_LCFG_LCODING_SHIFT;
|
||||
}
|
||||
|
||||
|
||||
/*======================================================
|
||||
* PER PORT
|
||||
*
|
||||
|
@ -940,6 +1075,9 @@ enum {
|
|||
|
||||
#define CUSTOMER_CPLD_ID_REG 0x0A
|
||||
|
||||
#define BRI_CPLD0_ECHO_RESET_BIT 0
|
||||
#define BRI_CPLD0_NETWORK_SYNC_OUT_BIT 2
|
||||
|
||||
/* -------------------------------------- */
|
||||
|
||||
#define WRITE_DEF_SECTOR_DSBL 0x01
|
||||
|
@ -961,23 +1099,38 @@ enum {
|
|||
|
||||
static __inline unsigned short aft_valid_mtu(unsigned short mtu)
|
||||
{
|
||||
unsigned short new_mtu;
|
||||
|
||||
if (mtu <= 128){
|
||||
return 256;
|
||||
new_mtu = 256;
|
||||
|
||||
}else if (mtu <= 256){
|
||||
return 512;
|
||||
new_mtu = 512;
|
||||
|
||||
}else if (mtu <= 512){
|
||||
return 1024;
|
||||
new_mtu = 1024;
|
||||
|
||||
}else if (mtu <= 1024){
|
||||
return 2048;
|
||||
new_mtu = 2048;
|
||||
|
||||
}else if (mtu <= 2048){
|
||||
return 4096;
|
||||
new_mtu = 4096;
|
||||
|
||||
}else if (mtu <= 4096){
|
||||
return 8188;
|
||||
new_mtu = 8188;
|
||||
|
||||
}else if (mtu <= 8188){
|
||||
return 8188;
|
||||
new_mtu = 8188;
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
if (new_mtu > MCLBYTES - 16){
|
||||
new_mtu = MCLBYTES-16;
|
||||
}
|
||||
#endif
|
||||
return new_mtu;
|
||||
}
|
||||
|
||||
static __inline unsigned short aft_dma_buf_bits(unsigned short dma_bufs)
|
||||
|
@ -1020,7 +1173,7 @@ static __inline int
|
|||
aft_get_num_of_slots(u32 total_slots, u32 chan_slots)
|
||||
{
|
||||
int num_of_slots=0;
|
||||
int i;
|
||||
u32 i;
|
||||
for (i=0;i<total_slots;i++){
|
||||
if (wan_test_bit(i,&chan_slots)){
|
||||
num_of_slots++;
|
||||
|
@ -1040,7 +1193,7 @@ typedef struct aft_hw_dev{
|
|||
int (*aft_global_chip_config)(sdla_t *card);
|
||||
int (*aft_global_chip_unconfig)(sdla_t *card);
|
||||
|
||||
int (*aft_chip_config)(sdla_t *card);
|
||||
int (*aft_chip_config)(sdla_t *card, wandev_conf_t *);
|
||||
int (*aft_chip_unconfig)(sdla_t *card);
|
||||
|
||||
int (*aft_chan_config)(sdla_t *card, void *chan);
|
||||
|
@ -1095,10 +1248,10 @@ extern aft_hw_dev_t aft_hwdev[MAX_AFT_HW_DEV];
|
|||
*
|
||||
*================================================================*/
|
||||
|
||||
|
||||
#if !defined(__WINDOWS__)/* use 'wan_udphdr_aft_data'! */
|
||||
#undef wan_udphdr_data
|
||||
#define wan_udphdr_data wan_udphdr_u.aft.data
|
||||
|
||||
#endif
|
||||
|
||||
#define MAX_TRACE_BUFFER (MAX_LGTH_UDP_MGNT_PKT - \
|
||||
sizeof(iphdr_t) - \
|
||||
|
@ -1112,6 +1265,7 @@ enum {
|
|||
TX_DMA_BUF_USED
|
||||
};
|
||||
|
||||
#if !defined(__WINDOWS__)
|
||||
enum {
|
||||
ROUTER_UP_TIME = 0x50,
|
||||
ENABLE_TRACING,
|
||||
|
@ -1129,6 +1283,7 @@ enum {
|
|||
AFT_HWEC_STATUS,
|
||||
DIGITAL_LOOPTEST
|
||||
};
|
||||
#endif
|
||||
|
||||
#define UDPMGMT_SIGNATURE "AFTPIPEA"
|
||||
|
||||
|
@ -1149,7 +1304,11 @@ typedef struct wp_rx_element
|
|||
unsigned int dma_addr;
|
||||
unsigned int reg;
|
||||
unsigned int align;
|
||||
unsigned char pkt_error;
|
||||
unsigned short len;
|
||||
unsigned short pkt_error;
|
||||
#if defined(__WINDOWS__)
|
||||
api_header_t rx_info;
|
||||
#endif
|
||||
}wp_rx_element_t;
|
||||
|
||||
|
||||
|
@ -1321,6 +1480,12 @@ typedef struct {
|
|||
unsigned char data[8];
|
||||
} api_tx_ss7_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char repeat;
|
||||
unsigned char len;
|
||||
unsigned char data[8];
|
||||
} api_tx_hdlc_rpt_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
u_int8_t type;
|
||||
u_int8_t mode;
|
||||
|
@ -1334,15 +1499,20 @@ typedef struct {
|
|||
typedef struct {
|
||||
union {
|
||||
api_tx_ss7_hdr_t ss7;
|
||||
api_tx_hdlc_rpt_hdr_t hdlc_rpt;
|
||||
api_tdm_event_hdr_t event;
|
||||
unsigned char reserved[16];
|
||||
}u;
|
||||
#define wp_api_tx_hdr_event_type u.event.type
|
||||
#define wp_api_tx_hdr_event_mode u.event.mode
|
||||
#define wp_api_tx_hdr_event_tone u.event.tone
|
||||
#define wp_api_tx_hdr_event_channel u.event.channel
|
||||
#define wp_api_tx_hdr_event_ohttimer u.event.ohttimer
|
||||
#define wp_api_tx_hdr_event_polarity u.event.polarity
|
||||
}hdr_u;
|
||||
#define wp_api_tx_hdr_event_type hdr_u.event.type
|
||||
#define wp_api_tx_hdr_event_mode hdr_u.event.mode
|
||||
#define wp_api_tx_hdr_event_tone hdr_u.event.tone
|
||||
#define wp_api_tx_hdr_event_channel hdr_u.event.channel
|
||||
#define wp_api_tx_hdr_event_ohttimer hdr_u.event.ohttimer
|
||||
#define wp_api_tx_hdr_event_polarity hdr_u.event.polarity
|
||||
|
||||
#define wp_api_tx_hdr_hdlc_rpt_len hdr_u.hdlc_rpt.len
|
||||
#define wp_api_tx_hdr_hdlc_rpt_data hdr_u.hdlc_rpt.data
|
||||
|
||||
} api_tx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
|
@ -1371,12 +1541,13 @@ enum {
|
|||
#define AFT_TDMV_SHARK_FRM_CLK_SYNC_VER 0x17
|
||||
#define AFT_TDMV_SHARK_A108_FRM_CLK_SYNC_VER 0x25
|
||||
#define AFT_56K_MIN_FRMW_VER 0x00
|
||||
#define AFT_SERIAL_MIN_FRMW_VER 0x04
|
||||
|
||||
#define AFT_MIN_ANALOG_FRMW_VER 0x05
|
||||
|
||||
#define A500_MAX_EC_CHANS 64
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
typedef struct aft_dma_chain
|
||||
{
|
||||
unsigned long init;
|
||||
|
@ -1394,7 +1565,13 @@ typedef struct aft_dma_chain
|
|||
void* dma_virt;
|
||||
u32 dma_offset;
|
||||
u32 dma_toggle;
|
||||
#if defined(__FreeBSD__)
|
||||
bus_dma_tag_t dma_tag;
|
||||
bus_dmamap_t dmamap;
|
||||
int dma_ready;
|
||||
#endif
|
||||
}aft_dma_chain_t;
|
||||
#endif
|
||||
|
||||
typedef struct dma_history{
|
||||
u8 end;
|
||||
|
@ -1426,15 +1603,25 @@ typedef struct aft_dma_swring {
|
|||
}aft_dma_swring_t;
|
||||
|
||||
|
||||
|
||||
typedef struct private_area
|
||||
{
|
||||
wanpipe_common_t common;
|
||||
sdla_t *card;
|
||||
#if defined(__WINDOWS__)
|
||||
/*NOTHING SHOULD BE ADDED ABOVE THIS!*/
|
||||
common_private_area_t;
|
||||
wp_rx_element_t wp_rx_element;
|
||||
#endif
|
||||
|
||||
wanpipe_common_t common;
|
||||
#if !defined(__WINDOWS__)
|
||||
sdla_t *card;
|
||||
char if_name[WAN_IFNAME_SZ+1];
|
||||
#endif
|
||||
wan_xilinx_conf_if_t cfg;
|
||||
|
||||
wan_skb_queue_t wp_tx_pending_list;
|
||||
wan_skb_queue_t wp_tx_complete_list;
|
||||
wan_skb_queue_t wp_tx_hdlc_rpt_list;
|
||||
netskb_t *tx_dma_skb;
|
||||
u8 tx_dma_cnt;
|
||||
|
||||
|
@ -1442,21 +1629,21 @@ typedef struct private_area
|
|||
wan_skb_queue_t wp_rx_complete_list;
|
||||
|
||||
wan_skb_queue_t wp_rx_stack_complete_list;
|
||||
wan_skb_queue_t wp_rx_zap_complete_list;
|
||||
wan_skb_queue_t wp_rx_bri_dchan_complete_list;
|
||||
|
||||
unsigned long time_slot_map;
|
||||
u32 time_slot_map;
|
||||
unsigned char num_of_time_slots;
|
||||
long logic_ch_num;
|
||||
int logic_ch_num;
|
||||
|
||||
unsigned char hdlc_eng;
|
||||
unsigned long dma_status;
|
||||
u32 dma_status;
|
||||
unsigned char protocol;
|
||||
|
||||
struct net_device_stats if_stats;
|
||||
// struct net_device_stats if_stats;
|
||||
|
||||
int tracing_enabled; /* For enabling Tracing */
|
||||
unsigned long router_start_time;
|
||||
unsigned long trace_timeout;
|
||||
wan_ticks_t trace_timeout;
|
||||
|
||||
unsigned long tick_counter; /* For 5s timeout counter */
|
||||
unsigned long router_up_time;
|
||||
|
@ -1481,8 +1668,6 @@ typedef struct private_area
|
|||
unsigned char udp_pkt_data[sizeof(wan_udp_pkt_t)+10];
|
||||
atomic_t udp_pkt_len;
|
||||
|
||||
char if_name[WAN_IFNAME_SZ+1];
|
||||
|
||||
u8 idle_flag;
|
||||
u16 max_idle_size;
|
||||
u8 idle_start;
|
||||
|
@ -1494,6 +1679,7 @@ typedef struct private_area
|
|||
int last_time_slot;
|
||||
|
||||
netskb_t *tx_idle_skb;
|
||||
netskb_t *tx_hdlc_rpt_skb;
|
||||
unsigned char rx_dma;
|
||||
unsigned char pci_retry;
|
||||
|
||||
|
@ -1510,15 +1696,20 @@ typedef struct private_area
|
|||
wan_trace_t trace_info;
|
||||
|
||||
/* TE1 Specific Dma Chains */
|
||||
#if defined(__WINDOWS__)
|
||||
aft_dma_chain_t tx_dma_chain_table;
|
||||
aft_dma_chain_t rx_dma_chain_table;
|
||||
#else
|
||||
unsigned char tx_chain_indx,tx_pending_chain_indx;
|
||||
aft_dma_chain_t tx_dma_chain_table[MAX_AFT_DMA_CHAINS];
|
||||
wan_dma_descr_t/*aft_dma_chain_t*/ tx_dma_chain_table[MAX_AFT_DMA_CHAINS];
|
||||
|
||||
unsigned char rx_chain_indx,rx_pending_chain_indx;
|
||||
aft_dma_chain_t rx_dma_chain_table[MAX_AFT_DMA_CHAINS];
|
||||
wan_dma_descr_t/*aft_dma_chain_t*/ rx_dma_chain_table[MAX_AFT_DMA_CHAINS];
|
||||
#endif
|
||||
int rx_no_data_cnt;
|
||||
|
||||
unsigned long dma_chain_status;
|
||||
unsigned long up;
|
||||
u32 dma_chain_status;
|
||||
u32 up;
|
||||
int tx_attempts;
|
||||
|
||||
aft_op_stats_t opstats;
|
||||
|
@ -1555,125 +1746,27 @@ typedef struct private_area
|
|||
#endif
|
||||
int rx_api_crc_bytes;
|
||||
|
||||
netskb_t *rx_rtp_skb;
|
||||
netskb_t *tx_rtp_skb;
|
||||
u32 tdm_call_status;
|
||||
#if defined(__FreeBSD__)
|
||||
// int dma_ready;
|
||||
bus_dma_tag_t dma_rx_mtag;
|
||||
bus_dma_tag_t dma_tx_mtag;
|
||||
#endif
|
||||
struct private_area *next;
|
||||
|
||||
int dchan_time_slot;
|
||||
|
||||
aft_dma_swring_t swring;
|
||||
|
||||
}private_area_t;
|
||||
|
||||
|
||||
static __inline int aft_decode_dma_status(sdla_t *card, private_area_t *chan, u32 reg)
|
||||
{
|
||||
u32 dma_status=aft_rxdma_hi_get_dma_status(reg);
|
||||
u32 data_error=0;
|
||||
|
||||
if (dma_status){
|
||||
|
||||
if (wan_test_bit(AFT_RXDMA_HIDMASTATUS_PCI_M_ABRT,&dma_status)){
|
||||
if (WAN_NET_RATELIMIT()){
|
||||
DEBUG_EVENT("%s:%s: Rx Error: Abort from Master: pci fatal error 0x%X!\n",
|
||||
card->devname,chan->if_name,reg);
|
||||
}
|
||||
}
|
||||
if (wan_test_bit(AFT_RXDMA_HIDMASTATUS_PCI_T_ABRT,&dma_status)){
|
||||
if (WAN_NET_RATELIMIT()){
|
||||
DEBUG_EVENT("%s:%s: Rx Error: Abort from Target: pci fatal error 0x%X!\n",
|
||||
card->devname,chan->if_name,reg);
|
||||
}
|
||||
}
|
||||
if (wan_test_bit(AFT_RXDMA_HIDMASTATUS_PCI_DS_TOUT,&dma_status)){
|
||||
if (WAN_NET_RATELIMIT()){
|
||||
DEBUG_EVENT("%s:%s: Rx Error: No 'DeviceSelect' from target: pci fatal error 0x%X!\n",
|
||||
card->devname,chan->if_name,reg);
|
||||
}
|
||||
}
|
||||
if (wan_test_bit(AFT_RXDMA_HIDMASTATUS_PCI_RETRY,&dma_status)){
|
||||
if (WAN_NET_RATELIMIT()){
|
||||
DEBUG_EVENT("%s:%s: Rx Error: 'Retry' exceeds maximum (64k): pci fatal error 0x%X!\n",
|
||||
card->devname,chan->if_name,reg);
|
||||
}
|
||||
}
|
||||
|
||||
chan->errstats.Rx_pci_errors++;
|
||||
chan->if_stats.rx_errors++;
|
||||
card->wandev.stats.rx_errors++;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (chan->hdlc_eng){
|
||||
|
||||
/* Checking Rx DMA Frame start bit. (information for api) */
|
||||
if (!wan_test_bit(AFT_RXDMA_HI_START_BIT,®)){
|
||||
DEBUG_TEST("%s:%s RxDMA Intr: Start flag missing: MTU Mismatch! Reg=0x%X\n",
|
||||
card->devname,chan->if_name,reg);
|
||||
chan->if_stats.rx_frame_errors++;
|
||||
chan->opstats.Rx_Data_discard_long_count++;
|
||||
chan->errstats.Rx_hdlc_corrupiton++;
|
||||
card->wandev.stats.rx_errors++;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Checking Rx DMA Frame end bit. (information for api) */
|
||||
if (!wan_test_bit(AFT_RXDMA_HI_EOF_BIT,®)){
|
||||
DEBUG_TEST("%s:%s: RxDMA Intr: End flag missing: MTU Mismatch! Reg=0x%X\n",
|
||||
card->devname,chan->if_name,reg);
|
||||
chan->if_stats.rx_frame_errors++;
|
||||
chan->opstats.Rx_Data_discard_long_count++;
|
||||
chan->errstats.Rx_hdlc_corrupiton++;
|
||||
card->wandev.stats.rx_errors++;
|
||||
return 1;
|
||||
|
||||
} else { /* Check CRC error flag only if this is the end of Frame */
|
||||
|
||||
if (wan_test_bit(AFT_RXDMA_HI_FCS_ERR_BIT,®)){
|
||||
DEBUG_TEST("%s:%s: RxDMA Intr: CRC Error! Reg=0x%X Len=%d\n",
|
||||
card->devname,chan->if_name,reg,
|
||||
(reg&AFT_RXDMA_HI_DMA_LENGTH_MASK)>>2);
|
||||
chan->if_stats.rx_frame_errors++;
|
||||
chan->errstats.Rx_crc_err_count++;
|
||||
card->wandev.stats.rx_crc_errors++;
|
||||
data_error = 1;
|
||||
}
|
||||
|
||||
/* Check if this frame is an abort, if it is
|
||||
* drop it and continue receiving */
|
||||
if (wan_test_bit(AFT_RXDMA_HI_FRM_ABORT_BIT,®)){
|
||||
DEBUG_TEST("%s:%s: RxDMA Intr: Abort! Reg=0x%X\n",
|
||||
card->devname,chan->if_name,reg);
|
||||
chan->if_stats.rx_frame_errors++;
|
||||
chan->errstats.Rx_hdlc_corrupiton++;
|
||||
card->wandev.stats.rx_frame_errors++;
|
||||
data_error = 1;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (chan->common.usedby != API && data_error){
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
if (data_error) {
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void aft_free_logical_channel_num (sdla_t *card, int logic_ch);
|
||||
void aft_dma_max_logic_ch(sdla_t *card);
|
||||
void aft_fe_intr_ctrl(sdla_t *card, int status);
|
||||
void __aft_fe_intr_ctrl(sdla_t *card, int status);
|
||||
void aft_wdt_set(sdla_t *card, unsigned char val);
|
||||
void aft_wdt_reset(sdla_t *card);
|
||||
|
||||
void wanpipe_wake_stack(private_area_t* chan);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -864,8 +864,6 @@ set_te3_tx_fract_baud_rate(unsigned int *reg,
|
|||
*reg&=TE3_TX_FRACT_BAUD_RATE_MASK;
|
||||
*reg|=(counter<<TE3_TX_FRACT_BAUD_RATE_SHIFT);
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/* Tx Encasulated Frame Size
|
||||
|
@ -1269,22 +1267,20 @@ typedef struct wp_rx_element
|
|||
|
||||
#if defined(WAN_KERNEL)
|
||||
|
||||
|
||||
|
||||
static __inline unsigned short xilinx_valid_mtu(unsigned short mtu)
|
||||
{
|
||||
if (mtu <= 128){
|
||||
return 256;
|
||||
return 128;
|
||||
}else if (mtu <= 256){
|
||||
return 512;
|
||||
return 256;
|
||||
}else if (mtu <= 512){
|
||||
return 1024;
|
||||
return 512;
|
||||
}else if (mtu <= 1024){
|
||||
return 2048;
|
||||
return 1024;
|
||||
}else if (mtu <= 2048){
|
||||
return 4096;
|
||||
return 2048;
|
||||
}else if (mtu <= 4096){
|
||||
return 8188;
|
||||
return 4096;
|
||||
}else if (mtu <= 8188){
|
||||
return 8188;
|
||||
}else{
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
#ifndef _WANPIPE_ASYNC_H
|
||||
#define _WANPIPE_ASYNC_H
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Interface commands
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
@ -46,7 +48,7 @@
|
|||
#define INVALID_ASY_CFG_DATA 0xE3 /* the passed configuration data is invalid */
|
||||
#define ASY_BREAK_SIGNAL_BUSY 0xEC /* a break signal is being transmitted */
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the SET_ASY_CONFIGURATION/READ_ASY_CONFIGURATION command
|
||||
|
@ -54,24 +56,24 @@
|
|||
|
||||
/* the asynchronous configuration structure */
|
||||
typedef struct {
|
||||
unsigned long baud_rate ; /* the baud rate */
|
||||
unsigned short line_config_options ; /* line configuration options */
|
||||
unsigned short modem_config_options ; /* modem configuration options */
|
||||
unsigned short asy_API_options ; /* asynchronous API options */
|
||||
unsigned short asy_protocol_options ; /* asynchronous protocol options */
|
||||
unsigned short Tx_bits_per_char ; /* number of bits per tx character */
|
||||
unsigned short Rx_bits_per_char ; /* number of bits per received character */
|
||||
unsigned short stop_bits ; /* number of stop bits per character */
|
||||
unsigned short parity ; /* parity definition */
|
||||
unsigned short break_timer ; /* the break signal timer */
|
||||
unsigned short asy_Rx_inter_char_timer ; /* the receive inter-character timer */
|
||||
unsigned short asy_Rx_complete_length ; /* the receive 'buffer complete' length */
|
||||
unsigned short XON_char ; /* the XON character */
|
||||
unsigned short XOFF_char ; /* the XOFF character */
|
||||
unsigned short asy_statistics_options ; /* async operational stat options */
|
||||
unsigned long ptr_shared_mem_info_struct ;/* ptr to the shared memory area information structure */
|
||||
unsigned long ptr_asy_Tx_stat_el_cfg_struct ;/* ptr to the transmit status element configuration structure */
|
||||
unsigned long ptr_asy_Rx_stat_el_cfg_struct ;/* ptr to the receive status element configuration structure */
|
||||
unsigned long baud_rate ; /* the baud rate */
|
||||
unsigned short line_config_options ; /* line configuration options */
|
||||
unsigned short modem_config_options ; /* modem configuration options */
|
||||
unsigned short asy_API_options ; /* asynchronous API options */
|
||||
unsigned short asy_protocol_options ; /* asynchronous protocol options */
|
||||
unsigned short Tx_bits_per_char ; /* number of bits per tx character */
|
||||
unsigned short Rx_bits_per_char ; /* number of bits per received character */
|
||||
unsigned short stop_bits ; /* number of stop bits per character */
|
||||
unsigned short parity ; /* parity definition */
|
||||
unsigned short break_timer ; /* the break signal timer */
|
||||
unsigned short asy_Rx_inter_char_timer ; /* the receive inter-character timer */
|
||||
unsigned short asy_Rx_complete_length ; /* the receive 'buffer complete' length */
|
||||
unsigned short XON_char ; /* the XON character */
|
||||
unsigned short XOFF_char ; /* the XOFF character */
|
||||
unsigned short asy_statistics_options ; /* async operational stat options */
|
||||
unsigned long ptr_shared_mem_info_struct ;/* ptr to the shared memory area information structure */
|
||||
unsigned long ptr_asy_Tx_stat_el_cfg_struct ;/* ptr to the transmit status element configuration structure */
|
||||
unsigned long ptr_asy_Rx_stat_el_cfg_struct ;/* ptr to the receive status element configuration structure */
|
||||
} ASY_CONFIGURATION_STRUCT;
|
||||
|
||||
/* permitted minimum and maximum values for setting the asynchronous configuration */
|
||||
|
@ -114,16 +116,16 @@ typedef struct {
|
|||
|
||||
/* the communications error statistics structure */
|
||||
typedef struct {
|
||||
unsigned short Rx_overrun_err_count ; /* receiver overrun error count */
|
||||
unsigned short Rx_parity_err_count ; /* parity errors received count */
|
||||
unsigned short Rx_framing_err_count ; /* framing errors received count */
|
||||
unsigned short comms_err_stat_reserved_1 ;/* reserved for later use */
|
||||
unsigned short comms_err_stat_reserved_2 ;/* reserved for later use */
|
||||
unsigned short comms_err_stat_reserved_3 ;/* reserved for later use */
|
||||
unsigned short comms_err_stat_reserved_4 ;/* reserved for later use */
|
||||
unsigned short comms_err_stat_reserved_5 ;/* reserved for later use */
|
||||
unsigned short DCD_state_change_count ; /* DCD state change count */
|
||||
unsigned short CTS_state_change_count ; /* CTS state change count */
|
||||
unsigned short Rx_overrun_err_count ; /* receiver overrun error count */
|
||||
unsigned short Rx_parity_err_count ; /* parity errors received count */
|
||||
unsigned short Rx_framing_err_count ; /* framing errors received count */
|
||||
unsigned short comms_err_stat_reserved_1 ;/* reserved for later use */
|
||||
unsigned short comms_err_stat_reserved_2 ;/* reserved for later use */
|
||||
unsigned short comms_err_stat_reserved_3 ;/* reserved for later use */
|
||||
unsigned short comms_err_stat_reserved_4 ;/* reserved for later use */
|
||||
unsigned short comms_err_stat_reserved_5 ;/* reserved for later use */
|
||||
unsigned short DCD_state_change_count ; /* DCD state change count */
|
||||
unsigned short CTS_state_change_count ; /* CTS state change count */
|
||||
} ASY_COMMS_ERROR_STATS_STRUCT;
|
||||
|
||||
|
||||
|
@ -136,40 +138,40 @@ typedef struct {
|
|||
typedef struct {
|
||||
|
||||
/* Data transmission statistics */
|
||||
unsigned long Data_blocks_Tx_count ;/* number of blocks transmitted */
|
||||
unsigned long Data_bytes_Tx_count ;/* number of bytes transmitted */
|
||||
unsigned long Data_Tx_throughput ;/* transmit throughput */
|
||||
unsigned long no_ms_for_Data_Tx_thruput_comp ;/* millisecond time used for the Tx throughput computation */
|
||||
unsigned long Tx_Data_discard_lgth_err_count ;/* number of Data blocks discarded (length error) */
|
||||
unsigned long reserved_Data_frm_Tx_stat1 ;/* reserved for later use */
|
||||
unsigned long reserved_Data_frm_Tx_stat2 ;/* reserved for later use */
|
||||
unsigned long reserved_Data_frm_Tx_stat3 ;/* reserved for later use */
|
||||
unsigned long Data_blocks_Tx_count ;/* number of blocks transmitted */
|
||||
unsigned long Data_bytes_Tx_count ;/* number of bytes transmitted */
|
||||
unsigned long Data_Tx_throughput ;/* transmit throughput */
|
||||
unsigned long no_ms_for_Data_Tx_thruput_comp ;/* millisecond time used for the Tx throughput computation */
|
||||
unsigned long Tx_Data_discard_lgth_err_count ;/* number of Data blocks discarded (length error) */
|
||||
unsigned long reserved_Data_frm_Tx_stat1 ;/* reserved for later use */
|
||||
unsigned long reserved_Data_frm_Tx_stat2 ;/* reserved for later use */
|
||||
unsigned long reserved_Data_frm_Tx_stat3 ;/* reserved for later use */
|
||||
|
||||
/* Data reception statistics */
|
||||
unsigned long Data_blocks_Rx_count ;/* number of blocks received */
|
||||
unsigned long Data_bytes_Rx_count ;/* number of bytes received */
|
||||
unsigned long Data_Rx_throughput ;/* receive throughput */
|
||||
unsigned long no_ms_for_Data_Rx_thruput_comp ;/* millisecond time used for the Rx throughput computation */
|
||||
unsigned long Rx_Data_bytes_discard_count ;/* received Data bytes discarded */
|
||||
unsigned long reserved_Data_frm_Rx_stat1 ;/* reserved for later use */
|
||||
unsigned long Data_blocks_Rx_count ;/* number of blocks received */
|
||||
unsigned long Data_bytes_Rx_count ;/* number of bytes received */
|
||||
unsigned long Data_Rx_throughput ;/* receive throughput */
|
||||
unsigned long no_ms_for_Data_Rx_thruput_comp ;/* millisecond time used for the Rx throughput computation */
|
||||
unsigned long Rx_Data_bytes_discard_count ;/* received Data bytes discarded */
|
||||
unsigned long reserved_Data_frm_Rx_stat1 ;/* reserved for later use */
|
||||
|
||||
/* handshaking protocol statistics */
|
||||
unsigned short XON_chars_Tx_count ; /* number of XON characters transmitted */
|
||||
unsigned short XOFF_chars_Tx_count ; /* number of XOFF characters transmitted */
|
||||
unsigned short XON_chars_Rx_count ; /* number of XON characters received */
|
||||
unsigned short XOFF_chars_Rx_count ; /* number of XOFF characters received */
|
||||
unsigned short Tx_halt_modem_low_count ; /* number of times Tx halted (modem line low) */
|
||||
unsigned short Rx_halt_RTS_low_count ; /* number of times Rx halted by setting RTS low */
|
||||
unsigned long reserved_handshaking_stat1 ;/* reserved for later use */
|
||||
unsigned short XON_chars_Tx_count ; /* number of XON characters transmitted */
|
||||
unsigned short XOFF_chars_Tx_count ; /* number of XOFF characters transmitted */
|
||||
unsigned short XON_chars_Rx_count ; /* number of XON characters received */
|
||||
unsigned short XOFF_chars_Rx_count ; /* number of XOFF characters received */
|
||||
unsigned short Tx_halt_modem_low_count ; /* number of times Tx halted (modem line low) */
|
||||
unsigned short Rx_halt_RTS_low_count ; /* number of times Rx halted by setting RTS low */
|
||||
unsigned long reserved_handshaking_stat1 ;/* reserved for later use */
|
||||
|
||||
/* break statistics */
|
||||
unsigned short break_Tx_count ; /* number of break sequences transmitted */
|
||||
unsigned short break_Rx_count ; /* number of break sequences received */
|
||||
unsigned long reserved_break_stat1 ;/* reserved for later use */
|
||||
unsigned short break_Tx_count ; /* number of break sequences transmitted */
|
||||
unsigned short break_Rx_count ; /* number of break sequences received */
|
||||
unsigned long reserved_break_stat1 ;/* reserved for later use */
|
||||
|
||||
/* miscellaneous statistics */
|
||||
unsigned long reserved_misc_stat1 ; /* reserved for later use */
|
||||
unsigned long reserved_misc_stat2 ; /* reserved for later use */
|
||||
unsigned long reserved_misc_stat1 ; /* reserved for later use */
|
||||
unsigned long reserved_misc_stat2 ; /* reserved for later use */
|
||||
|
||||
} ASY_OPERATIONAL_STATS_STRUCT;
|
||||
|
||||
|
@ -181,20 +183,20 @@ typedef struct {
|
|||
|
||||
/* the Data block transmit status element configuration structure */
|
||||
typedef struct {
|
||||
unsigned short number_Tx_status_elements ; /* number of transmit status elements */
|
||||
unsigned long base_addr_Tx_status_elements ; /* base address of the transmit element list */
|
||||
unsigned long next_Tx_status_element_to_use ; /* pointer to the next transmit element to be used */
|
||||
unsigned short number_Tx_status_elements ; /* number of transmit status elements */
|
||||
unsigned long base_addr_Tx_status_elements ; /* base address of the transmit element list */
|
||||
unsigned long next_Tx_status_element_to_use ; /* pointer to the next transmit element to be used */
|
||||
} ASY_TX_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
|
||||
/* the Data block transmit status element structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short data_length ; /* length of the block to be transmitted */
|
||||
unsigned char reserved_1 ; /* reserved for internal use */
|
||||
unsigned long reserved_2 ; /* reserved for internal use */
|
||||
unsigned long reserved_3 ; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the data area */
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short data_length ; /* length of the block to be transmitted */
|
||||
unsigned char reserved_1 ; /* reserved for internal use */
|
||||
unsigned long reserved_2 ; /* reserved for internal use */
|
||||
unsigned long reserved_3 ; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the data area */
|
||||
} ASY_DATA_TX_STATUS_EL_STRUCT;
|
||||
|
||||
|
||||
|
@ -205,22 +207,22 @@ typedef struct {
|
|||
|
||||
/* the Data block receive status element configuration structure */
|
||||
typedef struct {
|
||||
unsigned short number_Rx_status_elements ;/* number of receive status elements */
|
||||
unsigned long base_addr_Rx_status_elements ;/* base address of the receive element list */
|
||||
unsigned long next_Rx_status_element_to_use ;/* pointer to the next receive element to be used */
|
||||
unsigned long base_addr_Rx_buffer ;/* base address of the receive data buffer */
|
||||
unsigned long end_addr_Rx_buffer ;/* end address of the receive data buffer */
|
||||
unsigned short number_Rx_status_elements ;/* number of receive status elements */
|
||||
unsigned long base_addr_Rx_status_elements ;/* base address of the receive element list */
|
||||
unsigned long next_Rx_status_element_to_use ;/* pointer to the next receive element to be used */
|
||||
unsigned long base_addr_Rx_buffer ;/* base address of the receive data buffer */
|
||||
unsigned long end_addr_Rx_buffer ;/* end address of the receive data buffer */
|
||||
} ASY_RX_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
/* the Data block receive status element structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short data_length ; /* length of the received data block */
|
||||
unsigned char reserved_1 ; /* reserved for internal use */
|
||||
unsigned short time_stamp ; /* receive time stamp (HDLC_STREAMING_MODE) */
|
||||
unsigned short data_buffered ; /* the number of data bytes still buffered */
|
||||
unsigned long reserved_2 ; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the data area */
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short data_length ; /* length of the received data block */
|
||||
unsigned char reserved_1 ; /* reserved for internal use */
|
||||
unsigned short time_stamp ; /* receive time stamp (HDLC_STREAMING_MODE) */
|
||||
unsigned short data_buffered ; /* the number of data bytes still buffered */
|
||||
unsigned long reserved_2 ; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the data area */
|
||||
} ASY_DATA_RX_STATUS_EL_STRUCT;
|
||||
|
||||
#pragma pack()
|
||||
|
|
|
@ -474,7 +474,6 @@ typedef struct {
|
|||
unsigned long Rx_abort_count; /* abort frames received count */
|
||||
} HDLC_OPERATIONAL_STATS_STRUCT;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
|
||||
|
@ -486,19 +485,19 @@ typedef struct {
|
|||
/* UDP/IP packet (for UDP management) layout */
|
||||
/*
|
||||
typedef struct {
|
||||
unsigned char reserved[2] ;
|
||||
unsigned short ip_length ;
|
||||
unsigned char reserved2[4] ;
|
||||
unsigned char ip_ttl ;
|
||||
unsigned char ip_protocol ;
|
||||
unsigned short ip_checksum ;
|
||||
unsigned long ip_src_address ;
|
||||
unsigned long ip_dst_address ;
|
||||
unsigned short udp_src_port ;
|
||||
unsigned short udp_dst_port ;
|
||||
unsigned short udp_length ;
|
||||
unsigned short udp_checksum ;
|
||||
udp_management_packet_t um_packet ;
|
||||
unsigned char reserved[2] ;
|
||||
unsigned short ip_length ;
|
||||
unsigned char reserved2[4] ;
|
||||
unsigned char ip_ttl ;
|
||||
unsigned char ip_protocol ;
|
||||
unsigned short ip_checksum ;
|
||||
unsigned long ip_src_address ;
|
||||
unsigned long ip_dst_address ;
|
||||
unsigned short udp_src_port ;
|
||||
unsigned short udp_dst_port ;
|
||||
unsigned short udp_length ;
|
||||
unsigned short udp_checksum ;
|
||||
udp_management_packet_t um_packet ;
|
||||
} ip_packet_t;
|
||||
*/
|
||||
|
||||
|
@ -507,34 +506,34 @@ typedef struct {
|
|||
|
||||
#if 0
|
||||
typedef struct {
|
||||
unsigned char status ;
|
||||
unsigned char data_avail ;
|
||||
unsigned short real_length ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char data[1] ;
|
||||
unsigned char status ;
|
||||
unsigned char data_avail ;
|
||||
unsigned short real_length ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char data[1] ;
|
||||
} trace_pkt_t;
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
unsigned char error_flag ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char reserved[13] ;
|
||||
unsigned char error_flag ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char reserved[13] ;
|
||||
} api_rx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
} api_rx_element_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char attr ;
|
||||
unsigned char misc_Tx_bits ;
|
||||
unsigned char reserved[14] ;
|
||||
unsigned char attr ;
|
||||
unsigned char misc_Tx_bits ;
|
||||
unsigned char reserved[14] ;
|
||||
} api_tx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
} api_tx_element_t;
|
||||
|
||||
/* Special UDP drivers management commands */
|
||||
|
@ -574,6 +573,8 @@ enum {
|
|||
NO_HDLC_RX_IN_PROCESS
|
||||
};
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,794 @@
|
|||
/************************************************************************************
|
||||
* *
|
||||
* PHYAPI.H - the 'C' header file for the Sangoma S508/S514 PHY-level ATM code API. *
|
||||
* *
|
||||
************************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __SDLA_ATM_H_
|
||||
#define __SDLA_ATM_H_
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants defining the shared memory control block (mailbox)
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
#define BASE_ADDR_MB_STRUCT 0xE000 /* the base address of the mailbox structure */
|
||||
#define NUMBER_MB_RESERVED_BYTES 0x0B /* the number of reserved bytes in the mailbox header area */
|
||||
#define SIZEOF_MB_DATA_BFR 240 /* the size of the actual mailbox data area */
|
||||
|
||||
/* the control block mailbox structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag; /* the opp flag */
|
||||
unsigned char command; /* the user command */
|
||||
unsigned short buffer_length; /* the data length */
|
||||
unsigned char return_code; /* the return code */
|
||||
char MB_reserved[NUMBER_MB_RESERVED_BYTES]; /* reserved for later use */
|
||||
char data[SIZEOF_MB_DATA_BFR]; /* the data area */
|
||||
} ATM_MAILBOX_STRUCT;
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Interface commands
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* global interface commands */
|
||||
#define READ_GLOBAL_EXCEPTION_CONDITION 0x01 /* read a global exception condition from the adapter */
|
||||
#define SET_GLOBAL_CONFIGURATION 0x02 /* set the global operational configuration */
|
||||
#define READ_GLOBAL_CONFIGURATION 0x03 /* read the global configuration */
|
||||
#define READ_GLOBAL_STATISTICS 0x04 /* retrieve the global statistics */
|
||||
#define FLUSH_GLOBAL_STATISTICS 0x05 /* flush the global statistics */
|
||||
#define SET_MODEM_STATUS 0x06 /* set the status of DTR and/or RTS */
|
||||
#define READ_MODEM_STATUS 0x07 /* read the current status of CTS and DCD */
|
||||
#define READ_COMMS_ERROR_STATS 0x08 /* read the communication error statistics */
|
||||
#define FLUSH_COMMS_ERROR_STATS 0x09 /* flush the communication error statistics */
|
||||
#define SET_TRACE_CONFIGURATION 0x0A /* set the line trace configuration */
|
||||
#define READ_TRACE_CONFIGURATION 0x0B /* read the line trace configuration */
|
||||
#define READ_TRACE_STATISTICS 0x0C /* read the trace statistics */
|
||||
#define FLUSH_TRACE_STATISTICS 0x0D /* flush the trace statistics */
|
||||
|
||||
/* PHY-level interface commands */
|
||||
#define PHY_READ_CODE_VERSION 0x20 /* read the ATM code version */
|
||||
#define PHY_READ_EXCEPTION_CONDITION 0x21 /* read a PHY-level exception condition from the adapter */
|
||||
#define PHY_SET_CONFIGURATION 0x22 /* set the PHY-level configuration */
|
||||
#define PHY_READ_CONFIGURATION 0x23 /* read the PHY-level configuration */
|
||||
#define PHY_ENABLE_COMMUNICATIONS 0x24 /* enable PHY-level communications */
|
||||
#define PHY_DISABLE_COMMUNICATIONS 0x25 /* disable PHY-level communications */
|
||||
#define PHY_READ_STATUS 0x26 /* read the PHY-level status */
|
||||
#define PHY_READ_OPERATIONAL_STATS 0x27 /* retrieve the PHY-level operational statistics */
|
||||
#define PHY_FLUSH_OPERATIONAL_STATS 0x28 /* flush the PHY-level operational statistics */
|
||||
#define PHY_RESYNCHRONIZE_RECEIVER 0x29 /* resynchronize the receiver */
|
||||
#define PHY_SET_TX_UNDERRUN_CONFIG 0x2A /* set the transmit underrun cell configuration */
|
||||
#define PHY_READ_TX_UNDERRUN_CONFIG 0x2B /* read the transmit underrun cell configuration */
|
||||
#define PHY_SET_INTERRUPT_TRIGGERS 0x30 /* set the PHY-level application interrupt triggers */
|
||||
#define PHY_READ_INTERRUPT_TRIGGERS 0x31 /* read the PHY-level application interrupt trigger configuration */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Return codes from interface commands
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
#define OK 0x00 /* the interface command was successful */
|
||||
|
||||
/* return codes from global interface commands */
|
||||
#define NO_GLOBAL_EXCEP_COND_TO_REPORT 0x01 /* there is no global exception condition to report */
|
||||
#define LGTH_GLOBAL_CFG_DATA_INVALID 0x01 /* the length of the passed global configuration data is invalid */
|
||||
#define LGTH_TRACE_CFG_DATA_INVALID 0x01 /* the length of the passed trace configuration data is invalid */
|
||||
#define IRQ_TIMEOUT_VALUE_INVALID 0x02 /* an invalid application IRQ timeout value was selected */
|
||||
#define TRACE_CONFIG_INVALID 0x02 /* the passed line trace configuration is invalid */
|
||||
#define ADAPTER_OPERATING_FREQ_INVALID 0x03 /* an invalid adapter operating frequency was selected */
|
||||
|
||||
/* return codes from command READ_GLOBAL_EXCEPTION_CONDITION */
|
||||
#define EXCEP_MODEM_STATUS_CHANGE 0x10 /* a modem status change occurred */
|
||||
#define EXCEP_APP_IRQ_TIMEOUT 0x12 /* an application IRQ timeout has occurred */
|
||||
|
||||
/* return codes from PHY-level interface commands */
|
||||
#define PHY_NO_EXCEP_COND_TO_REPORT 0x21 /* there is no PHY-level exception condition to report */
|
||||
#define PHY_COMMS_DISABLED 0x21 /* communications are not currently enabled */
|
||||
#define PHY_COMMS_ENABLED 0x21 /* communications are currently enabled */
|
||||
#define PHY_DISABLE_COMMS_BEFORE_CFG 0x21 /* communications must be disabled before setting the configuration */
|
||||
#define PHY_CFG_BEFORE_COMMS_ENABLED 0x22 /* perform a PHY_SET_CONFIGURATION before enabling comms */
|
||||
#define PHY_LGTH_CFG_DATA_INVALID 0x22 /* the length of the passed configuration data is invalid */
|
||||
#define PHY_LGTH_INT_TRIG_DATA_INVALID 0x22 /* the length of the passed interrupt trigger data is invalid */
|
||||
#define PHY_LGTH_TX_UND_DATA_INVALID 0x22 /* the length of the passed transmit underrun data is invalid */
|
||||
#define PHY_RX_NOT_SYNCHRONIZED 0x22 /* the receiver is not synchronized */
|
||||
#define PHY_INVALID_IRQ_SELECTED 0x23 /* an invalid IRQ was selected in the PHY_SET_INTERRUPT_TRIGGERS */
|
||||
#define PHY_INVALID_CFG_DATA 0x23 /* the passed configuration data is invalid */
|
||||
#define PHY_IRQ_TMR_VALUE_INVALID 0x24 /* an invalid application IRQ timer value was selected */
|
||||
#define PHY_INVALID_COMMAND 0x2F /* the defined interface command is invalid */
|
||||
|
||||
/* return codes from command PHY_READ_EXCEPTION_CONDITION */
|
||||
#define PHY_EXCEP_RX_SYNC_STATE_CHANGE 0x30 /* the PHY receiver has changed state */
|
||||
#define PHY_EXCEP_INVALID_HEC 0x32 /* the Rx consecutive incorrect HEC counter has expired */
|
||||
#define PHY_EXCEP_RECEP_LOSS 0x33 /* the cell reception sync loss timer has expired */
|
||||
#define PHY_EXCEP_RX_DISCARD 0x36 /* incoming cells were discarded */
|
||||
#define PHY_EXCEP_TX_LENGTH_ERROR 0x37 /* a transmit buffer of invalid length was detected */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the READ_GLOBAL_EXCEPTION_CONDITION command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the global exception condition structure for handling a modem status change */
|
||||
typedef struct {
|
||||
unsigned char modem_status_change; /* the modem status change */
|
||||
} GLOBAL_EX_MODEM_STRUCT;
|
||||
|
||||
/* settings for the 'modem_status_change' */
|
||||
#define CHANGE_IN_DCD 0x04 /* a change in DCD occured */
|
||||
#define CHANGE_IN_CTS 0x10 /* a change in CTS occured */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the SET_GLOBAL_CONFIGURATION/READ_GLOBAL_CONFIGURATION commands
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the global configuration structure */
|
||||
typedef struct {
|
||||
unsigned short adapter_config_options; /* adapter configuration options */
|
||||
unsigned short app_IRQ_timeout; /* application IRQ timeout */
|
||||
unsigned long adapter_operating_frequency; /* adapter operating frequency */
|
||||
} GLOBAL_CONFIGURATION_STRUCT;
|
||||
|
||||
/* settings for the 'adapter_config_options' */
|
||||
#define ADPTR_CFG_S514 0x0001 /* S514 adapter */
|
||||
|
||||
/* settings for the 'app_IRQ_timeout' */
|
||||
#define MAX_APP_IRQ_TIMEOUT_VALUE 5000 /* the maximum permitted IRQ timeout */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the READ_GLOBAL_STATISTICS command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the global statistics structure */
|
||||
typedef struct {
|
||||
unsigned short app_IRQ_timeout_count; /* application IRQ timeout count */
|
||||
} GLOBAL_STATS_STRUCT;
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the SET_MODEM_STATUS command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the set modem status structure */
|
||||
typedef struct {
|
||||
unsigned char output_modem_status; /* the output modem status */
|
||||
} SET_MODEM_STATUS_STRUCT;
|
||||
|
||||
/* settings for the 'output_modem_status' */
|
||||
#define SET_DTR_HIGH 0x01 /* set DTR high */
|
||||
#define SET_RTS_HIGH 0x02 /* set RTS high */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the READ_MODEM_STATUS command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the read modem status structure */
|
||||
typedef struct {
|
||||
unsigned char input_modem_status; /* the input modem status */
|
||||
} READ_MODEM_STATUS_STRUCT;
|
||||
|
||||
/* settings for the 'input_modem_status' */
|
||||
#define DCD_HIGH 0x08 /* DCD is high */
|
||||
#define CTS_HIGH 0x20 /* CTS is high */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the READ_COMMS_ERROR_STATS command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the communications error statistics structure */
|
||||
typedef struct {
|
||||
unsigned short Rx_overrun_err_count; /* receiver overrun error count */
|
||||
unsigned short reserved_0; /* reserved for later use */
|
||||
unsigned short reserved_1; /* reserved for later use */
|
||||
unsigned short DCD_state_change_count; /* DCD state change count */
|
||||
unsigned short CTS_state_change_count; /* CTS state change count */
|
||||
} COMMS_ERROR_STATS_STRUCT;
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants used for line tracing
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the trace configuration structure (SET_TRACE_CONFIGURATION/READ_TRACE_CONFIGURATION commands) */
|
||||
typedef struct {
|
||||
unsigned char trace_config; /* trace configuration */
|
||||
unsigned long ptr_trace_stat_el_cfg_struct; /* a pointer to the line trace element configuration structure */
|
||||
} LINE_TRACE_CONFIG_STRUCT;
|
||||
|
||||
/* 'trace_config' bit settings */
|
||||
#define TRACE_INACTIVE 0x00 /* trace is inactive */
|
||||
#define TRACE_ACTIVE 0x01 /* trace is active */
|
||||
#define TRACE_LIMIT_REPEAT_CELLS 0x08 /* limit the tracing of repeated Physical Layer and Idle Cells */
|
||||
#define TRACE_PHY_UNASSIGNED_CELLS 0x10 /* trace Unassigned Cells */
|
||||
#define TRACE_PHY_IDLE_CELLS 0x20 /* trace Idle Cells */
|
||||
#define TRACE_PHY_PHYS_LAYER_CELLS 0x40 /* trace Physical Layer Cells */
|
||||
#define TRACE_PHY_NON_UNAS_PHYS_CELLS 0x80 /* trace cells other than Physical Layer and Idle Cells */
|
||||
|
||||
/* the line trace status element configuration structure */
|
||||
typedef struct {
|
||||
unsigned short number_trace_status_els; /* number of line trace elements */
|
||||
unsigned long base_addr_trace_status_els; /* base address of the trace element list */
|
||||
unsigned long next_trace_el_to_use; /* pointer to the next trace element to be used */
|
||||
} TRACE_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
/* the line trace status element structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag; /* opp flag */
|
||||
unsigned short trace_length; /* trace length */
|
||||
unsigned char trace_type; /* trace type */
|
||||
unsigned short trace_time_stamp; /* time stamp */
|
||||
unsigned short trace_reserved_1; /* reserved for later use */
|
||||
unsigned long trace_reserved_2; /* reserved for later use */
|
||||
unsigned long ptr_data_bfr; /* pointer to the trace data buffer */
|
||||
} TRACE_STATUS_ELEMENT_STRUCT;
|
||||
|
||||
/* settings for the 'trace_type' */
|
||||
#define TRACE_INCOMING 0x00 /* an incoming block/cell has been traced */
|
||||
#define TRACE_OUTGOING 0x01 /* an outgoing block/cell has been traced */
|
||||
#define TRACE_HEC_ERROR 0x80 /* the traced cell has a HEC error */
|
||||
|
||||
/* the line trace statistics structure */
|
||||
typedef struct {
|
||||
unsigned long blocks_traced_count; /* number of blocks traced */
|
||||
unsigned long trc_blocks_discarded_count; /* number of trace blocks discarded */
|
||||
} LINE_TRACE_STATS_STRUCT;
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the PHY_READ_EXCEPTION_CONDITION command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the structure returned on a return code PHY_EXCEP_RX_SYNC_STATE_CHANGE */
|
||||
/* Note that the definitions for the 'Rx_sync_status' are as per the PHY_READ_STATUS command */
|
||||
typedef struct {
|
||||
unsigned char Rx_sync_status; /* receiver synchronization status */
|
||||
} PHY_RX_SYNC_EXCEP_STRUCT;
|
||||
|
||||
/* the structure returned on a return code PHY_EXCEP_RX_DISCARD */
|
||||
typedef struct {
|
||||
unsigned long Rx_discard_count; /* number of incoming blocks discarded */
|
||||
} PHY_RX_DISC_EXCEP_STRUCT;
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the PHY_SET_CONFIGURATION/PHY_READ_CONFIGURATION command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the PHY-level configuration structure */
|
||||
typedef struct {
|
||||
unsigned long baud_rate; /* the baud rate */
|
||||
unsigned short line_config_options; /* line configuration options */
|
||||
unsigned short modem_config_options; /* modem configuration options */
|
||||
unsigned short modem_status_timer; /* timer for monitoring modem status changes */
|
||||
unsigned short API_options; /* API options */
|
||||
unsigned short protocol_options; /* protocol options */
|
||||
unsigned short HEC_options; /* HEC options */
|
||||
unsigned char custom_Rx_COSET; /* the custom COSET value used when checking the HEC value in received cells */
|
||||
unsigned char custom_Tx_COSET; /* the custom COSET value used when setting the HEC value in transmitted cells */
|
||||
unsigned short buffer_options; /* Tx/Rx buffer options */
|
||||
unsigned short max_cells_in_Tx_block; /* the maximum number of cells in an outgoing block */
|
||||
unsigned char Tx_underrun_cell_GFC; /* the GFC value in a Tx underrun cell */
|
||||
unsigned char Tx_underrun_cell_PT; /* the PT value in a Tx underrun cell */
|
||||
unsigned char Tx_underrun_cell_CLP; /* the CLP value in a Tx underrun cell */
|
||||
unsigned char Tx_underrun_cell_payload; /* the payload character in a Tx underrun cell */
|
||||
unsigned short max_cells_in_Rx_block; /* the maximum number of cells in an incoming block */
|
||||
unsigned short Rx_hunt_timer; /* receiver hunt timer */
|
||||
unsigned short Rx_sync_bytes; /* receiver synchronization bytes */
|
||||
unsigned short Rx_sync_offset; /* offset of the receiver synchronization bytes */
|
||||
unsigned short cell_Rx_sync_loss_timer; /* cell reception synchronization loss timer */
|
||||
unsigned short Rx_HEC_check_timer; /* the Rx HEC check timer */
|
||||
unsigned short Rx_bad_HEC_timer; /* the time period for monitoring cells with bad HEC values */
|
||||
unsigned short Rx_max_bad_HEC_count; /* the maximum number of bad HEC count */
|
||||
unsigned short statistics_options; /* operational statistics options */
|
||||
unsigned long ptr_shared_mem_info_struct; /* a pointer to the shared memory area information structure */
|
||||
unsigned long ptr_Tx_stat_el_cfg_struct; /* a pointer to the transmit status element configuration structure */
|
||||
unsigned long ptr_Rx_stat_el_cfg_struct; /* a pointer to the receive status element configuration structure */
|
||||
} PHY_CONFIGURATION_STRUCT;
|
||||
|
||||
/* settings for the 'line_config_options' */
|
||||
#define PHY_INTERFACE_LEVEL_V35 0x0001 /* V.35 interface level */
|
||||
#define PHY_INTERFACE_LEVEL_RS232 0x0002 /* RS-232 interface level */
|
||||
|
||||
/* settings for the 'modem_config_options' */
|
||||
#define PHY_MANUAL_DTR_RTS 0x0001 /* don't automatically raise DTR and RTS when performing an */
|
||||
/* PHY_ENABLE_COMMUNICATIONS command */
|
||||
#define PHY_IGNORE_CHG_MODEM_STATUS 0x0002 /* don't report changes in modem status to the application */
|
||||
|
||||
/* settings for the 'API_options' */
|
||||
#define PHY_DISCARD_RX_UNASSIGNED_CELLS 0x0001 /* discard incoming Unassigned Cells */
|
||||
#define PHY_DISCARD_RX_IDLE_CELLS 0x0002 /* discard incoming Idle Cells */
|
||||
#define PHY_DISCARD_RX_PHYS_LAYER_CELLS 0x0004 /* discard incoming Physical Layer Cells */
|
||||
#define PHY_TRANSPARENT_TX_RX_CELLS 0x0010 /* cells passed to and from the application transparently */
|
||||
#define PHY_DECODED_TX_RX_CELLS 0x0020 /* cells decoded and formatted by the PHY firmware */
|
||||
|
||||
/* settings for the 'protocol_options' */
|
||||
#define PHY_UNI 0x0001 /* configure as a User-Network Interface */
|
||||
#define PHY_NNI 0x0002 /* configure as a Network Node Interface */
|
||||
#define PHY_MANUAL_RX_SYNC 0x0100 /* use user-defined Rx synchronization parameters */
|
||||
|
||||
/* settings for the 'HEC_options' */
|
||||
#define PHY_DISABLE_RX_HEC_CHECK 0x0001 /* disable the checking of the HEC value in received cells */
|
||||
#define PHY_DISABLE_AUTO_SYNC_BAD_HEC 0x0002 /* disable automatic resynchronization on receipt of cells with bad HEC values */
|
||||
#define PHY_DISABLE_RX_COSET 0x0010 /* disable XOR with COSET when checking the HEC value in received cells */
|
||||
#define PHY_DISABLE_TX_COSET 0x0020 /* disable XOR with COSET when setting the HEC value in transmitted cells */
|
||||
#define PHY_CUSTOM_RX_COSET 0x0040 /* use a custom COSET when checking the HEC value in received cells */
|
||||
#define PHY_CUSTOM_TX_COSET 0x0080 /* use a custom COSET when setting the HEC value in transmitted cells */
|
||||
|
||||
/* bit settings for the 'buffer_options' */
|
||||
#define PHY_TX_ONLY 0x0001 /* transmit only (no reception) */
|
||||
#define PHY_RX_ONLY 0x0002 /* receive only (no transmission) */
|
||||
#define PHY_SINGLE_TX_BUFFER 0x0010 /* configure a single transmit buffer */
|
||||
|
||||
/* settings for the 'statistics_options' */
|
||||
#define PHY_TX_BYTE_COUNT_STAT 0x0001 /* record the number of bytes transmitted */
|
||||
#define PHY_RX_BYTE_COUNT_STAT 0x0002 /* record the number of bytes received */
|
||||
#define PHY_TX_THROUGHPUT_STAT 0x0004 /* compute the transmit throughput */
|
||||
#define PHY_RX_THROUGHPUT_STAT 0x0008 /* compute the receive throughput */
|
||||
#define PHY_INCL_UNDERRUN_TX_THRUPUT 0x0010 /* include Tx underrun cells in Tx throughput */
|
||||
#define PHY_INCL_DISC_RX_THRUPUT 0x0020 /* include discarded (idle/unassigned) Rx cells in Rx throughput */
|
||||
|
||||
/* permitted minimum and maximum values for setting the PHY configuration */
|
||||
#define PHY_MAX_BAUD_RATE_S508 2666666 /* maximum baud rate (S508) */
|
||||
#define PHY_MAX_BAUD_RATE_S514 2750000 /* maximum baud rate (S514) */
|
||||
#define PHY_MIN_MODEM_TIMER 0 /* minimum modem status timer */
|
||||
#define PHY_MAX_MODEM_TIMER 6000 /* maximum modem status timer */
|
||||
#define PHY_MIN_RX_HUNT_TIMER 1 /* minimum receiver hunt timer */
|
||||
#define PHY_MAX_RX_HUNT_TIMER 6000 /* maximum receiver hunt timer */
|
||||
#define PHY_MIN_RX_SYNC_OFFSET 0 /* minimum offset of receiver synchronization bytes */
|
||||
#define PHY_MAX_RX_SYNC_OFFSET 50 /* maximum offset of receiver synchronization bytes */
|
||||
#define PHY_MIN_CELLS_IN_TX_BLOCK 1 /* minimum number of cells in an outgoing block */
|
||||
#define PHY_MAX_CELLS_IN_TX_BLOCK 38 /* maximum number of cells in an outgoing block */
|
||||
#define PHY_MIN_CELLS_IN_RX_BLOCK 1 /* minimum number of cells in an incoming block */
|
||||
#define PHY_MAX_CELLS_IN_RX_BLOCK 38 /* maximum number of cells in an incoming block */
|
||||
#define PHY_MAX_RX_SYNC_LOSS_TIMER 6000 /* maximum cell reception sync loss timer */
|
||||
#define PHY_MAX_RX_HEC_CHECK_TIMER 6000 /* maximum receive HEC check timer */
|
||||
#define PHY_MIN_RX_BAD_HEC_TIMER 5 /* minimum time for monitoring cells with bad HEC values */
|
||||
#define PHY_MAX_RX_BAD_HEC_TIMER 60000 /* maximum time for monitoring cells with bad HEC values */
|
||||
#define PHY_MIN_RX_BAD_HEC_COUNT 1 /* the minimum bad HEC counter */
|
||||
#define PHY_MAX_RX_BAD_HEC_COUNT 10000 /* the maximum bad HEC counter */
|
||||
#define PHY_MAX_RX_INCORRECT_HEC_COUNT 100 /* maximum receive consecutive incorrect HEC counter */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the PHY_READ_STATUS command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the PHY-level status structure */
|
||||
typedef struct {
|
||||
unsigned char Rx_sync_status; /* receiver synchronization status */
|
||||
unsigned char excep_conditions; /* PHY exception conditions */
|
||||
unsigned char no_Rx_blocks_avail; /* number of Rx blocks available for the application */
|
||||
unsigned short Rx_sync_time; /* receiver synchronization time */
|
||||
unsigned short Rx_sync_bytes; /* receiver synchronization bytes */
|
||||
unsigned short Rx_sync_offset; /* offset of the receiver synchronization bytes */
|
||||
} PHY_STATUS_STRUCT;
|
||||
|
||||
/* settings for the 'Rx_sync_status' variable */
|
||||
#define PHY_RX_SYNC_LOST 0x00 /* synchronization has been lost */
|
||||
#define PHY_RX_HUNT 0x01 /* receiver in hunt state */
|
||||
#define PHY_RX_PRESYNC 0x02 /* receiver in presync state */
|
||||
#define PHY_RX_SYNCHRONIZED 0x80 /* receiver synchronized */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the PHY_READ_OPERATIONAL_STATS command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the PHY-level operational statistics structure */
|
||||
typedef struct {
|
||||
|
||||
/* transmission statistics */
|
||||
unsigned long blocks_Tx_count; /* number of blocks transmitted */
|
||||
unsigned long bytes_Tx_count; /* number of bytes transmitted */
|
||||
unsigned long Tx_throughput; /* transmit throughput */
|
||||
unsigned long no_ms_for_Tx_thruput_comp; /* millisecond time used for the Tx throughput computation */
|
||||
unsigned long Tx_underrun_cell_count; /* number of underrun cells transmitted */
|
||||
unsigned long Tx_length_error_count; /* number of blocks transmitted with a length error */
|
||||
unsigned long reserved_Tx_stat0; /* reserved for later use */
|
||||
unsigned long reserved_Tx_stat1; /* reserved for later use */
|
||||
|
||||
/* reception statistics */
|
||||
unsigned long blocks_Rx_count; /* number of blocks received */
|
||||
unsigned long bytes_Rx_count; /* number of bytes received */
|
||||
unsigned long Rx_throughput; /* receive throughput */
|
||||
unsigned long no_ms_for_Rx_thruput_comp; /* millisecond time used for the Rx throughput computation */
|
||||
unsigned long Rx_blocks_discard_count; /* number of incoming blocks discarded */
|
||||
unsigned long Rx_Idle_Cell_discard_count; /* number of incoming Idle Cells discarded */
|
||||
unsigned long Rx_Unas_Cell_discard_count; /* number of incoming Unassigned Cells discarded */
|
||||
unsigned long Rx_Phys_Lyr_Cell_discard_count;/* number of incoming Physical Layer Cells discarded */
|
||||
unsigned long Rx_bad_HEC_count; /* number of incoming cells with a bad HEC */
|
||||
unsigned long reserved_Rx_stat0; /* reserved for later use */
|
||||
unsigned long reserved_Rx_stat1; /* reserved for later use */
|
||||
|
||||
/* synchronization statistics */
|
||||
unsigned long Rx_sync_attempt_count; /* receiver synchronization attempt count */
|
||||
unsigned long Rx_sync_achieved_count; /* receiver synchronization achieved count */
|
||||
unsigned long Rx_sync_failure_count; /* receiver synchronization failure count */
|
||||
unsigned long Rx_hunt_attempt_count; /* Rx hunt attempt count */
|
||||
unsigned long Rx_hunt_char_sync_count; /* Rx hunt character synchronization count */
|
||||
unsigned long Rx_hunt_timeout_count; /* Rx hunt timeout count */
|
||||
unsigned long Rx_hunt_achieved_count; /* Rx hunt achieved count */
|
||||
unsigned long Rx_hunt_failure_count; /* Rx hunt failure count */
|
||||
unsigned long Rx_presync_attempt_count; /* Rx presync attempt count */
|
||||
unsigned long Rx_presync_achieved_count; /* Rx presync achieved count */
|
||||
unsigned long Rx_presync_failure_count; /* Rx presync failure count */
|
||||
unsigned long Rx_resync_bad_HEC_count; /* Rx re-synchronization due to cells received with a bad HEC */
|
||||
unsigned long Rx_resync_reception_loss_count;/* Rx re-synchronization due to loss of reception */
|
||||
unsigned long Rx_resync_overrun_count; /* Rx re-synchronization due receiver overrun */
|
||||
unsigned long reserved_Rx_sync_stat0; /* reserved for later use */
|
||||
unsigned long reserved_Rx_sync_stat1; /* reserved for later use */
|
||||
} PHY_OPERATIONAL_STATS_STRUCT;
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the PHY_SET_TX_UNDERRUN_CONFIG command
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the PHY transmit underrun cell structure */
|
||||
typedef struct {
|
||||
unsigned char Tx_underrun_cell_GFC; /* the GFC value in a Tx underrun cell */
|
||||
unsigned char Tx_underrun_cell_PT; /* the PT value in a Tx underrun cell */
|
||||
unsigned char Tx_underrun_cell_CLP; /* the CLP value in a Tx underrun cell */
|
||||
unsigned char Tx_underrun_cell_payload; /* the payload character in a Tx underrun cell */
|
||||
} PHY_TX_UNDERRUN_STRUCT;
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for using application interrupts
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the structure used for the PHY_SET_INTERRUPT_TRIGGERS/PHY_READ_INTERRUPT_TRIGGERS command */
|
||||
typedef struct {
|
||||
unsigned char interrupt_triggers; /* interrupt trigger configuration */
|
||||
unsigned char IRQ; /* IRQ to be used */
|
||||
unsigned short interrupt_timer; /* interrupt timer */
|
||||
unsigned short misc_interrupt_bits; /* miscellaneous interrupt bits */
|
||||
} PHY_INT_TRIGGERS_STRUCT;
|
||||
|
||||
/* 'interrupt_triggers' bit settings */
|
||||
#define PHY_INT_RX 0x01 /* interrupt on reception */
|
||||
#define PHY_INT_TX 0x02 /* interrupt on transmission */
|
||||
#define PHY_INT_COMMAND_COMPLETE 0x04 /* interrupt when an interface command is complete */
|
||||
#define PHY_INT_TIMER 0x08 /* interrupt on a defined 1/100th second timeout */
|
||||
#define PHY_INT_GLOBAL_EXCEP_COND 0x10 /* interrupt on a global exception condition */
|
||||
#define PHY_INT_PHY_EXCEP_COND 0x20 /* interrupt on a PHY-level exception condition */
|
||||
#define PHY_INT_TRACE 0x80 /* interrupt when trace data is available */
|
||||
|
||||
/* 'interrupt_timer' limitation */
|
||||
#define MAX_INTERRUPT_TIMER_VALUE 60000 /* the maximum permitted timer interrupt value */
|
||||
|
||||
/* interrupt types indicated at 'interrupt_type' byte of the INTERRUPT_INFORMATION_STRUCT */
|
||||
#define PHY_NO_INT_PEND 0x00 /* no interrups are pending */
|
||||
#define PHY_RX_INT_PEND 0x01 /* a receive interrupt is pending */
|
||||
#define PHY_TX_INT_PEND 0x02 /* a transmit interrupt is pending */
|
||||
#define PHY_COMMAND_COMPLETE_INT_PEND 0x04 /* a 'command complete' interrupt is pending */
|
||||
#define PHY_TIMER_INT_PEND 0x08 /* a timer interrupt is pending */
|
||||
#define PHY_GLOBAL_EXCEP_COND_INT_PEND 0x10 /* a global exception condition interrupt is pending */
|
||||
#define PHY_PHY_EXCEP_COND_INT_PEND 0x20 /* a PHY exception condition interrupt is pending */
|
||||
#define PHY_TRACE_INT_PEND 0x80 /* a trace data interrupt is pending */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for block transmission
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the block transmit status element configuration structure */
|
||||
typedef struct {
|
||||
unsigned short number_Tx_status_els; /* number of transmit status elements */
|
||||
unsigned long base_addr_Tx_status_els; /* base address of the transmit element list */
|
||||
unsigned long next_Tx_status_el_to_use; /* pointer to the next transmit element to be used */
|
||||
} PHY_TX_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
/* the block transmit status element structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag; /* opp flag */
|
||||
unsigned short block_length; /* length of the block to be transmitted */
|
||||
unsigned char misc_Tx_bits; /* miscellaneous Tx bits */
|
||||
unsigned char Tx_underrun_cell_GFC; /* the GFC value in a Tx underrun cell */
|
||||
unsigned char Tx_underrun_cell_PT; /* the PT value in a Tx underrun cell */
|
||||
unsigned char Tx_underrun_cell_CLP; /* the CLP value in a Tx underrun cell */
|
||||
unsigned char Tx_underrun_cell_payload; /* the payload character in a Tx underrun cell */
|
||||
unsigned char reserved[4]; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr; /* pointer to the data area */
|
||||
} PHY_TX_STATUS_EL_STRUCT;
|
||||
|
||||
/* settings for the 'misc_Tx_bits' */
|
||||
#define PHY_UPDATE_TX_UNDERRUN_CONFIG 0x01 /* update the transmit underrun cell configuration */
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for block reception
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the block receive status element configuration structure */
|
||||
typedef struct {
|
||||
unsigned short number_Rx_status_els; /* number of receive status elements */
|
||||
unsigned long base_addr_Rx_status_els; /* base address of the receive element list */
|
||||
unsigned long next_Rx_status_el_to_use; /* pointer to the next receive element to be used */
|
||||
} PHY_RX_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
/* the block receive status element structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag; /* opp flag */
|
||||
unsigned short block_length; /* length of the received block */
|
||||
unsigned char misc_Rx_bits; /* miscellaneous Rx bits */
|
||||
unsigned short time_stamp; /* receive time stamp */
|
||||
unsigned char reserved[6]; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr; /* pointer to the data area */
|
||||
} PHY_RX_STATUS_EL_STRUCT;
|
||||
|
||||
/* settings for the 'misc_Rx_bits' */
|
||||
#define RX_OVERRUN_ERROR 0x04 /* the incoming block has an overrun error */
|
||||
#define HEC_ERROR 0x08 /* the received cell has a HEC error */
|
||||
|
||||
/* structure used for transmitting and receiving cells that are decoded and formatted by the PHY firmware */
|
||||
typedef struct {
|
||||
unsigned char reserved[5]; /* reserved for internal use */
|
||||
unsigned char payload[48]; /* information payload */
|
||||
unsigned short GFC_VPI; /* GFC (Generic Flow Control)/VPI (Virtual Path Identifier) */
|
||||
unsigned short VCI; /* VCI (Virtual Channel Identifier) */
|
||||
unsigned char PT; /* PT (Payload Type) */
|
||||
unsigned char CLP; /* CLP (Cell Loss Priority) */
|
||||
unsigned char HEC; /* HEC (Header Error Control) */
|
||||
} PHY_TX_RX_DECODE_STRUCT;
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants defining the shared memory information area
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the global information structure */
|
||||
typedef struct {
|
||||
unsigned char global_status; /* global status */
|
||||
unsigned char modem_status; /* current modem status */
|
||||
unsigned char global_excep_conditions; /* global exception conditions */
|
||||
unsigned char glob_info_reserved[5]; /* reserved */
|
||||
unsigned char code_name[4]; /* code name */
|
||||
unsigned char code_version[4]; /* code version */
|
||||
} GLOBAL_INFORMATION_STRUCT;
|
||||
|
||||
/* the PHY information structure */
|
||||
typedef struct {
|
||||
unsigned char Rx_sync_status; /* receiver synchronization status */
|
||||
unsigned char PHY_excep_conditions; /* PHY exception conditions */
|
||||
unsigned char no_Rx_blocks_avail; /* number of Rx blocks available for the application */
|
||||
unsigned char PHY_info_reserved[13]; /* reserved */
|
||||
} PHY_INFORMATION_STRUCT;
|
||||
|
||||
/* the interrupt information structure */
|
||||
typedef struct {
|
||||
unsigned char interrupt_type; /* type of interrupt triggered */
|
||||
unsigned char interrupt_permission; /* interrupt permission mask */
|
||||
unsigned char int_info_reserved[14]; /* reserved */
|
||||
} INTERRUPT_INFORMATION_STRUCT;
|
||||
|
||||
/* the front-end information structure */
|
||||
typedef struct {
|
||||
unsigned char parallel_port_A_input; /* input - parallel port A */
|
||||
unsigned char parallel_port_B_input; /* input - parallel port B */
|
||||
unsigned char FT1_INS_alarm_condition; /* the current FT1 in-service/alarm condition */
|
||||
unsigned char FT1_info_reserved[13]; /* reserved */
|
||||
} FE_INFORMATION_STRUCT;
|
||||
|
||||
/* the shared memory area information structure */
|
||||
typedef struct {
|
||||
GLOBAL_INFORMATION_STRUCT global_info_struct; /* the global information structure */
|
||||
PHY_INFORMATION_STRUCT PHY_info_struct; /* the PHY information structure */
|
||||
INTERRUPT_INFORMATION_STRUCT interrupt_info_struct;/* the interrupt information structure */
|
||||
FE_INFORMATION_STRUCT FE_info_struct; /* the front-end information structure */
|
||||
} SHARED_MEMORY_INFO_STRUCT;
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
#undef wan_udphdr_data
|
||||
#define wan_udphdr_data wan_udphdr_u.atm.data
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#undef wan_udp_data
|
||||
#define wan_udp_data wan_udp_hdr.wan_udphdr_u.atm.data
|
||||
#endif
|
||||
|
||||
|
||||
//#define SHARED_MEMORY_INFO_STRUCT void
|
||||
//#define CONFIGURATION_STRUCT PHY_CONFIGURATION_STRUCT
|
||||
//#define INTERRUPT_INFORMATION_STRUCT void
|
||||
#define DATA_RX_STATUS_EL_STRUCT PHY_RX_STATUS_EL_STRUCT
|
||||
#define DATA_TX_STATUS_EL_STRUCT PHY_TX_STATUS_EL_STRUCT
|
||||
#define INT_TRIGGERS_STRUCT PHY_INT_TRIGGERS_STRUCT
|
||||
#define TX_STATUS_EL_CFG_STRUCT PHY_TX_STATUS_EL_CFG_STRUCT
|
||||
#define RX_STATUS_EL_CFG_STRUCT PHY_RX_STATUS_EL_CFG_STRUCT
|
||||
//#define TRACE_STATUS_EL_CFG_STRUCT void
|
||||
//#define TRACE_STATUS_ELEMENT_STRUCT void
|
||||
//#define LINE_TRACE_CONFIG_STRUCT void
|
||||
//#define COMMS_ERROR_STATS_STRUCT void
|
||||
#define OPERATIONAL_STATS_STRUCT PHY_OPERATIONAL_STATS_STRUCT
|
||||
|
||||
#define DFLT_TEMPLATE_VALUE ...
|
||||
|
||||
#define WANCONFIG_FRMW WANCONFIG_ATM
|
||||
|
||||
#define COMMAND_OK OK
|
||||
|
||||
#define APP_INT_ON_TIMER PHY_INT_TIMER
|
||||
#define APP_INT_ON_TX_FRAME PHY_INT_TX
|
||||
#define APP_INT_ON_RX_FRAME PHY_INT_RX
|
||||
#define APP_INT_ON_GLOBAL_EXCEP_COND PHY_INT_GLOBAL_EXCEP_COND
|
||||
#define APP_INT_ON_EXCEP_COND PHY_INT_PHY_EXCEP_COND
|
||||
#define APP_INT_ON_COMMAND_COMPLETE PHY_INT_COMMAND_COMPLETE
|
||||
|
||||
|
||||
#define COMMAND_COMPLETE_APP_INT_PEND PHY_COMMAND_COMPLETE_INT_PEND
|
||||
#define RX_APP_INT_PEND PHY_RX_INT_PEND
|
||||
#define TX_APP_INT_PEND PHY_TX_INT_PEND
|
||||
#define EXCEP_COND_APP_INT_PEND PHY_PHY_EXCEP_COND_INT_PEND
|
||||
#define GLOBAL_EXCEP_COND_APP_INT_PEND PHY_GLOBAL_EXCEP_COND_INT_PEND
|
||||
#define TIMER_APP_INT_PEND PHY_TIMER_INT_PEND
|
||||
#define TRACE_APP_INT_PEND PHY_TRACE_INT_PEND
|
||||
|
||||
|
||||
#define READ_CODE_VERSION PHY_READ_CODE_VERSION
|
||||
|
||||
#define READ_CONFIGURATION PHY_READ_CONFIGURATION
|
||||
#define SET_CONFIGURATION PHY_SET_CONFIGURATION
|
||||
|
||||
#define DISABLE_COMMUNICATIONS PHY_DISABLE_COMMUNICATIONS
|
||||
#define ENABLE_COMMUNICATIONS PHY_ENABLE_COMMUNICATIONS
|
||||
|
||||
#define SET_INTERRUPT_TRIGGERS PHY_SET_INTERRUPT_TRIGGERS
|
||||
#define READ_INTERRUPT_TRIGGERS PHY_READ_INTERRUPT_TRIGGERS
|
||||
|
||||
#define UDPMGMT_SIGNATURE "ATMPIPEA"
|
||||
|
||||
//#define FT1_MONITOR_STATUS_CTRL DFLT_TEMPLATE_VALUE
|
||||
//#define ENABLE_READ_FT1_STATUS DFLT_TEMPLATE_VALUE
|
||||
//#define ENABLE_READ_FT1_OP_STATS DFLT_TEMPLATE_VALUE
|
||||
//#define CPIPE_FT1_READ_STATUS DFLT_TEMPLATE_VALUE
|
||||
//#define TRACE_INACTIVE DFLT_TEMPLATE_VALUE
|
||||
|
||||
//#define READ_GLOBAL_STATISTICS DFLT_TEMPLATE_VALUE
|
||||
//#define READ_MODEM_STATUS DFLT_TEMPLATE_VALUE
|
||||
//#define READ_LINK_STATUS DFLT_TEMPLATE_VALUE
|
||||
//#define READ_COMMS_ERROR_STATS DFLT_TEMPLATE_VALUE
|
||||
//#define READ_TRACE_CONFIGURATION DFLT_TEMPLATE_VALUE
|
||||
//#define GET_TRACE_INFO DFLT_TEMPLATE_VALUE
|
||||
|
||||
enum {
|
||||
ROUTER_UP_TIME = 0x50,
|
||||
FT1_READ_STATUS,
|
||||
SET_FT1_MODE,
|
||||
ENABLE_TRACING,
|
||||
DISABLE_TRACING,
|
||||
GET_TRACE_INFO,
|
||||
FT1_MONITOR_STATUS_CTRL,
|
||||
ENABLE_READ_FT1_STATUS,
|
||||
ENABLE_READ_FT1_OP_STATS,
|
||||
READ_FT1_OPERATIONAL_STATS,
|
||||
ATM_LINK_STATUS
|
||||
};
|
||||
|
||||
#define ATM_TRACE_CELL 0x01
|
||||
#define ATM_TRACE_PDU 0x02
|
||||
#define ATM_TRACE_DATA 0x04
|
||||
|
||||
|
||||
#define READ_OPERATIONAL_STATS PHY_READ_OPERATIONAL_STATS
|
||||
//#define SET_TRACE_CONFIGURATION DFLT_TEMPLATE_VALUE
|
||||
//#define TRACE_ACTIVE DFLT_TEMPLATE_VALUE
|
||||
|
||||
#define EXCEP_IRQ_TIMEOUT EXCEP_APP_IRQ_TIMEOUT
|
||||
#define READ_EXCEPTION_CONDITION PHY_READ_EXCEPTION_CONDITION
|
||||
#define EXCEP_LINK_ACTIVE DFLT_TEMPLATE_VALUE
|
||||
#define EXCEP_LINK_INACTIVE_MODEM DFLT_TEMPLATE_VALUE
|
||||
#define EXCEP_LINK_INACTIVE_KPALV DFLT_TEMPLATE_VALUE
|
||||
#define EXCEP_IP_ADDRESS_DISCOVERED DFLT_TEMPLATE_VALUE
|
||||
#define EXCEP_LOOPBACK_CONDITION DFLT_TEMPLATE_VALUE
|
||||
#define NO_EXCEP_COND_TO_REPORT DFLT_TEMPLATE_VALUE
|
||||
|
||||
//#define READ_GLOBAL_EXCEPTION_CONDITION DFLT_TEMPLATE_VALUE
|
||||
//#define EXCEP_MODEM_STATUS_CHANGE DFLT_TEMPLATE_VALUE
|
||||
#define DCD_HIGH 0x08
|
||||
#define CTS_HIGH 0x20
|
||||
|
||||
#define INTERFACE_LEVEL_RS232 PHY_INTERFACE_LEVEL_RS232
|
||||
#define INTERFACE_LEVEL_V35 PHY_INTERFACE_LEVEL_V35
|
||||
|
||||
|
||||
#define MIN_WP_PRI_MTU 1500
|
||||
#define MAX_WP_PRI_MTU MIN_WP_PRI_MTU
|
||||
#define DEFAULT_WP_PRI_MTU MIN_WP_PRI_MTU
|
||||
|
||||
#define ATM_CELL_SIZE 53
|
||||
#define ATM_OVERHEAD 1.1
|
||||
#define MIN_WP_SEC_MTU 50
|
||||
#define MAX_WP_SEC_MTU PHY_MAX_CELLS_IN_RX_BLOCK*ATM_CELL_SIZE/ATM_OVERHEAD
|
||||
#define DEFAULT_WP_SEC_MTU 1500
|
||||
|
||||
|
||||
/* reasons for enabling the timer interrupt on the adapter */
|
||||
#define TMR_INT_ENABLED_UDP 0x01
|
||||
#define TMR_INT_ENABLED_UPDATE 0x02
|
||||
#define TMR_INT_ENABLED_CONFIG 0x10
|
||||
#define TMR_INT_ENABLED_TE 0x20
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define PRI_BASE_ADDR_MB_STRUCT BASE_ADDR_MB_STRUCT
|
||||
static __inline void init_card_mailbox(sdla_t *card)
|
||||
{
|
||||
/* Initialize protocol-specific fields */
|
||||
if(card->hw.type != SDLA_S514){
|
||||
card->mbox = (void *) card->hw.dpmbase;
|
||||
}else{
|
||||
/* for a S514 adapter, set a pointer to the actual mailbox in the */
|
||||
/* allocated virtual memory area */
|
||||
card->mbox = (void *) card->hw.dpmbase + PRI_BASE_ADDR_MB_STRUCT;
|
||||
}
|
||||
}
|
||||
|
||||
static __inline wan_mbox_t *get_card_mailbox(sdla_t *card)
|
||||
{
|
||||
return (wan_mbox_t*)card->mbox;
|
||||
}
|
||||
|
||||
static __inline void *get_card_flags(sdla_t *card)
|
||||
{
|
||||
return card->flags;
|
||||
}
|
||||
|
||||
static __inline void set_card_flags(sdla_t *card, void *ptr)
|
||||
{
|
||||
card->flags = ptr;
|
||||
}
|
||||
static __inline void *get_card_rxmb(sdla_t *card)
|
||||
{
|
||||
return card->u.atm.rxmb;
|
||||
}
|
||||
|
||||
static __inline void set_card_rxmb(sdla_t *card, void *ptr)
|
||||
{
|
||||
card->u.atm.rxmb = ptr;
|
||||
if((void*)ptr > card->u.atm.rxbuf_last){
|
||||
card->u.atm.rxmb = card->u.atm.rxbuf_base;
|
||||
}
|
||||
}
|
||||
|
||||
static __inline void *get_card_txbuf(sdla_t *card)
|
||||
{
|
||||
return card->u.atm.txbuf;
|
||||
}
|
||||
|
||||
static __inline void set_card_txbuf(sdla_t *card, void *ptr)
|
||||
{
|
||||
card->u.atm.txbuf = ptr;
|
||||
if ((void*)ptr > card->u.atm.txbuf_last){
|
||||
card->u.atm.txbuf = card->u.atm.txbuf_base;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
|
@ -0,0 +1,366 @@
|
|||
/***************************************************************************
|
||||
* sdla_bri.h Sangoma ISDN-BRI definitions (for Cologne XHFC-2SU chip).
|
||||
*
|
||||
* Author(s): David Rokhvarg <davidr@sangoma.com>
|
||||
*
|
||||
* Copyright: (c) 1984 - 2007 Sangoma Technologies Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* ============================================================================
|
||||
* February 14, 2007 David Rokhvarg
|
||||
* v1.0 Initial version.
|
||||
*
|
||||
* February 26, 2008 David Rokhvarg
|
||||
* v1.1 Imrovements in SU State transition code.
|
||||
* Implemented T3 and T4 timers.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __SDLA_BRI_H
|
||||
# define __SDLA_BRI_H
|
||||
|
||||
#if defined(__LINUX__)
|
||||
# include <linux/xhfc24succ.h>
|
||||
#else
|
||||
# include <xhfc24succ.h>
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
** DEFINES and MACROS
|
||||
*******************************************************************************/
|
||||
|
||||
#define IS_BRI_CARD(card) IS_BRI_FEMEDIA(&(card)->fe)
|
||||
|
||||
#define WAN_BRI_START_CHANNEL 1
|
||||
|
||||
#define MAX_BRI_REMORAS 4
|
||||
#define MAX_BRI_MODULES_PER_REMORA 3
|
||||
|
||||
/*
|
||||
Maximum of 4 remoras, 3 modules on each - maximum 12 modules.
|
||||
On each module there is 1 dual-port ISDN BRI chip.
|
||||
On each line there are 2 B-channels and 1 D-channel.
|
||||
*/
|
||||
#define MAX_BRI_MODULES 12
|
||||
#define MAX_BRI_CHANNELS 2 /* Number of channels per device */
|
||||
#define MAX_BRI_LINES (MAX_BRI_MODULES*MAX_BRI_CHANNELS)
|
||||
|
||||
/*
|
||||
The maximum number of BRI timeslots is 32.
|
||||
This is needed for the d-chan, which is always at the otherwise unused timeslot 31.
|
||||
But AFT hardware is actually using only 24 timeslots - only for the b-chans.
|
||||
*/
|
||||
#define MAX_TIMESLOTS 32
|
||||
#define BRI_DCHAN_LOGIC_CHAN 31
|
||||
|
||||
#define BRI_DCHAN_ACTIVE_CFG_CHAN 2
|
||||
|
||||
#define MAX_BRI_TIMESLOTS 3 /* this is the number of b-chans (2) and the d-chan on one BRI line */
|
||||
|
||||
#define MAX_TENT_CHANNELS MAX_BRI_MODULES
|
||||
|
||||
#define MOD_TYPE_NONE 0 /* corresponds to module which is not installed */
|
||||
#define MOD_TYPE_NT 1
|
||||
#define MOD_TYPE_TE 2
|
||||
#define MOD_TYPE_TEST 3
|
||||
|
||||
#define WP_BRI_DECODE_MOD_TYPE(type) \
|
||||
(type == MOD_TYPE_NT) ? "NT" : \
|
||||
(type == MOD_TYPE_TE) ? "TE" : "Unknown"
|
||||
|
||||
/* SPI interface */
|
||||
#define MOD_CHAIN_DISABLED 0
|
||||
#define MOD_CHAIN_ENABLED 1
|
||||
|
||||
#define SPI_INTERFACE_REG 0x54
|
||||
#define SPI_MAX_RETRY_COUNT 10
|
||||
|
||||
#define MOD_SPI_RESET 0x40000000
|
||||
#define MOD_SPI_BUSY 0x80000000
|
||||
#define MOD_SPI_V3_STAT 0x08000000 /* bit 27 used as START in version 1-2-3 */
|
||||
#define MOD_SPI_START 0x08000000
|
||||
|
||||
#define BRI_FE_MAGIC 0x150D
|
||||
|
||||
#define WAN_BRI_OPERMODE_LEN 20
|
||||
|
||||
#if !defined(__WINDOWS__)
|
||||
/* Front-End UDP command */
|
||||
#define WAN_FE_TONES (WAN_FE_UDP_CMD_START + 0)
|
||||
#define WAN_FE_RING (WAN_FE_UDP_CMD_START + 1)
|
||||
#define WAN_FE_REGDUMP (WAN_FE_UDP_CMD_START + 2)
|
||||
#define WAN_FE_STATS (WAN_FE_UDP_CMD_START + 3)
|
||||
|
||||
#define WAN_BRI_SET_ECHOTUNE _IOW (ZT_CODE, 63, struct wan_bri_echo_coefs)
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
** XHFC definitions
|
||||
*******************************************************************************/
|
||||
|
||||
/* max. number of S/U ports per XHFC-2SU controller */
|
||||
#define BRI_MAX_PORTS_PER_CHIP 2
|
||||
#define PORT_0 0
|
||||
#define PORT_1 1
|
||||
|
||||
/* flags in _u16 port mode */
|
||||
#define PORT_UNUSED 0x0000
|
||||
#define PORT_MODE_NT 0x0001
|
||||
#define PORT_MODE_TE 0x0002
|
||||
#define PORT_MODE_S0 0x0004
|
||||
#define PORT_MODE_UP 0x0008
|
||||
#define PORT_MODE_EXCH_POL 0x0010
|
||||
#define PORT_MODE_LOOP 0x0020
|
||||
#define NT_TIMER 0x8000
|
||||
|
||||
/* NT / TE defines */
|
||||
#define NT_T1_COUNT 25 /* number of 4ms interrupts for G2 timeout */
|
||||
#define CLK_DLY_TE 0x0e /* CLKDEL in TE mode */
|
||||
#define CLK_DLY_NT 0x6c /* CLKDEL in NT mode */
|
||||
#define STA_ACTIVATE 0x60 /* start activation in A_SU_WR_STA */
|
||||
#define STA_DEACTIVATE 0x40 /* start deactivation in A_SU_WR_STA */
|
||||
#define LIF_MODE_NT 0x04 /* Line Interface NT mode */
|
||||
|
||||
#define XHFC_TIMER_T3 8000 /* 8s activation timer T3 */
|
||||
#define XHFC_TIMER_T4 500 /* 500ms deactivation timer T4 */
|
||||
|
||||
/* xhfc Layer1 physical commands */
|
||||
#define HFC_L1_ACTIVATE_TE 0x01
|
||||
#define HFC_L1_FORCE_DEACTIVATE_TE 0x02
|
||||
#define HFC_L1_ACTIVATE_NT 0x03
|
||||
#define HFC_L1_DEACTIVATE_NT 0x04
|
||||
#define HFC_L1_TESTLOOP_B1 0x05
|
||||
#define HFC_L1_TESTLOOP_B2 0x06
|
||||
|
||||
/* xhfc Layer1 Flags (stored in bri_xhfc_port_t->l1_flags) */
|
||||
#define HFC_L1_ACTIVATING 1
|
||||
#define HFC_L1_ACTIVATED 2
|
||||
#define HFC_L1_DEACTTIMER 4
|
||||
#define HFC_L1_ACTTIMER 8
|
||||
|
||||
/* Layer1 timer Flags (stored in bri_xhfc_port_t->timer_flags) */
|
||||
#define T3_TIMER_ACTIVE 1
|
||||
#define T4_TIMER_ACTIVE 2
|
||||
|
||||
#define FIFO_MASK_TX 0x55555555
|
||||
#define FIFO_MASK_RX 0xAAAAAAAA
|
||||
|
||||
|
||||
#ifndef MAX_DFRAME_LEN_L1
|
||||
#define MAX_DFRAME_LEN_L1 300
|
||||
#endif
|
||||
|
||||
#define USE_F0_COUNTER 1 /* akkumulate F0 counter diff every irq */
|
||||
#define TRANSP_PACKET_SIZE 0 /* minium tranparent packet size for transmittion to upper layer */
|
||||
|
||||
typedef struct sdla_bri_cfg_ {
|
||||
int not_used;
|
||||
int opermode;
|
||||
char opermode_name[WAN_BRI_OPERMODE_LEN];
|
||||
/* int tdmv_law;*/ /* WAN_TDMV_ALAW or WAN_TDMV_MULAW */
|
||||
char clock_mode;
|
||||
} sdla_bri_cfg_t;
|
||||
|
||||
#if defined(WAN_KERNEL)
|
||||
|
||||
#if !defined(WAN_DEBUG_FE)
|
||||
|
||||
/* no debugging info compiled */
|
||||
/* NT/TE */
|
||||
# define WRITE_BRI_REG(mod_no,reg,val) \
|
||||
fe->write_fe_reg( fe->card, \
|
||||
(int)mod_no, \
|
||||
fe->bri_param.mod[mod_no].type, \
|
||||
fe->bri_param.mod[mod_no].chain, \
|
||||
(int)reg, (int)val)
|
||||
|
||||
# define READ_BRI_REG(mod_no,reg) \
|
||||
fe->read_fe_reg( fe->card, \
|
||||
(int)mod_no, \
|
||||
fe->bri_param.mod[mod_no].type, \
|
||||
fe->bri_param.mod[mod_no].chain, \
|
||||
(int)reg)
|
||||
|
||||
#else
|
||||
|
||||
#warning "WAN_DEBUG_FE - Debugging Defined"
|
||||
/* NT/TE */
|
||||
# define WRITE_BRI_REG(mod_no,reg,val) \
|
||||
fe->write_fe_reg( fe->card, \
|
||||
(int)mod_no, \
|
||||
fe->bri_param.mod[mod_no].type, \
|
||||
fe->bri_param.mod[mod_no].chain, \
|
||||
(int)reg, (int)val,__FILE__,(int)__LINE__)
|
||||
|
||||
# define READ_BRI_REG(mod_no,reg) \
|
||||
fe->read_fe_reg( fe->card, \
|
||||
(int)mod_no, \
|
||||
fe->bri_param.mod[mod_no].type, \
|
||||
fe->bri_param.mod[mod_no].chain, \
|
||||
(int)reg,__FILE__,(int)__LINE__)
|
||||
|
||||
#endif/* #if !defined(WAN_DEBUG_FE) */
|
||||
|
||||
#define __READ_BRI_REG(mod_no,reg) \
|
||||
fe->__read_fe_reg( fe->card, \
|
||||
(int)mod_no, \
|
||||
fe->bri_param.mod[mod_no].type, \
|
||||
fe->bri_param.mod[mod_no].chain, \
|
||||
(int)reg)
|
||||
|
||||
|
||||
/***************************************************************/
|
||||
/* port struct for each S/U port */
|
||||
typedef struct {
|
||||
u_int8_t idx; /* port idx in hw->port[idx] */
|
||||
void *hw; /* back pointer to 'wp_bri_module_t' */
|
||||
u_int16_t mode; /* NT/TE / ST/U */
|
||||
u_int32_t l1_flags;
|
||||
u_int32_t timer_flags;
|
||||
|
||||
int drx_indx;
|
||||
int dtx_indx, bytes2transmit;
|
||||
u_int8_t drxbuf[MAX_DFRAME_LEN_L1];
|
||||
u_int8_t dtxbuf[MAX_DFRAME_LEN_L1];
|
||||
|
||||
/* layer1 ISDN timer */
|
||||
wan_timer_t t3_timer;
|
||||
wan_timer_t t4_timer;
|
||||
|
||||
/* chip registers */
|
||||
reg_a_su_rd_sta su_state;
|
||||
reg_a_su_ctrl0 su_ctrl0;
|
||||
reg_a_su_ctrl1 su_ctrl1;
|
||||
reg_a_su_ctrl2 su_ctrl2;
|
||||
reg_a_st_ctrl3 st_ctrl3;
|
||||
|
||||
/* DavidR */
|
||||
reg_a_sl_cfg sl_cfg;/* for data direction programming on pins STIO1 and STIO2 */
|
||||
|
||||
u_int32_t clock_routing_state, clock_routing_counter;
|
||||
|
||||
u_int32_t l1_state;/* BRI L1 current state of the line */
|
||||
int nt_timer;
|
||||
} bri_xhfc_port_t;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
** TYPEDEF STRUCTURE
|
||||
*******************************************************************************/
|
||||
typedef struct {
|
||||
unsigned int mod_no;
|
||||
/* Both ports of a module will always be in the
|
||||
SAME mode - TE or NT. */
|
||||
int type;
|
||||
int chain;
|
||||
unsigned long events;
|
||||
|
||||
#if 0
|
||||
#if defined(__WINDOWS__)
|
||||
wan_event_ctrl_t current_control_event;
|
||||
wan_event_ctrl_t *current_control_event_ptr;
|
||||
#else
|
||||
WAN_LIST_HEAD(, wan_event_ctrl_) event_head;
|
||||
#endif
|
||||
#endif
|
||||
/* TDM Voice applications */
|
||||
int sig;
|
||||
|
||||
/**********************************/
|
||||
int num_ports; /* number of S and U interfaces */
|
||||
int max_fifo; /* always 4 fifos per port */
|
||||
u_int8_t max_z; /* fifo depth -1 */
|
||||
|
||||
bri_xhfc_port_t port[BRI_MAX_PORTS_PER_CHIP]; /* 2 ports - one for each Line intercace */
|
||||
|
||||
u_int32_t irq_cnt; /* count irqs */
|
||||
u_int32_t f0_cnt; /* last F0 counter value */
|
||||
u_int32_t f0_akku; /* akkumulated f0 counter deltas */
|
||||
|
||||
/* chip registers */
|
||||
reg_r_pcm_md0 pcm_md0;
|
||||
reg_r_pcm_md1 pcm_md1;
|
||||
/**********************************/
|
||||
|
||||
void *fe; /* pointer back to 'sdla_fe_t' */
|
||||
|
||||
} wp_bri_module_t;
|
||||
|
||||
typedef struct {
|
||||
/* u_int16_t type; */
|
||||
unsigned int mod_no; /* A500 - ISDN BRI Remora */
|
||||
unsigned char ec_dtmf_port; /* EC DTMF: SOUT or ROUT */
|
||||
unsigned long ts_map;
|
||||
u_int8_t tone;
|
||||
} sdla_bri_event_t;
|
||||
|
||||
typedef struct sdla_bri_param {
|
||||
int not_used;
|
||||
|
||||
/* each module has 2 lines, */
|
||||
wp_bri_module_t mod[MAX_BRI_LINES];
|
||||
/*
|
||||
Maximum of 4 remoras, 3 modules on each - maximum 12 modules.
|
||||
On each module there is 1 dual-port ISDN BRI chip.
|
||||
On each line there are 2 B-channels and 1 D-channel.
|
||||
|
||||
It means we have 48 timeslots (B-channels only!), and 32 bits are not enough.
|
||||
First 0-23 timeslots will be mapped on 'module_map[0]' and 24-47 will be mapped
|
||||
on 'module_map[1]'.
|
||||
*/
|
||||
u_int32_t module_map[2]; /* Map of available module */
|
||||
u_int16_t max_fe_channels; /* Number of available modules */
|
||||
|
||||
u_int8_t critical;
|
||||
|
||||
/*
|
||||
Flag indicating if this logical 'card' (sdla_t) which represents a BRI line,
|
||||
is the 'clock reference port' for the physical A500 card.
|
||||
Only ONE 'card' may have this flag set to WANOPT_YES, all others must be
|
||||
WANOPT_NO.
|
||||
TE mode: if 'is_clock_master' is set to WANOPT_YES, clock recovered from
|
||||
the line will be routed to ALL other BRI modules on the card.
|
||||
*/
|
||||
u_int8_t is_clock_master;
|
||||
|
||||
} sdla_bri_param_t;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
DEFINES AND MACROS
|
||||
*******************************************************************************/
|
||||
|
||||
/* AFT register - Intel x86 definition. */
|
||||
typedef struct bri_reg{
|
||||
u_int32_t data:8; /* lsb */
|
||||
u_int32_t contrl:8;
|
||||
|
||||
u_int32_t reserv1:8;
|
||||
u_int32_t mod_addr:2; /* 00, 01, 10 - adresses modules,
|
||||
code 11 - address of status register per-remora.
|
||||
*/
|
||||
|
||||
u_int32_t remora_addr:4; /* Select Remora. Maximum is 4 (from 0 to 3) for BRI */
|
||||
|
||||
u_int32_t reset:1;
|
||||
u_int32_t start:1;/* msb */
|
||||
}bri_reg_t;
|
||||
|
||||
#define READ_BIT (1 << 7)
|
||||
#define ADDR_BIT (1 << 6)
|
||||
|
||||
/*******************************************************************************
|
||||
** FUNCTION PROTOTYPES
|
||||
*******************************************************************************/
|
||||
extern int wp_bri_iface_init(void*);
|
||||
|
||||
#endif/* WAN_KERNEL */
|
||||
|
||||
/***************************************************************/
|
||||
|
||||
#endif /* __SDLA_BRI_H */
|
|
@ -2,9 +2,9 @@
|
|||
#ifndef _BSC_HEADER_
|
||||
#define _BSC_HEADER_
|
||||
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
|
||||
/*========== MAILBOX COMMANDS AND RETURN CODES ==========*/
|
||||
#define BSC_READ 0x00
|
||||
#define BSC_WRITE 0x01
|
||||
|
@ -52,91 +52,91 @@
|
|||
*/
|
||||
/* control block */
|
||||
typedef struct {
|
||||
unsigned char opp_flag ;
|
||||
unsigned char command ;
|
||||
unsigned short buffer_length ;
|
||||
unsigned char return_code ;
|
||||
unsigned char misc_tx_rx_bits ;
|
||||
unsigned short heading_length ;
|
||||
unsigned short notify ;
|
||||
unsigned char station ;
|
||||
unsigned char poll_address ;
|
||||
unsigned char select_address ;
|
||||
unsigned char device_address ;
|
||||
unsigned char notify_extended ;
|
||||
unsigned char reserved ;
|
||||
unsigned char data[MDATALEN] ;
|
||||
unsigned char opp_flag ;
|
||||
unsigned char command ;
|
||||
unsigned short buffer_length ;
|
||||
unsigned char return_code ;
|
||||
unsigned char misc_tx_rx_bits ;
|
||||
unsigned short heading_length ;
|
||||
unsigned short notify ;
|
||||
unsigned char station ;
|
||||
unsigned char poll_address ;
|
||||
unsigned char select_address ;
|
||||
unsigned char device_address ;
|
||||
unsigned char notify_extended ;
|
||||
unsigned char reserved ;
|
||||
unsigned char data[MDATALEN] ;
|
||||
} BSC_MAILBOX_STRUCT;
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
unsigned char line_speed_number ;
|
||||
unsigned short max_data_frame_size ;
|
||||
unsigned char secondary_station ;
|
||||
unsigned char num_consec_PAD_eof ;
|
||||
unsigned char num_add_lead_SYN ;
|
||||
unsigned char conversational_mode ;
|
||||
unsigned char pp_dial_up_operation ;
|
||||
unsigned char switched_CTS_RTS ;
|
||||
unsigned char EBCDIC_encoding ;
|
||||
unsigned char auto_open ;
|
||||
unsigned char misc_bits ;
|
||||
unsigned char protocol_options1 ;
|
||||
unsigned char protocol_options2 ;
|
||||
unsigned short reserved_pp ;
|
||||
unsigned char max_retransmissions ;
|
||||
unsigned short fast_poll_retries ;
|
||||
unsigned short TTD_retries ;
|
||||
unsigned short restart_timer ;
|
||||
unsigned short pp_slow_restart_timer ;
|
||||
unsigned short TTD_timer ;
|
||||
unsigned short pp_delay_between_EOT_ENQ ;
|
||||
unsigned short response_timer ;
|
||||
unsigned short rx_data_timer ;
|
||||
unsigned short NAK_retrans_delay_timer ;
|
||||
unsigned short wait_CTS_timer ;
|
||||
unsigned char mp_max_consec_ETX ;
|
||||
unsigned char mp_general_poll_address ;
|
||||
unsigned short sec_poll_timeout ;
|
||||
unsigned char pri_poll_skips_inactive ;
|
||||
unsigned char sec_additional_stn_send_gpoll ;
|
||||
unsigned char pri_select_retries ;
|
||||
unsigned char mp_multipoint_options ;
|
||||
unsigned short reserved ;
|
||||
unsigned char line_speed_number ;
|
||||
unsigned short max_data_frame_size ;
|
||||
unsigned char secondary_station ;
|
||||
unsigned char num_consec_PAD_eof ;
|
||||
unsigned char num_add_lead_SYN ;
|
||||
unsigned char conversational_mode ;
|
||||
unsigned char pp_dial_up_operation ;
|
||||
unsigned char switched_CTS_RTS ;
|
||||
unsigned char EBCDIC_encoding ;
|
||||
unsigned char auto_open ;
|
||||
unsigned char misc_bits ;
|
||||
unsigned char protocol_options1 ;
|
||||
unsigned char protocol_options2 ;
|
||||
unsigned short reserved_pp ;
|
||||
unsigned char max_retransmissions ;
|
||||
unsigned short fast_poll_retries ;
|
||||
unsigned short TTD_retries ;
|
||||
unsigned short restart_timer ;
|
||||
unsigned short pp_slow_restart_timer ;
|
||||
unsigned short TTD_timer ;
|
||||
unsigned short pp_delay_between_EOT_ENQ ;
|
||||
unsigned short response_timer ;
|
||||
unsigned short rx_data_timer ;
|
||||
unsigned short NAK_retrans_delay_timer ;
|
||||
unsigned short wait_CTS_timer ;
|
||||
unsigned char mp_max_consec_ETX ;
|
||||
unsigned char mp_general_poll_address ;
|
||||
unsigned short sec_poll_timeout ;
|
||||
unsigned char pri_poll_skips_inactive ;
|
||||
unsigned char sec_additional_stn_send_gpoll ;
|
||||
unsigned char pri_select_retries ;
|
||||
unsigned char mp_multipoint_options ;
|
||||
unsigned short reserved ;
|
||||
} BSC_CONFIG_STRUCT;
|
||||
|
||||
|
||||
typedef struct {
|
||||
unsigned char max_tx_queue ;
|
||||
unsigned char max_rx_queue ;
|
||||
unsigned char station_flags ;
|
||||
unsigned char max_tx_queue ;
|
||||
unsigned char max_rx_queue ;
|
||||
unsigned char station_flags ;
|
||||
}ADD_STATION_STRUCT;
|
||||
|
||||
typedef struct {
|
||||
unsigned char station ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char reserved[13] ;
|
||||
unsigned char station ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char reserved[13] ;
|
||||
} api_rx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
void * data ;
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
void * data ;
|
||||
} api_rx_element_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char station ;
|
||||
unsigned char misc_tx_rx_bits ;
|
||||
unsigned char reserved[14] ;
|
||||
unsigned char station ;
|
||||
unsigned char misc_tx_rx_bits ;
|
||||
unsigned char reserved[14] ;
|
||||
} api_tx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
void * data ;
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
void * data ;
|
||||
} api_tx_element_t;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#define SIOC_WANPIPE_EXEC_CMD SIOC_WANPIPE_DEVPRIVATE
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Header: /usr/local/cvsroot/wanpipe_linux/code/include/sdla_bscstrm.h,v 1.3 2004/09/28 21:47:30 sangoma Exp $ */
|
||||
/* $Header: /usr/local/cvsroot/wanpipe_linux/code/include/sdla_bscstrm.h,v 1.4 2007/05/24 17:45:25 sangoma Exp $ */
|
||||
|
||||
|
||||
/*
|
||||
|
@ -12,6 +12,9 @@
|
|||
|
||||
/*
|
||||
* $Log: sdla_bscstrm.h,v $
|
||||
* Revision 1.4 2007/05/24 17:45:25 sangoma
|
||||
* Removed PACKED from include files
|
||||
*
|
||||
* Revision 1.3 2004/09/28 21:47:30 sangoma
|
||||
* *** empty log message ***
|
||||
*
|
||||
|
@ -234,25 +237,25 @@ typedef struct {
|
|||
#define RX_EXCESSIVE_LGTH_ERR_APP_LVL 0x20 /* the received block was too long (application level) */
|
||||
|
||||
typedef struct {
|
||||
unsigned char station ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char reserved[13] ;
|
||||
unsigned char station ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char reserved[13] ;
|
||||
} api_rx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
} api_rx_element_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char station ;
|
||||
unsigned char misc_tx_rx_bits ;
|
||||
unsigned char reserved[14] ;
|
||||
unsigned char station ;
|
||||
unsigned char misc_tx_rx_bits ;
|
||||
unsigned char reserved[14] ;
|
||||
} api_tx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
} api_tx_element_t;
|
||||
|
||||
#pragma pack()
|
||||
|
|
|
@ -13,13 +13,11 @@
|
|||
* Sep 24, 1998 Jaspreet Singh o Initial Version.
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
#ifndef __SDLA_BSTRM__
|
||||
#define __SDLA_BSTRM__
|
||||
#ifndef __SDLA_BSTRM_H__
|
||||
#define __SDLA_BSTRM_H__
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
|
||||
/* Status flag for determining whether to perform a check on socket receive
|
||||
* queue.
|
||||
*/
|
||||
|
@ -84,20 +82,20 @@ for the mailbox header area, we are left with a mailbox data size of 4064 bytes.
|
|||
|
||||
/* the mailbox structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the user command */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char misc_Tx_Rx_bits ; /* miscellaneous transmit and receive bits */
|
||||
unsigned char Rx_error_bits ; /* an indication of a block received with an error */
|
||||
unsigned short Rx_time_stamp ; /* a millisecond receive time stamp */
|
||||
unsigned char reserved[7] ; /* reserved for later use */
|
||||
char data[SIZEOF_MB_DATA_BFR] ; /* the data area */
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the user command */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char misc_Tx_Rx_bits ; /* miscellaneous transmit and receive bits */
|
||||
unsigned char Rx_error_bits ; /* an indication of a block received with an error */
|
||||
unsigned short Rx_time_stamp ; /* a millisecond receive time stamp */
|
||||
unsigned char reserved[7] ; /* reserved for later use */
|
||||
char data[SIZEOF_MB_DATA_BFR] ; /* the data area */
|
||||
} MAILBOX_STRUCT;
|
||||
|
||||
typedef struct {
|
||||
pid_t pid_num ;
|
||||
MAILBOX_STRUCT cmdarea ;
|
||||
pid_t pid_num ;
|
||||
MAILBOX_STRUCT cmdarea ;
|
||||
} CMDBLOCK_STRUCT;
|
||||
|
||||
/* definitions for setting the configuration */
|
||||
|
@ -134,18 +132,18 @@ typedef struct {
|
|||
|
||||
/* the configuration structure */
|
||||
typedef struct {
|
||||
unsigned long baud_rate ; /* the baud rate */
|
||||
unsigned long adapter_frequency ; /* the adapter frequecy */
|
||||
unsigned short max_data_length ; /* the maximum length of a BSC data block */
|
||||
unsigned short EBCDIC_encoding ; /* EBCDIC/ASCII encoding */
|
||||
unsigned short Rx_block_type ; /* the type of BSC block to be received */
|
||||
unsigned short no_consec_PADs_EOB ; /* the number of consecutive PADs indicating the end of the block */
|
||||
unsigned short no_add_lead_Tx_SYN_chars ; /* the number of additional leading transmit SYN characters */
|
||||
unsigned short no_bits_per_char ; /* the number of bits per character */
|
||||
unsigned short parity ; /* parity */
|
||||
unsigned short misc_config_options ; /* miscellaneous configuration options */
|
||||
unsigned short statistics_options ; /* statistic options */
|
||||
unsigned short modem_config_options ; /* modem configuration options */
|
||||
unsigned long baud_rate ; /* the baud rate */
|
||||
unsigned long adapter_frequency ; /* the adapter frequecy */
|
||||
unsigned short max_data_length ; /* the maximum length of a BSC data block */
|
||||
unsigned short EBCDIC_encoding ; /* EBCDIC/ASCII encoding */
|
||||
unsigned short Rx_block_type ; /* the type of BSC block to be received */
|
||||
unsigned short no_consec_PADs_EOB ; /* the number of consecutive PADs indicating the end of the block */
|
||||
unsigned short no_add_lead_Tx_SYN_chars ; /* the number of additional leading transmit SYN characters */
|
||||
unsigned short no_bits_per_char ; /* the number of bits per character */
|
||||
unsigned short parity ; /* parity */
|
||||
unsigned short misc_config_options ; /* miscellaneous configuration options */
|
||||
unsigned short statistics_options ; /* statistic options */
|
||||
unsigned short modem_config_options ; /* modem configuration options */
|
||||
} CONFIGURATION_STRUCT;
|
||||
|
||||
|
||||
|
@ -173,13 +171,13 @@ typedef struct {
|
|||
/* definitions for reading the operational statistics */
|
||||
/* the operational statistics structure */
|
||||
typedef struct {
|
||||
unsigned long no_blocks_Rx ; /* the number of data blocks received and made available for the application */
|
||||
unsigned long no_bytes_Rx ; /* the number of bytes received and made available for the application */
|
||||
unsigned long no_blocks_Tx ; /* the number of data blocks transmitted */
|
||||
unsigned long no_bytes_Tx ; /* the number of bytes transmitted */
|
||||
unsigned long no_blocks_Rx ; /* the number of data blocks received and made available for the application */
|
||||
unsigned long no_bytes_Rx ; /* the number of bytes received and made available for the application */
|
||||
unsigned long no_blocks_Tx ; /* the number of data blocks transmitted */
|
||||
unsigned long no_bytes_Tx ; /* the number of bytes transmitted */
|
||||
} OPERATIONAL_STATS_STRUCT;
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
/* definitions for interrupt usage */
|
||||
/* 'interrupt_triggers' bit mapping set by a SET_INTERRUPT_TRIGGERS command */
|
||||
|
@ -211,3 +209,7 @@ typedef struct {
|
|||
#define RX_OVERRUN_ERROR 0x02 /* a receive overrun error occurred */
|
||||
#define RX_EXCESSIVE_LGTH_ERR_INT_LVL 0x10 /* the received block was too long (interrupt level) */
|
||||
#define RX_EXCESSIVE_LGTH_ERR_APP_LVL 0x20 /* the received block was too long (application level) */
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#define _SDLA_CHDLC_H
|
||||
|
||||
#if defined(__LINUX__)
|
||||
# include <linux/if_wanpipe.h>
|
||||
# include <linux/wanpipe_sppp_iface.h>
|
||||
#else
|
||||
# include <wanpipe_sppp_iface.h>
|
||||
|
@ -65,12 +66,12 @@
|
|||
|
||||
#if 0
|
||||
typedef struct {
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the user command */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ; /* reserved for later */
|
||||
unsigned char data[SIZEOF_MB_DATA_BFR] ; /* the data area */
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the user command */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ; /* reserved for later */
|
||||
unsigned char data[SIZEOF_MB_DATA_BFR] ; /* the data area */
|
||||
} CHDLC_MAILBOX_STRUCT;
|
||||
#endif
|
||||
|
||||
|
@ -219,6 +220,15 @@ typedef struct {
|
|||
#define LINK_DISCONNECTED 0x21
|
||||
#define NO_TX_BFRS_AVAIL 0x24
|
||||
|
||||
typedef struct {
|
||||
unsigned char modem_status;
|
||||
} MODEM_STATUS_STRUCT;
|
||||
|
||||
#define SET_MODEM_DTR_HIGH 0x01
|
||||
#define SET_MODEM_RTS_HIGH 0x02
|
||||
|
||||
#define MODEM_CTS_MASK 0x20
|
||||
#define MODEM_DCD_MASK 0x08
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for the SET_GLOBAL_CONFIGURATION/READ_GLOBAL_CONFIGURATION commands
|
||||
|
@ -226,10 +236,10 @@ typedef struct {
|
|||
|
||||
/* the global configuration structure */
|
||||
typedef struct {
|
||||
unsigned short adapter_config_options ; /* adapter config options */
|
||||
unsigned short app_IRQ_timeout ; /* application IRQ timeout */
|
||||
unsigned int adapter_operating_frequency ; /* adapter operating frequency */
|
||||
unsigned short frame_transmit_timeout ;
|
||||
unsigned short adapter_config_options ; /* adapter config options */
|
||||
unsigned short app_IRQ_timeout ; /* application IRQ timeout */
|
||||
unsigned int adapter_operating_frequency ; /* adapter operating frequency */
|
||||
unsigned short frame_transmit_timeout ;
|
||||
} GLOBAL_CONFIGURATION_STRUCT;
|
||||
|
||||
/* settings for the 'app_IRQ_timeout' */
|
||||
|
@ -243,7 +253,7 @@ typedef struct {
|
|||
|
||||
/* the global statistics structure */
|
||||
typedef struct {
|
||||
unsigned short app_IRQ_timeout_count ;
|
||||
unsigned short app_IRQ_timeout_count ;
|
||||
} GLOBAL_STATS_STRUCT;
|
||||
|
||||
|
||||
|
@ -254,16 +264,16 @@ typedef struct {
|
|||
|
||||
/* the communications error statistics structure */
|
||||
typedef struct {
|
||||
unsigned short Rx_overrun_err_count ;
|
||||
unsigned short CRC_err_count ; /* receiver CRC error count */
|
||||
unsigned short Rx_abort_count ; /* abort frames recvd count */
|
||||
unsigned short Rx_dis_pri_bfrs_full_count ;/* receiver disabled */
|
||||
unsigned short comms_err_stat_reserved_1 ;/* reserved for later */
|
||||
unsigned short sec_Tx_abort_msd_Tx_int_count ; /* secondary - abort frames transmitted count (missed Tx interrupt) */
|
||||
unsigned short missed_Tx_und_int_count ; /* missed tx underrun interrupt count */
|
||||
unsigned short sec_Tx_abort_count ; /*secondary-abort frames tx count */
|
||||
unsigned short DCD_state_change_count ; /* DCD state change */
|
||||
unsigned short CTS_state_change_count ; /* CTS state change */
|
||||
unsigned short Rx_overrun_err_count ;
|
||||
unsigned short CRC_err_count ; /* receiver CRC error count */
|
||||
unsigned short Rx_abort_count ; /* abort frames recvd count */
|
||||
unsigned short Rx_dis_pri_bfrs_full_count ;/* receiver disabled */
|
||||
unsigned short comms_err_stat_reserved_1 ;/* reserved for later */
|
||||
unsigned short sec_Tx_abort_msd_Tx_int_count ; /* secondary - abort frames transmitted count (missed Tx interrupt) */
|
||||
unsigned short missed_Tx_und_int_count ; /* missed tx underrun interrupt count */
|
||||
unsigned short sec_Tx_abort_count ; /*secondary-abort frames tx count */
|
||||
unsigned short DCD_state_change_count ; /* DCD state change */
|
||||
unsigned short CTS_state_change_count ; /* CTS state change */
|
||||
} COMMS_ERROR_STATS_STRUCT;
|
||||
|
||||
|
||||
|
@ -274,9 +284,9 @@ typedef struct {
|
|||
|
||||
/* the trace configuration structure (SET_TRACE_CONFIGURATION/READ_TRACE_CONFIGURATION commands) */
|
||||
typedef struct {
|
||||
unsigned char trace_config ; /* trace configuration */
|
||||
unsigned short trace_deactivation_timer ; /* trace deactivation timer */
|
||||
unsigned int ptr_trace_stat_el_cfg_struct ; /* a pointer to the line trace element configuration structure */
|
||||
unsigned char trace_config ; /* trace configuration */
|
||||
unsigned short trace_deactivation_timer ; /* trace deactivation timer */
|
||||
unsigned int ptr_trace_stat_el_cfg_struct ; /* a pointer to the line trace element configuration structure */
|
||||
} LINE_TRACE_CONFIG_STRUCT;
|
||||
|
||||
/* 'trace_config' bit settings */
|
||||
|
@ -289,22 +299,22 @@ typedef struct {
|
|||
|
||||
/* the line trace status element configuration structure */
|
||||
typedef struct {
|
||||
unsigned short number_trace_status_elements ; /* number of line trace elements */
|
||||
unsigned int base_addr_trace_status_elements ; /* base address of the trace element list */
|
||||
unsigned int next_trace_element_to_use ; /* pointer to the next trace element to be used */
|
||||
unsigned int base_addr_trace_buffer ; /* base address of the trace data buffer */
|
||||
unsigned int end_addr_trace_buffer ; /* end address of the trace data buffer */
|
||||
unsigned short number_trace_status_elements ; /* number of line trace elements */
|
||||
unsigned int base_addr_trace_status_elements ; /* base address of the trace element list */
|
||||
unsigned int next_trace_element_to_use ; /* pointer to the next trace element to be used */
|
||||
unsigned int base_addr_trace_buffer ; /* base address of the trace data buffer */
|
||||
unsigned int end_addr_trace_buffer ; /* end address of the trace data buffer */
|
||||
} TRACE_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
/* the line trace status element structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short trace_length ; /* trace length */
|
||||
unsigned char trace_type ; /* trace type */
|
||||
unsigned short trace_time_stamp ; /* time stamp */
|
||||
unsigned short trace_reserved_1 ; /* reserved for later use */
|
||||
unsigned int trace_reserved_2 ; /* reserved for later use */
|
||||
unsigned int ptr_data_bfr ; /* ptr to the trace data buffer */
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short trace_length ; /* trace length */
|
||||
unsigned char trace_type ; /* trace type */
|
||||
unsigned short trace_time_stamp ; /* time stamp */
|
||||
unsigned short trace_reserved_1 ; /* reserved for later use */
|
||||
unsigned int trace_reserved_2 ; /* reserved for later use */
|
||||
unsigned int ptr_data_bfr ; /* ptr to the trace data buffer */
|
||||
} TRACE_STATUS_ELEMENT_STRUCT;
|
||||
|
||||
/* "trace_type" bit settings */
|
||||
|
@ -318,8 +328,8 @@ typedef struct {
|
|||
|
||||
/* the line trace statistics structure */
|
||||
typedef struct {
|
||||
unsigned int frames_traced_count ; /* number of frames traced */
|
||||
unsigned int trc_frms_not_recorded_count ; /* number of trace frames discarded */
|
||||
unsigned int frames_traced_count ; /* number of frames traced */
|
||||
unsigned int trc_frms_not_recorded_count ; /* number of trace frames discarded */
|
||||
} LINE_TRACE_STATS_STRUCT;
|
||||
|
||||
|
||||
|
@ -341,24 +351,24 @@ typedef struct {
|
|||
|
||||
/* the CHDLC configuration structure */
|
||||
typedef struct {
|
||||
unsigned int baud_rate ; /* the baud rate */
|
||||
unsigned short line_config_options ; /* line configuration options */
|
||||
unsigned short modem_config_options ; /* modem configration options */
|
||||
unsigned short modem_status_timer ; /* timer for monitoring modem status changes */
|
||||
unsigned short CHDLC_API_options ; /* CHDLC API options */
|
||||
unsigned short CHDLC_protocol_options ; /* CHDLC protocol options */
|
||||
unsigned short percent_data_buffer_for_Tx ; /* percentage data buffering used for Tx */
|
||||
unsigned short CHDLC_statistics_options ; /* CHDLC operational statistics options */
|
||||
unsigned short max_CHDLC_data_field_length ; /* the maximum length of the CHDLC Data field */
|
||||
unsigned short transmit_keepalive_timer ; /* the transmit keepalive timer */
|
||||
unsigned short receive_keepalive_timer ; /* the receive keepalive timer */
|
||||
unsigned short keepalive_error_tolerance ; /* the receive keepalive error tolerance */
|
||||
unsigned short SLARP_request_timer ; /* the SLARP request timer */
|
||||
unsigned int IP_address ; /* the IP address */
|
||||
unsigned int IP_netmask ; /* the IP netmask */
|
||||
unsigned int ptr_shared_mem_info_struct ; /* a pointer to the shared memory area information structure */
|
||||
unsigned int ptr_CHDLC_Tx_stat_el_cfg_struct ; /* a pointer to the transmit status element configuration structure */
|
||||
unsigned int ptr_CHDLC_Rx_stat_el_cfg_struct ; /* a pointer to the receive status element configuration structure */
|
||||
unsigned int baud_rate ; /* the baud rate */
|
||||
unsigned short line_config_options ; /* line configuration options */
|
||||
unsigned short modem_config_options ; /* modem configration options */
|
||||
unsigned short modem_status_timer ; /* timer for monitoring modem status changes */
|
||||
unsigned short CHDLC_API_options ; /* CHDLC API options */
|
||||
unsigned short CHDLC_protocol_options ; /* CHDLC protocol options */
|
||||
unsigned short percent_data_buffer_for_Tx ; /* percentage data buffering used for Tx */
|
||||
unsigned short CHDLC_statistics_options ; /* CHDLC operational statistics options */
|
||||
unsigned short max_CHDLC_data_field_length ; /* the maximum length of the CHDLC Data field */
|
||||
unsigned short transmit_keepalive_timer ; /* the transmit keepalive timer */
|
||||
unsigned short receive_keepalive_timer ; /* the receive keepalive timer */
|
||||
unsigned short keepalive_error_tolerance ; /* the receive keepalive error tolerance */
|
||||
unsigned short SLARP_request_timer ; /* the SLARP request timer */
|
||||
unsigned int IP_address ; /* the IP address */
|
||||
unsigned int IP_netmask ; /* the IP netmask */
|
||||
unsigned int ptr_shared_mem_info_struct ; /* a pointer to the shared memory area information structure */
|
||||
unsigned int ptr_CHDLC_Tx_stat_el_cfg_struct ; /* a pointer to the transmit status element configuration structure */
|
||||
unsigned int ptr_CHDLC_Rx_stat_el_cfg_struct ; /* a pointer to the receive status element configuration structure */
|
||||
} CHDLC_CONFIGURATION_STRUCT;
|
||||
|
||||
/* settings for the 'line_config_options' */
|
||||
|
@ -460,10 +470,10 @@ typedef struct {
|
|||
|
||||
/* the CHDLC status structure */
|
||||
typedef struct {
|
||||
unsigned char CHDLC_link_status ; /* CHDLC link status */
|
||||
unsigned char no_Data_frms_for_app ; /* number of Data frames available for the application */
|
||||
unsigned char receiver_status ; /* enabled/disabled */
|
||||
unsigned char SLARP_state ; /* internal SLARP state */
|
||||
unsigned char CHDLC_link_status ; /* CHDLC link status */
|
||||
unsigned char no_Data_frms_for_app ; /* number of Data frames available for the application */
|
||||
unsigned char receiver_status ; /* enabled/disabled */
|
||||
unsigned char SLARP_state ; /* internal SLARP state */
|
||||
} CHDLC_LINK_STATUS_STRUCT;
|
||||
|
||||
/* settings for the 'CHDLC_link_status' variable */
|
||||
|
@ -478,10 +488,10 @@ typedef struct {
|
|||
|
||||
/* the structure used for the SET_CHDLC_INTERRUPT_TRIGGERS/READ_CHDLC_INTERRUPT_TRIGGERS command */
|
||||
typedef struct {
|
||||
unsigned char CHDLC_interrupt_triggers ; /* CHDLC interrupt trigger configuration */
|
||||
unsigned char IRQ ; /* IRQ to be used */
|
||||
unsigned short interrupt_timer ; /* interrupt timer */
|
||||
unsigned short misc_interrupt_bits ; /* miscellaneous bits */
|
||||
unsigned char CHDLC_interrupt_triggers ; /* CHDLC interrupt trigger configuration */
|
||||
unsigned char IRQ ; /* IRQ to be used */
|
||||
unsigned short interrupt_timer ; /* interrupt timer */
|
||||
unsigned short misc_interrupt_bits ; /* miscellaneous bits */
|
||||
} CHDLC_INT_TRIGGERS_STRUCT;
|
||||
|
||||
/* 'CHDLC_interrupt_triggers' bit settings */
|
||||
|
@ -515,19 +525,19 @@ typedef struct {
|
|||
|
||||
/* the Data frame transmit status element configuration structure */
|
||||
typedef struct {
|
||||
unsigned short number_Tx_status_elements ; /* number of transmit status elements */
|
||||
unsigned int base_addr_Tx_status_elements ; /* base address of the transmit element list */
|
||||
unsigned int next_Tx_status_element_to_use ; /* pointer to the next transmit element to be used */
|
||||
unsigned short number_Tx_status_elements ; /* number of transmit status elements */
|
||||
unsigned int base_addr_Tx_status_elements ; /* base address of the transmit element list */
|
||||
unsigned int next_Tx_status_element_to_use ; /* pointer to the next transmit element to be used */
|
||||
} CHDLC_TX_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
/* the Data frame transmit status element structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short frame_length ; /* length of the frame to be transmitted */
|
||||
unsigned char misc_Tx_bits ; /* miscellaneous transmit bits */
|
||||
unsigned int reserved_2 ; /* reserved for internal use */
|
||||
unsigned int reserved_3 ; /* reserved for internal use */
|
||||
unsigned int ptr_data_bfr ; /* pointer to the data area */
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short frame_length ; /* length of the frame to be transmitted */
|
||||
unsigned char misc_Tx_bits ; /* miscellaneous transmit bits */
|
||||
unsigned int reserved_2 ; /* reserved for internal use */
|
||||
unsigned int reserved_3 ; /* reserved for internal use */
|
||||
unsigned int ptr_data_bfr ; /* pointer to the data area */
|
||||
} CHDLC_DATA_TX_STATUS_EL_STRUCT;
|
||||
|
||||
|
||||
|
@ -556,22 +566,22 @@ typedef struct {
|
|||
|
||||
/* the Data frame receive status element configuration structure */
|
||||
typedef struct {
|
||||
unsigned short number_Rx_status_elements ; /* number of receive status elements */
|
||||
unsigned int base_addr_Rx_status_elements ; /* base address of the receive element list */
|
||||
unsigned int next_Rx_status_element_to_use ; /* pointer to the next receive element to be used */
|
||||
unsigned int base_addr_Rx_buffer ; /* base address of the receive data buffer */
|
||||
unsigned int end_addr_Rx_buffer ; /* end address of the receive data buffer */
|
||||
unsigned short number_Rx_status_elements ; /* number of receive status elements */
|
||||
unsigned int base_addr_Rx_status_elements ; /* base address of the receive element list */
|
||||
unsigned int next_Rx_status_element_to_use ; /* pointer to the next receive element to be used */
|
||||
unsigned int base_addr_Rx_buffer ; /* base address of the receive data buffer */
|
||||
unsigned int end_addr_Rx_buffer ; /* end address of the receive data buffer */
|
||||
} CHDLC_RX_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
/* the Data frame receive status element structure */
|
||||
typedef struct {
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short frame_length ; /* length of the received frame */
|
||||
unsigned char error_flag ; /* frame errors (HDLC_STREAMING_MODE)*/
|
||||
unsigned short time_stamp ; /* receive time stamp (HDLC_STREAMING_MODE) */
|
||||
unsigned int reserved_1 ; /* reserved for internal use */
|
||||
unsigned short reserved_2 ; /* reserved for internal use */
|
||||
unsigned int ptr_data_bfr ; /* pointer to the data area */
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short frame_length ; /* length of the received frame */
|
||||
unsigned char error_flag ; /* frame errors (HDLC_STREAMING_MODE)*/
|
||||
unsigned short time_stamp ; /* receive time stamp (HDLC_STREAMING_MODE) */
|
||||
unsigned int reserved_1 ; /* reserved for internal use */
|
||||
unsigned short reserved_2 ; /* reserved for internal use */
|
||||
unsigned int ptr_data_bfr ; /* pointer to the data area */
|
||||
} CHDLC_DATA_RX_STATUS_EL_STRUCT;
|
||||
|
||||
|
||||
|
@ -593,41 +603,41 @@ typedef struct {
|
|||
|
||||
/* the global information structure */
|
||||
typedef struct {
|
||||
unsigned char global_status ; /* global status */
|
||||
unsigned char modem_status ; /* current modem status */
|
||||
unsigned char global_excep_conditions ; /* global exception conditions */
|
||||
unsigned char glob_info_reserved[5] ; /* reserved */
|
||||
unsigned char codename[4] ; /* Firmware name */
|
||||
unsigned char codeversion[4] ; /* Firmware version */
|
||||
unsigned char global_status ; /* global status */
|
||||
unsigned char modem_status ; /* current modem status */
|
||||
unsigned char global_excep_conditions ; /* global exception conditions */
|
||||
unsigned char glob_info_reserved[5] ; /* reserved */
|
||||
unsigned char codename[4] ; /* Firmware name */
|
||||
unsigned char codeversion[4] ; /* Firmware version */
|
||||
} GLOBAL_INFORMATION_STRUCT;
|
||||
|
||||
/* the CHDLC information structure */
|
||||
typedef struct {
|
||||
unsigned char CHDLC_status ; /* CHDLC status */
|
||||
unsigned char CHDLC_excep_conditions ; /* CHDLC exception conditions */
|
||||
unsigned char CHDLC_info_reserved[14] ; /* reserved */
|
||||
unsigned char CHDLC_status ; /* CHDLC status */
|
||||
unsigned char CHDLC_excep_conditions ; /* CHDLC exception conditions */
|
||||
unsigned char CHDLC_info_reserved[14] ; /* reserved */
|
||||
} CHDLC_INFORMATION_STRUCT;
|
||||
|
||||
/* the interrupt information structure */
|
||||
typedef struct {
|
||||
unsigned char interrupt_type ; /* type of interrupt triggered */
|
||||
unsigned char interrupt_permission ; /* interrupt permission mask */
|
||||
unsigned char int_info_reserved[14] ; /* reserved */
|
||||
unsigned char interrupt_type ; /* type of interrupt triggered */
|
||||
unsigned char interrupt_permission ; /* interrupt permission mask */
|
||||
unsigned char int_info_reserved[14] ; /* reserved */
|
||||
} INTERRUPT_INFORMATION_STRUCT;
|
||||
|
||||
/* the S508/FT1 information structure */
|
||||
typedef struct {
|
||||
unsigned char parallel_port_A_input ; /* input - parallel port A */
|
||||
unsigned char parallel_port_B_input ; /* input - parallel port B */
|
||||
unsigned char FT1_info_reserved[14] ; /* reserved */
|
||||
unsigned char parallel_port_A_input ; /* input - parallel port A */
|
||||
unsigned char parallel_port_B_input ; /* input - parallel port B */
|
||||
unsigned char FT1_info_reserved[14] ; /* reserved */
|
||||
} FT1_INFORMATION_STRUCT;
|
||||
|
||||
/* the shared memory area information structure */
|
||||
typedef struct {
|
||||
GLOBAL_INFORMATION_STRUCT global_info_struct ; /* the global information structure */
|
||||
CHDLC_INFORMATION_STRUCT CHDLC_info_struct ; /* the CHDLC information structure */
|
||||
INTERRUPT_INFORMATION_STRUCT interrupt_info_struct ; /* the interrupt information structure */
|
||||
FT1_INFORMATION_STRUCT FT1_info_struct ; /* the S508/FT1 information structure */
|
||||
GLOBAL_INFORMATION_STRUCT global_info_struct ; /* the global information structure */
|
||||
CHDLC_INFORMATION_STRUCT CHDLC_info_struct ; /* the CHDLC information structure */
|
||||
INTERRUPT_INFORMATION_STRUCT interrupt_info_struct ; /* the interrupt information structure */
|
||||
FT1_INFORMATION_STRUCT FT1_info_struct ; /* the S508/FT1 information structure */
|
||||
} SHARED_MEMORY_INFO_STRUCT;
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
|
@ -640,55 +650,55 @@ typedef struct {
|
|||
#ifndef HDLC_PROT_ONLY
|
||||
|
||||
typedef struct {
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the user command */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ; /* reserved for later */
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the user command */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ; /* reserved for later */
|
||||
} cblock_t;
|
||||
|
||||
/* UDP management packet layout (data area of ip packet) */
|
||||
/*
|
||||
typedef struct {
|
||||
unsigned char signature[8] ;
|
||||
unsigned char request_reply ;
|
||||
unsigned char id ;
|
||||
unsigned char reserved[6] ;
|
||||
cblock_t cblock ;
|
||||
unsigned char num_frames ;
|
||||
unsigned char ismoredata ;
|
||||
unsigned char data[SIZEOF_MB_DATA_BFR] ;
|
||||
unsigned char signature[8] ;
|
||||
unsigned char request_reply ;
|
||||
unsigned char id ;
|
||||
unsigned char reserved[6] ;
|
||||
cblock_t cblock ;
|
||||
unsigned char num_frames ;
|
||||
unsigned char ismoredata ;
|
||||
unsigned char data[SIZEOF_MB_DATA_BFR] ;
|
||||
} udp_management_packet_t;
|
||||
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
unsigned char num_frames ;
|
||||
unsigned char ismoredata ;
|
||||
unsigned char num_frames ;
|
||||
unsigned char ismoredata ;
|
||||
} trace_info_t;
|
||||
|
||||
#if 0
|
||||
typedef struct {
|
||||
ip_pkt_t ip_pkt ;
|
||||
udp_pkt_t udp_pkt ;
|
||||
wp_mgmt_t wp_mgmt ;
|
||||
cblock_t cblock ;
|
||||
trace_info_t trace_info ;
|
||||
unsigned char data[SIZEOF_MB_DATA_BFR] ;
|
||||
ip_pkt_t ip_pkt ;
|
||||
udp_pkt_t udp_pkt ;
|
||||
wp_mgmt_t wp_mgmt ;
|
||||
cblock_t cblock ;
|
||||
trace_info_t trace_info ;
|
||||
unsigned char data[SIZEOF_MB_DATA_BFR] ;
|
||||
} chdlc_udp_pkt_t;
|
||||
#endif
|
||||
|
||||
typedef struct ft1_exec_cmd{
|
||||
unsigned char command ; /* the user command */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ;
|
||||
unsigned char command ; /* the user command */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char MB_reserved[NUMBER_MB_RESERVED_BYTES] ;
|
||||
} ft1_exec_cmd_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char opp_flag ;
|
||||
ft1_exec_cmd_t cmd ;
|
||||
unsigned char data[SIZEOF_MB_DATA_BFR] ;
|
||||
unsigned char opp_flag ;
|
||||
ft1_exec_cmd_t cmd ;
|
||||
unsigned char data[SIZEOF_MB_DATA_BFR] ;
|
||||
} ft1_exec_t;
|
||||
|
||||
|
||||
|
@ -699,19 +709,19 @@ typedef struct {
|
|||
/* UDP/IP packet (for UDP management) layout */
|
||||
/*
|
||||
typedef struct {
|
||||
unsigned char reserved[2] ;
|
||||
unsigned short ip_length ;
|
||||
unsigned char reserved2[4] ;
|
||||
unsigned char ip_ttl ;
|
||||
unsigned char ip_protocol ;
|
||||
unsigned short ip_checksum ;
|
||||
unsigned int ip_src_address ;
|
||||
unsigned int ip_dst_address ;
|
||||
unsigned short udp_src_port ;
|
||||
unsigned short udp_dst_port ;
|
||||
unsigned short udp_length ;
|
||||
unsigned short udp_checksum ;
|
||||
udp_management_packet_t um_packet ;
|
||||
unsigned char reserved[2] ;
|
||||
unsigned short ip_length ;
|
||||
unsigned char reserved2[4] ;
|
||||
unsigned char ip_ttl ;
|
||||
unsigned char ip_protocol ;
|
||||
unsigned short ip_checksum ;
|
||||
unsigned int ip_src_address ;
|
||||
unsigned int ip_dst_address ;
|
||||
unsigned short udp_src_port ;
|
||||
unsigned short udp_dst_port ;
|
||||
unsigned short udp_length ;
|
||||
unsigned short udp_checksum ;
|
||||
udp_management_packet_t um_packet ;
|
||||
} ip_packet_t;
|
||||
*/
|
||||
|
||||
|
@ -720,36 +730,36 @@ typedef struct {
|
|||
|
||||
#if 0
|
||||
typedef struct {
|
||||
unsigned char status ;
|
||||
unsigned char data_avail ;
|
||||
unsigned short real_length ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char data[1] ;
|
||||
unsigned char status ;
|
||||
unsigned char data_avail ;
|
||||
unsigned short real_length ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char data[1] ;
|
||||
} trace_pkt_t;
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
unsigned char error_flag ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned int sec ;
|
||||
unsigned int usec ;
|
||||
unsigned char reserved[5] ;
|
||||
unsigned char error_flag ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned int sec ;
|
||||
unsigned int usec ;
|
||||
unsigned char reserved[5] ;
|
||||
} api_rx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
} api_rx_element_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char attr ;
|
||||
unsigned char misc_Tx_bits ;
|
||||
unsigned char reserved[14] ;
|
||||
unsigned char attr ;
|
||||
unsigned char misc_Tx_bits ;
|
||||
unsigned char reserved[14] ;
|
||||
} api_tx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
unsigned char data[1] ;
|
||||
} api_tx_element_t;
|
||||
|
||||
#endif //HDLC_PROT_ONLY
|
||||
|
@ -768,7 +778,6 @@ typedef struct {
|
|||
} ft1_config_t;
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
/* settings for the 'framing_mode' */
|
||||
#define ESF_FRAMING 0x00 /* ESF framing */
|
||||
|
@ -807,13 +816,23 @@ typedef struct {
|
|||
#define AUTO_FT1_CFG_FAIL_OP_MODE 0x0C
|
||||
#define AUTO_FT1_CFG_FAIL_INVALID_LINE 0x0D
|
||||
|
||||
#if !defined(__WINDOWS__)
|
||||
#undef wan_udphdr_data
|
||||
#define wan_udphdr_data wan_udphdr_u.chdlc.data
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#undef wan_udp_data
|
||||
#define wan_udp_data wan_udp_hdr.wan_udphdr_u.chdlc.data
|
||||
#endif
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
#if defined(__LINUX__)
|
||||
enum {
|
||||
SIOC_MBOX_CMD = SIOC_WANPIPE_DEVPRIVATE
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif /* _SDLA_CHDLC_H */
|
||||
|
|
|
@ -34,8 +34,10 @@
|
|||
* -------- --------
|
||||
* GNU C Linux
|
||||
*/
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
|
||||
/* Adapter memory layout */
|
||||
#define FR_MB_VECTOR 0xE000 /* mailbox window vector */
|
||||
#define FR502_RX_VECTOR 0xA000 /* S502 direct receive window vector */
|
||||
|
@ -63,14 +65,14 @@
|
|||
*/
|
||||
typedef struct fr_cmd
|
||||
{
|
||||
unsigned char command ; /* command code */
|
||||
unsigned short length ; /* length of data buffer */
|
||||
unsigned char result ; /* return code */
|
||||
unsigned short dlci ; /* DLCI number */
|
||||
unsigned char attr ; /* FECN, BECN, DE and C/R bits */
|
||||
unsigned short rxlost1 ; /* frames discarded at int. level */
|
||||
unsigned int rxlost2 ; /* frames discarded at app. level */
|
||||
unsigned char rsrv[2] ; /* reserved for future use */
|
||||
unsigned char command ; /* command code */
|
||||
unsigned short length ; /* length of data buffer */
|
||||
unsigned char result ; /* return code */
|
||||
unsigned short dlci ; /* DLCI number */
|
||||
unsigned char attr ; /* FECN, BECN, DE and C/R bits */
|
||||
unsigned short rxlost1 ; /* frames discarded at int. level */
|
||||
unsigned int rxlost2 ; /* frames discarded at app. level */
|
||||
unsigned char rsrv[2] ; /* reserved for future use */
|
||||
} fr_cmd_t;
|
||||
|
||||
|
||||
|
@ -116,14 +118,14 @@ typedef struct fr_cmd
|
|||
*/
|
||||
typedef struct fr502_flags
|
||||
{
|
||||
unsigned char rsrv1[1] ; /* 00h: */
|
||||
unsigned char tx_ready ; /* 01h: Tx buffer available */
|
||||
unsigned char rx_ready ; /* 02h: Rx frame available */
|
||||
unsigned char event ; /* 03h: asynchronous event */
|
||||
unsigned char mstatus ; /* 04h: modem status */
|
||||
unsigned char rsrv2[8] ; /* 05h: */
|
||||
unsigned char iflag ; /* 0Dh: interrupt flag */
|
||||
unsigned char imask ; /* 0Eh: interrupt mask */
|
||||
unsigned char rsrv1[1] ; /* 00h: */
|
||||
unsigned char tx_ready ; /* 01h: Tx buffer available */
|
||||
unsigned char rx_ready ; /* 02h: Rx frame available */
|
||||
unsigned char event ; /* 03h: asynchronous event */
|
||||
unsigned char mstatus ; /* 04h: modem status */
|
||||
unsigned char rsrv2[8] ; /* 05h: */
|
||||
unsigned char iflag ; /* 0Dh: interrupt flag */
|
||||
unsigned char imask ; /* 0Eh: interrupt mask */
|
||||
} fr502_flags_t;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -132,14 +134,14 @@ typedef struct fr502_flags
|
|||
*/
|
||||
typedef struct fr508_flags
|
||||
{
|
||||
unsigned char rsrv1[3] ; /* 00h: reserved */
|
||||
unsigned char event ; /* 03h: asynchronous event */
|
||||
unsigned char mstatus ; /* 04h: modem status */
|
||||
unsigned char rsrv2[11] ; /* 05h: reserved */
|
||||
unsigned char iflag ; /* 10h: interrupt flag */
|
||||
unsigned char imask ; /* 11h: interrupt mask */
|
||||
unsigned int tse_offs ; /* 12h: Tx status element */
|
||||
unsigned short dlci ; /* 16h: DLCI NUMBER */
|
||||
unsigned char rsrv1[3] ; /* 00h: reserved */
|
||||
unsigned char event ; /* 03h: asynchronous event */
|
||||
unsigned char mstatus ; /* 04h: modem status */
|
||||
unsigned char rsrv2[11] ; /* 05h: reserved */
|
||||
unsigned char iflag ; /* 10h: interrupt flag */
|
||||
unsigned char imask ; /* 11h: interrupt mask */
|
||||
unsigned int tse_offs ; /* 12h: Tx status element */
|
||||
unsigned short dlci ; /* 16h: DLCI NUMBER */
|
||||
} fr508_flags_t;
|
||||
|
||||
/* 'event' field defines */
|
||||
|
@ -168,12 +170,12 @@ typedef struct fr508_flags
|
|||
*/
|
||||
typedef struct fr_buf_info
|
||||
{
|
||||
unsigned short rse_num ; /* 00h: number of status elements */
|
||||
unsigned int rse_base ; /* 02h: receive status array base */
|
||||
unsigned int rse_next ; /* 06h: next status element */
|
||||
unsigned int buf_base ; /* 0Ah: rotational buffer base */
|
||||
unsigned short reserved ; /* 0Eh: */
|
||||
unsigned int buf_top ; /* 10h: rotational buffer top */
|
||||
unsigned short rse_num ; /* 00h: number of status elements */
|
||||
unsigned int rse_base ; /* 02h: receive status array base */
|
||||
unsigned int rse_next ; /* 06h: next status element */
|
||||
unsigned int buf_base ; /* 0Ah: rotational buffer base */
|
||||
unsigned short reserved ; /* 0Eh: */
|
||||
unsigned int buf_top ; /* 10h: rotational buffer top */
|
||||
} fr_buf_info_t;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -184,24 +186,24 @@ typedef struct fr_buf_info
|
|||
*/
|
||||
typedef struct fr_rx_buf_ctl
|
||||
{
|
||||
unsigned char flag ; /* 00h: ready flag */
|
||||
unsigned short length ; /* 01h: frame length */
|
||||
unsigned short dlci ; /* 03h: DLCI */
|
||||
unsigned char attr ; /* 05h: FECN/BECN/DE/CR */
|
||||
unsigned short tmstamp ; /* 06h: time stamp */
|
||||
unsigned short rsrv[2] ; /* 08h: */
|
||||
unsigned int offset ; /* 0Ch: buffer absolute address */
|
||||
unsigned char flag ; /* 00h: ready flag */
|
||||
unsigned short length ; /* 01h: frame length */
|
||||
unsigned short dlci ; /* 03h: DLCI */
|
||||
unsigned char attr ; /* 05h: FECN/BECN/DE/CR */
|
||||
unsigned short tmstamp ; /* 06h: time stamp */
|
||||
unsigned short rsrv[2] ; /* 08h: */
|
||||
unsigned int offset ; /* 0Ch: buffer absolute address */
|
||||
} fr_rx_buf_ctl_t;
|
||||
|
||||
typedef struct fr_tx_buf_ctl
|
||||
{
|
||||
unsigned char flag ; /* 00h: ready flag */
|
||||
unsigned short rsrv0[2] ; /* 01h: */
|
||||
unsigned short length ; /* 05h: frame length */
|
||||
unsigned short dlci ; /* 07h: DLCI */
|
||||
unsigned char attr ; /* 09h: FECN/BECN/DE/CR */
|
||||
unsigned short rsrv1 ; /* 0Ah: */
|
||||
unsigned int offset ; /* 0Ch: buffer absolute address */
|
||||
unsigned char flag ; /* 00h: ready flag */
|
||||
unsigned short rsrv0[2] ; /* 01h: */
|
||||
unsigned short length ; /* 05h: frame length */
|
||||
unsigned short dlci ; /* 07h: DLCI */
|
||||
unsigned char attr ; /* 09h: FECN/BECN/DE/CR */
|
||||
unsigned short rsrv1 ; /* 0Ah: */
|
||||
unsigned int offset ; /* 0Ch: buffer absolute address */
|
||||
} fr_tx_buf_ctl_t;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -209,23 +211,23 @@ typedef struct fr_tx_buf_ctl
|
|||
*/
|
||||
typedef struct fr_conf
|
||||
{
|
||||
unsigned short station ; /* 00h: CPE/Node */
|
||||
unsigned short options ; /* 02h: configuration options */
|
||||
unsigned short kbps ; /* 04h: baud rate in kbps */
|
||||
unsigned short port ; /* 06h: RS-232/V.35 */
|
||||
unsigned short mtu ; /* 08h: max. transmit length */
|
||||
unsigned short t391 ; /* 0Ah: */
|
||||
unsigned short t392 ; /* 0Ch: */
|
||||
unsigned short n391 ; /* 0Eh: */
|
||||
unsigned short n392 ; /* 10h: */
|
||||
unsigned short n393 ; /* 12h: */
|
||||
unsigned short cir_fwd ; /* 14h: */
|
||||
unsigned short bc_fwd ; /* 16h: */
|
||||
unsigned short be_fwd ; /* 18h: */
|
||||
unsigned short cir_bwd ; /* 1Ah: */
|
||||
unsigned short bc_bwd ; /* 1Ch: */
|
||||
unsigned short be_bwd ; /* 1Eh: */
|
||||
unsigned short dlci[0] ; /* 20h: */
|
||||
unsigned short station ; /* 00h: CPE/Node */
|
||||
unsigned short options ; /* 02h: configuration options */
|
||||
unsigned short kbps ; /* 04h: baud rate in kbps */
|
||||
unsigned short port ; /* 06h: RS-232/V.35 */
|
||||
unsigned short mtu ; /* 08h: max. transmit length */
|
||||
unsigned short t391 ; /* 0Ah: */
|
||||
unsigned short t392 ; /* 0Ch: */
|
||||
unsigned short n391 ; /* 0Eh: */
|
||||
unsigned short n392 ; /* 10h: */
|
||||
unsigned short n393 ; /* 12h: */
|
||||
unsigned short cir_fwd ; /* 14h: */
|
||||
unsigned short bc_fwd ; /* 16h: */
|
||||
unsigned short be_fwd ; /* 18h: */
|
||||
unsigned short cir_bwd ; /* 1Ah: */
|
||||
unsigned short bc_bwd ; /* 1Ch: */
|
||||
unsigned short be_bwd ; /* 1Eh: */
|
||||
unsigned short dlci[0] ; /* 20h: */
|
||||
} fr_conf_t;
|
||||
|
||||
/* 'station_type' defines */
|
||||
|
@ -262,26 +264,26 @@ typedef struct fr_conf
|
|||
|
||||
/* the line trace status element presented by the frame relay code */
|
||||
typedef struct {
|
||||
unsigned char flag ; /* ready flag */
|
||||
unsigned short length ; /* trace length */
|
||||
unsigned char rsrv0[2] ; /* reserved */
|
||||
unsigned char attr ; /* trace attributes */
|
||||
unsigned short tmstamp ; /* time stamp */
|
||||
unsigned char rsrv1[4] ; /* reserved */
|
||||
unsigned int offset ; /* buffer absolute address */
|
||||
unsigned char flag ; /* ready flag */
|
||||
unsigned short length ; /* trace length */
|
||||
unsigned char rsrv0[2] ; /* reserved */
|
||||
unsigned char attr ; /* trace attributes */
|
||||
unsigned short tmstamp ; /* time stamp */
|
||||
unsigned char rsrv1[4] ; /* reserved */
|
||||
unsigned int offset ; /* buffer absolute address */
|
||||
} fr_trc_el_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char status ; /* status flag */
|
||||
unsigned char data_passed ; /* 0 if no data passed, 1 if */
|
||||
unsigned char status ; /* status flag */
|
||||
unsigned char data_passed ; /* 0 if no data passed, 1 if */
|
||||
/* data passed */
|
||||
unsigned short length ; /* frame length */
|
||||
unsigned short tmstamp ; /* time stamp */
|
||||
unsigned short length ; /* frame length */
|
||||
unsigned short tmstamp ; /* time stamp */
|
||||
} fpipemon_trc_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
fpipemon_trc_hdr_t fpipemon_trc_hdr ;
|
||||
unsigned char data[FR_MAX_NO_DATA_BYTES_IN_FRAME] ;
|
||||
fpipemon_trc_hdr_t fpipemon_trc_hdr ;
|
||||
unsigned char data[FR_MAX_NO_DATA_BYTES_IN_FRAME] ;
|
||||
} fpipemon_trc_t;
|
||||
|
||||
/* bit settings for the 'status' byte - note that bits 1, 2 and 3 are used */
|
||||
|
@ -311,13 +313,13 @@ typedef struct {
|
|||
*/
|
||||
typedef struct fr_dlc_conf
|
||||
{
|
||||
unsigned short conf_flags ; /* 00h: configuration bits */
|
||||
unsigned short cir_fwd ; /* 02h: */
|
||||
unsigned short bc_fwd ; /* 04h: */
|
||||
unsigned short be_fwd ; /* 06h: */
|
||||
unsigned short cir_bwd ; /* 08h: */
|
||||
unsigned short bc_bwd ; /* 0Ah: */
|
||||
unsigned short be_bwd ; /* 0Ch: */
|
||||
unsigned short conf_flags ; /* 00h: configuration bits */
|
||||
unsigned short cir_fwd ; /* 02h: */
|
||||
unsigned short bc_fwd ; /* 04h: */
|
||||
unsigned short be_fwd ; /* 06h: */
|
||||
unsigned short cir_bwd ; /* 08h: */
|
||||
unsigned short bc_bwd ; /* 0Ah: */
|
||||
unsigned short be_bwd ; /* 0Ch: */
|
||||
} fr_dlc_conf_t;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -327,8 +329,8 @@ typedef struct fr_dlc_conf
|
|||
*/
|
||||
typedef struct fr502_intr_ctl
|
||||
{
|
||||
unsigned char mode ; /* 00h: interrupt enable flags */
|
||||
unsigned short tx_len ; /* 01h: required Tx buffer size */
|
||||
unsigned char mode ; /* 00h: interrupt enable flags */
|
||||
unsigned short tx_len ; /* 01h: required Tx buffer size */
|
||||
} fr502_intr_ctl_t;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -338,11 +340,11 @@ typedef struct fr502_intr_ctl
|
|||
*/
|
||||
typedef struct fr508_intr_ctl
|
||||
{
|
||||
unsigned char mode ; /* 00h: interrupt enable flags */
|
||||
unsigned short tx_len ; /* 01h: required Tx buffer size */
|
||||
unsigned char irq ; /* 03h: IRQ level to activate */
|
||||
unsigned char flags ; /* 04h: ?? */
|
||||
unsigned short timeout ; /* 05h: ms, for timer interrupt */
|
||||
unsigned char mode ; /* 00h: interrupt enable flags */
|
||||
unsigned short tx_len ; /* 01h: required Tx buffer size */
|
||||
unsigned char irq ; /* 03h: IRQ level to activate */
|
||||
unsigned char flags ; /* 04h: ?? */
|
||||
unsigned short timeout ; /* 05h: ms, for timer interrupt */
|
||||
} fr508_intr_ctl_t;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -351,12 +353,12 @@ typedef struct fr508_intr_ctl
|
|||
*/
|
||||
typedef struct fr_dlc_Status
|
||||
{
|
||||
unsigned char status ; /* 00h: link/DLCI status */
|
||||
unsigned char status ; /* 00h: link/DLCI status */
|
||||
struct
|
||||
{
|
||||
unsigned short dlci ; /* 01h: DLCI number */
|
||||
unsigned char status ; /* 03h: DLCI status */
|
||||
} circuit[1] ;
|
||||
unsigned short dlci ; /* 01h: DLCI number */
|
||||
unsigned char status ; /* 03h: DLCI status */
|
||||
} circuit[1] ;
|
||||
} fr_dlc_status_t;
|
||||
|
||||
/* 'status' defines */
|
||||
|
@ -378,34 +380,34 @@ typedef struct fr_dlc_Status
|
|||
*/
|
||||
typedef struct fr_link_stat
|
||||
{
|
||||
unsigned short rx_too_long ; /* 00h: */
|
||||
unsigned short rx_dropped ; /* 02h: */
|
||||
unsigned short rx_dropped2 ; /* 04h: */
|
||||
unsigned short rx_bad_dlci ; /* 06h: */
|
||||
unsigned short rx_bad_format ; /* 08h: */
|
||||
unsigned short retransmitted ; /* 0Ah: */
|
||||
unsigned short cpe_tx_FSE ; /* 0Ch: */
|
||||
unsigned short cpe_tx_LIV ; /* 0Eh: */
|
||||
unsigned short cpe_rx_FSR ; /* 10h: */
|
||||
unsigned short cpe_rx_LIV ; /* 12h: */
|
||||
unsigned short node_rx_FSE ; /* 14h: */
|
||||
unsigned short node_rx_LIV ; /* 16h: */
|
||||
unsigned short node_tx_FSR ; /* 18h: */
|
||||
unsigned short node_tx_LIV ; /* 1Ah: */
|
||||
unsigned short rx_ISF_err ; /* 1Ch: */
|
||||
unsigned short rx_unsolicited ; /* 1Eh: */
|
||||
unsigned short rx_SSN_err ; /* 20h: */
|
||||
unsigned short rx_RSN_err ; /* 22h: */
|
||||
unsigned short T391_timeouts ; /* 24h: */
|
||||
unsigned short T392_timeouts ; /* 26h: */
|
||||
unsigned short N392_reached ; /* 28h: */
|
||||
unsigned short cpe_SSN_RSN ; /* 2Ah: */
|
||||
unsigned short current_SSN ; /* 2Ch: */
|
||||
unsigned short current_RSN ; /* 2Eh: */
|
||||
unsigned short curreny_T391 ; /* 30h: */
|
||||
unsigned short current_T392 ; /* 32h: */
|
||||
unsigned short current_N392 ; /* 34h: */
|
||||
unsigned short current_N393 ; /* 36h: */
|
||||
unsigned short rx_too_long ; /* 00h: */
|
||||
unsigned short rx_dropped ; /* 02h: */
|
||||
unsigned short rx_dropped2 ; /* 04h: */
|
||||
unsigned short rx_bad_dlci ; /* 06h: */
|
||||
unsigned short rx_bad_format ; /* 08h: */
|
||||
unsigned short retransmitted ; /* 0Ah: */
|
||||
unsigned short cpe_tx_FSE ; /* 0Ch: */
|
||||
unsigned short cpe_tx_LIV ; /* 0Eh: */
|
||||
unsigned short cpe_rx_FSR ; /* 10h: */
|
||||
unsigned short cpe_rx_LIV ; /* 12h: */
|
||||
unsigned short node_rx_FSE ; /* 14h: */
|
||||
unsigned short node_rx_LIV ; /* 16h: */
|
||||
unsigned short node_tx_FSR ; /* 18h: */
|
||||
unsigned short node_tx_LIV ; /* 1Ah: */
|
||||
unsigned short rx_ISF_err ; /* 1Ch: */
|
||||
unsigned short rx_unsolicited ; /* 1Eh: */
|
||||
unsigned short rx_SSN_err ; /* 20h: */
|
||||
unsigned short rx_RSN_err ; /* 22h: */
|
||||
unsigned short T391_timeouts ; /* 24h: */
|
||||
unsigned short T392_timeouts ; /* 26h: */
|
||||
unsigned short N392_reached ; /* 28h: */
|
||||
unsigned short cpe_SSN_RSN ; /* 2Ah: */
|
||||
unsigned short current_SSN ; /* 2Ch: */
|
||||
unsigned short current_RSN ; /* 2Eh: */
|
||||
unsigned short curreny_T391 ; /* 30h: */
|
||||
unsigned short current_T392 ; /* 32h: */
|
||||
unsigned short current_N392 ; /* 34h: */
|
||||
unsigned short current_N393 ; /* 36h: */
|
||||
} fr_link_stat_t;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -415,18 +417,18 @@ typedef struct fr_link_stat
|
|||
*/
|
||||
typedef struct fr_dlci_stat
|
||||
{
|
||||
unsigned int tx_frames ; /* 00h: */
|
||||
unsigned int tx_bytes ; /* 04h: */
|
||||
unsigned int rx_frames ; /* 08h: */
|
||||
unsigned int rx_bytes ; /* 0Ch: */
|
||||
unsigned int rx_dropped ; /* 10h: */
|
||||
unsigned int rx_inactive ; /* 14h: */
|
||||
unsigned int rx_exceed_CIR ; /* 18h: */
|
||||
unsigned int rx_DE_set ; /* 1Ch: */
|
||||
unsigned int tx_throughput ; /* 20h: */
|
||||
unsigned int tx_calc_timer ; /* 24h: */
|
||||
unsigned int rx_throughput ; /* 28h: */
|
||||
unsigned int rx_calc_timer ; /* 2Ch: */
|
||||
unsigned int tx_frames ; /* 00h: */
|
||||
unsigned int tx_bytes ; /* 04h: */
|
||||
unsigned int rx_frames ; /* 08h: */
|
||||
unsigned int rx_bytes ; /* 0Ch: */
|
||||
unsigned int rx_dropped ; /* 10h: */
|
||||
unsigned int rx_inactive ; /* 14h: */
|
||||
unsigned int rx_exceed_CIR ; /* 18h: */
|
||||
unsigned int rx_DE_set ; /* 1Ch: */
|
||||
unsigned int tx_throughput ; /* 20h: */
|
||||
unsigned int tx_calc_timer ; /* 24h: */
|
||||
unsigned int rx_throughput ; /* 28h: */
|
||||
unsigned int rx_calc_timer ; /* 2Ch: */
|
||||
} fr_dlci_stat_t;
|
||||
#endif
|
||||
|
||||
|
@ -436,15 +438,15 @@ typedef struct fr_dlci_stat
|
|||
*/
|
||||
typedef struct fr_comm_stat
|
||||
{
|
||||
unsigned char rx_overruns ; /* 00h: */
|
||||
unsigned char rx_bad_crc ; /* 01h: */
|
||||
unsigned char rx_aborts ; /* 02h: */
|
||||
unsigned char rx_too_long ; /* 03h: */
|
||||
unsigned char tx_aborts ; /* 04h: */
|
||||
unsigned char tx_underruns ; /* 05h: */
|
||||
unsigned char tx_missed_undr ; /* 06h: */
|
||||
unsigned char dcd_dropped ; /* 07h: */
|
||||
unsigned char cts_dropped ; /* 08h: */
|
||||
unsigned char rx_overruns ; /* 00h: */
|
||||
unsigned char rx_bad_crc ; /* 01h: */
|
||||
unsigned char rx_aborts ; /* 02h: */
|
||||
unsigned char rx_too_long ; /* 03h: */
|
||||
unsigned char tx_aborts ; /* 04h: */
|
||||
unsigned char tx_underruns ; /* 05h: */
|
||||
unsigned char tx_missed_undr ; /* 06h: */
|
||||
unsigned char dcd_dropped ; /* 07h: */
|
||||
unsigned char cts_dropped ; /* 08h: */
|
||||
} fr_comm_stat_t;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -459,15 +461,15 @@ typedef struct fr_comm_stat
|
|||
|
||||
typedef struct arphdr_fr
|
||||
{
|
||||
unsigned short ar_hrd ; /* format of hardware addr */
|
||||
unsigned short ar_pro ; /* format of protocol addr */
|
||||
unsigned char ar_hln ; /* length of hardware addr */
|
||||
unsigned char ar_pln ; /* length of protocol addr */
|
||||
unsigned short ar_op ; /* ARP opcode */
|
||||
unsigned short ar_sha ; /* Sender DLCI addr 2 bytes */
|
||||
unsigned int ar_sip ; /* Sender IP addr 4 bytes */
|
||||
unsigned short ar_tha ; /* Target DLCI addr 2 bytes */
|
||||
unsigned int ar_tip ; /* Target IP addr 4 bytes */
|
||||
unsigned short ar_hrd ; /* format of hardware addr */
|
||||
unsigned short ar_pro ; /* format of protocol addr */
|
||||
unsigned char ar_hln ; /* length of hardware addr */
|
||||
unsigned char ar_pln ; /* length of protocol addr */
|
||||
unsigned short ar_op ; /* ARP opcode */
|
||||
unsigned short ar_sha ; /* Sender DLCI addr 2 bytes */
|
||||
unsigned int ar_sip ; /* Sender IP addr 4 bytes */
|
||||
unsigned short ar_tha ; /* Target DLCI addr 2 bytes */
|
||||
unsigned int ar_tip ; /* Target IP addr 4 bytes */
|
||||
} arphdr_fr_t;
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
|
@ -475,11 +477,11 @@ typedef struct arphdr_fr
|
|||
*/
|
||||
typedef struct arphdr_1490
|
||||
{
|
||||
unsigned char control ; /* UI, etc... */
|
||||
unsigned char pad ; /* Pad */
|
||||
unsigned char NLPID ; /* SNAP */
|
||||
unsigned char OUI[3] ; /* Ethertype, etc... */
|
||||
unsigned short PID ; /* ARP, IP, etc... */
|
||||
unsigned char control ; /* UI, etc... */
|
||||
unsigned char pad ; /* Pad */
|
||||
unsigned char NLPID ; /* SNAP */
|
||||
unsigned char OUI[3] ; /* Ethertype, etc... */
|
||||
unsigned short PID ; /* ARP, IP, etc... */
|
||||
} arphdr_1490_t;
|
||||
|
||||
/* valid ip_protocol for UDP management */
|
||||
|
@ -543,28 +545,28 @@ typedef struct {
|
|||
} drvstats_gen_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char attr ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char reserved[13] ;
|
||||
unsigned char attr ;
|
||||
unsigned short time_stamp ;
|
||||
unsigned char reserved[13] ;
|
||||
} api_rx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
void * data ;
|
||||
api_rx_hdr_t api_rx_hdr ;
|
||||
void * data ;
|
||||
} api_rx_element_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char attr ;
|
||||
unsigned char reserved[15] ;
|
||||
unsigned char attr ;
|
||||
unsigned char reserved[15] ;
|
||||
} api_tx_hdr_t;
|
||||
|
||||
typedef struct {
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
void * data ;
|
||||
api_tx_hdr_t api_tx_hdr ;
|
||||
void * data ;
|
||||
} api_tx_element_t;
|
||||
|
||||
|
||||
#pragma pack()
|
||||
#pragma pack()
|
||||
|
||||
#endif /* _SDLA_FR_H */
|
||||
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
/*
|
||||
*************************************************************************************
|
||||
* *
|
||||
* FRNT_END.H - the 'C' header file for the Sangoma S508/S514 adapter front-end API. *
|
||||
* sdla_front_end.h - the 'C' header file for the Sangoma S508/S514 adapter front-end API. *
|
||||
* *
|
||||
*************************************************************************************
|
||||
*/
|
||||
#ifndef _SDLA_FRONT_END_H_
|
||||
#define _SDLA_FRONT_END_H_
|
||||
|
||||
|
||||
/*
|
||||
*************************************************************************
|
||||
* DEFINES AND MACROS *
|
||||
|
@ -23,6 +24,8 @@
|
|||
#define WAN_MEDIA_STS1 0x06
|
||||
#define WAN_MEDIA_J1 0x07
|
||||
#define WAN_MEDIA_FXOFXS 0x08
|
||||
#define WAN_MEDIA_BRI 0x09
|
||||
#define WAN_MEDIA_SERIAL 0x0A
|
||||
|
||||
/*The line code */
|
||||
#define WAN_LCODE_NONE 0x00
|
||||
|
@ -42,19 +45,26 @@
|
|||
#define WAN_FR_E3_G751 0x07
|
||||
#define WAN_FR_E3_G832 0x08
|
||||
#define WAN_FR_DS3_Cbit 0x09
|
||||
#define WAN_FR_DS3_M13 0x10
|
||||
#define WAN_FR_DS3_M13 0x0A
|
||||
#define WAN_FR_SLC96 0x0B
|
||||
|
||||
/* Clocking Master/Normal */
|
||||
#define WAN_NORMAL_CLK 0x01
|
||||
#define WAN_MASTER_CLK 0x02
|
||||
|
||||
/* Serial Card FE options */
|
||||
#define WAN_FE_V35 0x01
|
||||
#define WAN_FE_RS232 0x02
|
||||
|
||||
/* Front-End DEBUG flags */
|
||||
#define WAN_FE_DEBUG_NONE 0x00
|
||||
#define WAN_FE_DEBUG_RBS 0x01
|
||||
#define WAN_FE_DEBUG_ALARM 0x02
|
||||
#define WAN_FE_DEBUG_VOLTAGE 0x03
|
||||
#define WAN_FE_DEBUG_RECONFIG 0x04
|
||||
#define WAN_FE_DEBUG_REG 0x05
|
||||
#define WAN_FE_DEBUG_NONE 0x00
|
||||
#define WAN_FE_DEBUG_RBS 0x01
|
||||
#define WAN_FE_DEBUG_ALARM 0x02
|
||||
#define WAN_FE_DEBUG_VOLTAGE 0x03
|
||||
#define WAN_FE_DEBUG_RECONFIG 0x04
|
||||
#define WAN_FE_DEBUG_REG 0x05
|
||||
#define WAN_FE_DEBUG_CONFIG_VERIFY 0x06
|
||||
#define WAN_FE_DEBUG_HOOK 0x07
|
||||
|
||||
/* Front-End DEBUG sub-flags */
|
||||
/* Sub-flags for RBS debugging */
|
||||
|
@ -134,8 +144,10 @@
|
|||
#define IS_TE1_56K_MEDIA(fe_cfg)(IS_TE1_MEDIA(fe_cfg) || \
|
||||
IS_56K_MEDIA(fe_cfg)
|
||||
#define IS_DS3_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_DS3)
|
||||
#define IS_E3_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_E3)
|
||||
#define IS_E3_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_E3)
|
||||
#define IS_FXOFXS_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_FXOFXS)
|
||||
#define IS_BRI_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_BRI)
|
||||
#define IS_SERIAL_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_SERIAL)
|
||||
|
||||
#define IS_TXTRISTATE(fe_cfg) (FE_TXTRISTATE(fe_cfg) == WANOPT_YES)
|
||||
|
||||
|
@ -151,6 +163,8 @@
|
|||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_DS3) ? "DS3" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_E3) ? "E3" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_FXOFXS) ? "FXO/FXS" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_BRI) ? "BRI" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_SERIAL) ? "V35/RS232" : \
|
||||
"Unknown"
|
||||
|
||||
#define LCODE_DECODE(fe_cfg) \
|
||||
|
@ -168,7 +182,8 @@
|
|||
(FE_FRAME(fe_cfg) == WAN_FR_E3_G751) ? "G.751" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_E3_G832) ? "G.832" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_DS3_Cbit) ? "C-bit" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_DS3_M13) ? "M13" : "Unknown"
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_DS3_M13) ? "M13" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_SLC96) ? "SLC-96" : "Unknown"
|
||||
|
||||
|
||||
|
||||
|
@ -187,21 +202,20 @@ typedef struct {
|
|||
unsigned int line_no;
|
||||
unsigned char tx_tristate_mode;
|
||||
unsigned int tdmv_law;
|
||||
unsigned char poll_mode; /* enable fe poll driven arch */
|
||||
unsigned char poll_mode;
|
||||
union {
|
||||
sdla_te_cfg_t te_cfg;
|
||||
sdla_te3_cfg_t te3_cfg;
|
||||
sdla_remora_cfg_t remora;
|
||||
sdla_bri_cfg_t bri;
|
||||
} cfg;
|
||||
} sdla_fe_cfg_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned int alarms;
|
||||
unsigned int liu_alarms;
|
||||
unsigned int bert_alarms;
|
||||
u_int32_t alarms;
|
||||
union {
|
||||
sdla_te_stats_t te1_stats;
|
||||
//sdla_te_pmon_t te_pmon;
|
||||
/*sdla_te_pmon_t te_pmon;*/
|
||||
sdla_te3_pmon_t te3_pmon;
|
||||
} u;
|
||||
#define te_pmon u.te1_stats.pmon
|
||||
|
@ -210,6 +224,7 @@ typedef struct {
|
|||
typedef struct {
|
||||
unsigned char type;
|
||||
unsigned char mode;
|
||||
int mod_no; /* A200/A400 */
|
||||
union{
|
||||
struct {
|
||||
int channel;
|
||||
|
@ -220,12 +235,24 @@ typedef struct {
|
|||
int reg;
|
||||
unsigned char value;
|
||||
} reg;
|
||||
struct {
|
||||
int offhook;
|
||||
}hook;
|
||||
} fe_debug_un;
|
||||
#define fe_debug_rbs fe_debug_un.rbs
|
||||
#define fe_debug_reg fe_debug_un.reg
|
||||
#define fe_debug_hook fe_debug_un.hook
|
||||
} sdla_fe_debug_t;
|
||||
|
||||
|
||||
/* Front-End status */
|
||||
#define FE_STATUS_DECODE(fe_status) \
|
||||
(fe_status == FE_DISCONNECTED) ? "disconnected" :\
|
||||
(fe_status == FE_CONNECTED) ? "connected" : \
|
||||
"unknown"
|
||||
|
||||
#define WAN_FE_STATUS_DECODE(fe) FE_STATUS_DECODE((fe)->fe_status)
|
||||
|
||||
#ifdef WAN_KERNEL
|
||||
|
||||
#define FE_ASSERT(val) if (val) return;
|
||||
|
@ -242,6 +269,8 @@ typedef struct {
|
|||
#define IS_FXOFXS_FEMEDIA(fe) IS_FXOFXS_MEDIA(&((fe)->fe_cfg))
|
||||
#define IS_FE_TXTRISTATE(fe) IS_TXTRISTATE(&((fe)->fe_cfg))
|
||||
#define IS_FR_FEUNFRAMED(fe) IS_FR_UNFRAMED(&((fe)->fe_cfg))
|
||||
#define IS_BRI_FEMEDIA(fe) IS_BRI_MEDIA(&((fe)->fe_cfg))
|
||||
#define IS_SERIAL_FEMEDIA(fe) IS_SERIAL_MEDIA(&((fe)->fe_cfg))
|
||||
|
||||
#define WAN_FE_MEDIA(fe) FE_MEDIA(&((fe)->fe_cfg))
|
||||
#define WAN_FE_LCODE(fe) FE_LCODE(&((fe)->fe_cfg))
|
||||
|
@ -254,15 +283,16 @@ typedef struct {
|
|||
#define FE_LCODE_DECODE(fe) LCODE_DECODE(&((fe)->fe_cfg))
|
||||
#define FE_FRAME_DECODE(fe) FRAME_DECODE(&((fe)->fe_cfg))
|
||||
|
||||
#define WAN_FE_START_CHANNEL(fe) \
|
||||
(IS_TE1_FEMEDIA(fe)) ? GET_TE_START_CHANNEL(fe) : \
|
||||
(IS_FXOFXS_FEMEDIA(fe)) ? WAN_RM_START_CHANNEL: \
|
||||
(IS_BRI_FEMEDIA(fe)) ? WAN_BRI_START_CHANNEL: 0
|
||||
|
||||
#define WAN_FE_MAX_CHANNELS(fe) \
|
||||
(IS_TE1_FEMEDIA(fe)) ? GET_TE_CHANNEL_RANGE(fe) : \
|
||||
(IS_FXOFXS_FEMEDIA(fe)) ? MAX_FXOFXS_CHANNELS : 0
|
||||
(IS_FXOFXS_FEMEDIA(fe)) ? MAX_FXOFXS_CHANNELS : \
|
||||
(IS_BRI_FEMEDIA(fe)) ? MAX_BRI_CHANNELS : 0
|
||||
|
||||
/* Front-End status */
|
||||
#define WAN_FE_STATUS_DECODE(fe) \
|
||||
((fe)->fe_status == FE_DISCONNECTED) ? "disconnected" :\
|
||||
((fe)->fe_status == FE_CONNECTED) ? "connected" : \
|
||||
"unknown"
|
||||
#if 0
|
||||
enum fe_status {
|
||||
FE_UNITIALIZED = 0x00,
|
||||
|
@ -390,7 +420,7 @@ typedef struct sdla_fe_timer_event_ {
|
|||
WAN_LIST_ENTRY(sdla_fe_timer_event_) next;
|
||||
} sdla_fe_timer_event_t;
|
||||
|
||||
#define WAN_FE_MAX_QEVENT_LEN 20
|
||||
#define WAN_FE_MAX_QEVENT_LEN 20
|
||||
typedef struct {
|
||||
char *name;
|
||||
void *card;
|
||||
|
@ -406,20 +436,24 @@ typedef struct {
|
|||
#define te_param fe_param.te
|
||||
#define te3_param fe_param.te3
|
||||
#define rm_param fe_param.remora
|
||||
#define bri_param fe_param.bri
|
||||
sdla_te_param_t te;
|
||||
sdla_56k_param_t k56_param;
|
||||
sdla_te3_param_t te3;
|
||||
sdla_remora_param_t remora;
|
||||
sdla_bri_param_t bri;
|
||||
} fe_param;
|
||||
#define fe_alarm fe_stats.alarms
|
||||
#define liu_alarm fe_stats.liu_alarms
|
||||
#define bert_alarm fe_stats.bert_alarms
|
||||
sdla_fe_stats_t fe_stats;
|
||||
#define fe_alarm fe_stats.alarms
|
||||
sdla_fe_stats_t fe_stats;
|
||||
|
||||
wan_spinlock_t lock;
|
||||
wan_spinlock_t lockirq;
|
||||
wan_timer_t timer;
|
||||
#if defined(__WINDOWS__)
|
||||
WAN_LIST_HEAD(fe_timer_event_list_head, sdla_fe_timer_event_) event;
|
||||
#else
|
||||
WAN_LIST_HEAD(, sdla_fe_timer_event_) event;
|
||||
unsigned int event_map;
|
||||
#endif
|
||||
unsigned int event_map;
|
||||
|
||||
int (*write_cpld)(void*, unsigned short, unsigned char);
|
||||
int (*read_cpld)(void*, unsigned short, unsigned char);
|
||||
|
@ -477,9 +511,10 @@ typedef struct {
|
|||
int (*if_unconfig)(void *fe, u32, u8);
|
||||
int (*disable_irq)(void *fe);
|
||||
int (*polling)(sdla_fe_t *fe);
|
||||
int (*add_timer)(sdla_fe_t *fe, unsigned long);
|
||||
int (*isr)(sdla_fe_t *fe);
|
||||
int (*process_udp)(sdla_fe_t *fe, void*, unsigned char*);
|
||||
unsigned int (*read_alarm)(sdla_fe_t *fe, int);
|
||||
u_int32_t (*read_alarm)(sdla_fe_t *fe, int);
|
||||
int (*read_pmon)(sdla_fe_t *fe, int);
|
||||
int (*flush_pmon)(sdla_fe_t *fe);
|
||||
/* Set Front-End alarm (T1/E1) */
|
||||
|
@ -490,8 +525,10 @@ typedef struct {
|
|||
char* (*print_fe_act_channels)(sdla_fe_t*);
|
||||
/* Print Front-End alarm (T1/E1/56K) */
|
||||
int (*print_fe_alarm)(sdla_fe_t*,unsigned int);
|
||||
/* Get front end status */
|
||||
/* Get front end status: Connected/Disconnected */
|
||||
int (*get_fe_status)(sdla_fe_t *fe, unsigned char*);
|
||||
/* Set front end status: Connected/Disconnected only ISDN BRI */
|
||||
int (*set_fe_status)(sdla_fe_t *fe, unsigned char);
|
||||
/* Get front end media type */
|
||||
unsigned char (*get_fe_media)(sdla_fe_t *fe);
|
||||
/* Get front end media type string */
|
||||
|
@ -499,9 +536,9 @@ typedef struct {
|
|||
/* Set Line-loopback modes */
|
||||
int (*set_fe_lbmode)(sdla_fe_t*, unsigned char, unsigned char);
|
||||
/* Update Alarm Status for proc file system */
|
||||
int (*update_alarm_info)(sdla_fe_t*, struct seq_file* m, int* stop_cnt);
|
||||
int (*update_alarm_info)(sdla_fe_t*, struct seq_file*, int*);
|
||||
/* Update PMON Status for proc file system */
|
||||
int (*update_pmon_info)(sdla_fe_t*, struct seq_file* m, int* stop_cnt);
|
||||
int (*update_pmon_info)(sdla_fe_t*, struct seq_file*, int*);
|
||||
/* AFT T1/E1 cards only */
|
||||
int (*led_ctrl)(sdla_fe_t*, int mode);
|
||||
/* Check RBS bits (T1/E1 cards) */
|
||||
|
@ -521,7 +558,10 @@ typedef struct {
|
|||
void (*enable_timer)(sdla_fe_t* fe, unsigned char cmd, unsigned int delay);
|
||||
#endif
|
||||
/* Available front-end map */
|
||||
unsigned int (*active_map)(sdla_fe_t *fe);
|
||||
/* BRI addition - one Wanpipe may have two lines, provide the 'line_no' when
|
||||
getting the active channels map.
|
||||
*/
|
||||
unsigned int (*active_map)(sdla_fe_t *fe, unsigned char line_no);
|
||||
/* Transmit DTMF number */
|
||||
int (*set_dtmf)(sdla_fe_t*, int, unsigned char);
|
||||
/* Enable/Disable FE interrupt */
|
||||
|
@ -530,6 +570,11 @@ typedef struct {
|
|||
int (*event_ctrl)(sdla_fe_t*, wan_event_ctrl_t*);
|
||||
/* Front-End watchdog */
|
||||
int (*watchdog)(sdla_fe_t*);
|
||||
/* Transmit ISDN BRI D-chan data */
|
||||
int (*isdn_bri_dchan_tx)(sdla_fe_t*, void*, unsigned int);
|
||||
/* Receive ISDN BRI D-chan data */
|
||||
int (*isdn_bri_dchan_rx)(sdla_fe_t*, void*, unsigned int);
|
||||
|
||||
} sdla_fe_iface_t;
|
||||
|
||||
/*
|
||||
|
|
|
@ -1,547 +0,0 @@
|
|||
/*
|
||||
*************************************************************************************
|
||||
* *
|
||||
* FRNT_END.H - the 'C' header file for the Sangoma S508/S514 adapter front-end API. *
|
||||
* *
|
||||
*************************************************************************************
|
||||
*/
|
||||
#ifndef _SDLA_FRONT_END_H_
|
||||
#define _SDLA_FRONT_END_H_
|
||||
|
||||
/*
|
||||
*************************************************************************
|
||||
* DEFINES AND MACROS *
|
||||
*************************************************************************
|
||||
*/
|
||||
/* Front-End media type */
|
||||
#define WAN_MEDIA_NONE 0x00
|
||||
#define WAN_MEDIA_T1 0x01
|
||||
#define WAN_MEDIA_E1 0x02
|
||||
#define WAN_MEDIA_56K 0x03
|
||||
#define WAN_MEDIA_DS3 0x04
|
||||
#define WAN_MEDIA_E3 0x05
|
||||
#define WAN_MEDIA_STS1 0x06
|
||||
#define WAN_MEDIA_J1 0x07
|
||||
#define WAN_MEDIA_FXOFXS 0x08
|
||||
|
||||
/*The line code */
|
||||
#define WAN_LCODE_NONE 0x00
|
||||
#define WAN_LCODE_AMI 0x01 /* T1/E1/DS3/E3 */
|
||||
#define WAN_LCODE_B8ZS 0x02 /* T1 */
|
||||
#define WAN_LCODE_HDB3 0x03 /* E1/E3 */
|
||||
#define WAN_LCODE_B3ZS 0x04 /* DS3 */
|
||||
|
||||
/* Framing modes */
|
||||
#define WAN_FR_NONE 0x00
|
||||
#define WAN_FR_ESF 0x01
|
||||
#define WAN_FR_D4 0x02
|
||||
#define WAN_FR_ESF_JAPAN 0x03
|
||||
#define WAN_FR_CRC4 0x04
|
||||
#define WAN_FR_NCRC4 0x05
|
||||
#define WAN_FR_UNFRAMED 0x06
|
||||
#define WAN_FR_E3_G751 0x07
|
||||
#define WAN_FR_E3_G832 0x08
|
||||
#define WAN_FR_DS3_Cbit 0x09
|
||||
#define WAN_FR_DS3_M13 0x10
|
||||
|
||||
/* Clocking Master/Normal */
|
||||
#define WAN_NORMAL_CLK 0x01
|
||||
#define WAN_MASTER_CLK 0x02
|
||||
|
||||
/* Front-End DEBUG flags */
|
||||
#define WAN_FE_DEBUG_NONE 0x00
|
||||
#define WAN_FE_DEBUG_RBS 0x01
|
||||
#define WAN_FE_DEBUG_ALARM 0x02
|
||||
#define WAN_FE_DEBUG_VOLTAGE 0x03
|
||||
#define WAN_FE_DEBUG_RECONFIG 0x04
|
||||
#define WAN_FE_DEBUG_REG 0x05
|
||||
|
||||
/* Front-End DEBUG sub-flags */
|
||||
/* Sub-flags for RBS debugging */
|
||||
#define WAN_FE_DEBUG_RBS_RX_ENABLE 0x01
|
||||
#define WAN_FE_DEBUG_RBS_TX_ENABLE 0x02
|
||||
#define WAN_FE_DEBUG_RBS_RX_DISABLE 0x03
|
||||
#define WAN_FE_DEBUG_RBS_TX_DISABLE 0x04
|
||||
#define WAN_FE_DEBUG_RBS_READ 0x05
|
||||
#define WAN_FE_DEBUG_RBS_SET 0x06
|
||||
#define WAN_FE_DEBUG_RBS_PRINT 0x07
|
||||
#define WAN_FE_DEBUG_RBS_DECODE(mode) \
|
||||
((mode) == WAN_FE_DEBUG_RBS_RX_ENABLE) ? "Enable RBS RX" : \
|
||||
((mode) == WAN_FE_DEBUG_RBS_TX_ENABLE) ? "Enable RBS TX" : \
|
||||
((mode) == WAN_FE_DEBUG_RBS_RX_DISABLE) ? "Disable RBS RX" : \
|
||||
((mode) == WAN_FE_DEBUG_RBS_TX_DISABLE) ? "Disable RBS TX" : \
|
||||
((mode) == WAN_FE_DEBUG_RBS_READ) ? "Read RBS" : \
|
||||
((mode) == WAN_FE_DEBUG_RBS_SET) ? "Set RBS" : \
|
||||
((mode) == WAN_FE_DEBUG_RBS_PRINT) ? "Print RBS" : "Unknown"
|
||||
|
||||
/* Sub-flags for ALARM debugging */
|
||||
#define WAN_FE_DEBUG_ALARM_AIS_ENABLE 0x01
|
||||
#define WAN_FE_DEBUG_ALARM_AIS_DISABLE 0x02
|
||||
#define WAN_FE_DEBUG_ALARM_DECODE(mode) \
|
||||
((mode) == WAN_FE_DEBUG_ALARM_AIS_ENABLE) ? "Enable TX AIS" : \
|
||||
((mode) == WAN_FE_DEBUG_ALARM_AIS_DISABLE) ? "Disable TX AIS" : \
|
||||
"Unknown"
|
||||
|
||||
/* Front-End TX tri-state mode flags */
|
||||
#define WAN_FE_TXMODE_ENABLE 0x01
|
||||
#define WAN_FE_TXMODE_DISABLE 0x02
|
||||
|
||||
/* Read alarm flag */
|
||||
#define WAN_FE_ALARM_NONE 0x00
|
||||
#define WAN_FE_ALARM_READ 0x01
|
||||
#define WAN_FE_ALARM_PRINT 0x02
|
||||
#define WAN_FE_ALARM_UPDATE 0x04
|
||||
#define IS_FE_ALARM_READ(action) ((action) & WAN_FE_ALARM_READ)
|
||||
#define IS_FE_ALARM_PRINT(action) ((action) & WAN_FE_ALARM_PRINT)
|
||||
#define IS_FE_ALARM_UPDATE(action) ((action) & WAN_FE_ALARM_UPDATE)
|
||||
|
||||
/* Read pmon flag */
|
||||
#define WAN_FE_PMON_UPDATE 0x01
|
||||
#define WAN_FE_PMON_PRINT 0x02
|
||||
#define WAN_FE_PMON_READ 0x04
|
||||
#define IS_FE_PMON_UPDATE(action) ((action) & WAN_FE_PMON_UPDATE)
|
||||
#define IS_FE_PMON_PRINT(action) ((action) & WAN_FE_PMON_PRINT)
|
||||
#define IS_FE_PMON_READ(action) ((action) & WAN_FE_PMON_READ)
|
||||
|
||||
/* FE interrupt action command */
|
||||
#define WAN_FE_INTR_ENABLE 0x01
|
||||
#define WAN_FE_INTR_MASK 0x02
|
||||
|
||||
/* FE event action command */
|
||||
#define WAN_FE_EVENT_ENABLE 0x01
|
||||
#define WAN_FE_EVENT_MASK 0x02
|
||||
|
||||
/* Alaw/Mulaw */
|
||||
#define WAN_TDMV_ALAW 0x01
|
||||
#define WAN_TDMV_MULAW 0x02
|
||||
|
||||
#define FE_MEDIA(fe_cfg) ((fe_cfg)->media)
|
||||
#define FE_SUBMEDIA(fe_cfg) ((fe_cfg)->sub_media)
|
||||
#define FE_LCODE(fe_cfg) ((fe_cfg)->lcode)
|
||||
#define FE_FRAME(fe_cfg) ((fe_cfg)->frame)
|
||||
#define FE_LINENO(fe_cfg) ((fe_cfg)->line_no)
|
||||
#define FE_TXTRISTATE(fe_cfg) ((fe_cfg)->tx_tristate_mode)
|
||||
#define FE_TDMV_LAW(fe_cfg) ((fe_cfg)->tdmv_law)
|
||||
|
||||
#define IS_T1_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_T1)
|
||||
#define IS_E1_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_E1)
|
||||
#define IS_J1_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_T1 && \
|
||||
FE_SUBMEDIA(fe_cfg) == WAN_MEDIA_J1)
|
||||
#define IS_TE1_MEDIA(fe_cfg) (IS_T1_MEDIA(fe_cfg) || \
|
||||
IS_E1_MEDIA(fe_cfg) || \
|
||||
IS_J1_MEDIA(fe_cfg))
|
||||
#define IS_56K_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_56K)
|
||||
#define IS_TE1_56K_MEDIA(fe_cfg)(IS_TE1_MEDIA(fe_cfg) || \
|
||||
IS_56K_MEDIA(fe_cfg)
|
||||
#define IS_DS3_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_DS3)
|
||||
#define IS_E3_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_E3)
|
||||
#define IS_FXOFXS_MEDIA(fe_cfg) (FE_MEDIA(fe_cfg) == WAN_MEDIA_FXOFXS)
|
||||
|
||||
#define IS_TXTRISTATE(fe_cfg) (FE_TXTRISTATE(fe_cfg) == WANOPT_YES)
|
||||
|
||||
#define IS_FR_UNFRAMED(fe_cfg) (FE_FRAME(fe_cfg) == WAN_FR_UNFRAMED)
|
||||
|
||||
#define MEDIA_DECODE(fe_cfg) \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_T1 && \
|
||||
FE_SUBMEDIA(fe_cfg)==WAN_MEDIA_J1)?"J1" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_T1) ? "T1" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_E1) ? "E1" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_J1) ? "J1" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_56K) ? "56K" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_DS3) ? "DS3" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_E3) ? "E3" : \
|
||||
(FE_MEDIA(fe_cfg) == WAN_MEDIA_FXOFXS) ? "FXO/FXS" : \
|
||||
"Unknown"
|
||||
|
||||
#define LCODE_DECODE(fe_cfg) \
|
||||
(FE_LCODE(fe_cfg) == WAN_LCODE_AMI) ? "AMI" : \
|
||||
(FE_LCODE(fe_cfg) == WAN_LCODE_B8ZS) ? "B8ZS" : \
|
||||
(FE_LCODE(fe_cfg) == WAN_LCODE_HDB3) ? "HDB3" : \
|
||||
(FE_LCODE(fe_cfg) == WAN_LCODE_B3ZS) ? "B3ZS" : "Unknown"
|
||||
|
||||
#define FRAME_DECODE(fe_cfg) \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_ESF) ? "ESF" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_D4) ? "D4" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_CRC4) ? "CRC4" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_NCRC4) ? "non-CRC4" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_UNFRAMED) ? "Unframed" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_E3_G751) ? "G.751" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_E3_G832) ? "G.832" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_DS3_Cbit) ? "C-bit" : \
|
||||
(FE_FRAME(fe_cfg) == WAN_FR_DS3_M13) ? "M13" : "Unknown"
|
||||
|
||||
|
||||
|
||||
/* front-end configuration and access interface commands */
|
||||
#define READ_FRONT_END_REGISTER (WAN_FE_CMD_START+0) /* 0x90 read from front-end register */
|
||||
#define WRITE_FRONT_END_REGISTER (WAN_FE_CMD_START+1) /* 0x91 write to front-end register */
|
||||
#define READ_FRONT_END_STATISTICS (WAN_FE_CMD_START+2) /* 0x92 read the front-end statistics */
|
||||
#define FLUSH_FRONT_END_STATISTICS (WAN_FE_CMD_START+3) /* 0x93 flush the front-end statistics */
|
||||
|
||||
|
||||
typedef struct {
|
||||
unsigned char media;
|
||||
unsigned char sub_media;
|
||||
unsigned char lcode;
|
||||
unsigned char frame;
|
||||
unsigned int line_no;
|
||||
unsigned char tx_tristate_mode;
|
||||
unsigned int tdmv_law;
|
||||
unsigned char poll_mode; /* enable fe poll driven arch */
|
||||
union {
|
||||
sdla_te_cfg_t te_cfg;
|
||||
sdla_te3_cfg_t te3_cfg;
|
||||
sdla_remora_cfg_t remora;
|
||||
} cfg;
|
||||
} sdla_fe_cfg_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned int alarms;
|
||||
unsigned int liu_alarms;
|
||||
unsigned int bert_alarms;
|
||||
union {
|
||||
sdla_te_stats_t te1_stats;
|
||||
//sdla_te_pmon_t te_pmon;
|
||||
sdla_te3_pmon_t te3_pmon;
|
||||
} u;
|
||||
#define te_pmon u.te1_stats.pmon
|
||||
} sdla_fe_stats_t;
|
||||
|
||||
typedef struct {
|
||||
unsigned char type;
|
||||
unsigned char mode;
|
||||
union{
|
||||
struct {
|
||||
int channel;
|
||||
unsigned char abcd;
|
||||
} rbs;
|
||||
struct {
|
||||
int read;
|
||||
int reg;
|
||||
unsigned char value;
|
||||
} reg;
|
||||
} fe_debug_un;
|
||||
#define fe_debug_rbs fe_debug_un.rbs
|
||||
#define fe_debug_reg fe_debug_un.reg
|
||||
} sdla_fe_debug_t;
|
||||
|
||||
|
||||
#ifdef WAN_KERNEL
|
||||
|
||||
#define FE_ASSERT(val) if (val) return;
|
||||
#define FE_ASSERT1(val) if (val) return 1;
|
||||
|
||||
#define WAN_FECALL(dev, func, x) \
|
||||
((dev)->fe_iface.func) ? (dev)->fe_iface.func x : -EINVAL
|
||||
|
||||
#define IS_T1_FEMEDIA(fe) IS_T1_MEDIA(&((fe)->fe_cfg))
|
||||
#define IS_E1_FEMEDIA(fe) IS_E1_MEDIA(&((fe)->fe_cfg))
|
||||
#define IS_TE1_FEMEDIA(fe) IS_TE1_MEDIA(&((fe)->fe_cfg))
|
||||
#define IS_56K_FEMEDIA(fe) IS_56K_MEDIA(&((fe)->fe_cfg))
|
||||
#define IS_J1_FEMEDIA(fe) IS_J1_MEDIA(&((fe)->fe_cfg))
|
||||
#define IS_FXOFXS_FEMEDIA(fe) IS_FXOFXS_MEDIA(&((fe)->fe_cfg))
|
||||
#define IS_FE_TXTRISTATE(fe) IS_TXTRISTATE(&((fe)->fe_cfg))
|
||||
#define IS_FR_FEUNFRAMED(fe) IS_FR_UNFRAMED(&((fe)->fe_cfg))
|
||||
|
||||
#define WAN_FE_MEDIA(fe) FE_MEDIA(&((fe)->fe_cfg))
|
||||
#define WAN_FE_LCODE(fe) FE_LCODE(&((fe)->fe_cfg))
|
||||
#define WAN_FE_FRAME(fe) FE_FRAME(&((fe)->fe_cfg))
|
||||
#define WAN_FE_LINENO(fe) FE_LINENO(&((fe)->fe_cfg))
|
||||
#define WAN_FE_TXTRISTATE(fe) FE_TXTRISTATE(&((fe)->fe_cfg))
|
||||
#define WAN_FE_TDMV_LAW(fe) FE_TDMV_LAW(&((fe)->fe_cfg))
|
||||
|
||||
#define FE_MEDIA_DECODE(fe) MEDIA_DECODE(&((fe)->fe_cfg))
|
||||
#define FE_LCODE_DECODE(fe) LCODE_DECODE(&((fe)->fe_cfg))
|
||||
#define FE_FRAME_DECODE(fe) FRAME_DECODE(&((fe)->fe_cfg))
|
||||
|
||||
#define WAN_FE_MAX_CHANNELS(fe) \
|
||||
(IS_TE1_FEMEDIA(fe)) ? GET_TE_CHANNEL_RANGE(fe) : \
|
||||
(IS_FXOFXS_FEMEDIA(fe)) ? MAX_FXOFXS_CHANNELS : 0
|
||||
|
||||
/* Front-End status */
|
||||
#define WAN_FE_STATUS_DECODE(fe) \
|
||||
((fe)->fe_status == FE_DISCONNECTED) ? "disconnected" :\
|
||||
((fe)->fe_status == FE_CONNECTED) ? "connected" : \
|
||||
"unknown"
|
||||
#if 0
|
||||
enum fe_status {
|
||||
FE_UNITIALIZED = 0x00,
|
||||
FE_DISCONNECTED,
|
||||
FE_CONNECTED
|
||||
};
|
||||
#endif
|
||||
|
||||
/* adapter configuration interface commands */
|
||||
#define SET_ADAPTER_CONFIGURATION (WAN_INTERFACE_CMD_START+0) /* 0xA0 set adapter configuration */
|
||||
#define READ_ADAPTER_CONFIGURATION (WAN_INTERFACE_CMD_START+1) /* 0xA1 read adapter configuration */
|
||||
|
||||
/* return codes from interface commands */
|
||||
#define LGTH_FE_CFG_DATA_INVALID 0x91 /* the length of the FE_RX_DISC_TX_IDLE_STRUCT is invalid */
|
||||
#define LGTH_ADAPTER_CFG_DATA_INVALID 0x91 /* the length of the passed configuration data is invalid */
|
||||
#define INVALID_FE_CFG_DATA 0x92 /* the passed SET_FE_RX_DISC_TX_IDLE_CFG data is invalid */
|
||||
#define ADPTR_OPERATING_FREQ_INVALID 0x92 /* an invalid adapter operating frequency was selected */
|
||||
#define PROT_CFG_BEFORE_FE_CFG 0x93 /* set the protocol-level configuration before setting the FE configuration */
|
||||
|
||||
#define SET_FE_RX_DISC_TX_IDLE_CFG 0x98 /* set the front-end Rx discard/Tx idle configuration */
|
||||
#define READ_FE_RX_DISC_TX_IDLE_CFG 0x99 /* read the front-end Rx discard/Tx idle configuration */
|
||||
#define SET_TE1_SIGNALING_CFG 0x9A /* set the T1/E1 signaling configuration */
|
||||
#define READ_TE1_SIGNALING_CFG 0x9B /* read the T1/E1 signaling configuration */
|
||||
|
||||
|
||||
#define COMMAND_INVALID_FOR_ADAPTER 0x9F /* the command is invalid for the adapter type */
|
||||
|
||||
|
||||
/* ---------------------------------------------------------------------------------
|
||||
* Constants for the SET_FE_RX_DISC_TX_IDLE_CFG/READ_FE_RX_DISC_TX_IDLE_CFG commands
|
||||
* --------------------------------------------------------------------------------*/
|
||||
|
||||
#define NO_ACTIVE_RX_TIME_SLOTS_T1 24 /* T1 - no active time slots used for reception */
|
||||
#define NO_ACTIVE_TX_TIME_SLOTS_T1 24 /* T1 - no active time slots used for transmission */
|
||||
#define NO_ACTIVE_RX_TIME_SLOTS_E1 32 /* E1 - no active time slots used for reception */
|
||||
#define NO_ACTIVE_TX_TIME_SLOTS_E1 31 /* E1 - no active time slots used for transmission (channel 0 reserved for framing) */
|
||||
|
||||
/* the structure used for the SET_FE_RX_DISC_TX_IDLE_CFG/READ_FE_RX_DISC_TX_IDLE_CFG command */
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
unsigned short lgth_Rx_disc_bfr; /* the length of the Rx discard buffer */
|
||||
unsigned short lgth_Tx_idle_bfr; /* the length of the Tx idle buffer */
|
||||
/* the transmit idle data buffer */
|
||||
unsigned char Tx_idle_data_bfr[NO_ACTIVE_TX_TIME_SLOTS_E1];
|
||||
} FE_RX_DISC_TX_IDLE_STRUCT;
|
||||
#pragma pack()
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Constants for front-end access
|
||||
* --------------------------------------------------------------------------*/
|
||||
|
||||
/* the structure used for the READ_FRONT_END_REGISTER/WRITE_FRONT_END_REGISTER command */
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
unsigned short register_number; /* the register number to be read from or written to */
|
||||
unsigned char register_value; /* the register value read/written */
|
||||
} FRONT_END_REG_STRUCT;
|
||||
#pragma pack()
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
unsigned char opp_flag; /* opp flag */
|
||||
|
||||
union {
|
||||
struct {
|
||||
unsigned char RR8_56k; /* register #8 value - 56K CSU/DSU */
|
||||
unsigned char RR9_56k; /* register #9 value - 56K CSU/DSU */
|
||||
unsigned char RRA_56k; /* register #A value - 56K CSU/DSU */
|
||||
unsigned char RRB_56k; /* register #B value - 56K CSU/DSU */
|
||||
unsigned char RRC_56k; /* register #C value - 56K CSU/DSU */
|
||||
} stat_56k;
|
||||
} FE_U;
|
||||
|
||||
} FRONT_END_STATUS_STRUCT;
|
||||
#pragma pack()
|
||||
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Constants for the READ_FRONT_END_STATISTICS command
|
||||
* ---------------------------------------------------------------------------*/
|
||||
|
||||
/* the front-end statistics structure */
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
unsigned int FE_interrupt_count; /* the number of front-end interrupts generated */
|
||||
unsigned int FE_app_timeout_count; /* the number of front-end interrupt application timeouts */
|
||||
} FE_STATISTICS_STRUCT;
|
||||
#pragma pack()
|
||||
|
||||
|
||||
|
||||
/* --------------------------------------------------------------------------------
|
||||
* Constants for the SET_ADAPTER_CONFIGURATION/READ_ADAPTER_CONFIGURATION commands
|
||||
* -------------------------------------------------------------------------------*/
|
||||
|
||||
/* the adapter configuration structure */
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
unsigned short adapter_type; /* type of adapter */
|
||||
unsigned short adapter_config; /* miscellaneous adapter configuration options */
|
||||
unsigned int operating_frequency; /* adapter operating frequency */
|
||||
} ADAPTER_CONFIGURATION_STRUCT;
|
||||
#pragma pack()
|
||||
|
||||
typedef int (WRITE_FRONT_END_REG_T)(void*, ...);
|
||||
typedef unsigned char (READ_FRONT_END_REG_T)(void*, ...);
|
||||
|
||||
enum {
|
||||
AFT_LED_ON,
|
||||
AFT_LED_OFF,
|
||||
AFT_LED_TOGGLE
|
||||
};
|
||||
|
||||
typedef struct sdla_fe_timer_event_ {
|
||||
unsigned char type;
|
||||
u_int8_t mode;
|
||||
int delay;
|
||||
union{
|
||||
#define te_event u_fe.te
|
||||
#define rm_event u_fe.rm
|
||||
sdla_te_event_t te;
|
||||
sdla_rm_event_t rm;
|
||||
} u_fe;
|
||||
WAN_LIST_ENTRY(sdla_fe_timer_event_) next;
|
||||
} sdla_fe_timer_event_t;
|
||||
|
||||
#define WAN_FE_MAX_QEVENT_LEN 20
|
||||
typedef struct {
|
||||
char *name;
|
||||
void *card;
|
||||
sdla_fe_cfg_t fe_cfg;
|
||||
/* FIXME: Remove the following parameters from wandev_t */
|
||||
unsigned char fe_status;
|
||||
/* unsigned int fe_alarm; */
|
||||
unsigned char fe_chip_id;
|
||||
unsigned char fe_max_ports;
|
||||
unsigned char fe_debug;
|
||||
/* ^^^ */
|
||||
union {
|
||||
#define te_param fe_param.te
|
||||
#define te3_param fe_param.te3
|
||||
#define rm_param fe_param.remora
|
||||
sdla_te_param_t te;
|
||||
sdla_56k_param_t k56_param;
|
||||
sdla_te3_param_t te3_param;
|
||||
sdla_remora_param_t remora;
|
||||
} fe_param;
|
||||
#define fe_alarm fe_stats.alarms
|
||||
#define liu_alarm fe_stats.liu_alarms
|
||||
#define bert_alarm fe_stats.bert_alarms
|
||||
sdla_fe_stats_t fe_stats;
|
||||
|
||||
wan_spinlock_t lock;
|
||||
wan_timer_t timer;
|
||||
WAN_LIST_HEAD(, sdla_fe_timer_event_) event;
|
||||
unsigned int event_map;
|
||||
|
||||
int (*write_cpld)(void*, unsigned short, unsigned char);
|
||||
int (*read_cpld)(void*, unsigned short, unsigned char);
|
||||
int (*write_fe_cpld)(void*, unsigned short, unsigned char);
|
||||
int (*read_fe_cpld)(void*, unsigned short, unsigned char);
|
||||
int (*write_framer)(void*,unsigned short,unsigned short);
|
||||
unsigned int (*read_framer)(void*,unsigned short);
|
||||
WRITE_FRONT_END_REG_T *write_fe_reg;
|
||||
READ_FRONT_END_REG_T *read_fe_reg;
|
||||
READ_FRONT_END_REG_T *__read_fe_reg;
|
||||
#if defined(__WINDOWS__)
|
||||
int remora_modules_counter;/* set in wp_remora_config() */
|
||||
#endif
|
||||
} sdla_fe_t;
|
||||
|
||||
/*
|
||||
** Sangoma Front-End interface structure
|
||||
*/
|
||||
#if 0
|
||||
typedef struct {
|
||||
/* In-Service or Not (T1/E1/56K) */
|
||||
unsigned int (*get_fe_service_status)(void*);
|
||||
/* Print Front-End alarm (T1/E1/56K) */
|
||||
void (*print_fe_alarm)(void*,unsigned int);
|
||||
/* Print Front-End alarm (T1/E1/56K) */
|
||||
char* (*print_fe_act_channels)(void*);
|
||||
/* Set Front-End alarm (T1/E1) */
|
||||
void (*set_fe_alarm)(void*,unsigned int);
|
||||
/* Set extra interrupt type (after link get connected)) */
|
||||
int (*set_fe_sigcfg)(void*, unsigned int);
|
||||
} sdla_fe_iface_t;
|
||||
#endif
|
||||
|
||||
#if defined(__LINUX__)
|
||||
# include <linux/wanpipe_events.h>
|
||||
#elif defined(__WINDOWS__)
|
||||
# include <wanpipe_events.h> /* for wan_event_ctrl_t */
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Sangoma Front-End interface structure (new version)
|
||||
** FIXME: replace sdla_fe_iface_t with the new version! */
|
||||
typedef struct {
|
||||
int (*reset)(void *fe, int, int);
|
||||
int (*global_config)(void *fe);
|
||||
int (*global_unconfig)(void *fe);
|
||||
int (*chip_config)(void *fe);
|
||||
int (*config)(void *fe);
|
||||
int (*post_init)(void*);
|
||||
/* Set extra T1/E1 configuration */
|
||||
int (*reconfig)(sdla_fe_t*);
|
||||
int (*unconfig)(void *fe);
|
||||
int (*pre_release)(void*);
|
||||
int (*if_config)(void *fe, u32, u8);
|
||||
int (*if_unconfig)(void *fe, u32, u8);
|
||||
int (*disable_irq)(void *fe);
|
||||
int (*polling)(sdla_fe_t *fe);
|
||||
int (*isr)(sdla_fe_t *fe);
|
||||
int (*process_udp)(sdla_fe_t *fe, void*, unsigned char*);
|
||||
unsigned int (*read_alarm)(sdla_fe_t *fe, int);
|
||||
int (*read_pmon)(sdla_fe_t *fe, int);
|
||||
int (*flush_pmon)(sdla_fe_t *fe);
|
||||
/* Set Front-End alarm (T1/E1) */
|
||||
int (*set_fe_alarm)(sdla_fe_t *fe, unsigned int);
|
||||
/* Set extra interrupt type (after link get connected)) */
|
||||
int (*set_fe_sigctrl)(sdla_fe_t*, int, unsigned long, int);
|
||||
/* Print Front-End alarm (T1/E1/56K) */
|
||||
char* (*print_fe_act_channels)(sdla_fe_t*);
|
||||
/* Print Front-End alarm (T1/E1/56K) */
|
||||
int (*print_fe_alarm)(sdla_fe_t*,unsigned int);
|
||||
/* Get front end status */
|
||||
int (*get_fe_status)(sdla_fe_t *fe, unsigned char*);
|
||||
/* Get front end media type */
|
||||
unsigned char (*get_fe_media)(sdla_fe_t *fe);
|
||||
/* Get front end media type string */
|
||||
char* (*get_fe_media_string)(void);
|
||||
/* Set Line-loopback modes */
|
||||
int (*set_fe_lbmode)(sdla_fe_t*, unsigned char, unsigned char);
|
||||
/* Update Alarm Status for proc file system */
|
||||
int (*update_alarm_info)(sdla_fe_t*, struct seq_file* m, int* stop_cnt);
|
||||
/* Update PMON Status for proc file system */
|
||||
int (*update_pmon_info)(sdla_fe_t*, struct seq_file* m, int* stop_cnt);
|
||||
/* AFT T1/E1 cards only */
|
||||
int (*led_ctrl)(sdla_fe_t*, int mode);
|
||||
/* Check RBS bits (T1/E1 cards) */
|
||||
int (*check_rbsbits)(sdla_fe_t*, int, unsigned int, int);
|
||||
/* Read RBS bits (T1/E1 cards) */
|
||||
unsigned char (*read_rbsbits)(sdla_fe_t*, int, int);
|
||||
/* Set RBS bits (T1/E1 cards, voice) */
|
||||
int (*set_rbsbits)(sdla_fe_t*, int, unsigned char);
|
||||
/* Report RBS bits (T1/E1 cards) */
|
||||
int (*report_rbsbits)(sdla_fe_t*);
|
||||
/* Get Front-End SNMP data */
|
||||
int (*get_snmp_data)(sdla_fe_t*, void*, void*);
|
||||
/* Check if the interrupt is for this port */
|
||||
int (*check_isr)(sdla_fe_t *fe);
|
||||
#if defined(__WINDOWS__)
|
||||
/* Enable TE1 poll timer (WINDOWS ONLY) */
|
||||
void (*enable_timer)(sdla_fe_t* fe, unsigned char cmd, unsigned int delay);
|
||||
#endif
|
||||
/* Available front-end map */
|
||||
unsigned int (*active_map)(sdla_fe_t *fe);
|
||||
/* Transmit DTMF number */
|
||||
int (*set_dtmf)(sdla_fe_t*, int, unsigned char);
|
||||
/* Enable/Disable FE interrupt */
|
||||
int (*intr_ctrl)(sdla_fe_t*, int, u_int8_t, u_int8_t, unsigned int);
|
||||
/* Event Control */
|
||||
int (*event_ctrl)(sdla_fe_t*, wan_event_ctrl_t*);
|
||||
/* Front-End watchdog */
|
||||
int (*watchdog)(sdla_fe_t*);
|
||||
} sdla_fe_iface_t;
|
||||
|
||||
/*
|
||||
** Sangoma Front-End interface structure (new version)
|
||||
** FIXME: replace sdla_fe_iface_t with the new version! */
|
||||
typedef struct {
|
||||
|
||||
int (*check_hook_state)(sdla_fe_t *, int);
|
||||
int (*hook_state)(sdla_fe_t *, int, int);
|
||||
|
||||
} sdla_fe_notify_iface_t;
|
||||
|
||||
#endif /* WAN_KERNEL */
|
||||
|
||||
#endif
|
|
@ -13,8 +13,8 @@
|
|||
* Oct 14, 1998 Jaspreet Singh o Initial Version.
|
||||
*****************************************************************************/
|
||||
|
||||
#ifndef _SDLA_HDLC___
|
||||
#define _SDLA_HDLC___
|
||||
#ifndef __SDLA_HDLC_H__
|
||||
#define __SDLA_HDLC_H__
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
|
@ -52,13 +52,13 @@
|
|||
*/
|
||||
typedef struct {
|
||||
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the command code */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char PF_bit ; /* the HDLC P/F bit */
|
||||
char MB_reserved[NUMBER_HDLC_MB_RES_BYTES] ; /* for later use */
|
||||
char data[MAX_NO_DATA_BYTES_IN_I_FRAME] ; /* the data area */
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the command code */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char PF_bit ; /* the HDLC P/F bit */
|
||||
char MB_reserved[NUMBER_HDLC_MB_RES_BYTES] ; /* for later use */
|
||||
char data[MAX_NO_DATA_BYTES_IN_I_FRAME] ; /* the data area */
|
||||
|
||||
} HDLC_MAILBOX_STRUCT;
|
||||
|
||||
|
@ -67,20 +67,20 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the command code */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char PF_bit ; /* the HDLC P/F bit */
|
||||
char MB_reserved[NUMBER_HDLC_MB_RES_BYTES] ; /* for later use */
|
||||
char data[SIZEOF_HDLC_MB_DATA_BFR] ; /* the data area */
|
||||
unsigned char opp_flag ; /* the opp flag */
|
||||
unsigned char command ; /* the command code */
|
||||
unsigned short buffer_length ; /* the data length */
|
||||
unsigned char return_code ; /* the return code */
|
||||
unsigned char PF_bit ; /* the HDLC P/F bit */
|
||||
char MB_reserved[NUMBER_HDLC_MB_RES_BYTES] ; /* for later use */
|
||||
char data[SIZEOF_HDLC_MB_DATA_BFR] ; /* the data area */
|
||||
|
||||
} TRUE_HDLC_MAILBOX_STRUCT;
|
||||
|
||||
|
||||
typedef struct {
|
||||
pid_t pid_num ;
|
||||
HDLC_MAILBOX_STRUCT cmdarea ;
|
||||
pid_t pid_num ;
|
||||
HDLC_MAILBOX_STRUCT cmdarea ;
|
||||
|
||||
} CMDBLOCK_STRUCT;
|
||||
|
||||
|
@ -288,9 +288,9 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned char trace_config ; /* trace configuration */
|
||||
unsigned short trace_deactivation_timer ; /* trace deactivation timer */
|
||||
unsigned long ptr_trace_stat_el_cfg_struct ; /* a pointer to the line trace element configuration structure */
|
||||
unsigned char trace_config ; /* trace configuration */
|
||||
unsigned short trace_deactivation_timer ; /* trace deactivation timer */
|
||||
unsigned long ptr_trace_stat_el_cfg_struct ; /* a pointer to the line trace element configuration structure */
|
||||
|
||||
} LINE_TRACE_CONFIG_STRUCT;
|
||||
|
||||
|
@ -309,11 +309,11 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned short number_trace_status_elements ; /* number of line trace elements */
|
||||
unsigned long base_addr_trace_status_elements ;/* base address of the trace element list */
|
||||
unsigned long next_trace_element_to_use ; /* pointer to the next trace element to be used */
|
||||
unsigned long base_addr_trace_buffer ; /* base address of the trace data buffer */
|
||||
unsigned long end_addr_trace_buffer ; /* end address of the trace data buffer */
|
||||
unsigned short number_trace_status_elements ; /* number of line trace elements */
|
||||
unsigned long base_addr_trace_status_elements ;/* base address of the trace element list */
|
||||
unsigned long next_trace_element_to_use ; /* pointer to the next trace element to be used */
|
||||
unsigned long base_addr_trace_buffer ; /* base address of the trace data buffer */
|
||||
unsigned long end_addr_trace_buffer ; /* end address of the trace data buffer */
|
||||
|
||||
} TRACE_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
|
@ -323,13 +323,13 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short trace_length ; /* trace length */
|
||||
unsigned char trace_type ; /* trace type */
|
||||
unsigned short trace_time_stamp ;/* time stamp */
|
||||
unsigned short trace_reserved_1 ;/* reserved for later use */
|
||||
unsigned long trace_reserved_2 ; /* reserved for later use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the trace data buffer */
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short trace_length ; /* trace length */
|
||||
unsigned char trace_type ; /* trace type */
|
||||
unsigned short trace_time_stamp ;/* time stamp */
|
||||
unsigned short trace_reserved_1 ;/* reserved for later use */
|
||||
unsigned long trace_reserved_2 ; /* reserved for later use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the trace data buffer */
|
||||
|
||||
} TRACE_STATUS_ELEMENT_STRUCT;
|
||||
|
||||
|
@ -360,24 +360,24 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned long baud_rate ; /* the baud rate */
|
||||
unsigned short line_config_options ; /* line configuration options */
|
||||
unsigned short modem_config_options ; /* modem configuration options */
|
||||
unsigned short HDLC_API_options ; /* HDLC API options */
|
||||
unsigned short HDLC_protocol_options ; /* HDLC protocol options */
|
||||
unsigned short HDLC_buffer_config_options ; /* HDLC buffer configuration options */
|
||||
unsigned short HDLC_statistics_options ; /* HDLC operational statistics options */
|
||||
unsigned short configured_as_DTE ; /* DTE or DCE configuration */
|
||||
unsigned short max_HDLC_I_field_length ; /* the maximum length of the HDLC I-field */
|
||||
unsigned short HDLC_I_frame_window ; /* k - the I-frame window (maximum number of outstanding I-frames) */
|
||||
unsigned short HDLC_T1_timer ; /* the HDLC T1 timer */
|
||||
unsigned short HDLC_T2_timer ; /* the HDLC T2 timer */
|
||||
unsigned short HDLC_T3_timer ; /* the HDLC T3 timer */
|
||||
unsigned short HDLC_T4_timer ; /* the HDLC T4 timer */
|
||||
unsigned short HDLC_N2_counter ; /* the HDLC N2 counter */
|
||||
unsigned long ptr_shared_mem_info_struct ;/* a pointer to the shared memory area information structure */
|
||||
unsigned long ptr_HDLC_Tx_stat_el_cfg_struct ;/* a pointer to the transmit status element configuration structure */
|
||||
unsigned long ptr_HDLC_Rx_stat_el_cfg_struct ;/* a pointer to the receive status element configuration structure */
|
||||
unsigned long baud_rate ; /* the baud rate */
|
||||
unsigned short line_config_options ; /* line configuration options */
|
||||
unsigned short modem_config_options ; /* modem configuration options */
|
||||
unsigned short HDLC_API_options ; /* HDLC API options */
|
||||
unsigned short HDLC_protocol_options ; /* HDLC protocol options */
|
||||
unsigned short HDLC_buffer_config_options ; /* HDLC buffer configuration options */
|
||||
unsigned short HDLC_statistics_options ; /* HDLC operational statistics options */
|
||||
unsigned short configured_as_DTE ; /* DTE or DCE configuration */
|
||||
unsigned short max_HDLC_I_field_length ; /* the maximum length of the HDLC I-field */
|
||||
unsigned short HDLC_I_frame_window ; /* k - the I-frame window (maximum number of outstanding I-frames) */
|
||||
unsigned short HDLC_T1_timer ; /* the HDLC T1 timer */
|
||||
unsigned short HDLC_T2_timer ; /* the HDLC T2 timer */
|
||||
unsigned short HDLC_T3_timer ; /* the HDLC T3 timer */
|
||||
unsigned short HDLC_T4_timer ; /* the HDLC T4 timer */
|
||||
unsigned short HDLC_N2_counter ; /* the HDLC N2 counter */
|
||||
unsigned long ptr_shared_mem_info_struct ;/* a pointer to the shared memory area information structure */
|
||||
unsigned long ptr_HDLC_Tx_stat_el_cfg_struct ;/* a pointer to the transmit status element configuration structure */
|
||||
unsigned long ptr_HDLC_Rx_stat_el_cfg_struct ;/* a pointer to the receive status element configuration structure */
|
||||
|
||||
} HDLC_CONFIGURATION_STRUCT;
|
||||
|
||||
|
@ -604,9 +604,9 @@ typedef struct {
|
|||
*/
|
||||
typedef struct {
|
||||
|
||||
unsigned char interrupt_type ; /* type of interrupt triggered */
|
||||
unsigned char interrupt_permission ; /* interrupt permission mask */
|
||||
unsigned char int_info_reserved[14] ; /* reserved */
|
||||
unsigned char interrupt_type ; /* type of interrupt triggered */
|
||||
unsigned char interrupt_permission ; /* interrupt permission mask */
|
||||
unsigned char int_info_reserved[14] ; /* reserved */
|
||||
|
||||
} HDLC_INTERRUPT_INFO_STRUCT;
|
||||
|
||||
|
@ -633,9 +633,9 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned short number_Tx_status_elements ; /* number of transmit status elements */
|
||||
unsigned long base_addr_Tx_status_elements ; /* base address of the transmit element list */
|
||||
unsigned long next_Tx_status_element_to_use ; /* pointer to the next transmit element to be used */
|
||||
unsigned short number_Tx_status_elements ; /* number of transmit status elements */
|
||||
unsigned long base_addr_Tx_status_elements ; /* base address of the transmit element list */
|
||||
unsigned long next_Tx_status_element_to_use ; /* pointer to the next transmit element to be used */
|
||||
|
||||
} HDLC_TX_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
|
@ -644,12 +644,12 @@ typedef struct {
|
|||
*/
|
||||
typedef struct {
|
||||
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short I_frame_length ; /* length of the frame*/
|
||||
unsigned char P_bit ; /* P-bit setting in the frame */
|
||||
unsigned long reserved_1 ; /* reserved for internal use */
|
||||
unsigned long reserved_2 ; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the data area */
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short I_frame_length ; /* length of the frame*/
|
||||
unsigned char P_bit ; /* P-bit setting in the frame */
|
||||
unsigned long reserved_1 ; /* reserved for internal use */
|
||||
unsigned long reserved_2 ; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the data area */
|
||||
|
||||
} HDLC_I_FRM_TX_STATUS_EL_STRUCT;
|
||||
|
||||
|
@ -665,11 +665,11 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned short number_Rx_status_elements ; /* number of receive status elements */
|
||||
unsigned long base_addr_Rx_status_elements ; /* base address of the receive element list */
|
||||
unsigned long next_Rx_status_element_to_use ; /* pointer to the next receive element to be used */
|
||||
unsigned long base_addr_Rx_buffer ; /* base address of the receive data buffer */
|
||||
unsigned long end_addr_Rx_buffer ; /* end address of the receive data buffer */
|
||||
unsigned short number_Rx_status_elements ; /* number of receive status elements */
|
||||
unsigned long base_addr_Rx_status_elements ; /* base address of the receive element list */
|
||||
unsigned long next_Rx_status_element_to_use ; /* pointer to the next receive element to be used */
|
||||
unsigned long base_addr_Rx_buffer ; /* base address of the receive data buffer */
|
||||
unsigned long end_addr_Rx_buffer ; /* end address of the receive data buffer */
|
||||
} HDLC_RX_STATUS_EL_CFG_STRUCT;
|
||||
|
||||
/*
|
||||
|
@ -677,12 +677,12 @@ typedef struct {
|
|||
*/
|
||||
typedef struct {
|
||||
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short I_frame_length ; /*length of the recvd frame */
|
||||
unsigned char P_bit ; /* P-bit setting in the frame */
|
||||
unsigned long reserved_1 ; /* reserved for internal use */
|
||||
unsigned long reserved_2 ; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the data area */
|
||||
unsigned char opp_flag ; /* opp flag */
|
||||
unsigned short I_frame_length ; /*length of the recvd frame */
|
||||
unsigned char P_bit ; /* P-bit setting in the frame */
|
||||
unsigned long reserved_1 ; /* reserved for internal use */
|
||||
unsigned long reserved_2 ; /* reserved for internal use */
|
||||
unsigned long ptr_data_bfr ; /* pointer to the data area */
|
||||
|
||||
} HDLC_I_FRM_RX_STATUS_EL_STRUCT;
|
||||
|
||||
|
@ -700,12 +700,12 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned char global_status ; /* global status */
|
||||
unsigned char modem_status ;/* current modem status*/
|
||||
unsigned char global_excep_conditions ; /* global exception conditions */
|
||||
unsigned char glob_info_reserved[5] ; /* reserved */
|
||||
unsigned char code_name[4] ; /* code name */
|
||||
unsigned char code_version[4] ; /* code version */
|
||||
unsigned char global_status ; /* global status */
|
||||
unsigned char modem_status ;/* current modem status*/
|
||||
unsigned char global_excep_conditions ; /* global exception conditions */
|
||||
unsigned char glob_info_reserved[5] ; /* reserved */
|
||||
unsigned char code_name[4] ; /* code name */
|
||||
unsigned char code_version[4] ; /* code version */
|
||||
|
||||
} GLOBAL_INFORMATION_STRUCT;
|
||||
|
||||
|
@ -716,9 +716,9 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned char parallel_port_A_input ; /* input - parallel port A */
|
||||
unsigned char parallel_port_B_input ; /* input - parallel port B */
|
||||
unsigned char FT1_info_reserved[14] ; /* reserved */
|
||||
unsigned char parallel_port_A_input ; /* input - parallel port A */
|
||||
unsigned char parallel_port_B_input ; /* input - parallel port B */
|
||||
unsigned char FT1_info_reserved[14] ; /* reserved */
|
||||
|
||||
} FT1_INFORMATION_STRUCT;
|
||||
|
||||
|
@ -728,14 +728,14 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
unsigned char HDLC_status ; /* HDLC status */
|
||||
unsigned char HDLC_excep_frms_Rx ; /* HDLC exception conditions - received frames */
|
||||
unsigned char HDLC_excep_frms_Tx ; /* HDLC exception conditions - transmitted frames */
|
||||
unsigned char HDLC_excep_miscellaneous ; /* HDLC exception conditions - miscellaneous */
|
||||
unsigned char rotating_SUP_frm_count ; /* rotating Supervisory frame count */
|
||||
unsigned char LAPB_status ; /* internal LAPB status */
|
||||
unsigned char internal_HDLC_status ; /* internal HDLC status */
|
||||
unsigned char HDLC_info_reserved[9] ; /* reserved */
|
||||
unsigned char HDLC_status ; /* HDLC status */
|
||||
unsigned char HDLC_excep_frms_Rx ; /* HDLC exception conditions - received frames */
|
||||
unsigned char HDLC_excep_frms_Tx ; /* HDLC exception conditions - transmitted frames */
|
||||
unsigned char HDLC_excep_miscellaneous ; /* HDLC exception conditions - miscellaneous */
|
||||
unsigned char rotating_SUP_frm_count ; /* rotating Supervisory frame count */
|
||||
unsigned char LAPB_status ; /* internal LAPB status */
|
||||
unsigned char internal_HDLC_status ; /* internal HDLC status */
|
||||
unsigned char HDLC_info_reserved[9] ; /* reserved */
|
||||
|
||||
} HDLC_INFORMATION_STRUCT;
|
||||
|
||||
|
@ -748,14 +748,12 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
|
||||
GLOBAL_INFORMATION_STRUCT global_info ; /* the global information structure */
|
||||
FT1_INFORMATION_STRUCT FT1_info ; /* the S508/FT1 information structure */
|
||||
HDLC_INFORMATION_STRUCT HDLC_info ; /* the HDLC information structure */
|
||||
HDLC_INTERRUPT_INFO_STRUCT HDLC_interrupt_info ; /* the HDLC interrupt information structure */
|
||||
GLOBAL_INFORMATION_STRUCT global_info ; /* the global information structure */
|
||||
FT1_INFORMATION_STRUCT FT1_info ; /* the S508/FT1 information structure */
|
||||
HDLC_INFORMATION_STRUCT HDLC_info ; /* the HDLC information structure */
|
||||
HDLC_INTERRUPT_INFO_STRUCT HDLC_interrupt_info ; /* the HDLC interrupt information structure */
|
||||
|
||||
} HDLC_SHARED_MEMORY_INFO_STRUCT;
|
||||
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#pragma pack()
|
||||
#endif
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
#define MAX_FR_CHANNELS 1023
|
||||
#define HIGHEST_VALID_DLCI MAX_FR_CHANNELS-1
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
typedef struct {
|
||||
unsigned ea1 : 1;
|
||||
unsigned cr : 1;
|
||||
|
@ -30,9 +28,7 @@ typedef struct {
|
|||
unsigned becn : 1;
|
||||
unsigned fecn : 1;
|
||||
unsigned dlcil: 4;
|
||||
}fr_hdr;
|
||||
|
||||
#pragma pack()
|
||||
}__attribute__ ((packed)) fr_hdr;
|
||||
|
||||
|
||||
#define FR_HEADER_LEN 8
|
||||
|
@ -57,6 +53,14 @@ typedef struct {
|
|||
#define FR_LINK_INOPER 0x00 /* for global status (DLCI == 0) */
|
||||
#define FR_LINK_OPER 0x01
|
||||
|
||||
#if 0
|
||||
#define FR_DLCI_INOPER 0x00
|
||||
#define FR_DLCI_DELETED 0x01 /* for circuit status (DLCI != 0) */
|
||||
#define FR_DLCI_ACTIVE 0x02
|
||||
#define FR_DLCI_WAITING 0x04
|
||||
#define FR_DLCI_NEW 0x08
|
||||
#define FR_DLCI_REPORT 0x40
|
||||
#endif
|
||||
|
||||
#define PVC_STATE_NEW 0x01
|
||||
#define PVC_STATE_ACTIVE 0x02
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue