(1) Add an IOCTL to tell the Lucent based cards how often to
do an access point scan. These results are returned by
calling another IOCTL to get the most recent scan data.
This function works with prism2 cards as well, but the
data is returned in a different format, or perhaps it is
data only for the closest access point.
(2) For prism2 cards, add the ability to put it into LAN monitor
mode, where (via BPF) all packets can be received. This
mode works best with "wiconfig wi0 -p 3 -f ?" to put the
card into pseudo-IBSS mode (to keep it from channel-hopping
and scanning for access points) and to set the frequency of
the AP you wish to monitor.
The returned data has a partial wi_frame header (down to the
wi_dat_len field) followed by the raw data of the packet.
I have and will put up on http://www.flame.org/NetBSD/wireless/
some simple utilities which do some perhaps interesting things,
like scan for access points, capture packets, etc.
XXX: FH chanset should be calculated by FH hop pattern, but BayStack 650 AP
always specify chanset to fixed value 1. The previous code try to this
hack into awi driver, but it is insufficient because the chanset value
in awi driver may change while scan and it may be different from the
value in receiving beacon/probe-response. So we save encoded FH chanset
into channel in 802.11 common bss information for now.
if_ieee80211subr.c, which can be shared between any IEEE 802.11
drivers.
However, most of current working IEEE 802.11b wireless LAN cards
have rich firmware and we cannot have a control to management frames
for such cards.
IBSS creation is now supported for the awi driver.
IIR_NOPEND if the TXRDY condition is true. Apparently, other chips do
not take TXRDY into account in the IIR_NOPEND case.
Also remove useless assignment (iir = IIR_NOPEND;) in one case.
No response from patch posted on tech-kern 29Aug2001.
Temp work around problems where if we allow for non-polled mailbox commands
we got nailed by hardclock calling is for a timed thaw. Basically, this
means we only enable non-polled mailbox commands in the FC kthread when it
calls isp_fc_runstate.
attributes of some variants of FC f/w (SCCLUN or not). Fake f/w
rev for SBus cards- the f/w versions we're using don't return
version in outgoing mailbox registers like they should.
-apply the patch from PR kern/13117 (Onno van der Linden) to make the
hardware cursor disappear more thoroughly
-deal with PR kern/13573: hardware cursor too big, but differently:
we have to obey the font size actually used. At this point, fix the
problem that the cursor got messed up by the initialization of
unrelated screens.
-unref font(s) if a screen is deleted, so they could be unloaded
if dev/wsfont supported it
-add missing pieces to support screen types with font sizes != 8x16
as system console - now
options VGA_CONSOLE_SCREENTYPE="\"80x50\""
options FONT_VT220L8x8
gives you what you'd expect
compiled-in or runtime loaded fonts,
keep font pointers in a LRU queue and load into the adapter on demand,
so we can have more fonts in use than physical font slots
CAUTION: font loading through the wsdisplay device directly into the
adapter doesn't work anymore!
in how interrupts are down- the 23XX has not only a different place to check
for an interrupt, but unlike all other QLogic cards, you have to read the
status as a 32 bit word- not 16 bit words. Rather than have device specific
functions as called from the core module (in isp_intr), it makes more sense
to have the platform/bus modules do the gruntwork of splitting out the
isr, semaphore register and the first outgoing mailbox register (if needed)
*prior* to calling isp_intr (if calling isp_intr is necessary at all).
little-endian byte-order. This should work out to be a no-op
for LE systems, and allows BE systems to use the board.
Tested on PPC, reviewed by Dante.
NOTE: The board/microcode does have a BIG_ENDIAN mode of operation,
but it's not well-documented. That might be interesting to investigate
at some point in the future, though.
- cominit() is local to com.c, remove prototype from comvar.h.
- Don't prototype comstop(), cdev_decl(com) does this.
- Don't use a block device switch table declaration(!).
- No need to include "com.h".