diff -urw zaptel-1.0.9.1.orig/Makefile zaptel-1.0.9.1/Makefile --- zaptel-1.0.9.1.orig/Makefile 2005-07-25 16:42:56.000000000 +0200 +++ zaptel-1.0.9.1/Makefile 2005-08-15 18:28:23.000000000 +0200 @@ -12,18 +12,22 @@ # to their working kernel source directory, the way God himself does, of course # (assuming He's running Linux -- which we all know He must). # -HOSTCC=gcc -KINCLUDES=$(shell if [ -d /usr/src/linux-2.4/include ]; then echo /usr/src/linux-2.4/include ; else echo /usr/src/linux/include ; fi) + +CC=$(CROSS_COMPILE)gcc + +KDIR?=/lib/modules/`uname -r`/build CFLAGS+=-I. -O4 -g -Wall -DBUILDING_TONEZONE #-DTONEZONE_DRIVER -CFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-fsigned-char"; fi) -CFLAGS+=$(shell if uname -m | grep -q x86_64; then echo "-m64"; fi) +CFLAGS+=$(shell if $(CC) -dumpmachine | grep -q powerpc; then echo "-fsigned-char"; fi) +CFLAGS+=$(shell if $(CC) -dumpmachine | grep -q x86_64; then echo "-m64"; fi) LCFLAGS=-fPIC $(CFLAGS) -DBUILDING_TONEZONE -KFLAGS+=-I/usr/src/linux-2.4/include -O6 -KFLAGS+=-DMODULE -D__KERNEL__ -DEXPORT_SYMTAB -I/usr/src/linux/drivers/net \ - -Wall -I. -Wstrict-prototypes -fomit-frame-pointer -I/usr/src/linux/drivers/net/wan -I /usr/src/linux/include -I/usr/src/linux/include/net -KFLAGS+=$(shell if [ -f $(KINCLUDES)/linux/modversions.h ] ; then echo "-DMODVERSIONS -include $(KINCLUDES)/linux/modversions.h" ; fi) -KFLAGS+=$(shell if uname -m | grep -q ppc; then echo "-msoft-float -fsigned-char"; fi) +KFLAGS+=-DMODULE -D__KERNEL__ -DEXPORT_SYMTAB -Wall -I. -Wstrict-prototypes +KFLAGS+=-O6 -fomit-frame-pointer +KFLAGS+=-I$(KDIR)/drivers/net -I$(KDIR)/drivers/net/wan +KFLAGS+=-I$(KDIR)/include -I$(KDIR)/include/net +KFLAGS+=$(shell if [ -f $(KDIR)/include/linux/modversions.h ] ; then echo "-DMODVERSIONS -include $(KDIR)/include/linux/modversions.h" ; fi) +KFLAGS+=$(shell if $(CC) -dumpmachine | grep -q powerpc; then echo "-msoft-float -fsigned-char"; fi) +KVERSION=$(shell grep UTS_RELEASE $(KDIR)/include/linux/version.h | cut -d\" -f2) # # Features are now configured in zconfig.h # @@ -32,13 +36,13 @@ KFLAGS+=-DSTANDALONE_ZAPATA CFLAGS+=-DSTANDALONE_ZAPATA -ROOT_PREFIX= -INSTALL_PREFIX= +ROOT_PREFIX?= +INSTALL_PREFIX?= CONFIG_FILE=$(INSTALL_PREFIX)/etc/zaptel.conf CFLAGS+=-DZAPTEL_CONFIG=\"$(CONFIG_FILE)\" -BUILDVER=$(shell if uname -r | grep -q ^2.6; then echo "linux26"; else echo "linux24"; fi) +BUILDVER=$(shell if grep -q 2.6 $(KDIR)/include/linux/version.h; then echo "linux26"; else echo "linux24"; fi) MODCONF=$(shell if [ -d $(ROOT_PREFIX)/etc/modprobe.d ]; then echo "$(ROOT_PREFIX)/etc/modprobe.d/zaptel"; elif [ -d $(ROOT_PREFIX)/etc/modutils ]; then echo "$(ROOT_PREFIX)/etc/modutils/zaptel"; elif [ -f $(ROOT_PREFIX)/etc/modprobe.conf ]; then echo "$(ROOT_PREFIX)/etc/modprobe.conf"; elif [ -f $(ROOT_PREFIX)/etc/modules.conf ]; then echo "$(ROOT_PREFIX)/etc/modules.conf"; else echo $(ROOT_PREFIX)/etc/conf.modules ; fi) ifeq (${BUILDVER},linux24) @@ -47,7 +51,7 @@ endif ifeq (${BUILDVER},linux26) #Tests for newer linux-2.6 udev support -DYNFS=$(shell ps ax | grep -v grep | grep udevd && echo "yes") +DYNFS=$(shell if [ -d $(ROOT_PREFIX)/etc/udev ]; then echo "yes"; fi) endif CHKCONFIG=$(shell sh -c 'type -p chkconfig' 2> /dev/null) @@ -64,14 +68,13 @@ MODULESO=$(shell for x in $(MODULES); do echo "$$x.o "; done ) MODULESKO=$(shell for x in $(MODULES); do echo "$$x.ko "; done ) -ZTTOOL=$(shell if [ -f /usr/include/newt.h ]; then echo zttool; fi) +ZTTOOL=$(shell if [ -f $(ROOT_PREFIX)/usr/include/newt.h ]; then echo zttool; fi) BINS=ztcfg torisatool makefw ztmonitor ztspeed $(ZTTOOL) zttest #PRIMARY=wcfxsusb PRIMARY=torisa #PRIMARY=wcfxo PWD=$(shell pwd) -KERNEL_SOURCE?=/lib/modules/`uname -r`/build all: $(BUILDVER) $(LIBTONEZONE) @@ -79,8 +82,8 @@ linux26: linux26: prereq $(BINS) - @if ! [ -d $(KERNEL_SOURCE) ]; then echo "You do not appear to have the kernel sources for your current kernel installed."; exit 1 ; fi - make -C $(KERNEL_SOURCE) SUBDIRS=$(PWD) modules + @if ! [ -d $(KDIR) ]; then echo "You do not appear to have the kernel sources for your current kernel installed."; exit 1 ; fi + make -C $(KDIR) SUBDIRS=$(PWD) modules obj-m := $(MODULESO) ztdummy.o @@ -95,46 +98,46 @@ tests: patgen pattest patlooptest hdlcstress hdlctest hdlcgen hdlcverify timertest tor2.o: tor2.c tor2-hw.h tor2fw.h zaptel.h - $(HOSTCC) $(KFLAGS) -c tor2.c + $(CC) $(KFLAGS) -c tor2.c zaptel.o: zaptel.c zaptel.h digits.h arith.h sec.h mec.h sec-2.h mec2.h mec3.h zconfig.h - $(HOSTCC) $(KFLAGS) -c zaptel.c + $(CC) $(KFLAGS) -c zaptel.c torisa.o: torisa.c zaptel.h torisa.h - $(HOSTCC) $(KFLAGS) -c torisa.c + $(CC) $(KFLAGS) -c torisa.c wcusb.o: wcusb.c wcusb.h zaptel.h - $(HOSTCC) $(KFLAGS) -c wcusb.c + $(CC) $(KFLAGS) -c wcusb.c wcfxsusb.o: wcfxsusb.c wcfxsusb.h zaptel.h - $(HOSTCC) $(KFLAGS) -c wcfxsusb.c + $(CC) $(KFLAGS) -c wcfxsusb.c wcfxo.o: wcfxo.c zaptel.h - $(HOSTCC) $(KFLAGS) -c wcfxo.c + $(CC) $(KFLAGS) -c wcfxo.c wct1xxp.o:wct1xxp.c zaptel.h - $(HOSTCC) $(KFLAGS) -c wct1xxp.c + $(CC) $(KFLAGS) -c wct1xxp.c wcte11xp.o:wcte11xp.c zaptel.h - $(HOSTCC) $(KFLAGS) -c wcte11xp.c + $(CC) $(KFLAGS) -c wcte11xp.c wct4xxp.o:wct4xxp.c zaptel.h - $(HOSTCC) $(KFLAGS) -c wct4xxp.c + $(CC) $(KFLAGS) -c wct4xxp.c wcfxs.o:wcfxs.c zaptel.h - $(HOSTCC) $(KFLAGS) -c wcfxs.c + $(CC) $(KFLAGS) -c wcfxs.c wcs3200p.o:wcs3200p.c zaptel.h - $(HOSTCC) $(KFLAGS) -c wcs3200p.c + $(CC) $(KFLAGS) -c wcs3200p.c ztdummy.o:ztdummy.c ztdummy.h - $(HOSTCC) $(KFLAGS) -c ztdummy.c + $(CC) $(KFLAGS) -c ztdummy.c ztdynamic.o: ztdynamic.c zaptel.h - $(HOSTCC) $(KFLAGS) -c ztdynamic.c + $(CC) $(KFLAGS) -c ztdynamic.c ztd-eth.o: ztd-eth.c zaptel.h - $(HOSTCC) $(KFLAGS) -c ztd-eth.c + $(CC) $(KFLAGS) -c ztd-eth.c tor2ee.o: tor2-hw.h @@ -238,23 +241,23 @@ devices: ifeq ($(DYNFS),) - mkdir -p $(INSTALL_PREFIX)/dev/zap - rm -f $(INSTALL_PREFIX)/dev/zap/ctl - rm -f $(INSTALL_PREFIX)/dev/zap/channel - rm -f $(INSTALL_PREFIX)/dev/zap/pseudo - rm -f $(INSTALL_PREFIX)/dev/zap/timer - rm -f $(INSTALL_PREFIX)/dev/zap/253 - rm -f $(INSTALL_PREFIX)/dev/zap/252 - rm -f $(INSTALL_PREFIX)/dev/zap/251 - rm -f $(INSTALL_PREFIX)/dev/zap/250 - mknod $(INSTALL_PREFIX)/dev/zap/ctl c 196 0 - mknod $(INSTALL_PREFIX)/dev/zap/timer c 196 253 - mknod $(INSTALL_PREFIX)/dev/zap/channel c 196 254 - mknod $(INSTALL_PREFIX)/dev/zap/pseudo c 196 255 + mkdir -p $(ROOT_PREFIX)/dev/zap + rm -f $(ROOT_PREFIX)/dev/zap/ctl + rm -f $(ROOT_PREFIX)/dev/zap/channel + rm -f $(ROOT_PREFIX)/dev/zap/pseudo + rm -f $(ROOT_PREFIX)/dev/zap/timer + rm -f $(ROOT_PREFIX)/dev/zap/253 + rm -f $(ROOT_PREFIX)/dev/zap/252 + rm -f $(ROOT_PREFIX)/dev/zap/251 + rm -f $(ROOT_PREFIX)/dev/zap/250 + mknod $(ROOT_PREFIX)/dev/zap/ctl c 196 0 + mknod $(ROOT_PREFIX)/dev/zap/timer c 196 253 + mknod $(ROOT_PREFIX)/dev/zap/channel c 196 254 + mknod $(ROOT_PREFIX)/dev/zap/pseudo c 196 255 N=1; \ while [ $$N -lt 250 ]; do \ - rm -f $(INSTALL_PREFIX)/dev/zap/$$N; \ - mknod $(INSTALL_PREFIX)/dev/zap/$$N c 196 $$N; \ + rm -f $(ROOT_PREFIX)/dev/zap/$$N; \ + mknod $(ROOT_PREFIX)/dev/zap/$$N c 196 $$N; \ N=$$[$$N+1]; \ done else @@ -263,35 +266,36 @@ endif install: all devices - install -D -m 755 ztcfg $(INSTALL_PREFIX)/sbin/ztcfg + install -D -m 755 ztcfg $(ROOT_PREFIX)$(INSTALL_PREFIX)/sbin/ztcfg if [ -f sethdlc-new ]; then \ - install -D -m 755 sethdlc-new $(INSTALL_PREFIX)/sbin/sethdlc; \ + install -D -m 755 sethdlc-new $(ROOT_PREFIX)$(INSTALL_PREFIX)/sbin/sethdlc; \ elif [ -f sethdlc ]; then \ - install -D -m 755 sethdlc $(INSTALL_PREFIX)/sbin/sethdlc ; \ + install -D -m 755 sethdlc $(ROOT_PREFIX)$(INSTALL_PREFIX)/sbin/sethdlc ; \ fi - if [ -f zttool ]; then install -D -m 755 zttool $(INSTALL_PREFIX)/sbin/zttool; fi + if [ -f zttool ]; then install -D -m 755 zttool $(ROOT_PREFIX)$(INSTALL_PREFIX)/sbin/zttool; fi if [ -f zaptel.ko ]; then \ for x in $(MODULESKO) ztdummy.ko; do \ - install -D -m 644 $$x $(INSTALL_PREFIX)/lib/modules/`uname -r`/misc/$$x ; \ + install -D -m 644 $$x $(ROOT_PREFIX)$(INSTALL_PREFIX)/lib/modules/$(KVERSION)/extra/$$x ; \ done; \ if ! [ -f wcfxsusb.ko ]; then \ - rm -f $(INSTALL_PREFIX)/lib/modules/`uname -r`/misc/wcfxsusb.o; \ + rm -f $(ROOT_PREFIX)$(INSTALL_PREFIX)/lib/modules/$(KVERSION)/extra/wcfxsusb.o; \ fi; \ + /sbin/depmod -ae -F $(KDIR)/System.map -b $(ROOT_PREFIX) -r 2.6.12.2; \ else \ for x in $(MODULESO); do \ - install -D -m 644 $$x $(INSTALL_PREFIX)/lib/modules/`uname -r`/misc/$$x ; \ + install -D -m 644 $$x $(ROOT_PREFIX)$(INSTALL_PREFIX)/lib/modules/$(KVERSION)/misc/$$x ; \ done; \ if ! [ -f wcfxsusb.o ]; then \ - rm -f $(INSTALL_PREFIX)/lib/modules/`uname -r`/misc/wcfxsusb.ko; \ + rm -f $(ROOT_PREFIX)$(INSTALL_PREFIX)/lib/modules/$(KVERSION)/misc/wcfxsusb.ko; \ fi; \ fi - install -D -m 755 $(LIBTONEZONE) $(INSTALL_PREFIX)/usr/lib/$(LIBTONEZONE) + install -D -m 755 $(LIBTONEZONE) $(ROOT_PREFIX)$(INSTALL_PREFIX)/usr/lib/$(LIBTONEZONE) if [ -x /usr/sbin/sestatus ] && (/usr/sbin/sestatus | grep "SELinux status:" | grep -q "enabled") ; then restorecon -v $(INSTALL_PREFIX)/usr/lib/$(LIBTONEZONE); fi - install -D -m 644 zaptel.h $(INSTALL_PREFIX)/usr/include/linux/zaptel.h - install -D -m 644 torisa.h $(INSTALL_PREFIX)/usr/include/linux/torisa.h - install -D -m 644 tonezone.h $(INSTALL_PREFIX)/usr/include/tonezone.h + install -D -m 644 zaptel.h $(ROOT_PREFIX)$(INSTALL_PREFIX)/usr/include/linux/zaptel.h + install -D -m 644 torisa.h $(ROOT_PREFIX)$(INSTALL_PREFIX)/usr/include/linux/torisa.h + install -D -m 644 tonezone.h $(ROOT_PREFIX)$(INSTALL_PREFIX)/usr/include/tonezone.h ( cd $(INSTALL_PREFIX)/usr/lib ; rm -f libtonezone.so ; ln -sf $(LIBTONEZONE) libtonezone.so ) - [ `id -u` = 0 ] && /sbin/ldconfig || : + [ `id -u` = 0 ] && /sbin/ldconfig -r $(ROOT_PREFIX) || : if [ -f $(MODCONF) ]; then mv -f $(MODCONF) $(MODCONF).bak ; fi cat $(MODCONF).bak | grep -v "alias char-major-250" | \ grep -v "post-install torisa /sbin/ztcfg" | \ @@ -320,30 +324,30 @@ if ! grep "alias wct2xxp" $(MODCONF); then \ echo "alias wct2xxp wct4xxp" >> $(MODCONF); \ fi - if [ -d /etc/modutils ]; then \ + if [ -d $(ROOT_PREFIX)/etc/modutils ]; then \ /sbin/update-modules ; \ fi [ `id -u` = 0 ] && /sbin/depmod -a || : - [ -f $(CONFIG_FILE) ] || install -D -m 644 zaptel.conf.sample $(CONFIG_FILE) + [ -f $(ROOT_PREFIX)$(CONFIG_FILE) ] || install -D -m 644 zaptel.conf.sample $(ROOT_PREFIX)$(CONFIG_FILE) config: - if [ -d $(INSTALL_PREFIX)/etc/rc.d/init.d ]; then \ - install -D -m 755 zaptel.init $(INSTALL_PREFIX)/etc/rc.d/init.d/zaptel; \ + if [ -d $(ROOT_PREFIX)/etc/rc.d/init.d ]; then \ + install -D -m 755 zaptel.init $(ROOT_PREFIX)/etc/rc.d/init.d/zaptel; \ $(CHKCONFIG) --add zaptel; \ - elif [ -d $(INSTALL_PREFIX)/etc/init.d ]; then \ - install -D -m 755 zaptel.init $(INSTALL_PREFIX)/etc/init.d/zaptel; \ + elif [ -d $(ROOT_PREFIX)/etc/init.d ]; then \ + install -D -m 755 zaptel.init $(ROOT_PREFIX)/etc/init.d/zaptel; \ $(CHKCONFIG) --add zaptel; \ fi - if [ ! -f /etc/sysconfig/zaptel ]; then \ - install -D -m 644 zaptel.sysconfig $(INSTALL_PREFIX)/etc/sysconfig/zaptel; \ + if [ ! -f $(ROOT_PREFIX)/etc/sysconfig/zaptel ]; then \ + install -D -m 644 zaptel.sysconfig $(ROOT_PREFIX)/etc/sysconfig/zaptel; \ fi - if [ -d /etc/sysconfig/network-scripts ]; then \ - install -D -m 755 ifup-hdlc $(INSTALL_PREFIX)/etc/sysconfig/network-scripts/ifup-hdlc; \ + if [ -d $(ROOT_PREFIX)/etc/sysconfig/network-scripts ]; then \ + install -D -m 755 ifup-hdlc $(ROOT_PREFIX)/etc/sysconfig/network-scripts/ifup-hdlc; \ fi clean: rm -f torisatool makefw tor2fw.h - rm -f zttool + rm -f zttool ztspeed ztmonitor zttest rm -f *.o ztcfg tzdriver sethdlc sethdlc-new rm -f $(TZOBJS) $(LIBTONEZONE) *.lo rm -f *.ko *.mod.c .*o.cmd diff -urw zaptel-1.0.9.1.orig/tor2.c zaptel-1.0.9.1/tor2.c --- zaptel-1.0.9.1.orig/tor2.c 2005-01-17 02:58:09.000000000 +0100 +++ zaptel-1.0.9.1/tor2.c 2005-08-15 11:38:43.000000000 +0200 @@ -1087,7 +1087,12 @@ static int syncsrc = 0; static int syncnum = 0 /* -1 */; static int syncspan = 0; + +#ifdef CONFIG_PREEMPT_RT +DEFINE_SPINLOCK(synclock); +#else static spinlock_t synclock = SPIN_LOCK_UNLOCKED; +#endif static int tor2_findsync(struct tor2 *tor) { diff -urw zaptel-1.0.9.1.orig/zaptel.c zaptel-1.0.9.1/zaptel.c --- zaptel-1.0.9.1.orig/zaptel.c 2005-07-09 02:21:25.000000000 +0200 +++ zaptel-1.0.9.1/zaptel.c 2005-08-15 11:37:52.000000000 +0200 @@ -329,9 +329,13 @@ wait_queue_head_t sel; } *zaptimers = NULL; +#ifdef CONFIG_PREEMPT_RT +DEFINE_SPINLOCK(zaptimerlock); +DEFINE_SPINLOCK(bigzaplock); +#else static spinlock_t zaptimerlock = SPIN_LOCK_UNLOCKED; - static spinlock_t bigzaplock = SPIN_LOCK_UNLOCKED; +#endif struct zt_zone { char name[40]; /* Informational, only */ diff -urw zaptel-1.0.9.1.orig/zaptel.conf.sample zaptel-1.0.9.1/zaptel.conf.sample --- zaptel-1.0.9.1.orig/zaptel.conf.sample 2004-10-29 19:14:40.000000000 +0200 +++ zaptel-1.0.9.1/zaptel.conf.sample 2005-08-15 14:30:52.000000000 +0200 @@ -128,7 +128,7 @@ # # An up-to-date list of the zones can be found in the file zaptel/zonedata.c # -loadzone = us +loadzone = se #loadzone = us-old #loadzone=gr #loadzone=it @@ -139,4 +139,4 @@ #loadzone=jp #loadzone=sp #loadzone=no -defaultzone=us +defaultzone=se diff -urw zaptel-1.0.9.1.orig/ztd-eth.c zaptel-1.0.9.1/ztd-eth.c --- zaptel-1.0.9.1.orig/ztd-eth.c 2004-10-15 00:30:55.000000000 +0200 +++ zaptel-1.0.9.1/ztd-eth.c 2005-08-15 11:40:20.000000000 +0200 @@ -51,7 +51,11 @@ /* We take the raw message, put it in an ethernet frame, and add a two byte addressing header at the top for future use */ +#ifdef CONFIG_PREEMPT_RT +DEFINE_SPINLOCK(zlock); +#else static spinlock_t zlock = SPIN_LOCK_UNLOCKED; +#endif static struct ztdeth { unsigned char addr[ETH_ALEN]; diff -urw zaptel-1.0.9.1.orig/ztdynamic.c zaptel-1.0.9.1/ztdynamic.c --- zaptel-1.0.9.1.orig/ztdynamic.c 2005-01-17 02:58:09.000000000 +0100 +++ zaptel-1.0.9.1/ztdynamic.c 2005-08-15 11:39:29.000000000 +0200 @@ -126,8 +126,11 @@ static int hasmaster = 0; +#ifdef CONFIG_PREEMPT_RT +DEFINE_SPINLOCK(dlock); +#else static spinlock_t dlock = SPIN_LOCK_UNLOCKED; - +#endif static void checkmaster(void) {