freebsd-skq/sys/modules
wpaul 7e1ac58149 Commit the first cut of Project Evil, also known as the NDISulator.
Yes, it's what you think it is. Yes, you should run away now.

This is a special compatibility module for allowing Windows NDIS
miniport network drivers to be used with FreeBSD/x86. This provides
_binary_ NDIS compatibility (not source): you can run NDIS driver
code, but you can't build it. There are three main parts:

sys/compat/ndis: the NDIS compat API, which provides binary
compatibility functions for many routines in NDIS.SYS, HAL.dll
and ntoskrnl.exe in Windows (these are the three modules that
most NDIS miniport drivers use). The compat module also contains
a small PE relocator/dynalinker which relocates the Windows .SYS
image and then patches in our native routines.

sys/dev/if_ndis: the if_ndis driver wrapper. This module makes
use of the ndis compat API and can be compiled with a specially
prepared binary image file (ndis_driver_data.h) containing the
Windows .SYS image and registry key information parsed out of the
accompanying .INF file. Once if_ndis.ko is built, it can be loaded
and unloaded just like a native FreeBSD kenrel module.

usr.sbin/ndiscvt: a special utility that converts foo.sys and foo.inf
into an ndis_driver_data.h file that can be compiled into if_ndis.o.
Contains an .inf file parser graciously provided by Matt Dodd (and
mercilessly hacked upon by me) that strips out device ID info and
registry key info from a .INF file and packages it up with a binary
image array. The ndiscvt(8) utility also does some manipulation of
the segments within the .sys file to make life easier for the kernel
loader. (Doing the manipulation here saves the kernel code from having
to move things around later, which would waste memory.)

ndiscvt is only built for the i386 arch. Only files.i386 has been
updated, and none of this is turned on in GENERIC. It should probably
work on pc98. I have no idea about amd64 or ia64 at this point.

This is still a work in progress. I estimate it's about %85 done, but
I want it under CVS control so I can track subsequent changes. It has
been tested with exactly three drivers: the LinkSys LNE100TX v4 driver
(Lne100v4.sys), the sample Intel 82559 driver from the Windows DDK
(e100bex.sys) and the Broadcom BCM43xx wireless driver (bcmwl5.sys). It
still needs to have a net80211 stuff added to it. To use it, you would
do something like this:

# cd /sys/modules/ndis
# make; make load
# cd /sys/modules/if_ndis
# ndiscvt -i /path/to/foo.inf -s /path/to/foo.sys -o ndis_driver_data.h
# make; make load
# sysctl -a | grep ndis

All registry keys are mapped to sysctl nodes. Sometimes drivers refer
to registry keys that aren't mentioned in foo.inf. If this happens,
the NDIS API module creates sysctl nodes for these keys on the fly so
you can tweak them.

An example usage of the Broadcom wireless driver would be:

# sysctl hw.ndis0.EnableAutoConnect=1
# sysctl hw.ndis0.SSID="MY_SSID"
# sysctl hw.ndis0.NetworkType=0 (0 for bss, 1 for adhoc)
# ifconfig ndis0 <my ipaddr> netmask 0xffffff00 up

Things to be done:

- get rid of debug messages
- add in ndis80211 support
- defer transmissions until after a status update with
  NDIS_STATUS_CONNECTED occurs
