Commit Graph

282 Commits

Author SHA1 Message Date
wpaul
4da746aa2f 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

PR:
Submitted by:
Reviewed by:
Approved by:
Obtained from:
MFC after:
2003-12-11 22:34:36 +00:00
obrien
4dbd5f91c1 Add just enough of i386/include/pcvt_ioctl.h to amd64/include/pcvt_ioctl.h
such that 'ispcvt' can build.  Unforunately 'ispcvt' is needed in order for
/etc/rc.d/syscons to run.  This fixes the bug where I could not get my
keymap effective at boot.
2003-12-10 02:49:17 +00:00
brooks
d58d2f6b0d Reconnect ipfstat, ipnat, and ipftest to the build now that if_xname
support is enabled.

Approved by:	re (scottl)
2003-12-02 21:52:14 +00:00
harti
eb9d595a22 Link the SNMP daemon for NgATM to the build. 2003-11-10 09:23:09 +00:00
marcel
0f9db6f517 Build zzz(8) on ia64. It first checks ACPI before it checks for APM.
It will therefore always suspend using ACPI.
2003-11-03 04:25:55 +00:00
brooks
e8a6af647d Temporarily disconnect ipfstat, ipnat, and ipftest to unbreak world.
Pointy hat to:	brooks
2003-10-31 18:54:46 +00:00
ume
9092c16bea add ip6addrctl(8) which is a command to configure address
selection policy for IPv6 and IPv4 described in RFC3484.
source address selection part of RFC3484 is not merged
from KAME, yet.

Obtained from:	KAME
2003-10-30 17:46:40 +00:00
simokawa
d5b189bcd0 Add dumb console driver and related bits.
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.
2003-10-24 15:44:10 +00:00
emax
b655606c42 Update Bluetooth code.
Reviewed by: M. Warner Losh <imp@bsdimp.com>; John Hay <jhay@freebsd.org>
Approved by: M. Warner Losh <imp@bsdimp.com> (mentor)
2003-10-12 22:04:24 +00:00
peter
7d308ce28a Add asf for amd64 2003-09-30 04:19:01 +00:00
peter
21e7f73196 Add mptable 2003-09-30 04:17:45 +00:00
marcel
e35970cfe7 Add acpi to the build on ia64. The support for ACPI 2.0x has gotten
to a point where we don't map the wrong (ie 32-bit) addresses. We
don't always dump the right values yet, but that's not critical.

Ok'd: njl
2003-09-16 21:25:42 +00:00
phk
45b2e8fc31 Introduce more knobs to slim down FreeBSD userland
NO_TOOLCHAIN	skips Compilers and Binutils
NO_USB		skips USB stuff
NO_VINUM	skips Vinum stuff
NO_ACPI		skips ACPI stuff
2003-08-29 10:35:01 +00:00
grog
e2932732a3 Add asf to i386 build. This will probably work on other platforms
too, but I don't have time to test it, and I'm not sure it will help
much.
2003-08-29 08:24:10 +00:00
phk
738c4df838 Make build of atm, mld6query, rip6query, route6d and traceroute6
depend on existing NOATM and NOINET6 conditionals.
2003-08-27 19:59:49 +00:00
obrien
6356800615 Imply NOLIBC_R for PowerPC. 2003-08-13 00:13:37 +00:00
peter
54c1109124 Fix amd64 build by deleting trailing whitespace. Doh! 2003-07-25 18:22:53 +00:00
markm
f7f77aaea8 Don't check for the existance of src/crypto/ for building items that
may contain crypto. The days of ITAR paranoia are over, and the simple
macro tests that remain are sufficient.
2003-07-24 18:30:25 +00:00
peter
afb078a958 Add mount_nwfs/mount_smbfs to the build for amd64. 2003-07-24 02:07:14 +00:00
peter
b32261ef52 Attach acpi, boot0cfg, lptcontrol, sicontrol, spkrtest, zzz for amd64. 2003-07-24 01:41:34 +00:00
njl
a232ac2aca Hook zzz up to the build. 2003-07-14 16:36:40 +00:00
gordon
2e410239fd Move mount_portalfs, mount_smbfs, and mount_nwfs from sbin to usr.sbin.
They don't have alot of reason to be in sbin and contribute to library
bloat in the dynamic case. If you are using any of these filesystem
type to hold your /usr, please seek professional help.

The actual code was repo-copied by joe.
2003-07-02 16:16:49 +00:00
smkelly
3d5e7b3e42 - Add a software watchdog facility.
This commit has two pieces. One half is the watchdog kernel code which lives
primarily in hardclock() in sys/kern/kern_clock.c. The other half is a userland
daemon which, when run, will keep the watchdog from firing while the userland
is intact and functioning.

