Index: madwifi-dfs-r3053/tools/80211debug.c =================================================================== --- madwifi-dfs-r3053.orig/tools/80211debug.c 2007-12-13 05:25:10.786240140 +0100 +++ madwifi-dfs-r3053/tools/80211debug.c 2007-12-13 05:25:11.226265215 +0100 @@ -49,6 +49,10 @@ #include #include +#ifdef DOMULTI +#include "do_multi.h" +#endif + #undef ARRAY_SIZE #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) @@ -184,9 +188,19 @@ } #endif /* __linux__ */ +#ifdef DOMULTI + +int +a80211debug_init(int argc, char *argv[]) +{ + +#else + int main(int argc, char *argv[]) { + +#endif const char *ifname = "ath0"; const char *cp, *tp; const char *sep; Index: madwifi-dfs-r3053/tools/80211stats.c =================================================================== --- madwifi-dfs-r3053.orig/tools/80211stats.c 2007-12-13 05:25:10.794240595 +0100 +++ madwifi-dfs-r3053/tools/80211stats.c 2007-12-13 05:25:11.226265215 +0100 @@ -60,6 +60,10 @@ #include "net80211/ieee80211_crypto.h" #include "net80211/ieee80211_ioctl.h" +#ifdef DOMULTI +#include "do_multi.h" +#endif + #ifndef SIOCG80211STATS #define SIOCG80211STATS (SIOCDEVPRIVATE + 2) #endif @@ -239,9 +243,19 @@ #undef STAT } +#ifdef DOMULTI + +int +a80211stats_init(int argc, char *argv[]) +{ + +#else + int main(int argc, char *argv[]) { + +#endif int c, len; struct ieee80211req_sta_info *si; u_int8_t buf[24*1024], *cp; Index: madwifi-dfs-r3053/tools/athchans.c =================================================================== --- madwifi-dfs-r3053.orig/tools/athchans.c 2007-12-13 05:25:10.798240825 +0100 +++ madwifi-dfs-r3053/tools/athchans.c 2007-12-13 05:25:11.238265900 +0100 @@ -59,6 +59,10 @@ #include "net80211/ieee80211_crypto.h" #include "net80211/ieee80211_ioctl.h" +#ifdef DOMULTI +#include "do_multi.h" +#endif + static int s = -1; static const char *progname; @@ -139,9 +143,20 @@ } #define MAXCHAN ((int)(sizeof(struct ieee80211req_chanlist) * NBBY)) + +#ifdef DOMULTI + +int +athchans_init(int argc, char *argv[]) +{ + +#else + int main(int argc, char *argv[]) { + +#endif const char *ifname = "wifi0"; struct ieee80211req_chanlist chanlist; int c; Index: madwifi-dfs-r3053/tools/athctrl.c =================================================================== --- madwifi-dfs-r3053.orig/tools/athctrl.c 2007-12-13 05:25:10.806241280 +0100 +++ madwifi-dfs-r3053/tools/athctrl.c 2007-12-13 05:25:11.242266126 +0100 @@ -53,6 +53,10 @@ #include +#ifdef DOMULTI +#include "do_multi.h" +#endif + static int setsysctrl(const char *dev, const char *control , u_long value) { @@ -87,9 +91,19 @@ exit(1); } +#ifdef DOMULTI + +int +athctrl_init(int argc, char *argv[]) +{ + +#else + int main(int argc, char *argv[]) { + +#endif char device[IFNAMSIZ + 1]; int distance = -1; int c; Index: madwifi-dfs-r3053/tools/athdebug.c =================================================================== --- madwifi-dfs-r3053.orig/tools/athdebug.c 2007-12-13 05:25:10.814241735 +0100 +++ madwifi-dfs-r3053/tools/athdebug.c 2007-12-13 05:25:11.242266126 +0100 @@ -52,6 +52,10 @@ #include #include +#ifdef DOMULTI +#include "do_multi.h" +#endif + #undef ARRAY_SIZE #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) @@ -193,9 +197,20 @@ } #endif /* __linux__ */ +#ifdef DOMULTI + +int +athdebug_init(int argc, char *argv[]) +{ + +#else + int main(int argc, char *argv[]) { + +#endif + #ifdef __linux__ const char *ifname = "wifi0"; #else Index: madwifi-dfs-r3053/tools/athkey.c =================================================================== --- madwifi-dfs-r3053.orig/tools/athkey.c 2007-12-13 05:25:10.818241964 +0100 +++ madwifi-dfs-r3053/tools/athkey.c 2007-12-13 05:25:11.242266126 +0100 @@ -59,6 +59,10 @@ #include "net80211/ieee80211_crypto.h" #include "net80211/ieee80211_ioctl.h" +#ifdef DOMULTI +#include "do_multi.h" +#endif + static int s = -1; static const char *progname; @@ -212,9 +216,19 @@ exit(-1); } +#ifdef DOMULTI + +int +athkey_init(int argc, char *argv[]) +{ + +#else + int main(int argc, char *argv[]) { + +#endif const char *ifname = "wifi0"; struct ieee80211req_key setkey; struct ieee80211req_del_key delkey; Index: madwifi-dfs-r3053/tools/athstats.c =================================================================== --- madwifi-dfs-r3053.orig/tools/athstats.c 2007-12-13 05:25:10.826242419 +0100 +++ madwifi-dfs-r3053/tools/athstats.c 2007-12-13 05:25:11.242266126 +0100 @@ -66,6 +66,10 @@ #undef ARRAY_SIZE #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) +#ifdef DOMULTI +#include "do_multi.h" +#endif + static const struct { u_int phyerr; const char* desc; @@ -227,9 +231,20 @@ signalled = 1; } +#ifdef DOMULTI + +int +athstats_init(int argc, char *argv[]) +{ + +#else + int main(int argc, char *argv[]) { + +#endif + #ifdef __linux__ const char *ifname = "wifi0"; #else Index: madwifi-dfs-r3053/tools/do_multi.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ madwifi-dfs-r3053/tools/do_multi.c 2007-12-13 05:25:11.242266126 +0100 @@ -0,0 +1,32 @@ +#include +#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, "ath_info") == 0) + ret = athinfo_init(argc, argv); + + return ret; +} Index: madwifi-dfs-r3053/tools/do_multi.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ madwifi-dfs-r3053/tools/do_multi.h 2007-12-13 05:25:11.246266355 +0100 @@ -0,0 +1,10 @@ + +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[]); Index: madwifi-dfs-r3053/tools/Makefile =================================================================== --- madwifi-dfs-r3053.orig/tools/Makefile 2007-12-13 05:25:10.842243330 +0100 +++ madwifi-dfs-r3053/tools/Makefile 2007-12-13 05:25:11.246266355 +0100 @@ -47,9 +47,12 @@ endif -ALL= athstats 80211stats athkey athchans athctrl \ +ALLPROGS= athstats 80211stats athkey athchans athctrl \ athdebug 80211debug wlanconfig ath_info +OBJS= $(patsubst %,%.o,$(ALLPROGS) do_multi) +ALL= ${OBJS} madwifi_multi + all: $(ALL) INCS= -I. -I$(HAL) -I$(TOP) -I$(ATH_HAL) @@ -59,25 +62,31 @@ all: $(ALL) -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 -ath_info: ath_info.c - $(CC) -o ath_info $(CFLAGS) ath_info.c - +athstats.o: athstats.c + ${CC} -c -o athstats.o -DDOMULTI=1 ${ALL_CFLAGS} -I../ath athstats.c +80211stats.o: 80211stats.c + ${CC} -c -o 80211stats.o -DDOMULTI=1 ${ALL_CFLAGS} 80211stats.c +ath_info.o: ath_info.c + ${CC} -c -o ath_info.o -DDOMULTI=1 ${ALL_CFLAGS} ath_info.c +athkey.o: athkey.c + ${CC} -c -o athkey.o -DDOMULTI=1 ${ALL_CFLAGS} athkey.c +athchans.o: athchans.c + ${CC} -c -o athchans.o -DDOMULTI=1 ${ALL_CFLAGS} athchans.c +athctrl.o: athctrl.c + ${CC} -c -o athctrl.o -DDOMULTI=1 ${ALL_CFLAGS} athctrl.c +athdebug.o: athdebug.c + ${CC} -c -o athdebug.o -DDOMULTI=1 ${ALL_CFLAGS} athdebug.c +wlanconfig.o: wlanconfig.c + ${CC} -c -o wlanconfig.o -DDOMULTI=1 ${ALL_CFLAGS} wlanconfig.c +80211debug.o: 80211debug.c + ${CC} -c -o 80211debug.o -DDOMULTI=1 ${ALL_CFLAGS} 80211debug.c +do_multi.o: do_multi.c + ${CC} -c -o do_multi.o -DDOMULTI=1 ${ALL_CFLAGS} do_multi.c +madwifi_multi: $(OBJS) + ${CC} -o madwifi_multi ${LDFLAGS} ${OBJS} + for i in athstats 80211stats athkey athchans athctrl athdebug wlanconfig 80211debug; do \ + ln -s -f madwifi_multi $$i; \ + done install: $(ALL) install -d $(DESTDIR)$(BINDIR) Index: madwifi-dfs-r3053/tools/wlanconfig.c =================================================================== --- madwifi-dfs-r3053.orig/tools/wlanconfig.c 2007-12-13 05:25:10.850243788 +0100 +++ madwifi-dfs-r3053/tools/wlanconfig.c 2007-12-13 05:25:11.246266355 +0100 @@ -62,6 +62,10 @@ #include "net80211/ieee80211_crypto.h" #include "net80211/ieee80211_ioctl.h" +#ifdef DOMULTI +#include "do_multi.h" +#endif + /* * These are taken from ieee80211_node.h */ @@ -99,9 +103,19 @@ static int verbose = 0; +#ifdef DOMULTI + +int +wlanconfig_init(int argc, char *argv[]) +{ + +#else + int main(int argc, char *argv[]) { + +#endif const char *ifname, *cmd; unsigned char bnounit = 0; char *if_base = NULL; Index: madwifi-dfs-r3053/tools/ath_info.c =================================================================== --- madwifi-dfs-r3053.orig/tools/ath_info.c 2007-12-13 05:25:10.858244244 +0100 +++ madwifi-dfs-r3053/tools/ath_info.c 2007-12-13 05:25:11.246266355 +0100 @@ -738,7 +738,12 @@ "unlawful radio transmissions!\n\n"); } +#ifdef DOMULTI +int +athinfo_init(int argc, char *argv[]) +#else int main(int argc, char *argv[]) +#endif { u_int32_t dev_addr; u_int16_t eeprom_header, srev, phy_rev_5ghz, phy_rev_2ghz;