summaryrefslogtreecommitdiffstats
path: root/sys/dev/wi
Commit message (Collapse)AuthorAgeFilesLines
* Add support for the Addtron AWA100 PCI wireless card.alfred2001-03-282-16/+157
| | | | | | | The AWA100 is a PCI board with a PLX 9052 chip that's used to talk to the pccard inserted into the board. Remove a redundant $FreeBSD while I'm here.
* limit the amount of retries when sending data to prevent lockups.alfred2001-03-271-2/+9
|
* change default from adhoc mode to BSS (infrastructure)assar2001-03-121-1/+1
|
* Change and clean the mutex lock interface.bmilekic2001-02-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mtx_enter(lock, type) becomes: mtx_lock(lock) for sleep locks (MTX_DEF-initialized locks) mtx_lock_spin(lock) for spin locks (MTX_SPIN-initialized) similarily, for releasing a lock, we now have: mtx_unlock(lock) for MTX_DEF and mtx_unlock_spin(lock) for MTX_SPIN. We change the caller interface for the two different types of locks because the semantics are entirely different for each case, and this makes it explicitly clear and, at the same time, it rids us of the extra `type' argument. The enter->lock and exit->unlock change has been made with the idea that we're "locking data" and not "entering locked code" in mind. Further, remove all additional "flags" previously passed to the lock acquire/release routines with the exception of two: MTX_QUIET and MTX_NOSWITCH The functionality of these flags is preserved and they can be passed to the lock/unlock routines by calling the corresponding wrappers: mtx_{lock, unlock}_flags(lock, flag(s)) and mtx_{lock, unlock}_spin_flags(lock, flag(s)) for MTX_DEF and MTX_SPIN locks, respectively. Re-inline some lock acq/rel code; in the sleep lock case, we only inline the _obtain_lock()s in order to ensure that the inlined code fits into a cache line. In the spin lock case, we inline recursion and actually only perform a function call if we need to spin. This change has been made with the idea that we generally tend to avoid spin locks and that also the spin locks that we do have and are heavily used (i.e. sched_lock) do recurse, and therefore in an effort to reduce function call overhead for some architectures (such as alpha), we inline recursion for this case. Create a new malloc type for the witness code and retire from using the M_DEV type. The new type is called M_WITNESS and is only declared if WITNESS is enabled. Begin cleaning up some machdep/mutex.h code - specifically updated the "optimized" inlined code in alpha/mutex.h and wrote MTX_LOCK_SPIN and MTX_UNLOCK_SPIN asm macros for the i386/mutex.h as we presently need those. Finally, caught up to the interface changes in all sys code. Contributors: jake, jhb, jasone (in no particular order)
* Convert if_multiaddrs from LIST to TAILQ so that it can be traversedphk2001-02-061-1/+1
| | | | | | backwards in the three drivers which want to do that. Reviewed by: mikeh
* Use LIST_FOREACH() to traverse ifp->if_multiaddrs list, instead ofphk2001-02-031-2/+1
| | | | | | | <sys/queue.h> implementation details. Created with: /usr/sbin/sed Reviewed with: /sbin/md5
* wi has been converted to NEWCARD, so included it when pccard isimp2001-01-211-2/+2
| | | | | | | included. Also, I forgot to update this to the new cis[] structure last night, mainly due to the above omission.
* Implement MTX_RECURSE flag for mtx_init().bmilekic2001-01-191-1/+1
| | | | | | | | | | | | | | | | | | | All calls to mtx_init() for mutexes that recurse must now include the MTX_RECURSE bit in the flag argument variable. This change is in preparation for an upcoming (further) mutex API cleanup. The witness code will call panic() if a lock is found to recurse but the MTX_RECURSE bit was not set during the lock's initialization. The old MTX_RECURSE "state" bit (in mtx_lock) has been renamed to MTX_RECURSED, which is more appropriate given its meaning. The following locks have been made "recursive," thus far: eventhandler, Giant, callout, sched_lock, possibly some others declared in the architecture-specific code, all of the network card driver locks in pci/, as well as some other locks in dev/ stuff that I've found to be recursive. Reviewed by: jhb
* Add NEWCARD hooks. This seems to work just fine.peter2001-01-171-2/+32
|
* Move if_wl.c from sys/i386/isa to dev/wi - it is not i386 (or even isa)peter2001-01-091-2/+2
| | | | specific.
* Attempt to read and verify the card's status in wi_stop() before sending itjhb2000-12-181-2/+9
| | | | | | | the disable command. On some systems, writing to the card after it has been ejected causes the machine to hang. Reviewed by: wpaul
* Apply some contributed patches to reduce number of tx buffer allocationwpaul2000-12-152-3/+156
| | | | | | failures and add some support for WEP on Prism II chip. Submitted by: YAMAMOTO Shigeru <shigeru@iij.ad.jp>
* remove unneded sys/ucred.h includesalfred2000-11-301-1/+0
|
* Move suser() and suser_xxx() prototypes and a related #define fromphk2000-10-291-1/+0
| | | | | | | | | <sys/proc.h> to <sys/systm.h>. Correctly document the #includes needed in the manpage. Add one now needed #include of <sys/systm.h>. Remove the consequent 48 unused #includes of <sys/proc.h>.
* Remove unneeded #include <machine/clock.h>phk2000-10-151-1/+0
|
* Update the wi driver to use mutexes instead of spls.wpaul2000-10-132-18/+43
|
* Close PR #20963. Do not pass encryption keys back to the caller viawpaul2000-09-071-0/+3
| | | | wi_ioctl() unless they're the superuser.
* Make all Ethernet drivers attach using ether_ifattach() and detach usingarchie2000-07-131-6/+3
| | | | | | | | | ether_ifdetach(). The former consolidates the operations of if_attach(), ng_ether_attach(), and bpfattach(). The latter consolidates the corresponding detach operations. Reviewed by: julian, freebsd-net
* Bring the an(4) fixes to wi(4):roberto2000-06-191-3/+10
| | | | | | | - suser check - splx() fix. Reminded by: Aaron Campbell <aaron@openbsd.org>
* Move code to handle BPF and bridging for incoming Ethernet packets outarchie2000-05-141-13/+0
| | | | | | | | | | | | | | | of the individual drivers and into the common routine ether_input(). Also, remove the (incomplete) hack for matching ethernet headers in the ip_fw code. The good news: net result of 1016 lines removed, and this should make bridging now work with *all* Ethernet drivers. The bad news: it's nearly impossible to test every driver, especially for bridging, and I was unable to get much testing help on the mailing lists. Reviewed by: freebsd-net
* Remove ~25 unneeded #include <sys/conf.h>phk2000-04-191-1/+0
| | | | Remove ~60 unneeded #include <sys/malloc.h>
* When in infrastructure mode, use address 3 from the 802.11 header as thewpaul2000-04-171-2/+7
| | | | | | | | source address when receiving frames (and keep using address 2 when in pseudo-IBSS mode). This is apparently necessary in order to obtain the true MAC address of the sending station which is needed for PPPoE. Patch supplied by: Blaz Zupan <blaz@amis.net>
* Modify if_wi.c to call bpfdetach(ifp) before if_detach(ifp), so as torwatson2000-03-191-0/+2
| | | | | | | | prevent a page fault if the card is ejected while BPF is in use. This could happen if DHCP or tcpdump was in use on that interface during ejection. Other drivers may also require this modification. Reviewed by: wes
* Add support for WEP (encryption) for silver and gold WaveLAN/IEEE turbo cards.wpaul2000-02-023-1/+71
| | | | | | | | | | | | Also update wicontrol to enable/disable encryption, set WEP keys and set the TX key index. Silver cards only have 40-bit keys. This is something of a quick hack, but it works well enough for me to commit this from the LinuxWorld exhibit floor. The WEP support only shows up if you have a card that supports it. Would have been approved by: jkh, if he hadn't wandered off somewhere Approved in his place by: msmith, who's standing right here
* Correctly set the data length when transmitting 802.3 frames (we need towpaul2000-01-121-3/+2
| | | | subtract the length of the SNAP header).
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"peter1999-12-291-1/+1
| | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
* Fix invocation of bus_teardown_intr(). The last arg is supposed to bewpaul1999-12-081-1/+1
| | | | sc->wi_intrhand, not &sc->wi_intrhand.
* Update the WaveLAN/IEEE driver:wpaul1999-11-253-162/+425
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Convert to new bus attachment scheme. Thanks to Blaz Zupan for doing the initial work here. One thing I changed was to have the attach and detach routines work like the PCI drivers, which means that in theory you should be able to load and unload the driver like the PCI NIC drivers, however the pccard support for this hasn't settled down yet so it doesn't quite work. Once the pccard work is done, I'll have to revisit this. - Add device wi0 to PCCARD. If we're lucky, people should be able to install via their WaveLAN cards now. - Add support for signal strength caching. The wicontrol utility has also been updated to allow zeroing and displaying the signal strength cache. - Add a /sys/modules/wi directory and fix a Makefile to builf if_wi.ko. Currently this module is only built for the i386 platform, though once the pccard stuff is done it should be able to work on the alpha too. (Theoretically you should be able to plug one of the WaveLAN/IEEE ISA cards into an alpha with an ISA slot, but we'll see how that turns out. - Update LINT to use only device wi0. There is no true ISA version of the WaveLAN/IEEE so we'll never use an ISA attachment. - Update files.i386 so that if_wi is dependent on card.
* Fix a warning.peter1999-11-181-3/+1
|
* Disable old PCCARD_MODULE code.imp1999-10-291-0/+2
| | | | | | This should fix LINT. Prompted by: phk's explicit message about LINT breakage
* As suggested by phk, unconditionalize BPF support in these drivers. Sincewpaul1999-09-231-9/+0
| | | | | | | there are stubs compiled into the kernel if BPF support is not enabled, there aren't any problems with unresolved symbols. The modules in /modules are compiled with BPF support enabled anyway, so the most this will do is bloat GENERIC a little.
* $Id$ -> $FreeBSD$peter1999-08-283-4/+4
|
* Clean up after removing sys/eventhandler.h from sys/systm.h at the lastmsmith1999-08-211-2/+3
| | | | | minute. This should cover all of the missed cases (and should let LINT build again).
* Implement a new generic mechanism for attaching handler functions tomsmith1999-08-211-6/+7
| | | | | | | | | | | | | events, in order to pave the way for removing a number of the ad-hoc implementations currently in use. Retire the at_shutdown family of functions and replace them with new event handler lists. Rework kern_shutdown.c to take greater advantage of the use of event handlers. Reviewed by: green
* Correct the alignment of some of the members in the wi_frame structure.wpaul1999-07-201-3/+5
| | | | | | The structure is the right length, but some of the members (notably wi_q_info) were off a bit. This causes the received signal strength values to appear bogus.
* Rename bpfilter to bpf.des1999-07-061-7/+7
|
* Patch the WaveLAN/IEEE driver to detect and reject oversized receivedwpaul1999-07-041-2/+19
| | | | | | | | | | | frames (or just insane received packet lengths generated due to errors reading from the NIC's internal buffers). Anything too large to fit safely into an mbuf cluster buffer is discarded and an error logged. I have not observed this problem with my own cards, but on user has reported it and adding the sanity test seems reasonable in any case. Problem noted and patch provided by: Per Andersson <per@cdg.chalmers.se>
* Small optimization: use wi_seek() in wi_read_record() and wi_write_record()wpaul1999-06-061-27/+9
| | | | | instead of frobbing the buffer access path registers directly. Saves a few lines of duplicated code.
* - Fix up some comments in if_wi.c (no code changes)wpaul1999-05-221-9/+9
| | | | | | | - Mention that the 6Mbps turbo adapters are supported in HARDWARE.TXT and RELNOTES.TXT and the wi.4 man page - Mention turbo adapters in the wicontrol.8 man page and provide a complete table of available transmit speed settings
* Add support to wicontrol(8) and wi(4) for enabling and configuringwpaul1999-05-072-4/+34
| | | | | | | power management. This will only work on newer firmware revisions; older firmware will silently ignore the attempts to turn power management on. Patches supplied by: Brad Karp <karp@eecs.harvard.edu>
* Modify wicontrol(8) and wi(4) to allow setting the frequency of thewpaul1999-05-062-4/+28
| | | | | | | WaveLAN's radio modem. The default is whatever the NIC uses since NICs sold in different countries may default to different frequencies. (The Lose95/LoseNT software doesn't let you select the channel so it's probably not really meant to be changed.)
* Fix some byte ordering problems; I was storing string lengths wrong,wpaul1999-05-061-2/+2
| | | | | | | which was causing wicontrol to crash when reading string parameters from the WaveLAN. Patches submitted by: Brad Karp <karp@eecs.harvard.edu>
* Add device driver support for the Lucent WaveLAN/IEEE 802.11 PCMCIAwpaul1999-05-053-4/+865
| | | | | | | | | | | | | | | | | | | | | | adapter (and some workalikes). Also add man pages and a wicontrol utility to manipulate some of the card parameters. This driver was written using information gleaned from the Lucent HCF Light library, though it does not use any of the HCF Light code itself, mainly because it's contaminated by the GPL (but also because it's pretty gross). The HCF Light lacks certain featurs from the full (but proprietary) HCF library, including 802.11 frame encapsulation support, however it has just enough register information about the Hermes chip to allow someone with enough spare time and energy to implement a proper driver. (I would have prefered getting my hands on the Hermes manual, but that's proprietary too. For those who are wondering, the Linux driver uses the proprietary HCF library, but it's provided in object code form only.) Note that I do not have access to a WavePOINT access point, so I have only been able to test ad-hoc mode. The wicontrol utility can turn on BSS mode, but I don't know for certain that the NIC will associate with an access point correctly. Testers are encouraged to send their results to me so that I can find out if I screwed up or not.
* Add device driver support for the Lucent WaveLAN/IEEE 802.11 wirelesswpaul1999-05-051-0/+1315
network adapters. These are all PCMCIA devices (the ISA version is a PCMCIA to ISA bridge with a PCMCIA card plugged into it). Also add a wicontrol utility to read and write some of the card's parameters. Note: I do not have access to a WavePOINT access point, so I have only been able to test this driver in ad-hoc (point to point) mode. The wicontrol utility allows programming the desired service set name (SSID) and enabling BSS mode, but I can't tell for sure if it works (I know the card switches modes, but I can't verify that it joins a service set correctly). This driver was written using information gleaned from the Lucent HCF Light library, which is an API library designed to simplify driver development for devices based on the Lucent Hermes chip. Unfortunately, the HCF Light is missing certain features (like 802.11 frame encapsulation!) which are available only in the proprietary complete HCF code, which is not available to the public. This driver uses none of the HCF Light code: it's very ugly and contaminated by the GPL. IP and ARP packets are encapsulated as 802.11 frames, everything else is encapsulated as 802.3. (It would be easier to just get the Hermes programming manual, but that's not publically available either. For those who are wondering, the Linux WaveLAN/IEEE driver uses the proprietary HCF code, which is provided in object code form only. So much for supporting open source sofware.) Multicast filter support is implemented, however it appears that the filter doesn't work: programming in one IP mutlicast group enables them all.
OpenPOWER on IntegriCloud