Commit Graph

9587 Commits

Author SHA1 Message Date
Nate Lawson
c83f0f992a Clean up the check for invalid X_DSDT and X_FACS portions of the FADT.
Add fadt_revision for telling if the FADT has correct 64 bit addresses,
separate from whether the XSDT has legal 64 bit addresses.
2004-01-04 22:27:53 +00:00
Doug Barton
d71c565b9c mergemaster -p (pre-world) doesn't populate /etc/rc.d, which led to a
false positive for every file according to the new stale rc.d checker.

Friendly reminder by:	dhw
2004-01-04 22:02:04 +00:00
David E. O'Brien
2b19680751 Add 'fwe' so one doesn't get "<unknown network interface type>". 2004-01-04 21:04:02 +00:00
Philippe Charnier
b00304d4a1 Use fprintf() instead of errx() when displaying usage string. The program name
will not be written twice.
2004-01-04 16:11:29 +00:00
Philippe Charnier
ce6ce58ca1 Properly use strftime(): NUL terminating character is already taken into
account.
2004-01-04 16:07:03 +00:00
Philippe Charnier
6e7abcb1f1 Remove unused local variable. 2004-01-04 15:51:32 +00:00
Bill Paul
0a9e1a08a1 Tweak ndiscvt to support yet another flavor of .INF files (look for
the NTx86 section decoration).

subr_ndis.c: correct the behavior of ndis_query_resources(): if the
caller doesn't provide enough space to return the resources, tell it
how much it needs to provide and return an error.

subr_hal.c & subr_ntoskrnl.c: implement/stub a bunch of new routines;

ntoskrnl:

KefAcquireSpinLockAtDpcLevel
KefReleaseSpinLockFromDpcLevel
MmMapLockedPages
InterlockedDecrement
InterlockedIncrement
IoFreeMdl
KeInitializeSpinLock

HAL:

KfReleaseSpinLock
KeGetCurrentIrql
KfAcquireSpinLock

Lastly, correct spelling of "_aullshr" in the ntoskrnl functable.
2004-01-03 02:25:21 +00:00
Brian Feldman
ae0d6c0c3d Fix usage() (-d is really -n). 2004-01-02 23:35:57 +00:00
Bill Paul
ade996adb6 Handle WinNT .inf files with a $windows nt$ signature but no .NT decorated
AddReg sections.

