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
as these ioctl's aren't MD. This also means they are installed in
/usr/include/dev/bktr now. Also provide compatability wrappers for
where these headers lived in 4.x.
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.
in share/security in the trustedbsd_sebsd branch that are not present
in the main tree. Also, .include Makefile.inc from the parent directory
so that BINDIR is set right.
Pointed out by: bde
buildworld as src/etc/sendmail/freebsd.mc is missing. That example
was added 3 years ago, before the /etc/mail/ infrastructure was in
place for customized configurations. It is time to remove this example.
Noticed by: Robert Gray <bob@boulderlabs.com> in freebsd-stable
MFC after: 1 day
if_xname, if_dname, and if_dunit. if_xname is the name of the interface
and if_dname/unit are the driver name and instance.
This change paves the way for interface renaming and enhanced pseudo
device creation and configuration symantics.
Approved By: re (in principle)
Reviewed By: njl, imp
Tested On: i386, amd64, sparc64
Obtained From: NetBSD (if_xname)
dcons(4): very simple console and gdb port driver
dcons_crom(4): FireWire attachment
dconschat(8): User interface to dcons
Tested with: i386, i386-PAE, and sparc64.
* Uppercase the .Dt command contents.
* Remove incorrect usage of .Fa.
* Use .Va for struct members, and .Vt for structs
(correct replacement for .Fa)
* Markup VM_* and MAP_* macros with .Dv command.
* Replace 'man' with 'manual' for consistency.
* Uppercase .Dt command contents.
* Make use of .Fo and .Fc for marking up functions with
a lot of arguments.
NOTE: Please do not use the `\' line seperator for mdoc(7)
manual pages, as it has problems of its own on some displays;
instead, consult the mdoc(7) manual on using .Fo and .Fc.
* Change 'man' to 'manual' for consistency.
* Add .Vt in the right places, transform some .Fa to .Vt, depending
on discussion context.
* When refering to the function malloc(), use .Fn, and not .Xr.
* Add `The' to prefix a sentence when describing a function, so
it results in ``The xxx() function..."
* Use `system call' instead of `syscall'.
* Improve the sentence which discusses accept_filt_generic_mod_event();
Talk about moduledata_t, and refer to the DECLARE_MODULE(9) manual
page.
* Properly markup .An (Author Name) throughout the AUTHORS section.
* Remove first person sentence start.
* Make use of .Dv for LEASE_READ and LEASE_WRITE.
* Move the LOCKS section below the standard mdoc(7) RETURN VALUES
section.
* Cleanup grammar for RETURN VALUES and AUTHORS section.
* Remove redundant sentence on return values.
rate is how fast modems exchange symbols. Bit rate is how many bits
per second the serial port nominally communicates at. Try to use bit
rate consistently where that's what is ment. The default data rate is
now 9600 baud. 300 baud being default pre-dates 4.4-LITE1. Document
that tip doesn't respect the system default rate for a given channel.
Sorry guys, but no ucbvax, kremvax or kgbvax added to the example.
Noted by: bde
what the entry does for people that are not used to reading
/etc/remote files every day. Keep arpavax, because it is a cool name,
but remove the phone number listed. arpavax hasn't been answering
that number for a while :-)
FreeBSD supports. None of them support an alternate formats, except
the alpha (which prints extra register information).
# if we get a mips port, we can put the mips case back to document the
# actual behavior.
ebay. Also have notes for my recent experiences with 3com pcmcia
cards (mostly this or that doesn't work). Also look at the strings
that are claimed to be supported in the bus specific front ends. Note
that the 3C569* are CBUS.
libraries to be reported as up-to-date.
Before:
# make -f /dev/null nonexistent.a
`nonexistent.a' is up to date.
After:
# make -f /dev/null nonexistent.a
make: don't know how to make nonexistent.a. Stop
PR: bin/44137 (part of)
callout lock while the callout is happening. So the serialization
that I thought was happening isn't. Therefore, remove the part of the
bugs that says this. Leave in the other bug as it is very hard to
work around (impossible?).
Fix various typos.
Also note that timeout/untimeout are considered to be the old interface and
the callout interface should be used insetad.
Submitted by: bde (first two) and wollman (third)
callout has finished or is in progress. Also document that the
locking of the callout code for FreeBSD 5 has eliminated the 'or is in
progress' clause as a possibility and that such elimination is an
accident of the implementation and shouldn't be relied upon.
o It is the /usr/include files, not the /usr include files.
o Document the practice of converting to the c99 standard uintXX_t
form from the older, but non-standard, BSD-style u_intXX_t. This
has been going on in the tree for a while now, and I've heard other
developers also state that this conversion is happening. Note also
that this is a slow process and should be treated like whitespace
changes.
has been supported for the last 10 months. [1]
- Make the device list compact, since it is getting rather large.
Reported by: David Magda <dmagda@magda.ca> [1]
MFC after: 2 weeks
instances: the memory holding a struct disk should be pre-zeroed so
as to initialize any storage framework private data in the structures
properly. In addition, the memory must be writable so that the
private data may be updated.
Pointed out by: phk
APIs permit disk device drivers to register and deregister storage devices
for use by storage device consumers. No doubt this API will change
more as time flies by, but this should be helpful to the creators of
new storage device drivers.
Reviewed by: phk
- Fill in autosense data.
- Add compatibility for RELENG_4.
* scsi_target.c
- Raw device support
- Set correct value in c_descr->offset for CAM_DIR_NONE case.
- Support for CTIO abort.
and use it in src/etc/sendmail/Makefile in case the user wants to use
a different path to the sendmail m4 sources (e.g., sendmail port users).
Submitted by: dinoex
MFC after: 21 days
X-MFC after: RELENG_4 code freeze ends
which are based on the AR5212 and should just work (not verified).
Add Proxim Skyline 4032, the PCI version of th e4030.
Add revision suffix 'B' to D-Link DWL-G520/G650 entries, in order
to indicate that revision A1 cards are not supported by this driver
(both A1 and B1/B2 cards are sold in identical boxes).
Explicitly point out the existence of unsupported DWL-G520/G650
(rev. A1) cards in the CAVEATS section.
Approved by: sam
be hardwired into makefiles, including those under /usr/share/mk.
The reporter submitted a patch, but I've watered it down.
Reported by: Ian Freislich <ianf@za.uu.net>
MFC after: 3 weeks