origin
solomon 20 years ago
parent f18b5a644a
commit e735506524
  1. 1
      CHANGES
  2. 3
      man/Makefile
  3. 13
      man/nwepgen.man
  4. 54
      man/wlancfg.man
  5. 27
      man/wlanctl-ng.man
  6. 23
      man/wland.man
  7. 453
      src/prism2/driver/prism2sta.c

@ -41,6 +41,7 @@
* Intersil Corporation as part of PRISM(R) chipset product development.
*
* --------------------------------------------------------------------
- Added man pages contributed by Joey Hess
- Add ident info for the Z-Com 725/726 USB Widgets.
- Fixes to silence GCC3.2 warnings. (Pavel Roskin)
-pre7

@ -48,7 +48,8 @@ all:
@echo "Nothing to do..."
install:
@echo "Nothing to do..."
cp nwepgen.man wlancfg.man wlanctl-ng.man wland.man \
/usr/local/man/man1
clean:
rm -f core core.* *.o .*.o *.s *.a .depend tmp_make *~ tags

@ -0,0 +1,13 @@
.TH NEWPGEN 8
.SH NAME
nwepgen \- generates Neesus Datacom compatible WEP keys
.SH SYNOPSIS
.B newpgen genstr length
.SH DESCRIPTION
.B nwepgen
generates Neesus Datacom compatible WEP keys from a string. You will
typically not run it by hand, but it is called by the linux-wlan-ng
initialization scripts if you specify a WEP key string in the config file.
.P
.SH AUTHOR
This minimal man page was written by Joey Hess.

@ -0,0 +1,54 @@
.TH WLANCFG 8
.SH NAME
wlancfg \- manupulate linux-wlan-ng MIB values
.SH SYNOPSIS
.B wlancfg query dev
.P
.B wlancfg show dev [all]
.P
.B wlancfg set dev
.P
.B wlancfg list
.P
.B wlancfg version
.SH DESCRIPTION
The wlancfg utility program provides an alternative method to
.B wlanctl-ng (1)
, for manipulating MIB values. It was designed to provide
an easier mechanism for saving and restoring the complete wireless
configuration (i.e. when re-starting the device driver) and to provide
a more efficient mechanism for GUI's to query multiple MIB's.
.SH OPTIONS
.TP
.B dev
The name of the device (e.g., wlan0).
.TP
.B query
Read MIB names (separated by whitespace) from stdin
and output their values (separated by carriage returns)
to stdout. The MIB's may be either read/write or
read-only.
.TP
.B show
Query the values of all supported read/write MIB's and
output their values (separated by carriage returns) to
stdout. The syntax of the output will be:
name=value
.RS
If the "all" parameter is specified, then all supported
MIB's (i.e. read-only MIB's as well) are output.
.RE
.TP
.B set
Read MIB name/value pairs (separated by carriage returns)
from stdin and set the values of the specified MIB's. The
pairs must have the same syntax as above. The MIB's must
be read/write.
.TP
.B list
Display a list of all supported MIB's.
.TP
.B version
Display the compiled version of wlancfg.
.SH AUTHOR
This minimal man page was written by Joey Hess.

@ -0,0 +1,27 @@
.TH WLANCTL-NG 8
.SH NAME
wlanctl-ng \- control utility for linux-wlan-ng 802.11 devices
.SH SYNOPSIS
.B wlanctl-ng interface|verson|commands|mibs cmd cmdarg [cmdarg..]
.SH DESCRIPTION
The wlanctl-ng utility program is used to set up linux-wlan-ng 802.11
devices. linux-wlan-ng devices are configured using a MIB.
.P
Only experts will want to use this program, as it is quite complicated.
Everyone else edits a config file and uses a script that runs this program
as necessary.
.SH OPTIONS
.TP
.B commands
Output a list of all available commands.
.TP
.B mibs
Outputs a list of available mibs.
.TP
.B version
Outputs the version of the program.
.TP
.B interface
The name of a wireless network interface, such as wlan0.
.SH AUTHOR
This minimal man page was written by Joey Hess.