Also insert extra newline after emitting device name overrides.
2004-01-02 21:13:21 +00:00
David E. O'Brien
75fcf8a737 I missed a s/package_exists/package_installed/ in the last commit. 2004-01-02 09:52:49 +00:00
David E. O'Brien
b4fe6d086f s/package_exists/package_installed/g as that's much more descriptive of
what the function does.
2004-01-02 09:52:14 +00:00
David E. O'Brien
b0d55f3fc9 I think we can stop doing 'ldconfig -aout' during the install now.
The base install doesn't have any a.out bits anymore and hasn't for years.
2004-01-02 09:33:58 +00:00
David E. O'Brien
1618a91860 s/package_exists/package_installed/g as that's much more descriptive of
what the function does.
2004-01-02 09:19:13 +00:00
David E. O'Brien
c67aadb969 FBSD nit. 2004-01-02 08:31:00 +00:00
Bill Paul
f07cc658a4 Clean up ndiscvt a bit (leaving out the -i flag didn't work) and add
copyrights to the inf parser files.

Add a -n flag to ndiscvt to allow the user to override the default
device name of NDIS devices. Instead of "ndis0, ndis1, etc..."
you can have "foo0, foo1, etc..." This allows you to have more than
one kind of NDIS device in the kernel at the same time.

Convert from printf() to device_printf() in if_ndis.c, kern_ndis.c
and subr_ndis.c.

Create UMA zones for ndis_packet and ndis_buffer structs allocated
on transmit. The zones are created and destroyed in the modevent
handler in kern_ndis.c.

printf() and UMA changes submitted by green@freebsd.org
2004-01-02 04:31:06 +00:00
Bruce A. Mah
2b5c94a768 Catch up with reality with respect to the location of 4.8, 4.9,
5.0, 5.1, 5.2, and CURRENT packages.
2004-01-02 00:13:20 +00:00
Doug Barton
b256b34ac1 * Update copyright
* Delete a trailing space
* Add a 'stale /etc/rc.d file checker', offer to delete any stale
files for the user.
2004-01-01 23:41:37 +00:00
David E. O'Brien
88b3d518bc Be consistent in the EXAMPLES formatting. 2004-01-01 00:59:58 +00:00
Robert Watson
6c72866dff Only a read-only file descriptor is required to implement list_devs()
and list_verbose(), so don't open /dev/pci read-write.  This allows
pciconf -l[v] to work for non-root users, assuming the securelevel is
0 or -1.

Problem experienced by:	William Michael Grim <wgrim@siue.edu>
2003-12-31 19:38:29 +00:00
Nate Lawson
a6991e097f Use separate events for resume from standby and suspend in the apm(4)
case so that if devices need different initialization, we can key off
this in the rc scripts (currently unused).  Also update the man page
which is a 100% duplicate of the rc scripts.
2003-12-30 17:40:28 +00:00
Nate Lawson
e776370e2b Add support for /etc/rc.suspend and /etc/rc.resume for ACPI. They are
called directly from acpiconf(8).  Change both scripts to take a
subsystem (apm|acpi) and sleep level (suspend,standby|1-5) argument.
2003-12-30 17:28:06 +00:00
Bill Paul
826fe1a9d3 Remember to use stringcvt() to expand %foo% strings in registry values in
dump_defaultinfo().

Noticed by: green@freebsd.org
2003-12-30 00:30:45 +00:00
Alfred Perlstein
87d736a28d Use intmax_t to avoid wrap on large images in verbose output. 2003-12-28 13:32:49 +00:00
Hajimu UMEMOTO
7ca70c753b you have to use 'install' subcommand instead of '-c' option
Obtained from:	KAME
2003-12-26 17:10:58 +00:00
Hajimu UMEMOTO
2df3425140 when no source-address-selection policy is installed, not scan
the sysctl MIB, as it leads to an unnecessary sysctl error.

Obtained from:	KAME
2003-12-26 17:04:44 +00:00
Maxim Konovalov
0bc6ba1fd2 o Actually add -x option: probeonly assigment was missed
in rev. 1.15 pccardd.c.

Reported by:            osa
OK'ed by:               imp
MFC after:              2 weeks
2003-12-26 10:01:29 +00:00
Bill Paul
170e61e469 Correct a typo in the text.
Remove BUGS section since the bug it describes has been fixed.
Spell Matt Dodd's name correctly. (Oops.)
2003-12-23 18:09:59 +00:00
Jens Schweikhardt
ecc68fbe47 Fix a case of undefined behavior due to overlapping buf objects in
snprintf (buf, size, fmt, buf, etc). This only works by chance with our
libc, but fails (with a truncated string) on e.g. glibc.

Okayed by:	sobomax
MFC after:	1 week
2003-12-23 15:01:12 +00:00
SUZUKI Shinsuke
e04499a772 fixed a bug that 'ip6addrctl delete' command does not work
obtained from: KAME
2003-12-22 03:13:50 +00:00
Scott Long
0e1cbf3725 Teach the Fixit environment how to deal with a dynamic root. Symlink
/libexec to /mnt2/libexec, and execute /mnt2/rescue/ldconfig to add
the /mnt2/lib and /mnt2/usr/lib library directories.  Thanks to John Baldwin
for working to track this down.

Submitted by:	jhb
2003-12-21 17:16:44 +00:00
Ken Smith
fa44461b3c - Add new FTP mirror site in Turkey (first/only one).
Approved by:	murray (re@)
2003-12-21 05:42:00 +00:00
John Baldwin
e5d1715e5e Do an update mount operation to mount the mfsroot as read/write rather
than read/only when sysinstall is running as init.  This fixes several
install issues.
2003-12-20 16:34:45 +00:00
Maksim Yevmenkin
4b1493e53d Fix uncontrolled access to the buffer in rfcomm_sppd(1).
Fix typo in hcsecd(8) man page.

Submitted by: Guido Falsi <mad@madpilot.net>
Reviewed by: imp (mentor)
Approved by: imp (mentor)
2003-12-19 18:15:56 +00:00
Bill Paul
b6a67367fa Make ndiscvt(8) emit the binary image array as inline assembly code rather
than a char array. Emitting the data as a big char array works fine in
the typical case, where a .sys file may be ~50K in size. Unfortunately,
some .sys files can be several hundred Kbytes in size, or even several
megabytes in size. One extreme case is the Intel centrino wireless
driver, which is 2.4MB. This causes us to emit an ndis_driver_data.h
file that's on the order of 15MB in size, and gcc consumes enormous
amounts of virtual memory while trying to compile it. On my laptop,
with 128MB of RAM and 256MB of swap space, gcc consumed all available
VM and crashed without being able to compile if_ndis.o.

By emitting the array as assembler, we bypass the C compiler and consume
much less memory. I was able to easily test compile if_ndis.ko with the
centrino driver on my laptop after this change.

This is merely a convenience, and should not have any operational effect
on the NDISulator itself.
2003-12-18 21:47:14 +00:00
Bill Paul
69eab781f5 Grrrr. Remove -g flag that snuck in. 2003-12-18 03:52:40 +00:00
Bill Paul
a22ec80ece Deal with the duplicate sysctl leaf problem. A .inf file may contain
definitions for more than one device (usually differentiated by
the PCI subvendor/subdevice ID). Each device also has its own tree
of registry keys. In some cases, each device has the same keys, but
sometimes each device has a unique tree but with overlap. Originally,
I just had ndiscvt(8) dump out all the keys it could find, and we
would try to apply them to every device we could find. Now, each key
has an index number that matches it to a device in the device ID list.
This lets us create just the keys that apply to a particular device.

I also added an extra field to the device list to hold the subvendor
and subdevice ID.

Some devices are generic, i.e. there is no subsystem definition. If
we have a device that doesn't match a specific subsystem value and
we have a generic entry, we use the generic entry.
2003-12-18 03:51:21 +00:00
Robert Watson
7cecfcc8c9 Install 100dpi fonts by default when installing X11: fun as using 75dpi
fonts on a 100dpi display is, the jaggies just aren't worth it.  DPMI
auto-configures higher DPIs on many modern displays now.
2003-12-17 23:08:13 +00:00
Jacques Vidrine
cd9607fdd9 Correct truncation detection after use of snprintf: The case where
exactly one character was truncated was not detected.
2003-12-17 13:36:05 +00:00
Christian Brueffer
0270455437 o grammar fixes
o wordsmithing
o s/isochronus/isochronous/

MFC after:	5 days
2003-12-17 10:14:11 +00:00
Robert Watson
1d1daa2f00 Re-linewrap help file on securelevels in sysinstall: sysinstall is
mostly used on 80x25 displays, and the actual window is about ten
characters narrower than that, resulting in the need for horizontal
scrolling.  No functional change.

RELENG_5_2 candidate.
2003-12-16 22:55:28 +00:00
Scott Long
b4fdd9becf Once upon a time, DEVFS was optional, major numbers where static, and /dev
needed to be statically populated with device nodes.  The first two are no
longer true, which makes the third pretty moot.  In fact, we don't seem to
put device node bits into the distribution archives at all anymore.
So..... remove the god-aweful nasty hack that force unmounted devfs during
installation so that static device nodes could land in /dev.  Now that the
vnode cleaner handles this case better this isn't strictly needed, but
axeing code in sysinstall is almost always benficial.  Thanks to Don Lewis
for pointing out this attribute of sysinstall.
2003-12-16 17:58:24 +00:00
Tom Rhodes
a27f75251a Provide a way to deal with rc.conf which may already be populated in certain
cases.
2003-12-13 16:12:55 +00:00
Bill Paul
153a70182b Support yet another variant of WinXP .INF files. 2003-12-13 08:48:35 +00:00
Bill Paul
c7253f4fea Attempt to handle WinXP .INF files. Also, in dump_regvals(), handle
the case where there's an entry in the manufacturer's device list but
no corresponding installation section (and hence no AddReg assignments),
i.e. if dev = find_assign(sname, "AddReg"); returns NULL, then
don't try to dereference dev.

There is a fundamental problem with the handling of .INF files that
contain definitions for multiple devices: right now we dump all the
AddReg sections that we find, but don't distinguish what device they
belong to. This often results in duplicate keys.
2003-12-12 03:40:05 +00:00
Bill Paul
da1ddac9f4 Fix handling of .INF files with more than one PCI ID defined. 2003-12-11 23:37:56 +00:00
Bill Paul
895ac9675f Fix getopt() string so -o works. 2003-12-11 23:30:36 +00:00
Bill Paul
87feaafc5b Grrr. Put the right .PATH statements in the right Makefiles. 2003-12-11 23:22:44 +00:00
Bill Paul
d934c8b0de Commit the ndiscvt(8) utility too. (Missed it in the last import.) 2003-12-11 22:38:14 +00:00
Bill Paul
0d27d14070 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
David E. O'Brien
70005bdb38 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