- A #include of <sys/mutex.h> is no longer needed to use sx(9) (since
2001/05/01).
- Use of the SX_SYSINIT() macro requires inclusion of '<sys/kernel.h>'
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
man4.i386. It documents that meteor no longer works, but keeps the
extensive documentation on the meteor interface, which the bktr driver
implements also. This should be merged into tha man page, but such a
merging seems to be planned by others.
# we really need something like video4bsd to define these sorts of
# things for all video capture drivers.
Requested by: rwatson and obrien
note that says that this man page is sub-optimal. Bruce Mah should be
happier about this, but someone that groks the cards supported by the
digi driver is encouraged to make this man page suck less.
lots of old interfaces, and digi now supports all cards that dgb
supported. The author of the driver says that this is no longer
necessary.
Approved by: babkin@
a long time: lmc The LAN Media Corp PCI WAN driver based on tulip.
This driver hasn't compiled for 3 years since the PCI compat shims
were removed, and Lan Media appears to have gone out of business.
These cards appear to be rare (a recent search of ebay had no hits).
Should someone wish to revive this driver, submitting patches to make
it compile plus a testing report will bring it back.
valid value for cx_lowest. To disable sleeping, use machdep.cpu_idle_hlt
instead. Update the version of the ACPI spec we implement.
Approved by: re (implicitly)
* Use the cpu_idle_hook() to do idling for C1-C3.
* Use both _CST and the FADT to detect Cx states.
* Use both _PTC and P_CNT for controlling throttling.
* Add a notify handler to detect changes in _CST and _PSS
* Call the _INI function for each processor if present. This will be
done by ACPI-CA in the future.
* Fix a bug on SMP systems where CPUs will attach multiple times if the
bus is rescan.
* Document new sysctls for controlling idling.
constants NG_*SIZ that include the trailing NUL byte. This change
is mostly mechanical except for the replacement of a couple of snprintf()
and sprintf() calls with strlcpy.
options, information on VCHANs, and more.
Based on content submitted by: Mathew Kanner <mat@cnd.mcgill.ca> && Cameron Grant
Update requested by: ru, and I think hmp
occurences of the old *LEN definitions to the new *SIZ definitions.
Correct the example how to compare a nodename.
strncmp(name, "fred", NG_NODELEN) may step behind "fred" if the node
name is really fred.
Reminded by: ru
* Add missing `utility' word to sentence describing
ips(4) card configuration.
* Remove extraneous use of .Pp, and describe the tunable
hw.ips.0.disable in a better way.
* Replace wrongly used .Op mdoc macros with the .Bq macro.
The .Op macro should only be used when describing a
``usage'' line of a utility/command.
* Add .Er, for marking errno defines (ENOMEM etc etc)
The manual page contains enough information to get someone started
with ALQ.
MLINKS have been added appropriately.
Approved by: jeff, des
Reviewed by: des, jeff, sam, brooks, rwatson, mtm
interfaced via the PCM framework.
This manual page was obtained from NetBSD, and the required
changes were made to adapt it to our uaudio driver.
Pre-cursor review: joe@
* Add MLINKS for:
-> Soundblaster emu10k1(4) Driver [points to pcm(4)]
-> Avance Logic ALS400 Driver [points to pcm(4)]
We should not need separate manual page for each of these
drivers; instead, linking them to pcm(4) manual page is
simpler, and new device lists can be easily added to the
said manual page.
* While I am here, sort out mdoc(7) entries in ${MAN}.
list of supported controllers into a list.
Note that the 53C875A has not been included in the list of supported
devices, since this controller does not seem to be supported by the
version of the sym(4) driver currently in FreeBSD.
PR: docs/55557
Submitted by: Lukas Ertl <l.ertl@univie.ac.at> (original version)
MFC after: 1 week
53C875A omission reviewed by: silence from -scsi and groudier
o Remove entries for 1510, 152x and 1535. These are supported, for some value
of supported, by the aic driver.
o Add notes about 1542-CP being plug and play, but it can still conflict with
other resources because all the resources it uses are set with the onboard
BIOS.