Approved by:	jeff (mentor)
2003-06-26 09:50:52 +00:00
julian
ac32a29bdd Temporarily re-remove the bluetooth tools..
there are problems with their Makefiles I wasn't aware of..

Pointed out by: ru@
2003-06-24 19:11:14 +00:00
julian
352bebf24f Connect bluetooth tools for i386 only.
These are probably machine independent, but
there is no way for the developers to test them other than on x86.

They will become MD as testing becomes possible.
2003-06-24 13:25:24 +00:00
phk
f2ee5c0a84 Remove dev_mkdb(8). The kernel answers these questions. 2003-06-20 09:48:11 +00:00
peter
14cda1fb08 Turn on btxld for amd64. 2003-06-03 01:38:16 +00:00
peter
9863b20cda Port libc_r to amd64, and turn it back on for amd64. It passes all of
the same src/lib/libc_r/test/* tests that the other platforms pass.
2003-06-02 22:22:52 +00:00
peter
7a0bd3f7e8 Add a pretty cheesy hack to avoid a gcc-3.2.2 ICE (internal compiler
error) on amd64 when doing pointer subtraction.  This bug is already
fixed in gcc-3.3 (waiting for after the branch), and the hack will be
backed out at the first opportunity.  This is in the ipv6 code path.

Approved by:  re (scottl)
2003-05-25 07:39:06 +00:00
peter
22db2459e1 no libc_r on amd64 yet -> no pppctl.
Approved by:	re (safe amd64 changes)
2003-05-24 19:23:05 +00:00
peter
277a249cc3 Add __amd64__ to an ifdef set so that pppd compiles. Reactivate on amd64.
Approved by:  re (amd64 "safe" ifdefs etc)
2003-05-12 18:51:31 +00:00
peter
7bc9987116 Turn off ppp (ICE) and pppd (cc objects to a varargs decl) on amd64. 2003-05-09 21:06:41 +00:00
imp
f6da04c0f5 These are no longer needed after tw is gone.
Approved by: re@ (scottl)
2003-04-27 05:42:07 +00:00
phk
ca58f97495 Diskinfo is a small program to access the basic properties of a disk device:
sectorsize, mediasize etc.

It also contains a small and naïve benchmark which reports on seek
and transfer performance.
2003-04-09 10:52:10 +00:00
mike
370c7a915a o Add jls(8) for listing active jails.
o Add jexec(8) to execute a command in an existing jail.
o Add -j option for killall(1) to kill all processes in a specified
  jail.
o Add -i option to jail(8) to output jail ID of newly created jail.
2003-04-09 03:04:12 +00:00
phk
a76c43970c Add a rudimentary gstat(8) to the system.
This is a small curses based program which shows the diskactivity
inside GEOM.
2003-03-20 20:48:41 +00:00
ru
84e07d235b Revert rev. 1.244 change -- only build kgzip(8) on i386.
(The cross-release needs will be satisfied another way.)
2003-03-11 11:37:07 +00:00
obrien
30731143fa Some things don't build for PowerPC yet.
List from:	benno
2003-02-21 02:30:51 +00:00
ru
558b84ca39 Always build kgzip(8); needed to cross-release i386. 2003-02-04 16:04:03 +00:00
imp
d20b9f1f76 pccardd and pccardc are for i386 and pc98 only. Don't build them on
other architectures.

Pointed out by: peter
2003-01-21 08:42:27 +00:00
marcel
ebd1aff2ab Enable pppctl(8) on ia64. 2003-01-06 01:00:26 +00:00
tmm
6d8dfeda16 Build pppctl on sparc64, now that we have libc_r. 2003-01-05 22:38:58 +00:00
simokawa
f4db8d728e Import FireWire userland utility. 2002-12-30 10:13:16 +00:00
obrien
28cb18fa2b Move elf2aout back to /usr/bin -- it is a general development tool, not
a sysadmin tool.
2002-12-30 10:01:26 +00:00
jake
e674863e6e Build sysinstall on sparc64. 2002-11-01 15:36:06 +00:00
peter
40f92e8abd Un-remove sysinstall for ia64. 2002-10-27 00:22:05 +00:00
phk
4ef1dbd7dc Explicitly list architectures supporting sysinstall 2002-10-25 17:04:49 +00:00
rwatson
fa51007874 Introduce simple command line tools to manage MAC labels on processes and
files.  Basically wrappers for mac_{get,set}_{file,link,pid,proc}(3).
Man pages to be updated shortly.

Approved by:	re
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, Network Associates Laboratories
2002-10-23 03:15:24 +00:00
tmm
675c568e52 Connect ofwdump to the sparc64 build. 2002-10-18 15:38:39 +00:00
julian
15b021f7b8 Pppctl seems to compile again now 2002-09-19 10:32:39 +00:00