huge madwifi update (work in progress, disabled by default, compiles but breaks at...
[openwrt.git] / package / madwifi / patches-r3776 / 102-multicall_binary.patch
diff --git a/package/madwifi/patches-r3776/102-multicall_binary.patch b/package/madwifi/patches-r3776/102-multicall_binary.patch
new file mode 100644 (file)
index 0000000..3dcbb04
--- /dev/null
@@ -0,0 +1,383 @@
+Index: madwifi-trunk-r3776/tools/80211debug.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/80211debug.c        2008-07-17 00:22:03.000000000 +0200
++++ madwifi-trunk-r3776/tools/80211debug.c     2008-07-17 00:23:16.000000000 +0200
+@@ -48,6 +48,7 @@
+ #include <ctype.h>
+ #include <getopt.h>
+ #include <err.h>
++#include "do_multi.h"
+ #undef ARRAY_SIZE
+ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
+@@ -185,7 +186,7 @@
+ #endif /* __linux__ */
+ int
+-main(int argc, char *argv[])
++CMD(a80211debug)(int argc, char *argv[])
+ {
+       const char *ifname = "ath0";
+       const char *cp, *tp;
+Index: madwifi-trunk-r3776/tools/80211stats.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/80211stats.c        2008-07-17 00:22:03.000000000 +0200
++++ madwifi-trunk-r3776/tools/80211stats.c     2008-07-17 00:23:16.000000000 +0200
+@@ -59,6 +59,7 @@
+ #include "net80211/ieee80211.h"
+ #include "net80211/ieee80211_crypto.h"
+ #include "net80211/ieee80211_ioctl.h"
++#include "do_multi.h"
+ #ifndef SIOCG80211STATS
+ #define       SIOCG80211STATS (SIOCDEVPRIVATE + 2)
+@@ -241,7 +242,7 @@
+ }
+ int
+-main(int argc, char *argv[])
++CMD(a80211stats)(int argc, char *argv[])
+ {
+       int c, len;
+       struct ieee80211req_sta_info *si;
+Index: madwifi-trunk-r3776/tools/athchans.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/athchans.c  2008-07-17 00:22:03.000000000 +0200
++++ madwifi-trunk-r3776/tools/athchans.c       2008-07-17 00:23:16.000000000 +0200
+@@ -58,6 +58,7 @@
+ #include "net80211/ieee80211.h"
+ #include "net80211/ieee80211_crypto.h"
+ #include "net80211/ieee80211_ioctl.h"
++#include "do_multi.h"
+ static        int s = -1;
+ static const char *progname;
+@@ -140,8 +141,9 @@
+ }
+ #define       MAXCHAN ((int)(sizeof(struct ieee80211req_chanlist) * NBBY))
++
+ int
+-main(int argc, char *argv[])
++CMD(athchans)(int argc, char *argv[])
+ {
+       const char *ifname = "wifi0";
+       struct ieee80211req_chanlist chanlist;
+Index: madwifi-trunk-r3776/tools/athctrl.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/athctrl.c   2008-07-17 00:22:03.000000000 +0200
++++ madwifi-trunk-r3776/tools/athctrl.c        2008-07-17 00:23:16.000000000 +0200
+@@ -52,6 +52,7 @@
+ #include <err.h>
+ #include <net/if.h>
++#include "do_multi.h"
+ static int
+ setsysctrl(const char *dev, const char *control , u_long value)
+@@ -88,7 +89,7 @@
+ }
+ int
+-main(int argc, char *argv[])
++CMD(athctrl)(int argc, char *argv[])
+ {
+       char device[IFNAMSIZ + 1];
+       int distance = -1;
+Index: madwifi-trunk-r3776/tools/athdebug.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/athdebug.c  2008-07-17 00:22:03.000000000 +0200
++++ madwifi-trunk-r3776/tools/athdebug.c       2008-07-17 00:23:16.000000000 +0200
+@@ -51,6 +51,7 @@
+ #include <ctype.h>
+ #include <getopt.h>
+ #include <err.h>
++#include "do_multi.h"
+ #undef ARRAY_SIZE
+ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
+@@ -194,7 +195,7 @@
+ #endif /* __linux__ */
+ int
+-main(int argc, char *argv[])
++CMD(athdebug)(int argc, char *argv[])
+ {
+ #ifdef __linux__
+       const char *ifname = "wifi0";
+Index: madwifi-trunk-r3776/tools/athkey.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/athkey.c    2008-07-17 00:22:03.000000000 +0200
++++ madwifi-trunk-r3776/tools/athkey.c 2008-07-17 00:23:16.000000000 +0200
+@@ -58,6 +58,7 @@
+ #include "net80211/ieee80211.h"
+ #include "net80211/ieee80211_crypto.h"
+ #include "net80211/ieee80211_ioctl.h"
++#include "do_multi.h"
+ static int s = -1;
+ static const char *progname;
+@@ -213,8 +214,7 @@
+       exit(-1);
+ }
+-int
+-main(int argc, char *argv[])
++int CMD(athkey)(int argc, char *argv[])
+ {
+       const char *ifname = "wifi0";
+       struct ieee80211req_key setkey;
+Index: madwifi-trunk-r3776/tools/athstats.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/athstats.c  2008-07-17 00:22:03.000000000 +0200
++++ madwifi-trunk-r3776/tools/athstats.c       2008-07-17 00:23:16.000000000 +0200
+@@ -65,6 +65,7 @@
+ #undef ARRAY_SIZE
+ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
++#include "do_multi.h"
+ static const struct {
+       u_int           phyerr;
+@@ -228,7 +229,7 @@
+ }
+ int
+-main(int argc, char *argv[])
++CMD(athstats)(int argc, char *argv[])
+ {
+ #ifdef __linux__
+       const char *ifname = "wifi0";
+Index: madwifi-trunk-r3776/tools/do_multi.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ madwifi-trunk-r3776/tools/do_multi.c       2008-07-17 00:46:52.000000000 +0200
+@@ -0,0 +1,36 @@
++#include <string.h>
++#include "do_multi.h"
++
++int
++main(int argc, char *argv[])
++{
++    char *progname;
++    int ret = 0;
++
++    progname = basename(argv[0]);
++
++    if(strcmp(progname, "80211debug") == 0)
++      ret = a80211debug_init(argc, argv);
++    if(strcmp(progname, "80211stats") == 0)
++      ret = a80211stats_init(argc, argv);
++    if(strcmp(progname, "athchans") == 0)
++      ret = athchans_init(argc, argv);
++    if(strcmp(progname, "athctrl") == 0)
++      ret =  athctrl_init(argc, argv);
++    if(strcmp(progname, "athdebug") == 0)
++      ret =  athdebug_init(argc, argv);
++    if(strcmp(progname, "athkey") == 0)
++      ret =  athkey_init(argc, argv);
++    if(strcmp(progname, "athstats") == 0)
++      ret =  athstats_init(argc, argv);
++    if(strcmp(progname, "wlanconfig") == 0)
++      ret =  wlanconfig_init(argc, argv);
++    if(strcmp(progname, "wpakey") == 0)
++      ret =  wpakey_init(argc, argv);
++    if(strcmp(progname, "athchans") == 0)
++      ret =  athchans_init(argc, argv);
++    if(strcmp(progname, "ath_info") == 0)
++      ret =  athinfo_init(argc, argv);
++
++    return ret;
++}
+Index: madwifi-trunk-r3776/tools/do_multi.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ madwifi-trunk-r3776/tools/do_multi.h       2008-07-17 00:23:16.000000000 +0200
+@@ -0,0 +1,15 @@
++#ifdef DO_MULTI
++int a80211debug_init(int argc, char *argv[]);
++int a80211stats_init(int argc, char *argv[]);
++int athchans_init(int argc, char *argv[]);
++int athctrl_init(int argc, char *argv[]);
++int athdebug_init(int argc, char *argv[]);
++int athkey_init(int argc, char *argv[]);
++int athstats_init(int argc, char *argv[]);
++int wlanconfig_init(int argc, char *argv[]);
++int athinfo_init(int argc, char *argv[]);
++
++#define CMD(name) name##_init
++#else
++#define CMD(name) main
++#endif
+Index: madwifi-trunk-r3776/tools/Makefile
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/Makefile    2008-07-17 00:22:03.000000000 +0200
++++ madwifi-trunk-r3776/tools/Makefile 2008-07-17 00:45:15.000000000 +0200
+@@ -50,42 +50,43 @@
+ PROGRAMS = athstats 80211stats athkey athchans athctrl \
+       athdebug 80211debug wlanconfig wpakey
++OBJS = $(patsubst %,%.o,$(PROGRAMS)) ath_info/ath_info.o
+ SUBDIRS = ath_info
+-INCS = -I. -I$(HAL) -I$(TOP) -I$(ATH_HAL)
++INCS = -I. -I$(HAL) -I$(TOP) -I$(ATH_HAL) -I$(TOP)/ath
+ CFLAGS = -g -O2 -Wall
+ ALL_CFLAGS = $(CFLAGS) $(INCS)
+ LDFLAGS =
+-all: all-subdirs $(PROGRAMS)
++all: all-subdirs compile
+ all-subdirs:
+       for d in $(SUBDIRS); do \
+               $(MAKE) -C $$d || exit 1; \
+       done
+-athstats: athstats.c
+-      $(CC) -o athstats $(ALL_CFLAGS) -I$(TOP)/ath $(LDFLAGS) athstats.c
+-80211stats: 80211stats.c
+-      $(CC) -o 80211stats $(ALL_CFLAGS) $(LDFLAGS) 80211stats.c
+-athkey: athkey.c
+-      $(CC) -o athkey $(ALL_CFLAGS) $(LDFLAGS) athkey.c
+-athchans: athchans.c
+-      $(CC) -o athchans $(ALL_CFLAGS) $(LDFLAGS) athchans.c
+-athctrl: athctrl.c
+-      $(CC) -o athctrl $(ALL_CFLAGS) $(LDFLAGS) athctrl.c
+-athdebug: athdebug.c
+-      $(CC) -o athdebug $(ALL_CFLAGS) $(LDFLAGS) athdebug.c
+-wlanconfig: wlanconfig.c
+-      $(CC) -o wlanconfig $(ALL_CFLAGS) $(LDFLAGS) wlanconfig.c
+-80211debug: 80211debug.c
+-      $(CC) -o 80211debug $(ALL_CFLAGS) $(LDFLAGS) 80211debug.c
+-wpakey: wpakey.c
+-      $(CC) -o wpakey $(ALL_CFLAGS) $(LDFLAGS) wpakey.c
++%.o: %.c
++      ${CC} $(ALL_CFLAGS) -c -o $@  $<
++
++ifneq ($(DO_MULTI),)
++ALL_CFLAGS += -DDO_MULTI=1
++madwifi_multi: $(OBJS) do_multi.o
++      $(CC) $(LDFLAGS) -o $@ $^
++
++compile: madwifi_multi
++      for i in $(PROGRAMS); do \
++              ln -sf madwifi_multi $$i; \
++      done
++else
++$(PROGRAMS):
++      $(CC) $(ALL_CFLAGS) -o $@ $@.c
++
++compile: $(PROGRAMS)
++endif
+ install: all
+       install -d $(DESTDIR)$(BINDIR)
+-      for i in $(PROGRAMS); do \
++      for i in $(PROGRAMS) $(if $(DO_MULTI),madwifi_multi); do \
+               install $$i $(DESTDIR)$(BINDIR)/$$i; \
+               $(STRIP) $(DESTDIR)$(BINDIR)/$$i; \
+       done
+@@ -97,7 +98,7 @@
+       done
+ uninstall:
+-      for i in $(PROGRAMS); do \
++      for i in $(PROGRAMS) $(if $(DO_MULTI),madwifi_multi); do \
+               rm -f $(DESTDIR)$(BINDIR)/$$i; \
+       done
+       for i in $(PROGRAMS:=.8); do \
+@@ -108,7 +109,7 @@
+       done
+ clean:
+-      rm -f $(PROGRAMS) core a.out
++      rm -f $(if $(DO_MULTI), madwifi_multi) $(PROGRAMS) core a.out *.o
+       for d in $(SUBDIRS); do \
+               $(MAKE) -C $$d clean; \
+       done
+Index: madwifi-trunk-r3776/tools/wlanconfig.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/wlanconfig.c        2008-07-17 00:22:03.000000000 +0200
++++ madwifi-trunk-r3776/tools/wlanconfig.c     2008-07-17 00:45:42.000000000 +0200
+@@ -61,6 +61,7 @@
+ #include "net80211/ieee80211.h"
+ #include "net80211/ieee80211_crypto.h"
+ #include "net80211/ieee80211_ioctl.h"
++#include "do_multi.h"
+ /*
+  * These are taken from ieee80211_node.h
+@@ -100,7 +101,7 @@
+ static int verbose = 0;
+ int
+-main(int argc, char *argv[])
++CMD(wlanconfig)(int argc, char *argv[])
+ {
+       const char *ifname, *cmd;
+       unsigned char bnounit = 0;
+Index: madwifi-trunk-r3776/tools/ath_info/Makefile
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/ath_info/Makefile   2008-07-17 00:21:42.000000000 +0200
++++ madwifi-trunk-r3776/tools/ath_info/Makefile        2008-07-17 00:36:23.000000000 +0200
+@@ -15,13 +15,13 @@
+ PROGRAMS = ath_info
+ MANS = ath_info.8
+-all: $(PROGRAMS)
++all: $(if $(DO_MULTI),ath_info.o,$(PROGRAMS))
+ ath_info: ath_info.o
+       $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
+ .c.o:
+-      $(CC) $(CFLAGS) -c $<
++      $(CC) $(CFLAGS) $(if $(DO_MULTI),-DDO_MULTI=1 -I..) -c $<
+ clean:
+       rm -f *.o $(PROGRAMS)
+Index: madwifi-trunk-r3776/tools/ath_info/ath_info.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/ath_info/ath_info.c 2008-07-17 00:24:08.000000000 +0200
++++ madwifi-trunk-r3776/tools/ath_info/ath_info.c      2008-07-17 00:24:15.000000000 +0200
+@@ -28,6 +28,7 @@
+ #include <sys/mman.h>
+ #include <endian.h>
+ #include <byteswap.h>
++#include "do_multi.h"
+ #undef ARRAY_SIZE
+ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
+@@ -1982,7 +1983,8 @@
+       printf("\n");
+ }
+-int main(int argc, char *argv[])
++int
++CMD(athinfo)(int argc, char *argv[])
+ {
+       unsigned long long dev_addr;
+       u_int16_t srev, phy_rev_5ghz, phy_rev_2ghz, ee_magic;
+Index: madwifi-trunk-r3776/tools/wpakey.c
+===================================================================
+--- madwifi-trunk-r3776.orig/tools/wpakey.c    2008-07-17 00:21:30.000000000 +0200
++++ madwifi-trunk-r3776/tools/wpakey.c 2008-07-17 00:46:18.000000000 +0200
+@@ -25,6 +25,7 @@
+ #include <unistd.h>
+ #include <sys/ioctl.h>
++#include "do_multi.h"
+ #define MACS "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx"
+ #define MACP(mac) (mac)[0], (mac)[1], (mac)[2], (mac)[3], (mac)[4], (mac)[5]
+@@ -234,7 +235,8 @@
+               "", dev);
+ }
+-int main(int argc, char** argv) {
++int
++CMD(wpakey)(int argc, char** argv) {
+       int keyidx = 0;
+       uint8_t mac[6];
+       int cipher = IEEE80211_CIPHER_AES_CCM;
This page took 0.028247 seconds and 4 git commands to generate.