summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/wifi.h
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-02-09 03:19:50 +0100
committercinap_lenrek <cinap_lenrek@gmx.de>2013-02-09 03:19:50 +0100
commit09a58258328d34edd14b8c361909635b9d2a1390 (patch)
tree076871e34cd238e6319dda09c0191691d0c7d03b /sys/src/9/pc/wifi.h
parentf1727a674232f1a91dda8f18d7d7e4a1b486e5cf (diff)
etheriwl: experimental intel wifi link driver
Diffstat (limited to 'sys/src/9/pc/wifi.h')
-rw-r--r--sys/src/9/pc/wifi.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/sys/src/9/pc/wifi.h b/sys/src/9/pc/wifi.h
new file mode 100644
index 000000000..363722a8f
--- /dev/null
+++ b/sys/src/9/pc/wifi.h
@@ -0,0 +1,52 @@
+typedef struct Wnode Wnode;
+typedef struct Wifi Wifi;
+
+typedef struct Wifipkt Wifipkt;
+
+struct Wifipkt
+{
+ uchar fc[2];
+ uchar dur[2];
+ uchar a1[Eaddrlen];
+ uchar a2[Eaddrlen];
+ uchar a3[Eaddrlen];
+ uchar seq[2];
+};
+
+enum {
+ WIFIHDRSIZE = 2+2+3*6+2,
+};
+
+struct Wnode
+{
+ uchar bssid[Eaddrlen];
+ char ssid[32+2];
+ int ival;
+ int cap;
+
+ long lastseen;
+
+ int aid;
+};
+
+struct Wifi
+{
+ Ether *ether;
+
+ Queue *iq;
+ char *status;
+ void (*transmit)(Wifi*, Wnode*, Block*);
+
+ Wnode node[16];
+ Wnode *bss;
+
+ uint txseq;
+ char essid[32+2];
+};
+
+Wifi *wifiattach(Ether *ether, void (*transmit)(Wifi*, Wnode*, Block*));
+void wifiiq(Wifi*, Block*);
+
+long wifistat(Wifi*, void*, long, ulong);
+long wifictl(Wifi*, void*, long);
+