- Create smarter lookaside list support
- Split off if_ndis_pci.c and if_ndis_pccard.c attachments
- Make sure PCMCIA support works
- Fix ndiscvt to properly parse PCMCIA device IDs from INF files
- write ndisapi.9 man page
2003-12-11 22:34:37 +00:00
..
3dfx
aac Revert the use of -g that leaked in. 2003-02-26 06:56:46 +00:00
accf_data
accf_http
acpi Remove SMP option support from building the ACPI module as it is no longer 2003-12-05 15:49:01 +00:00
agp AGP GART driver for NVIDIA nForce/nForce2 chipsets. 2003-08-23 18:00:31 +00:00
aha
aic Move adding -DPC98 to CFLAGS from each modules to sys/modules/Makefile.inc. 2002-11-06 13:47:00 +00:00
aic7xxx Update GENSRCS and aicasm options correctly depending on whether register 2003-01-22 21:56:54 +00:00
aio
amd Move the amd(4) driver to it's own directory in preparation for it growing 2002-12-13 22:59:18 +00:00
amr (1) added LSI Logic copyright, and legal line 3 in license, and string 2002-10-18 21:29:14 +00:00
an
aout I completely fubared this. An empty EXPORT_SYMS= is not valid. I know I 2002-09-11 18:03:03 +00:00
apm Merge PC98 support. 2003-03-25 05:19:18 +00:00
ar
arcnet - add support for IPX (tested with mount -t nwfs and mars_nwe), 2003-01-24 01:32:20 +00:00
asr
ath module for Atheros 802.11 driver 2003-06-23 17:02:43 +00:00
ath_hal nitpicking 2003-06-30 05:25:36 +00:00
aue
awi
axe Add device driver support for the ASIX Electronics AX88172 USB 2.0 2003-04-20 19:05:33 +00:00
bfe Add a device driver for the Broadcom BCM4401 ethernet controller, 2003-09-09 18:17:23 +00:00
bge Remove miidevs.h and generate it from miidevs at compile time. 2003-01-19 02:59:34 +00:00
bios Add module infrastructure for 'vpd' and 'smbios' and move 'smbios' 2003-03-29 15:20:45 +00:00
bktr Add a overhaul of the soundchip initialization for the MSP34xx chipsets 2003-08-12 09:45:34 +00:00
bridge o update PFIL_HOOKS support to current API used by netbsd 2003-09-23 17:54:04 +00:00
cam Fix the new DA_OLD_QUIRKS option for normal and module compiles. 2003-07-29 18:08:16 +00:00
canbepm Add CanBe power management controller support. 2003-02-03 14:46:26 +00:00
canbus Add CanBe power management controller support. 2003-02-03 14:46:26 +00:00
cardbus
cbb Fix this pending the decision of which of the redundant 2002-08-27 15:59:19 +00:00
cd9660 - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
cd9660_iconv - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
ciss - Comment a line which sets CISS_DEBUG by default. 2002-10-27 12:09:51 +00:00
cm
coda Add support for the Coda 6.x venus<->kernel interface. This extends 2003-09-07 07:43:10 +00:00
coda5 Add support for the Coda 6.x venus<->kernel interface. This extends 2003-09-07 07:43:10 +00:00
coff
crypto Module-ize the 'core' crypto stuff. This may still need to be compiled 2002-10-16 14:31:34 +00:00
cryptodev module for /dev/crypto support 2002-10-04 20:35:02 +00:00
cs Module for cs driver 2003-11-04 01:36:35 +00:00
cue
cx Updated cx driver commit part 1: bring in the new kernel driver. 2003-12-03 07:29:38 +00:00
dc
dcons Add dumb console driver and related bits. 2003-10-24 15:44:10 +00:00
dcons_crom Add dumb console driver and related bits. 2003-10-24 15:44:10 +00:00
de
digi
dpt Add module infrastructure for 'dpt' driver. 2003-03-29 15:47:13 +00:00
drm Hook the SiS DRM up to the build 2003-09-09 00:29:02 +00:00
dummynet
ed Move adding -DPC98 to CFLAGS from each modules to sys/modules/Makefile.inc. 2002-11-06 13:47:00 +00:00
el
elink Add module infrastructure for elink. 2003-03-29 13:42:20 +00:00
em Don't roll our own clean target, the default one 2002-10-27 17:06:03 +00:00
en When compiling the module with INVARIANTS we also need INVARIANT_SUPPORT. 2003-08-06 16:01:32 +00:00
ep There's already the elink.ko module available, don't embed it here. 2003-08-02 18:46:02 +00:00
ex Add module infrastructure for 'if_ex'. 2003-03-29 15:41:44 +00:00
exca
ext2fs Complete the separation of ext2fs from ufs by copying the remaining 2002-05-16 19:08:03 +00:00
fatm This is a driver for Fore PCA200E cards that uses busdma and works on 2003-06-23 14:46:12 +00:00
fdc Move adding -DPC98 to CFLAGS from each modules to sys/modules/Makefile.inc. 2002-11-06 13:47:00 +00:00
fdescfs
fe Move adding -DPC98 to CFLAGS from each modules to sys/modules/Makefile.inc. 2002-11-06 13:47:00 +00:00
firewire Add SBP-II target mode driver. 2003-10-18 05:41:31 +00:00
fxp
gem Build a gem module, for sparc64 only for now. 2003-01-08 20:40:29 +00:00
geom add the mbr_enc file so that we can load the module on sparc64. 2003-07-05 08:11:43 +00:00
gx
harp This is a pseudo physical interface for the HARP ATM stack. When loaded 2003-07-21 13:56:22 +00:00
hatm This is a driver for Fore/Marconi HE155 and HE622 ATM cards. It is full 2003-06-17 16:12:50 +00:00
hfa Include "../Makefile.inc". 2002-11-06 13:41:40 +00:00
hifn fix module building; drivers now require opt_{ubsec,hifn}.h 2003-03-11 23:20:43 +00:00
hme Add an hme(4) module. 2003-01-09 16:29:03 +00:00
hpfs
i2c Most power management devices don't exist on pc98. 2003-06-15 04:24:28 +00:00
ibcs2 add opt_mac.h to SRCS to unbreak module build. 2002-08-12 07:20:15 +00:00
idt HARP driver for the IDT77201/211 NICStAR ATM Adapter (Including Fore LE155). 2002-09-30 05:12:39 +00:00
ie Add module infrastructure for if_ie. 2003-03-29 13:40:41 +00:00
if_disc
if_ef
if_faith
if_gif Depend on opt_mac.h. 2002-08-12 15:27:17 +00:00
if_gre Fix a bug whereby the physical endpoints of a gre(4) tunnel would not 2003-11-14 20:58:00 +00:00
if_ndis Commit the first cut of Project Evil, also known as the NDISulator. 2003-12-11 22:34:37 +00:00
if_ppp Make ppp(4) devices clonable and unloadable. 2002-08-09 15:30:48 +00:00
if_sl
if_stf Add opt_mac.h to dependencies for if_stf.c module. 2002-10-20 22:57:22 +00:00
if_tap
if_tun Fix module build by adding options to Makefile. 2003-03-08 21:54:32 +00:00
if_vlan
iir
ip6fw
ip_mroute_mod Hook up opt_mac.h to the build dependencies. The way we currently 2002-10-20 22:59:17 +00:00
ipfilter update to reflect PFIL_HOOKS api changes 2003-09-23 17:55:04 +00:00
ipfw bring Makefile up to date with new ipfw 2002-06-28 08:10:07 +00:00
ips Add the 'ips' driver for the IBM (now Adaptec) ServeRAID controller 2003-05-11 06:36:49 +00:00
isp Add an isp(4) module. sbus support is only compiled in on sparc64. 2002-10-31 19:50:18 +00:00
ispfw
joy
kue
lge
libiconv - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
libmbpool Add a facility for devices, specifically network interfaces, that require 2003-07-15 08:59:38 +00:00
libmchain libmchain no longer exports m_fixhdr(); remove it from EXPORT_SYMS. 2002-12-14 00:01:51 +00:00
linprocfs o Remove @- from the ln and change it to a -sf. This was bogus, and 2003-11-19 05:08:27 +00:00
linux o Remove @- from the ln and change it to a -sf. This was bogus, and 2003-11-19 05:08:27 +00:00
lnc Move adding -DPC98 to CFLAGS from each modules to sys/modules/Makefile.inc. 2002-11-06 13:47:00 +00:00
lpt
mac_biba opt_mac.h is no longer required for any of these modules, remove from 2002-10-22 17:10:15 +00:00
mac_bsdextended Introduce support for Mandatory Access Control and extensible 2002-08-01 17:41:27 +00:00
mac_ifoff opt_mac.h is no longer required for any of these modules, remove from 2002-10-22 17:10:15 +00:00
mac_lomac Hook up the mac_lomac module build. 2002-11-26 17:35:44 +00:00
mac_mls opt_mac.h is no longer required for any of these modules, remove from 2002-10-22 17:10:15 +00:00
mac_none opt_mac.h is no longer required for any of these modules, remove from 2002-10-22 17:10:15 +00:00
mac_partition Commit of Makefile missed in earlier pass. 2002-10-24 02:04:03 +00:00
mac_portacl A cute yet small MAC policy that provides a simple ACL mechanism to 2003-03-02 23:01:42 +00:00
mac_seeotheruids Introduce support for Mandatory Access Control and extensible 2002-08-01 17:41:27 +00:00
mac_stub Following the repo-copy from src/sys/modules/mac_none/Makefile, 2003-11-11 21:23:54 +00:00
mac_test opt_mac.h is no longer required for any of these modules, remove from 2002-10-22 17:10:15 +00:00
mcd opt_geom.h is no longer required for this module. 2003-03-29 16:13:11 +00:00
md Add opt_geom.h to the list. 2003-01-13 08:31:41 +00:00
mii Add a PHY driver to support the built-in gigE PHY in the 8169S/8110S 2003-09-11 03:53:46 +00:00
mlx
mly
mpt Add a module for mpt(4). 2002-10-31 19:39:23 +00:00
msdosfs - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
msdosfs_iconv - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
my This time get it right 2002-04-16 20:40:06 +00:00
ncp
ncv
ndis Commit the first cut of Project Evil, also known as the NDISulator. 2003-12-11 22:34:37 +00:00
netgraph Don't compile with -g by default; there's a better way to build modules with 2003-11-10 12:54:54 +00:00
nfs4client nfs4 client module. 2003-11-15 01:02:00 +00:00
nfsclient Quick hack to make the nfsclient.ko loadable again. This brings in 2003-11-16 00:00:06 +00:00
nfsserver Permit MAC policies to instrument the access control decisions for 2002-11-04 15:13:36 +00:00
nge
nmdm Make TTYHOG tunable. 2003-03-05 08:16:29 +00:00
nsp
ntfs - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
ntfs_iconv - Support for multibyte charsets in LIBICONV. 2003-09-26 20:26:25 +00:00
null Revert a NOOP change to Makefile that slipped into the last commit. 2003-11-18 00:52:30 +00:00
nullfs
nwfs o Remove @- from the ln and change it to a -sf. This was bogus, and 2003-11-19 05:08:27 +00:00
oldcard Move adding -DPC98 to CFLAGS from each modules to sys/modules/Makefile.inc. 2002-11-06 13:47:00 +00:00
oltr Don't build if_iso88025subr.c into the oltr module. 2003-03-15 23:24:17 +00:00
osf1 Remove support for running in SimOS. The support has rotted over 2003-02-25 00:42:40 +00:00
owi Check in the known good version of the wi driver, with prism/symbol 2003-08-24 05:42:49 +00:00
patm This is a driver for IDT77252 based ATM interfaces. It has been tested 2003-07-15 11:57:24 +00:00
pccard
pcfclock
pcic
pcn
pecoff opt_kstack_pages.h is not needed anymore. It would have been a Bad Thing 2002-09-08 02:59:38 +00:00
plip
pmc Move adding -DPC98 to CFLAGS from each modules to sys/modules/Makefile.inc. 2002-11-06 13:47:00 +00:00
portalfs
ppbus o Remove @- from the ln and change it to a -sf. This was bogus, and 2003-11-19 05:08:27 +00:00
ppi o Remove @- from the ln and change it to a -sf. This was bogus, and 2003-11-19 05:08:27 +00:00
pps o Remove @- from the ln and change it to a -sf. This was bogus, and 2003-11-19 05:08:27 +00:00
procfs Slightly change the semantics of vnode labels for MAC: rather than 2002-10-26 14:38:24 +00:00
pseudofs Introduce support for Mandatory Access Control and extensible 2002-08-01 01:33:12 +00:00
pst Add pst as a module 2003-08-30 08:01:05 +00:00
raidframe After much delay and anticipation, welcome RAIDFrame into the FreeBSD 2002-10-20 08:17:39 +00:00
random Upgrade the random device to use a "real" hash instead of building 2002-07-15 13:58:35 +00:00
ray
rc Make TTYHOG tunable. 2003-03-05 08:16:29 +00:00
rc4 make rc4 crypto support a module so other modules can depend on it 2003-01-15 19:55:17 +00:00
re Fix PATH: directive in sys/modules/re/Makefile, and add the re(4) driver to 2003-09-08 03:24:29 +00:00
rl
rndtest FIPS 140-2 rng data tester for h/w crypto devices. This driver periodically 2003-03-11 19:26:16 +00:00
rp
rue Add RealTek RTL8150 USB to fast Ethernet controller driver. 2003-05-03 10:16:56 +00:00
s3
safe SafeNet crypto driver 2003-07-21 21:47:47 +00:00
sbni
sbsh Driver for Granch SBNI16 SHDSL modem 2003-04-13 06:27:13 +00:00
scd - Convert to newbus, bus_space etc. 2002-11-05 09:37:32 +00:00
scsi_low
sem Add the rest of the kernel support for the sem_ API in kern/uipc_sem.c. 2002-09-19 00:43:32 +00:00
sf
sis
sk
smbfs o Remove @- from the ln and change it to a -sf. This was bogus, and 2003-11-19 05:08:27 +00:00
sn
snc
snp
sound Add (but do not connect) a half-finished driver for Aureal Vortex cards. 2003-06-01 11:58:46 +00:00
speaker 'speaker' not 'atspeaker' 2003-03-29 10:01:03 +00:00
splash Warning fixes. 2002-11-11 10:28:44 +00:00
sppp sppp needs slcompress.c nowadays. 2002-06-17 05:40:49 +00:00
sr
ste
stg - Add PCI support (Adaptec AHA-2920/A,Future Domain TMC-18XX/3260). 2003-04-07 10:13:25 +00:00
streams o Remove @- from the ln and change it to a -sf. This was bogus, and 2003-11-19 05:08:27 +00:00
svr4 Add opt_mac.h to dependencies for svr4 module, since I'm about to 2002-08-12 01:36:20 +00:00
sym
syscons Don't override CWARNFLAGS in these Makefiles. 2002-11-11 10:11:59 +00:00
sysvipc Include "../Makefile.inc". 2002-11-06 13:41:40 +00:00
ti At long last, commit the zero copy sockets code. 2002-06-26 03:37:47 +00:00
tl
trm Connect trm(4) to the build. 2002-10-13 18:44:26 +00:00
twe
tx Remove miidevs.h and generate it from miidevs at compile time. 2003-01-19 02:59:34 +00:00
txp
uart Only build the ebus driver on sparc64. It includes a header directly 2003-09-17 03:00:08 +00:00
ubsa Allow ubsa(4) driver to be build as a kernel module. 2002-10-10 05:03:09 +00:00
ubsec fix module building; drivers now require opt_{ubsec,hifn}.h 2003-03-11 23:20:43 +00:00
ucom
udbp
udf Update the udf module makefile for the udf_iconv module 2003-11-05 06:30:59 +00:00
udf_iconv Add the Makefile glue for the udf_iconv module. 2003-11-07 09:38:05 +00:00
ufm
ufs Add a few missing opt_ files to make this module compile again. 2003-06-23 19:41:00 +00:00
uftdi Add the uftdi ucom driver which supports the following adapters: 2002-08-11 23:32:33 +00:00
ugen
uhid
ukbd
ulpt
umapfs
umass
umct Add 'umct', a driver for MCT Corp. and Belkin F5U109 USB-Serial adapters. 2003-06-28 05:45:55 +00:00
umodem
ums
unionfs
uplcom Make interrupt pipe interval time configurable. 2003-11-16 12:26:10 +00:00
urio
usb make usb bus_dma aware. 2003-07-15 22:42:37 +00:00
uscanner
utopia This is a driver for the physical layer chips used in ATM interfaces. 2003-06-12 14:28:32 +00:00
uvisor Commit a version of the uvisor driver for connecting Handspring 2002-07-30 17:44:28 +00:00
uvscom Fix device freeze to reduce output packet size. 2003-03-09 11:50:27 +00:00
vesa
vinum Remove these files. They have successors in tools/debugscripts. 2003-06-12 23:30:57 +00:00
vpo
vr
vx
wb
wi remove wi-specific host ap code; the wi driver now depends on the 2003-01-15 20:13:30 +00:00
wlan switch to new 802.11 support 2003-06-28 06:19:01 +00:00
xe
xl
Makefile Commit the first cut of Project Evil, also known as the NDISulator. 2003-12-11 22:34:37 +00:00
Makefile.inc Move adding -DPC98 to CFLAGS from each modules to sys/modules/Makefile.inc. 2002-11-06 13:47:00 +00:00