360 lines
8.3 KiB
Diff
360 lines
8.3 KiB
Diff
--- a/tools/80211debug.c
|
|
+++ b/tools/80211debug.c
|
|
@@ -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;
|
|
--- a/tools/80211stats.c
|
|
+++ b/tools/80211stats.c
|
|
@@ -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;
|
|
--- a/tools/athchans.c
|
|
+++ b/tools/athchans.c
|
|
@@ -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;
|
|
--- a/tools/athctrl.c
|
|
+++ b/tools/athctrl.c
|
|
@@ -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;
|
|
--- a/tools/athdebug.c
|
|
+++ b/tools/athdebug.c
|
|
@@ -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";
|
|
--- a/tools/athkey.c
|
|
+++ b/tools/athkey.c
|
|
@@ -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;
|
|
--- a/tools/athstats.c
|
|
+++ b/tools/athstats.c
|
|
@@ -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";
|
|
--- /dev/null
|
|
+++ b/tools/do_multi.c
|
|
@@ -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;
|
|
+}
|
|
--- /dev/null
|
|
+++ b/tools/do_multi.h
|
|
@@ -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
|
|
--- a/tools/Makefile
|
|
+++ b/tools/Makefile
|
|
@@ -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
|
|
--- a/tools/wlanconfig.c
|
|
+++ b/tools/wlanconfig.c
|
|
@@ -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;
|
|
--- a/tools/ath_info/Makefile
|
|
+++ b/tools/ath_info/Makefile
|
|
@@ -17,11 +17,18 @@
|
|
|
|
all: $(PROGRAMS)
|
|
|
|
+
|
|
+ifneq ($(DO_MULTI),)
|
|
+ath_info: ath_info.o
|
|
+ rm -f $@
|
|
+ ln -s ../madwifi_multi $@
|
|
+else
|
|
ath_info: ath_info.o
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
|
|
+endif
|
|
|
|
.c.o:
|
|
- $(CC) $(CFLAGS) -c $<
|
|
+ $(CC) $(CFLAGS) $(if $(DO_MULTI),-DDO_MULTI=1 -I..) -c $<
|
|
|
|
clean:
|
|
rm -f *.o $(PROGRAMS)
|
|
--- a/tools/ath_info/ath_info.c
|
|
+++ b/tools/ath_info/ath_info.c
|
|
@@ -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;
|
|
--- a/tools/wpakey.c
|
|
+++ b/tools/wpakey.c
|
|
@@ -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;
|