summaryrefslogtreecommitdiff
path: root/sys/dev/ic/bwfmvar.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ic/bwfmvar.h')
-rw-r--r--sys/dev/ic/bwfmvar.h32
1 files changed, 30 insertions, 2 deletions
diff --git a/sys/dev/ic/bwfmvar.h b/sys/dev/ic/bwfmvar.h
index 00970ff9978..19a62e2a38c 100644
--- a/sys/dev/ic/bwfmvar.h
+++ b/sys/dev/ic/bwfmvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: bwfmvar.h,v 1.2 2017/10/18 19:59:37 patrick Exp $ */
+/* $OpenBSD: bwfmvar.h,v 1.3 2017/10/21 20:43:20 patrick Exp $ */
/*
* Copyright (c) 2010-2016 Broadcom Corporation
* Copyright (c) 2016,2017 Patrick Wildt <patrick@blueri.se>
@@ -106,6 +106,29 @@ struct bwfm_proto_ops {
};
extern struct bwfm_proto_ops bwfm_proto_bcdc_ops;
+struct bwfm_host_cmd {
+ void (*cb)(struct bwfm_softc *, void *);
+ uint8_t data[256];
+};
+
+struct bwfm_cmd_newstate {
+ enum ieee80211_state state;
+ int arg;
+};
+
+struct bwfm_cmd_key {
+ struct ieee80211_node *ni;
+ struct ieee80211_key *k;
+};
+
+struct bwfm_host_cmd_ring {
+#define BWFM_HOST_CMD_RING_COUNT 32
+ struct bwfm_host_cmd cmd[BWFM_HOST_CMD_RING_COUNT];
+ int cur;
+ int next;
+ int queued;
+};
+
struct bwfm_softc {
struct device sc_dev;
struct ieee80211com sc_ic;
@@ -119,7 +142,12 @@ struct bwfm_softc {
#define BWFM_IO_TYPE_D11AC 2
int sc_tx_timer;
- struct timeout sc_scan_timeout;
+
+ int (*sc_newstate)(struct ieee80211com *,
+ enum ieee80211_state, int);
+ struct bwfm_host_cmd_ring sc_cmdq;
+ struct taskq *sc_taskq;
+ struct task sc_task;
};
void bwfm_attach(struct bwfm_softc *);