@ -0,0 +1,23 @@
.TH WLAND 8
.SH NAME
wland \- linux-wlan-ng daemon
.SH SYNOPSIS
.B wland [-V|-v] [-d wlandpath] [-u]
.SH DESCRIPTION
.B wland
is a daemon for receiving and handling events from 802.11 services and
MAC-specific linux-wlan-ng drivers. It is not currently used.
.SH OPTIONS
.TP
.B -V
.TP
.B -v
Display version number.
.TP
.B -d wlandpath
Specify the directory to run in.
.TP
.B -u
Do not daemonize; run in foreground.
.SH AUTHOR
This minimal man page was written by Joey Hess.

@ -450,6 +450,459 @@ static struct usb_device_id usb_prism_tbl[] = {
{PRISM_USB_DEVICE(0x045e, 0x006e, "Microsoft MN510 Wireless USB Adapter")},
{PRISM_USB_DEVICE(0x0967, 0x0204, "Acer Warplink USB Adapter")},
{PRISM_USB_DEVICE(0x0cde, 0x0002, "Z-Com 725/726 Prism2.5 USB/USB Integrated")},
/* src/prism2/driver/prism2sta.c
*
* Implements the station functionality for prism2
*
* Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved.
* --------------------------------------------------------------------
*
* linux-wlan
*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* Alternatively, the contents of this file may be used under the
* terms of the GNU Public License version 2 (the "GPL"), in which
* case the provisions of the GPL are applicable instead of the
* above. If you wish to allow the use of your version of this file
* only under the terms of the GPL and not to allow others to use
* your version of this file under the MPL, indicate your decision
* by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL. If you do not delete
* the provisions above, a recipient may use your version of this
* file under either the MPL or the GPL.
*
* --------------------------------------------------------------------
*
* Inquiries regarding the linux-wlan Open Source project can be
* made directly to:
*
* AbsoluteValue Systems Inc.
* info@linux-wlan.com
* http://www.linux-wlan.com
*
* --------------------------------------------------------------------
*
* Portions of the development of this software were funded by
* Intersil Corporation as part of PRISM(R) chipset product development.
*
* --------------------------------------------------------------------
*
* This file implements the module and linux pcmcia routines for the
* prism2 driver.
*
* --------------------------------------------------------------------
*/
/*================================================================*/
/* System Includes */
#include <linux/config.h>
#define WLAN_DBVAR prism2_debug
#include <linux/version.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/wireless.h>
#include <linux/netdevice.h>
#include <linux/tqueue.h>
#include <asm/io.h>
#include <linux/delay.h>
#include <asm/byteorder.h>
#include <wlan/wlan_compat.h>
#if (WLAN_HOSTIF == WLAN_PCMCIA)
#include <pcmcia/version.h>
#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ds.h>
#include <pcmcia/cisreg.h>
#include <pcmcia/driver_ops.h>
#endif
#if ((WLAN_HOSTIF == WLAN_PLX) || (WLAN_HOSTIF == WLAN_PCI))
#include <linux/ioport.h>
#include <linux/pci.h>
#endif
#if (WLAN_HOSTIF == WLAN_USB)
#include <linux/usb.h>
#endif
/*================================================================*/
/* Project Includes */
#include <wlan/version.h>
#include <wlan/p80211types.h>
#include <wlan/p80211hdr.h>
#include <wlan/p80211mgmt.h>
#include <wlan/p80211conv.h>
#include <wlan/p80211msg.h>
#include <wlan/p80211netdev.h>
#include <wlan/p80211req.h>
#include <wlan/p80211metadef.h>
#include <wlan/p80211metastruct.h>
#include <prism2/hfa384x.h>
#include <prism2/prism2mgmt.h>
/*================================================================*/
/* Local Constants */
#if (WLAN_HOSTIF == WLAN_PLX)
#define PLX_ATTR_SIZE 0x1000 /* Attribute memory size - 4K bytes */
#define COR_OFFSET 0x3e0 /* COR attribute offset of Prism2 PC card */
#define COR_VALUE 0x41 /* Enable PC card with irq in level trigger */
#define PLX_INTCSR 0x4c /* Interrupt Control and Status Register */
#define PLX_INTCSR_INTEN (1<<6) /* Interrupt Enable bit */
#define PLX_MIN_ATTR_LEN 512 /* at least 2 x 256 is needed for CIS */
/* 3Com 3CRW777A (PLX) board ID */
#define PCIVENDOR_3COM 0x10B7
#define PCIDEVICE_AIRCONNECT 0x7770
/* Eumitcom PCI WL11000 PCI Adapter (PLX) board device+vendor ID */
#define PCIVENDOR_EUMITCOM 0x1638UL
#define PCIDEVICE_WL11000 0x1100UL
/* Global Sun Tech GL24110P PCI Adapter (PLX) board device+vendor ID */
#define PCIVENDOR_GLOBALSUN 0x16abUL
#define PCIDEVICE_GL24110P 0x1101UL
#define PCIDEVICE_GL24110P_ALT 0x1102UL
/* Netgear MA301 PCI Adapter (PLX) board device+vendor ID */
#define PCIVENDOR_NETGEAR 0x1385UL
#define PCIDEVICE_MA301 0x4100UL
/* US Robotics USR2410 PCI Adapter (PLX) board device+vendor ID */
#define PCIVENDOR_USROBOTICS 0x16ecUL
#define PCIDEVICE_USR2410 0x3685UL
/* Linksys WPC11 card with the WDT11 adapter (PLX) board device+vendor ID */
#define PCIVENDOR_Linksys 0x16abUL
#define PCIDEVICE_Wpc11Wdt11 0x1102UL
/* National Datacomm Corp SOHOware Netblaster II PCI */
#define PCIVENDOR_NDC 0x15e8UL
#define PCIDEVICE_NCP130_PLX 0x0130UL
#define PCIDEVICE_NCP130_ASIC 0x0131UL
/* NDC NCP130_PLX is also sold by Corega. Their name is CGWLPCIA11 */
#define PCIVENDOR_COREGA PCIVENDOR_NDC
#define PCIDEVICE_CGWLPCIA11 PCIDEVICE_NCP130_PLX
/* PCI Class & Sub-Class code, Network-'Other controller' */
#define PCI_CLASS_NETWORK_OTHERS 0x280
#endif /* WLAN_PLX */
#if (WLAN_HOSTIF == WLAN_PCI)
#define PCI_TYPE (PCI_USES_MEM | PCI_ADDR0 | PCI_NO_ACPI_WAKE)
#define PCI_SIZE 0x1000 /* Memory size - 4K bytes */
/* ISL3874A 11Mb/s WLAN controller */
#define PCIVENDOR_INTERSIL 0x1260UL
#define PCIDEVICE_ISL3874 0x3873UL /* [MSM] yeah I know...the ID says
3873. Trust me, it's a 3874. */
/* PCI Class & Sub-Class code, Network-'Other controller' */
#define PCI_CLASS_NETWORK_OTHERS 0x280
#endif /* WLAN_PCI */
/*================================================================*/
/* Local Macros */
/*================================================================*/
/* Local Types */
/*================================================================*/
/* Local Static Definitions */
#if (WLAN_HOSTIF == WLAN_PCMCIA)
#define DRIVER_SUFFIX "_cs"
#elif (WLAN_HOSTIF == WLAN_PLX)
#define DRIVER_SUFFIX "_plx"
typedef char* dev_info_t;
#elif (WLAN_HOSTIF == WLAN_PCI)
#define DRIVER_SUFFIX "_pci"
typedef char* dev_info_t;
#elif (WLAN_HOSTIF == WLAN_USB)
#define DRIVER_SUFFIX "_usb"
typedef char* dev_info_t;
#else
#error "HOSTIF unsupported or undefined!"
#endif
static char *version = "prism2" DRIVER_SUFFIX ".o: " WLAN_RELEASE;
static dev_info_t dev_info = "prism2" DRIVER_SUFFIX;
#if (WLAN_HOSTIF == WLAN_PCMCIA)
static dev_link_t *dev_list = NULL; /* head of instance list */
#endif
/*-----------------------------------------------------------------*/
#if (WLAN_HOSTIF == WLAN_PLX || WLAN_HOSTIF == WLAN_PCI)
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0))
/* NOTE: The pci code in this driver is written to the
* 2.4.x (or some 2.3.x and newer) pci support. The declarations
* inside this #if block are to provide backward compatibility to 2.2.x.
* NOTE2: If you want to modify the pci support, please make sure you do
* it in a 2.4.x compliant way.
*/
struct pci_driver_mapping {
struct pci_dev *dev;
struct pci_driver *drv;
void *driver_data;
};
struct pci_device_id
{
unsigned int vendor, device;
unsigned int subvendor, subdevice;
unsigned int class, class_mask;
unsigned long driver_data;
};
struct pci_driver
{
struct {int a;} dummy;
char *name;
const struct pci_device_id *id_table; /* NULL if wants all devices */
int (*probe) (struct pci_dev *dev, const struct pci_device_id *id);
void (*remove) (struct pci_dev *dev);
int (*save_state) (struct pci_dev *dev, u32 state);
int (*suspend)(struct pci_dev *dev, u32 state);
int (*resume) (struct pci_dev *dev);
int (*enable_wake) (struct pci_dev *dev, u32 state, int enable);
};
#define PCI_MAX_MAPPINGS 16
static struct pci_driver_mapping drvmap [PCI_MAX_MAPPINGS] = { { NULL, } , };
#define PCI_ANY_ID 0xffff
static int pci_register_driver(struct pci_driver *drv);
static void pci_unregister_driver(struct pci_driver *drv);
static int pci_populate_drvmap (struct pci_dev *dev, struct pci_driver *drv);
static void *pci_get_drvdata (struct pci_dev *dev);
static void pci_set_drvdata (struct pci_dev *dev, void *driver_data);
/* no-ops */
#define pci_enable_device(a) 0
#define pci_disable_device(a) 0
#define request_mem_region(x,y,z) (1)
#define release_mem_region(x,y) do {} while (0)
#ifndef pci_resource_start
static unsigned long pci_resource_len (struct pci_dev *dev, int n_base)
{
u32 l, sz;
int reg = PCI_BASE_ADDRESS_0 + (n_base << 2);
/* XXX temporarily disable I/O and memory decoding for this device? */
pci_read_config_dword (dev, reg, &l);
if (l == 0xffffffff)
return 0;
pci_write_config_dword (dev, reg, ~0);
pci_read_config_dword (dev, reg, &sz);
pci_write_config_dword (dev, reg, l);
if (!sz || sz == 0xffffffff)
return 0;
if ((l & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_MEMORY) {
sz = ~(sz & PCI_BASE_ADDRESS_MEM_MASK);
} else {
sz = ~(sz & PCI_BASE_ADDRESS_IO_MASK) & 0xffff;
}
return sz + 1;
}
#define pci_resource_start(dev, i) \
(((dev)->base_address[i] & PCI_BASE_ADDRESS_SPACE) ? \
((dev)->base_address[i] & PCI_BASE_ADDRESS_IO_MASK) : \
((dev)->base_address[i] & PCI_BASE_ADDRESS_MEM_MASK))
#define pci_resource_end(dev,bar) \
(pci_resource_len((dev),(bar)) == 0 ? \
pci_resource_start(dev,bar) : \
(pci_resource_start(dev,bar) + pci_resource_len((dev),(bar)) - 1)
#define pci_resource_flags(dev, i) \
(dev->base_address[i] & IORESOURCE_IO)
#endif
#endif /* (WLAN_HOSTIF == WLAN_PLX || WLAN_HOSTIF == WLAN_PCI) */
#endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0)) */
/*-----------------------------------------------------------------*/
#if (WLAN_HOSTIF == WLAN_PLX || WLAN_HOSTIF == WLAN_PCI)
static int prism2sta_suspend_pci(struct pci_dev *pdev, u32 state);
static int prism2sta_resume_pci(struct pci_dev *pdev);
#endif
#if (WLAN_HOSTIF == WLAN_PLX)
static struct pci_device_id plx_id_tbl[] = {
{
PCIVENDOR_EUMITCOM, PCIDEVICE_WL11000,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"Eumitcom WL11000 PCI(PLX) card"
},
{
PCIVENDOR_GLOBALSUN, PCIDEVICE_GL24110P,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"Global Sun Tech GL24110P PCI(PLX) card"
},
{
PCIVENDOR_GLOBALSUN, PCIDEVICE_GL24110P_ALT,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"Global Sun Tech GL24110P PCI(PLX) card"
},
{
PCIVENDOR_NETGEAR, PCIDEVICE_MA301,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"Global Sun Tech GL24110P PCI(PLX) card"
},
{
PCIVENDOR_USROBOTICS, PCIDEVICE_USR2410,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"US Robotics USR2410 PCI(PLX) card"
},
{
PCIVENDOR_Linksys, PCIDEVICE_Wpc11Wdt11,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"Linksys WPC11 with WDT11 PCI(PLX) adapter"
},
{
PCIVENDOR_NDC, PCIDEVICE_NCP130_PLX,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"NDC Netblaster II PCI(PLX)"
},
{
PCIVENDOR_NDC, PCIDEVICE_NCP130_ASIC,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"NDC Netblaster II PCI(TMC7160)"
},
{
PCIVENDOR_3COM, PCIDEVICE_AIRCONNECT,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"3Com AirConnect PCI 802.11b 11Mb/s WLAN Controller"
},
{
0, 0, 0, 0, 0, 0, 0
}
};
MODULE_DEVICE_TABLE(pci, plx_id_tbl);
/* Function declared here because of ptr reference below */
static int prism2sta_probe_plx(struct pci_dev *pdev,
const struct pci_device_id *id);
static void prism2sta_remove_plx(struct pci_dev *pdev);
struct pci_driver prism2_plx_drv_id = {
name: "prism2_plx",
id_table: plx_id_tbl,
probe: prism2sta_probe_plx,
remove: prism2sta_remove_plx,
#ifdef CONFIG_PM
suspend: prism2sta_suspend_pci,
resume: prism2sta_resume_pci,
#endif
};
#endif /* WLAN_PLX */
#if (WLAN_HOSTIF == WLAN_PCI)
static struct pci_device_id pci_id_tbl[] = {
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3874,
PCI_ANY_ID, PCI_ANY_ID,
0, 0,
/* Driver data, we just put the name here */
(unsigned long)"Intersil Prism2.5 ISL3874 11Mb/s WLAN Controller"
},
{
0, 0, 0, 0, 0, 0, 0
}
};
MODULE_DEVICE_TABLE(pci, pci_id_tbl);
/* Function declared here because of ptr reference below */
static int prism2sta_probe_pci(struct pci_dev *pdev,
const struct pci_device_id *id);
static void prism2sta_remove_pci(struct pci_dev *pdev);
struct pci_driver prism2_pci_drv_id = {
name: "prism2_pci",
id_table: pci_id_tbl,
probe: prism2sta_probe_pci,
remove: prism2sta_remove_pci,
#ifdef CONFIG_PM
suspend: prism2sta_suspend_pci,
resume: prism2sta_resume_pci,
#endif
};
#endif /* WLAN_PCI */
#if (WLAN_HOSTIF == WLAN_USB)
#define PRISM_USB_DEVICE(vid, pid, name) \
USB_DEVICE(vid, pid), \
driver_info: (unsigned long) name
static struct usb_device_id usb_prism_tbl[] = {
{PRISM_USB_DEVICE(0x09aa, 0x3642, "Prism2.x 11Mbps WLAN USB Adapter")},
{PRISM_USB_DEVICE(0x1668, 0x0408, "Actiontec Prism2.5 11Mbps WLAN USB Adapter")},
{PRISM_USB_DEVICE(0x1668, 0x0421, "Actiontec Prism2.5 11Mbps WLAN USB Adapter")},
{PRISM_USB_DEVICE(0x066b, 0x2212, "Linksys WUSB11v2.5 11Mbps WLAN USB Adapter")},
{PRISM_USB_DEVICE(0x067c, 0x1022, "Siemens SpeedStream 1022 11Mbps WLAN USB Adapter")},
{PRISM_USB_DEVICE(0x049f, 0x0033, "Compaq/Intel W100 PRO/Wireless 11Mbps multiport WLAN Adapter")},
{PRISM_USB_DEVICE(0x049f, 0x0076, "Compaq/Intel W200 PRO/Wireless 11Mbps multiport WLAN Adapter")},
{PRISM_USB_DEVICE(0x0411, 0x0016, "Melco WLI-USB-S11 11Mbps WLAN Adapter")},
{PRISM_USB_DEVICE(0x08de, 0x7a01, "PRISM25 IEEE 802.11 Mini USB Adapter")},
{PRISM_USB_DEVICE(0x8086, 0x1111, "Intel PRO/Wireless 2011B LAN USB Adapter")},
{PRISM_USB_DEVICE(0x0d8e, 0x7a01, "PRISM25 IEEE 802.11 Mini USB Adapter")},
{PRISM_USB_DEVICE(0x045e, 0x006e, "Microsoft MN510 Wireless USB Adapter")},
{PRISM_USB_DEVICE(0x0967, 0x0204, "Acer Warplink USB Adapter")},
{PRISM_USB_DEVICE(0x0cde, 0x0002, "Z-Com 725/726 Prism2.5 USB/USB Integrated")},
{ /* terminator */ }
};

Loading…
Cancel
Save