From 99ef7bd6d6a66258b5c75eb96bc754b35e694848 Mon Sep 17 00:00:00 2001 From: tzafrir Date: Sun, 30 Nov 2008 14:45:28 +0000 Subject: cvt_zapdahdi: convert source files between Zaptel and DAHDI Helps showing the real changes git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@4591 5390a7c7-147a-4af0-8ec9-7488f05a26cb --- build_tools/cvt_zapdahdi | 347 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 347 insertions(+) create mode 100755 build_tools/cvt_zapdahdi diff --git a/build_tools/cvt_zapdahdi b/build_tools/cvt_zapdahdi new file mode 100755 index 0000000..d37309f --- /dev/null +++ b/build_tools/cvt_zapdahdi @@ -0,0 +1,347 @@ +#! /usr/bin/perl -w + +# cvt_zapdahdi: convert source files between Zaptel and DAHDI +# Helps showing the real changes +# +# Written by Oron Peled +# Copyright (C) 2008 by Xorcom +# +# 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. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# 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 + +use strict; +use Getopt::Std; + +my $VERSION = '$Id:'; + +sub usage() { + warn "Usage: $0 [-v] {-d|-z} source_file\n"; + warn "-v -- verbose\n"; + warn "-d -- to dahdi\n"; + warn "-z -- to zaptel\n"; + warn ""; + warn "Output file is .to_"; + exit(1); +} + +my %opts; +getopts('zdv', \%opts); + +$opts{'d'} || $opts{'z'} || usage(); + +my $suffix = ($opts{'d'}) ? "to_dahdi" : "to_zap"; + +@ARGV == 1 or die "Usage: $0 source_file\n"; +my $infile = shift; + +# Map only differing filenames +# Note that this is a full name +my %dahdi2zap_filenames = ( + 'dahdi-base.c' => 'zaptel-base.c', + 'dahdi_dynamic.c' => 'ztdynamic.c', + 'dahdi_dynamic_eth.c' => 'ztd-eth.c', + 'dahdi_dynamic_local.c' => 'ztd-local.c', + 'dahdi_transcode.c' => 'zttranscode.c', + 'xpp_dahdi.c' => 'xpp_zap.c', + 'xpp_dahdi.h' => 'xpp_zap.h', + 'dahdi_debug.c' => 'zap_debug.c', + 'dahdi_debug.h' => 'zap_debug.h', + ); + +my %filenames = ($opts{'z'}) ? %dahdi2zap_filenames : reverse %dahdi2zap_filenames; +my $outfile = $filenames{$infile} || $infile; +$outfile .= ".$suffix"; + +my %dahdi2zap_names = ( + __DAHDI_SIG_FXO => '__ZT_SIG_FXO', + __DAHDI_SIG_FXS => '__ZT_SIG_FXS', + DAHDI_ALARM_BLUE => 'ZT_ALARM_BLUE', + DAHDI_ALARM_LOOPBACK => 'ZT_ALARM_LOOPBACK', + DAHDI_ALARM_NONE => 'ZT_ALARM_NONE', + DAHDI_ALARM_NOTOPEN => 'ZT_ALARM_NOTOPEN', + DAHDI_ALARM_RECOVER => 'ZT_ALARM_RECOVER', + DAHDI_ALARM_RED => 'ZT_ALARM_RED', + DAHDI_ALARM_YELLOW => 'ZT_ALARM_YELLOW', + DAHDI_AUDIOMODE => 'ZT_AUDIOMODE', + dahdi_bufferinfo => 'zt_bufferinfo', + DAHDI_CHANNO => 'ZT_CHANNO', + DAHDI_CHECK_HOOKSTATE => 'ZT_CHECK_HOOKSTATE', + DAHDI_CONF_CONF => 'ZT_CONF_CONF', + DAHDI_CONF_CONFANN => 'ZT_CONF_CONFANN', + DAHDI_CONF_CONFANNMON => 'ZT_CONF_CONFANNMON', + DAHDI_CONF_CONFMON => 'ZT_CONF_CONFMON', + DAHDI_CONF_DIGITALMON => 'ZT_CONF_DIGITALMON', + DAHDI_CONF_LISTENER => 'ZT_CONF_LISTENER', + DAHDI_CONF_MONITORBOTH => 'ZT_CONF_MONITORBOTH', + DAHDI_CONF_NORMAL => 'ZT_CONF_NORMAL', + DAHDI_CONF_PSEUDO_LISTENER => 'ZT_CONF_PSEUDO_LISTENER', + DAHDI_CONF_PSEUDO_TALKER => 'ZT_CONF_PSEUDO_TALKER', + DAHDI_CONF_REALANDPSEUDO => 'ZT_CONF_REALANDPSEUDO', + DAHDI_CONF_TALKER => 'ZT_CONF_TALKER', + DAHDI_CONFDIAG => 'ZT_CONFDIAG', + dahdi_confinfo => 'zt_confinfo', + DAHDI_CONFMUTE => 'ZT_CONFMUTE', + DAHDI_DEFAULT_NUM_BUFS => 'ZT_DEFAULT_NUM_BUFS', + DAHDI_DIAL => 'ZT_DIAL', + DAHDI_DIALING => 'ZT_DIALING', + DAHDI_DIAL_OP_APPEND => 'ZT_DIAL_OP_APPEND', + dahdi_dialoperation => 'zt_dialoperation', + DAHDI_DIAL_OP_REPLACE => 'ZT_DIAL_OP_REPLACE', + dahdi_dialparams => 'zt_dialparams', + DAHDI_ECHOCANCEL => 'ZT_ECHOCANCEL', + DAHDI_ECHOTRAIN => 'ZT_ECHOTRAIN', + DAHDI_EVENT_ALARM => 'ZT_EVENT_ALARM', + DAHDI_EVENT_BITSCHANGED => 'ZT_EVENT_BITSCHANGED', + DAHDI_EVENT_DIALCOMPLETE => 'ZT_EVENT_DIALCOMPLETE', + DAHDI_EVENT_DTMFDOWN => 'ZT_EVENT_DTMFDOWN', + DAHDI_EVENT_DTMFUP => 'ZT_EVENT_DTMFUP', + DAHDI_EVENT_EC_DISABLED => 'ZT_EVENT_EC_DISABLED', + DAHDI_EVENT_HOOKCOMPLETE => 'ZT_EVENT_HOOKCOMPLETE', + DAHDI_EVENT_NOALARM => 'ZT_EVENT_NOALARM', + DAHDI_EVENT_NONE => 'ZT_EVENT_NONE', + DAHDI_EVENT_ONHOOK => 'ZT_EVENT_ONHOOK', + DAHDI_EVENT_POLARITY => 'ZT_EVENT_POLARITY', + DAHDI_EVENT_PULSEDIGIT => 'ZT_EVENT_PULSEDIGIT', + DAHDI_EVENT_PULSE_START => 'ZT_EVENT_PULSE_START', + DAHDI_EVENT_REMOVED => 'ZT_EVENT_REMOVED', + DAHDI_EVENT_RINGBEGIN => 'ZT_EVENT_RINGBEGIN', + DAHDI_EVENT_RINGEROFF => 'ZT_EVENT_RINGEROFF', + DAHDI_EVENT_RINGERON => 'ZT_EVENT_RINGERON', + DAHDI_EVENT_RINGOFFHOOK => 'ZT_EVENT_RINGOFFHOOK', + DAHDI_EVENT_TIMER_EXPIRED => 'ZT_EVENT_TIMER_EXPIRED', + DAHDI_EVENT_TIMER_PING => 'ZT_EVENT_TIMER_PING', + DAHDI_EVENT_WINKFLASH => 'ZT_EVENT_WINKFLASH', + DAHDI_FLASH => 'ZT_FLASH', + DAHDI_FLUSH => 'ZT_FLUSH', + DAHDI_FLUSH_ALL => 'ZT_FLUSH_ALL', + DAHDI_FLUSH_BOTH => 'ZT_FLUSH_BOTH', + DAHDI_FLUSH_READ => 'ZT_FLUSH_READ', + DAHDI_FLUSH_WRITE => 'ZT_FLUSH_WRITE', + dahdi_gains => 'zt_gains', + DAHDI_GET_BUFINFO => 'ZT_GET_BUFINFO', + DAHDI_GETCONF => 'ZT_GETCONF', + DAHDI_GETCONFMUTE => 'ZT_GETCONFMUTE', + DAHDI_GETEVENT => 'ZT_GETEVENT', + DAHDI_GETGAINS => 'ZT_GETGAINS', + DAHDI_GET_PARAMS => 'ZT_GET_PARAMS', + DAHDI_HOOK => 'ZT_HOOK', + DAHDI_IOMUX => 'ZT_IOMUX', + DAHDI_IOMUX_READ => 'ZT_IOMUX_READ', + DAHDI_IOMUX_SIGEVENT => 'ZT_IOMUX_SIGEVENT', + DAHDI_IOMUX_WRITE => 'ZT_IOMUX_WRITE', + DAHDI_LAW_ALAW => 'ZT_LAW_ALAW', + DAHDI_LAW_DEFAULT => 'ZT_LAW_DEFAULT', + DAHDI_LAW_MULAW => 'ZT_LAW_MULAW', + DAHDI_MAX_NUM_BUFS => 'ZT_MAX_NUM_BUFS', + DAHDI_MAX_SPANS => 'ZT_MAX_SPANS', + DAHDI_OFFHOOK => 'ZT_OFFHOOK', + DAHDI_ONHOOK => 'ZT_ONHOOK', + DAHDI_ONHOOKTRANSFER => 'ZT_ONHOOKTRANSFER', + dahdi_params => 'zt_params', + DAHDI_POLICY_IMMEDIATE => 'ZT_POLICY_IMMEDIATE', + DAHDI_POLICY_WHEN_FULL => 'ZT_POLICY_WHEN_FULL', + DAHDI_PRI => 'ZT_PRI', + DAHDI_RING => 'ZT_RING', + DAHDI_RINGOFF => 'ZT_RINGOFF', + DAHDI_SENDTONE => 'ZT_SENDTONE', + DAHDI_SET_BLOCKSIZE => 'ZT_SET_BLOCKSIZE', + DAHDI_SET_BUFINFO => 'ZT_SET_BUFINFO', + DAHDI_SETCADENCE => 'ZT_SETCADENCE', + DAHDI_SETCONF => 'ZT_SETCONF', + DAHDI_SET_DIALPARAMS => 'ZT_SET_DIALPARAMS', + DAHDI_SETGAINS => 'ZT_SETGAINS', + DAHDI_SETLAW => 'ZT_SETLAW', + DAHDI_SETLINEAR => 'ZT_SETLINEAR', + DAHDI_SET_PARAMS => 'ZT_SET_PARAMS', + DAHDI_SETTONEZONE => 'ZT_SETTONEZONE', + DAHDI_SIG_CLEAR => 'ZT_SIG_CLEAR', + DAHDI_SIG_EM => 'ZT_SIG_EM', + DAHDI_SIG_EM_E1 => 'ZT_SIG_EM_E1', + DAHDI_SIG_FXO => 'ZT_SIG_FXO', + DAHDI_SIG_FXOGS => 'ZT_SIG_FXOGS', + DAHDI_SIG_FXOKS => 'ZT_SIG_FXOKS', + DAHDI_SIG_FXOLS => 'ZT_SIG_FXOLS', + DAHDI_SIG_FXS => 'ZT_SIG_FXS', + DAHDI_SIG_FXSGS => 'ZT_SIG_FXSGS', + DAHDI_SIG_FXSKS => 'ZT_SIG_FXSKS', + DAHDI_SIG_FXSLS => 'ZT_SIG_FXSLS', + DAHDI_SIG_HARDHDLC => 'ZT_SIG_HARDHDLC', + DAHDI_SIG_HDLCFCS => 'ZT_SIG_HDLCFCS', + DAHDI_SIG_SF => 'ZT_SIG_SF', + dahdi_spaninfo => 'zt_spaninfo', + DAHDI_SPANSTAT => 'ZT_SPANSTAT', + DAHDI_SPECIFY => 'ZT_SPECIFY', + DAHDI_START => 'ZT_START', + DAHDI_TC_ALLOCATE => 'ZT_TC_ALLOCATE', + DAHDI_TC_GETINFO => 'ZT_TC_GETINFO', + DAHDI_TIMERACK => 'ZT_TIMERACK', + DAHDI_TIMERCONFIG => 'ZT_TIMERCONFIG', + DAHDI_TIMERPING => 'ZT_TIMERPING', + DAHDI_TIMERPONG => 'ZT_TIMERPONG', + DAHDI_TONE_BUSY => 'ZT_TONE_BUSY', + DAHDI_TONE_CONGESTION => 'ZT_TONE_CONGESTION', + DAHDI_TONEDETECT => 'ZT_TONEDETECT', + DAHDI_TONEDETECT_MUTE => 'ZT_TONEDETECT_MUTE', + DAHDI_TONEDETECT_ON => 'ZT_TONEDETECT_ON', + DAHDI_TONE_DIALRECALL => 'ZT_TONE_DIALRECALL', + DAHDI_TONE_DIALTONE => 'ZT_TONE_DIALTONE', + DAHDI_TONE_DTMF_A => 'ZT_TONE_DTMF_A', + DAHDI_TONE_DTMF_BASE => 'ZT_TONE_DTMF_BASE', + DAHDI_TONE_DTMF_p => 'ZT_TONE_DTMF_p', + DAHDI_TONE_DTMF_s => 'ZT_TONE_DTMF_s', + DAHDI_TONE_INFO => 'ZT_TONE_INFO', + DAHDI_TONE_RINGTONE => 'ZT_TONE_RINGTONE', + DAHDI_TONE_STUTTER => 'ZT_TONE_STUTTER', + dahdi_transcoder_formats => 'zt_transcoder_formats', + dahdi_transcoder_info => 'zt_transcoder_info', + DAHDI_vldtmf => 'ZT_vldtmf', + DAHDI_WINK => 'ZT_WINK', + HAVE_DAHDI => 'HAVE_ZAPTEL', + dahdi_ring_cadence => 'zt_ring_cadence', + dahdi_span => 'zt_span', + dahdi_chan => 'zt_chan', + 'enum dahdi_txsig' => 'zt_txsig_t', + 'enum dahdi_rxsig' => 'zt_rxsig_t', + dahdi_hooksig => 'zt_hooksig', + dahdi_register => 'zt_register', + dahdi_alarm_notify => 'zt_alarm_notify', + dahdi_qevent_lock => 'zt_qevent_lock', + CONFIG_DAHDI_BRI_DCHANS => 'CONFIG_ZAPATA_BRI_DCHANS', + DAHDI_SIG_HDLCRAW => 'ZT_SIG_HDLCRAW', + DAHDI_SIG_HDLCFCS => 'ZT_SIG_HDLCFCS', + DAHDI_SIG_HDLCNET => 'ZT_SIG_HDLCNET', + DAHDI_SIG_SLAVE => 'ZT_SIG_SLAVE', + DAHDI_SIG_CAS => 'ZT_SIG_CAS', + DAHDI_SIG_DACS => 'ZT_SIG_DACS', + DAHDI_SIG_DACS_RBS => 'ZT_SIG_DACS_RBS', + DAHDI_SIG_SF => 'ZT_SIG_SF', + DAHDI_SIG_NONE => 'ZT_SIG_NONE', + dahdi_lineconfig => 'zt_lineconfig', + DAHDI_CONFIG_B8ZS => 'ZT_CONFIG_B8ZS', + DAHDI_CONFIG_AMI => 'ZT_CONFIG_AMI', + DAHDI_CONFIG_HDB3 => 'ZT_CONFIG_HDB3', + DAHDI_CONFIG_ESF => 'ZT_CONFIG_ESF', + DAHDI_CONFIG_D4 => 'ZT_CONFIG_D4', + DAHDI_CONFIG_CCS => 'ZT_CONFIG_CCS', + DAHDI_CONFIG_CRC4 => 'ZT_CONFIG_CRC4', + DAHDI_CONFIG_NOTOPEN => 'ZT_CONFIG_NOTOPEN', + DAHDI_FLAG_RUNNING => 'ZT_FLAG_RUNNING', + DAHDI_FLAG_PRIDCHAN => 'ZT_FLAG_PRIDCHAN', + DAHDI_FLAG_HDLC => 'ZT_FLAG_HDLC', + DAHDI_FLAG_RBS => 'ZT_FLAG_RBS', + DAHDI_RXSIG_RING => 'ZT_RXSIG_RING', + DAHDI_RXSIG_OFFHOOK => 'ZT_RXSIG_OFFHOOK', + DAHDI_RXSIG_ONHOOK => 'ZT_RXSIG_ONHOOK', + DAHDI_RXSIG_START => 'ZT_RXSIG_START', + DAHDI_RXSIG_INITIAL => 'ZT_RXSIG_INITIAL', + DAHDI_TXSIG_START => 'ZT_TXSIG_START', + DAHDI_TXSIG_TOTAL => 'ZT_TXSIG_TOTAL', + DAHDI_EVENT_ABORT => 'ZT_EVENT_ABORT', + DAHDI_EVENT_OVERRUN => 'ZT_EVENT_OVERRUN', + DAHDI_EVENT_BADFCS => 'ZT_EVENT_BADFCS', + DAHDI_TXSIG_OFFHOOK => 'ZT_TXSIG_OFFHOOK', + DAHDI_TXSIG_ONHOOK => 'ZT_TXSIG_ONHOOK', + DAHDI_TXSIG_KEWL => 'ZT_TXSIG_KEWL', + DAHDI_MAINT_NONE => 'ZT_MAINT_NONE', + DAHDI_MAINT_LOCALLOOP => 'ZT_MAINT_LOCALLOOP', + DAHDI_MAINT_REMOTELOOP => 'ZT_MAINT_REMOTELOOP', + DAHDI_MAINT_LOOPUP => 'ZT_MAINT_LOOPUP', + DAHDI_MAINT_LOOPDOWN => 'ZT_MAINT_LOOPDOWN', + DAHDI_MAINT_LOOPSTOP => 'ZT_MAINT_LOOPSTOP', + DAHDI_SETPOLARITY => 'ZT_SETPOLARITY', + DAHDI_CHUNKSIZE => 'ZT_CHUNKSIZE', + CONFIG_DAHDI_WATCHDOG => 'CONFIG_ZAPTEL_WATCHDOG', + DAHDI_XLAW => 'ZT_XLAW', + DAHDI_VMWI => 'ZT_VMWI', + dahdi_alarm_channel => 'zt_alarm_channel', + dahdi_ec_chunk => 'zt_ec_chunk', + dahdi_transmit => 'zt_transmit', + dahdi_receive => 'zt_receive', + dahdi_rbsbits => 'zt_rbsbits', + 'dahdi/kernel.h' => 'zaptel.h', +# XPP substitutions + DAHDI_SYNC_TICK => 'ZAPTEL_SYNC_TICK', + dahdi_ticker => 'zaptel_ticker', + card_dahdi_preregistration => 'card_zaptel_preregistration', + card_dahdi_postregistration => 'card_zaptel_postregistration', + FXS_card_dahdi_preregistration => 'FXS_card_zaptel_preregistration', + FXS_card_dahdi_postregistration => 'FXS_card_zaptel_postregistration', + FXO_card_dahdi_preregistration => 'FXO_card_zaptel_preregistration', + FXO_card_dahdi_postregistration => 'FXO_card_zaptel_postregistration', + BRI_card_dahdi_preregistration => 'BRI_card_zaptel_preregistration', + BRI_card_dahdi_postregistration => 'BRI_card_zaptel_postregistration', + PRI_card_dahdi_preregistration => 'PRI_card_zaptel_preregistration', + PRI_card_dahdi_postregistration => 'PRI_card_zaptel_postregistration', + dahdi_registration => 'zt_registration', + dahdi_registered => 'zt_registered', + dahdi_unregister => 'zt_unregister', + dahdi_register_xpd => 'zaptel_register_xpd', + dahdi_unregister_xpd => 'zaptel_unregister_xpd', + dahdi_autoreg => 'zap_autoreg', + dahdi_reg => 'zt_reg', + dahdi_update_syncsrc => 'zap_update_syncsrc', + dahdi_sync_tick => 'zaptel_sync_tick', + dahdi_tick => 'zaptel_tick', + dahdi_tick_count => 'zaptel_tick_count', + force_dahdi_sync => 'force_zaptel_sync', + xpp_dahdi_init => 'xpp_zap_init', + xpp_dahdi_cleanup => 'xpp_zap_cleanup', + dahdi_report_battery => 'zap_report_battery', + update_dahdi_ring => 'update_zap_ring', + 'xpp_dahdi.h' => 'xpp_zap.h', + 'dahdi_debug.h' => 'zap_debug.h', + update_dahdi => 'update_zap', + dahdi_cfg => 'ztcfg', + dahdi => 'zaptel', + Dahdi => 'Zaptel', + DAHDI => 'ZAPTEL', + '' => '', + '' => '', + 'XPP_DAHDI_H' => 'XPP_ZAP_H', + 'DAHDI_DEBUG_H' => 'ZAP_DEBUG_H', + ); + +my %names = ($opts{'z'}) ? %dahdi2zap_names : reverse %dahdi2zap_names; + +sub build_regex(@) { + # Match longer strings first + my @keys = sort { length($b) <=> length($a) } @_; + return '\b' . join('\b|\b', @keys) . '\b'; +} + +my $huge_regex = build_regex(keys %names); +#print STDERR "huge_regex: '$huge_regex'\n"; + +sub map_one($) { + my $k = shift; + my $v = $names{$k}; + if(defined $v) { + #print STDERR "Replace: '$k'\n"; + return $v; + } + warn "$0: Unmapped '$k'. Leave as is...\n"; + return $k; +} + +open(F, $infile) || die "$infile: $!\n"; +open(G, ">$outfile") || die "$outfile: $!\n"; +while() { + chomp; + if(s/$huge_regex/&map_one($&)/ge) { + print STDERR "Fixed: '$_'\n" if $opts{'v'}; + } + print G "$_\n"; +} +close F; +close G; -- cgit v1.2.3