PERFORCE change 31682 for review
Peter Wemm
peter at FreeBSD.org
Thu May 22 22:36:55 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=31682
Change 31682 by peter at peter_daintree on 2003/05/22 22:35:59
IFC @31681
Affected files ...
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#21 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/ia64/proc-ia64.sgml#4 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#26 integrate
.. //depot/projects/hammer/share/man/man4/acpi.4#7 integrate
.. //depot/projects/hammer/sys/amd64/amd64/genassym.c#19 integrate
.. //depot/projects/hammer/sys/amd64/amd64/locore.S#5 integrate
.. //depot/projects/hammer/sys/amd64/amd64/machdep.c#40 integrate
.. //depot/projects/hammer/sys/amd64/amd64/mem.c#7 integrate
.. //depot/projects/hammer/sys/amd64/amd64/nexus.c#8 integrate
.. //depot/projects/hammer/sys/amd64/amd64/pmap.c#15 integrate
.. //depot/projects/hammer/sys/amd64/amd64/trap.c#19 integrate
.. //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#9 integrate
.. //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#5 integrate
.. //depot/projects/hammer/sys/amd64/ia32/ia32_sysvec.c#10 integrate
.. //depot/projects/hammer/sys/amd64/ia32/ia32_util.h#5 integrate
.. //depot/projects/hammer/sys/amd64/include/bus_amd64.h#4 integrate
.. //depot/projects/hammer/sys/amd64/include/param.h#5 integrate
.. //depot/projects/hammer/sys/amd64/include/pmap.h#12 integrate
.. //depot/projects/hammer/sys/amd64/include/vmparam.h#9 integrate
.. //depot/projects/hammer/sys/conf/kern.mk#10 integrate
.. //depot/projects/hammer/sys/dev/fb/vga.c#13 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinum.c#5 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumconfig.c#6 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumext.h#6 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumioctl.c#8 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumlock.c#4 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinummemory.c#4 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumobj.h#3 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumvar.h#3 integrate
Differences ...
==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#21 (text+ko) ====
@@ -31,7 +31,7 @@
<sect1 id="support">
<sect1info>
- <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.151 2003/05/22 17:25:24 bmah Exp $</pubdate>
+ <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.154 2003/05/22 23:22:59 bmah Exp $</pubdate>
</sect1info>
<title>Supported Devices</title>
@@ -836,10 +836,10 @@
<para arch="i386">IBM / Adaptec ServeRAID series (ips driver)</para>
- <para arch="i386,alpha,pc98,sparc64">LSI Logic Fusion/MP
+ <para arch="i386,alpha,pc98,sparc64,ia64">LSI Logic Fusion/MP
architecture Fiber Channel controllers (mpt driver)
<itemizedlist>
- <listitem>
+ <listitem arch="i386,alpha,pc98,sparc64">
<para>LSI FC909, FC929</para>
</listitem>
<listitem>
@@ -1874,7 +1874,7 @@
<listitem>
<para>Intel Pro/100 S Desktop, Server and Dual-Port Server Adapters</para>
</listitem>
- <listitem>
+ <listitem arch="i386,ia64">
<para>On-board Ethernet NICs on many Intel motherboards.</para>
</listitem>
<listitem arch="pc98">
@@ -1977,16 +1977,16 @@
<listitem arch="i386,alpha">
<para>3C575TX/575B/XFE575BT/575C/656/656B/656C (Cardbus)</para>
</listitem>
- <listitem arch="i386,alpha">
+ <listitem arch="i386">
<para>Dell Optiplex GX1 on-board 3C918</para>
</listitem>
- <listitem arch="i386,alpha">
+ <listitem arch="i386">
<para>Dell On-board 3C920</para>
</listitem>
- <listitem arch="i386,alpha">
+ <listitem arch="i386">
<para>Dell Precision on-board 3C905B</para>
</listitem>
- <listitem arch="i386,alpha">
+ <listitem arch="i386">
<para>Dell Latitude laptop docking station embedded 3C905-TX</para>
</listitem>
</itemizedlist>
@@ -2640,73 +2640,76 @@
</itemizedlist>
</para>
- <para arch="i386">PCI-Based multi-port serial boards (&man.puc.4;
+ <para arch="i386,ia64">PCI-Based multi-port serial boards (&man.puc.4;
driver)
<itemizedlist>
- <listitem>
+ <listitem arch="i386">
<para>Actiontech 56K PCI</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Avlab Technology, PCI IO 2S and PCI IO 4S</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Comtrol RocketPort 550</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Decision Computers PCCOM 4-port serial and dual port RS232/422/485</para>
</listitem>
- <listitem>
+ <listitem arch="ia64">
+ <para>Diva Serial (GSP) Multiport UART (development branch only)</para>
+ </listitem>
+ <listitem arch="i386">
<para>Dolphin Peripherals 4025/4035/4036</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>IC Book Labs Dreadnought 16x Lite and Pro</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Lava Computers 2SP-PCI/DSerial-PCI/Quattro-PCI/Octopus-550</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Middle Digital, Weasle serial port</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Moxa Industio CP-114, Smartio C104H-PCI and C168H/PCI</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>NEC PK-UG-X001 and PK-UG-X008</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Netmos NM9835 PCI-2S-550</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Oxford Semiconductor OX16PCI954 PCI UART</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Syba Tech SD-LAB PCI-4S2P-550-ECP</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>SIIG Cyber I/O PCI 16C550/16C650/16C850</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>SIIG Cyber 2P1S PCI 16C550/16C650/16C850</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>SIIG Cyber 2S1P PCI 16C550/16C650/16C850</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>SIIG Cyber 4S PCI 16C550/16C650/16C850</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>SIIG Cyber Serial (Single and Dual) PCI 16C550/16C650/16C850</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Syba Tech Ltd. PCI-4S2P-550-ECP</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>Titan PCI-200H and PCI-800H</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>US Robotics (3Com) 3CP5609 modem</para>
</listitem>
- <listitem>
+ <listitem arch="i386">
<para>VScom PCI-400 and PCI-800</para>
</listitem>
</itemizedlist>
@@ -3012,7 +3015,7 @@
linkend="bluetooth">Bluetooth</link> section.</para>
</note>
- <para arch="i386,pc98,alpha">Host Controllers (&man.ohci.4; and &man.uhci.4; drivers)
+ <para arch="i386,pc98,alpha,ia64">Host Controllers (&man.ohci.4; and &man.uhci.4; drivers)
<itemizedlist>
<listitem arch="i386,alpha">
<para>ALi Aladdin-V</para>
@@ -3053,7 +3056,7 @@
<listitem arch="i386,alpha">
<para>VIA 83C572 USB</para>
</listitem>
- <listitem arch="i386,alpha">
+ <listitem arch="i386,alpha,ia64">
<para>UHCI or OHCI compliant motherboard chipsets (no
exceptions known)</para>
</listitem>
==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/ia64/proc-ia64.sgml#4 (text+ko) ====
@@ -1,5 +1,5 @@
<!--
- $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/ia64/proc-ia64.sgml,v 1.6 2003/05/19 22:15:17 bmah Exp $
+ $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/ia64/proc-ia64.sgml,v 1.7 2003/05/22 23:14:52 bmah Exp $
-->
<sect1 id="proc-ia64">
<title>Supported Processors and Motherboards</title>
@@ -29,4 +29,55 @@
configurations are under active development. At this time,
SMP-enabled systems are considered less stable. The current
priorities are UP fixes to improve stability.</para>
+
+ <sect2>
+ <title>Supported Devices Overview</title>
+
+ <para>This section contains additional information about what
+ devices may or may not be supported by &os;/&arch;.</para>
+
+ <para>Except for the PC chipset embedded &man.ata.4; controllers,
+ most should work out of the box. Eventually, all
+ &arch;-compatible ATA controllers are expected to be fully
+ supported. Refer to the following sections for various disk
+ controllers and their current status.</para>
+
+ <para>In general, <quote>PC standard</quote> serial ports
+ supported by the &man.sio.4; driver are expected to work on
+ Intel legacy machines, but not PA legacy machines. The reason
+ is that all devices on HP machines are memory-mapped and there
+ is <emphasis>no</emphasis> ISA device support other than the PCI
+ dictated VGA legacy.</para>
+
+ <para>In addition to &man.sio.4; devices, the following devices
+ fail on non-Intel legacy machines (but should work on boxes with
+ an Intel legacy) because their drivers make ISA-specific
+ assumptions that do not hold:</para>
+
+ <informaltable frame="none">
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>&man.sio.4;</entry>
+ <entry>No support for memory-mapped I/O</entry>
+ </row>
+
+ <row>
+ <entry>&man.syscons.4;</entry>
+ <entry>Expect BIOS, VGA probes, etc.</entry>
+ </row>
+
+ <row>
+ <entry>&man.pcm.4;</entry>
+ <entry>Probes MSS ISA ports <emphasis>ad nauseum</emphasis></entry>
+ </row>
+
+ <row>
+ <entry>&man.atkbd.4;, &man.psm.4;</entry>
+ <entry>Fixed ISA port locations</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
</sect1>
==== //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#26 (text+ko) ====
@@ -3,7 +3,7 @@
<corpauthor>The FreeBSD Project</corpauthor>
- <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.569 2003/05/20 04:03:29 bmah Exp $</pubdate>
+ <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.570 2003/05/23 00:02:10 bmah Exp $</pubdate>
<copyright>
<year>2000</year>
@@ -897,7 +897,19 @@
3.41. &merged;</para>
<para><application>GCC</application> has been updated to
- 3.2.2 (release version).</para>
+ 3.2.2 (release version).
+
+ <note arch="i386">
+ <para><application>GCC</application> is known to produce
+ broken code with the <option>-march=pentium4</option> option
+ set. As a workaround to avoid this problem, setting the
+ <varname>CPUTYPE=p4</varname> Makefile variable (for example, in
+ &man.make.conf.5;) enables GCC's
+ <option>-march=pentium3</option> option instead. This
+ situation is expected to be resolved when GCC 3.3 is
+ imported.</para>
+ </note>
+ </para>
<para>The <application>gdtoa</application> library, for
conversions between strings and floating point, has been imported. These sources
==== //depot/projects/hammer/share/man/man4/acpi.4#7 (text+ko) ====
@@ -23,7 +23,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.9 2003/05/18 04:21:38 imp Exp $
+.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.10 2003/05/22 23:58:50 imp Exp $
.\"
.Dd July 2, 2001
.Dt ACPI 4
@@ -294,8 +294,32 @@
utilities from the
.Pa devel/acpicatools
port, and some ACPI knowledge.
+.Sh TUNABLES
+.Bl -tag -width children
+.It Li acpi_dsdt_load
+Enables loading of a custom acpi DSDT.
+.It Li acpi_dsdt_name
+Name of the DSTS table to load, if loading is enabled.
+.It Li debug.acpi.disable
+Selectively disables portions of ACPI for debugging purposes.
+.It Li hint.acpi.0.disabled
+Disables all of ACPI
+.It Li hw.acpi.cpu.performance_speed
+Sets the speed of the CPU, if it supports multiple speeds, while in
+the performance power profile.
+.It Li hw.acpi.cpu.economy_speed
+Sets the speed of the CPU, if it supports multiple speeds, while in
+the economy power profile.
+.It Li hw.acpi.ec.event_driven
+Enables or disables the event driven model for the embedded controller
+driver.
+.It Li hw.acpi.pci.link.%d.%d.%d.irq
+Override the interrupt to use.
+.It Li hw.acpi.verbose
+Turn on verbose debugging information about what ACPI is doing.
+.El
.Sh COMPATIBILITY
-ACPI is only found/supported on Intel platforms (i386/IA32 and IA64).
+ACPI is only found/supported on i386/ia32, ia64 and amd64.
.Sh SEE ALSO
.Xr loader.conf 5 ,
.Xr acpiconf 8 ,
==== //depot/projects/hammer/sys/amd64/amd64/genassym.c#19 (text+ko) ====
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)genassym.c 5.11 (Berkeley) 5/10/91
- * $FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.146 2003/05/15 00:23:39 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.147 2003/05/23 05:04:53 peter Exp $
*/
#include "opt_compat.h"
==== //depot/projects/hammer/sys/amd64/amd64/locore.S#5 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/locore.S,v 1.173 2003/05/15 00:20:17 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/locore.S,v 1.174 2003/05/23 05:04:53 peter Exp $
*/
#include <machine/asmacros.h>
==== //depot/projects/hammer/sys/amd64/amd64/machdep.c#40 (text+ko) ====
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
- * $FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.579 2003/05/17 02:05:10 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.580 2003/05/23 05:04:53 peter Exp $
*/
#include "opt_atalk.h"
==== //depot/projects/hammer/sys/amd64/amd64/mem.c#7 (text+ko) ====
@@ -38,7 +38,7 @@
*
* from: Utah $Hdr: mem.c 1.13 89/10/08$
* from: @(#)mem.c 7.2 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/amd64/amd64/mem.c,v 1.107 2003/05/01 01:05:21 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/mem.c,v 1.108 2003/05/23 05:04:53 peter Exp $
*/
/*
==== //depot/projects/hammer/sys/amd64/amd64/nexus.c#8 (text+ko) ====
@@ -26,7 +26,7 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.51 2003/05/12 02:44:37 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.52 2003/05/23 05:04:53 peter Exp $
*/
/*
==== //depot/projects/hammer/sys/amd64/amd64/pmap.c#15 (text+ko) ====
@@ -39,7 +39,7 @@
* SUCH DAMAGE.
*
* from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.407 2003/05/11 22:40:24 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.408 2003/05/23 05:04:53 peter Exp $
*/
/*-
* Copyright (c) 2003 Networks Associates Technology, Inc.
==== //depot/projects/hammer/sys/amd64/amd64/trap.c#19 (text+ko) ====
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)trap.c 7.4 (Berkeley) 5/13/91
- * $FreeBSD: src/sys/amd64/amd64/trap.c,v 1.258 2003/05/22 20:09:50 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/trap.c,v 1.259 2003/05/23 05:04:53 peter Exp $
*/
/*
==== //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#9 (text+ko) ====
@@ -38,7 +38,7 @@
*
* from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91
* Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
- * $FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.208 2003/05/14 04:10:48 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.209 2003/05/23 05:04:54 peter Exp $
*/
#include "opt_isa.h"
==== //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#5 (text+ko) ====
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.1 2003/05/14 04:10:48 peter Exp $
+ * $FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.2 2003/05/23 05:07:33 peter Exp $
*/
#include "opt_compat.h"
==== //depot/projects/hammer/sys/amd64/ia32/ia32_sysvec.c#10 (text+ko) ====
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/ia32/ia32_sysvec.c,v 1.4 2003/05/15 00:23:39 peter Exp $
+ * $FreeBSD: src/sys/amd64/ia32/ia32_sysvec.c,v 1.5 2003/05/23 05:07:33 peter Exp $
*/
#include "opt_compat.h"
==== //depot/projects/hammer/sys/amd64/ia32/ia32_util.h#5 (text+ko) ====
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/ia32/ia32_util.h,v 1.5 2003/05/14 04:10:49 peter Exp $
+ * $FreeBSD: src/sys/amd64/ia32/ia32_util.h,v 1.6 2003/05/23 05:07:33 peter Exp $
*/
#include <vm/vm.h>
==== //depot/projects/hammer/sys/amd64/include/bus_amd64.h#4 (text+ko) ====
@@ -67,7 +67,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/* $FreeBSD: src/sys/amd64/include/bus_amd64.h,v 1.24 2003/05/12 02:44:37 peter Exp $ */
+/* $FreeBSD: src/sys/amd64/include/bus_amd64.h,v 1.25 2003/05/23 05:04:54 peter Exp $ */
#ifndef _AMD64_BUS_AMD64_H_
#define _AMD64_BUS_AMD64_H_
==== //depot/projects/hammer/sys/amd64/include/param.h#5 (text+ko) ====
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)param.h 8.1 (Berkeley) 6/10/93
- * $FreeBSD: src/sys/amd64/include/param.h,v 1.4 2003/05/01 01:05:23 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/param.h,v 1.5 2003/05/23 05:04:54 peter Exp $
*/
/*
==== //depot/projects/hammer/sys/amd64/include/pmap.h#12 (text+ko) ====
@@ -42,7 +42,7 @@
*
* from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90
* from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.101 2003/05/15 00:20:17 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.102 2003/05/23 05:04:54 peter Exp $
*/
#ifndef _MACHINE_PMAP_H_
==== //depot/projects/hammer/sys/amd64/include/vmparam.h#9 (text+ko) ====
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.36 2003/05/01 01:05:23 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.37 2003/05/23 05:04:54 peter Exp $
*/
==== //depot/projects/hammer/sys/conf/kern.mk#10 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/kern.mk,v 1.34 2003/05/03 18:05:56 obrien Exp $
+# $FreeBSD: src/sys/conf/kern.mk,v 1.35 2003/05/23 05:04:54 peter Exp $
#
# Warning flags for compiling the kernel and components of the kernel.
==== //depot/projects/hammer/sys/dev/fb/vga.c#13 (text+ko) ====
@@ -26,7 +26,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/fb/vga.c,v 1.26 2003/05/02 01:36:27 marcel Exp $
+ * $FreeBSD: src/sys/dev/fb/vga.c,v 1.27 2003/05/23 05:10:49 peter Exp $
*/
#include "opt_vga.h"
==== //depot/projects/hammer/sys/dev/vinum/vinum.c#5 (text+ko) ====
@@ -35,17 +35,17 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: vinum.c,v 1.42 2003/05/04 05:25:14 grog Exp grog $
- * $FreeBSD: src/sys/dev/vinum/vinum.c,v 1.58 2003/05/05 05:28:15 grog Exp $
+ * $Id: vinum.c,v 1.44 2003/05/23 00:50:55 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinum.c,v 1.59 2003/05/23 01:12:16 grog Exp $
*/
-#define STATIC static /* nothing while we're testing XXX */
+#define STATIC static /* nothing while we're testing */
#include <dev/vinum/vinumhdr.h>
#include <sys/sysproto.h> /* for sync(2) */
#ifdef VINUMDEBUG
#include <sys/reboot.h>
-int debug = 0;
+int debug = 0; /* debug flags */
extern int total_malloced;
extern int malloccount;
extern struct mc malloced[];
@@ -78,6 +78,15 @@
static eventhandler_tag dev_clone_tag;
/*
+ * Mutexes for plex synchronization. Ideally each plex
+ * should have its own mutex, but the fact that the plex
+ * struct can move makes that very complicated. Instead,
+ * have plexes use share these mutexes based on modulo plex
+ * number.
+ */
+struct mtx plexmutex[PLEXMUTEXES];
+
+/*
* Called by main() during pseudo-device attachment. All we need
* to do is allocate enough space for devices to be configured later, and
* add devsw entries.
@@ -86,6 +95,12 @@
vinumattach(void *dummy)
{
char *envp;
+ int i;
+#define MUTEXNAMELEN 16
+ char mutexname[MUTEXNAMELEN];
+#if PLEXMUTEXES > 10000
+#error Increase size of MUTEXNAMELEN
+#endif
/* modload should prevent multiple loads, so this is worth a panic */
if ((vinum_conf.flags & VF_LOADED) != 0)
panic("vinum: already loaded");
@@ -136,6 +151,11 @@
vinum_conf.plexes_allocated = INITIAL_PLEXES; /* number of plex slots allocated */
vinum_conf.plexes_used = 0; /* and number in use */
+ for (i = 0; i < PLEXMUTEXES; i++) {
+ snprintf(mutexname, MUTEXNAMELEN, "vinumplex%d", i);
+ mtx_init(&plexmutex[i], mutexname, "plex", MTX_DEF);
+ }
+
/* and subdisks */
SD = (struct sd *) Malloc(sizeof(struct sd) * INITIAL_SUBDISKS);
CHECKALLOC(SD, "vinum: no memory\n");
@@ -250,6 +270,7 @@
{
struct sync_args dummyarg =
{0};
+ int i;
switch (type) {
case MOD_LOAD:
@@ -291,6 +312,8 @@
#endif
destroy_dev(vinum_daemon_dev); /* daemon device */
destroy_dev(vinum_super_dev);
+ for (i = 0; i < PLEXMUTEXES; i++)
+ mtx_destroy(&plexmutex[i]);
log(LOG_INFO, "vinum: unloaded\n"); /* tell the world */
return 0;
default:
==== //depot/projects/hammer/sys/dev/vinum/vinumconfig.c#6 (text+ko) ====
@@ -33,8 +33,8 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: vinumconfig.c,v 1.39 2003/05/04 05:22:46 grog Exp grog $
- * $FreeBSD: src/sys/dev/vinum/vinumconfig.c,v 1.57 2003/05/05 08:42:42 grog Exp $
+ * $Id: vinumconfig.c,v 1.41 2003/05/23 00:57:34 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinumconfig.c,v 1.58 2003/05/23 01:13:10 grog Exp $
*/
#define STATIC static
@@ -106,7 +106,7 @@
} else {
retval = kvprintf(msg, NULL, (void *) text, 10, ap);
text[retval] = '\0'; /* delimit */
- strcpy(ioctl_reply->msg, text);
+ strlcpy(ioctl_reply->msg, text, sizeof(ioctl_reply->msg));
ioctl_reply->error = error; /* first byte is the error number */
Free(text);
}
@@ -477,7 +477,7 @@
}
/*
- * Find the named drive in vinum_conf.drive, return a pointer
+ * Find the named drive in vinum_conf.drive,
* return the index in vinum_conf.drive.
* Don't mark the drive as allocated (XXX SMP)
* If create != 0, create an entry if it doesn't exist
@@ -505,10 +505,9 @@
driveno = get_empty_drive();
drive = &DRIVE[driveno];
if (name != NULL)
- bcopy(name, /* put in its name */
- drive->label.name,
- min(sizeof(drive->label.name),
- strlen(name)));
+ strlcpy(drive->label.name, /* put in its name */
+ name,
+ sizeof(drive->label.name));
drive->state = drive_referenced; /* in use, nothing worthwhile there */
return driveno; /* return the index */
}
@@ -819,8 +818,6 @@
Free(plex->sdnos);
if (plex->lock)
Free(plex->lock);
- if (isstriped(plex))
- mtx_destroy(&plex->lockmtx);
destroy_dev(plex->dev);
bzero(plex, sizeof(struct plex)); /* and clear it out */
plex->state = plex_unallocated;
@@ -1042,10 +1039,11 @@
}
/*
- * Handle a subdisk definition. We store the information in the global variable
- * sd, so we don't need to allocate.
+ * Handle a subdisk definition. We store the
+ * information in the global variable sd, so we
+ * don't need to allocate.
*
- * If we find an error, print a message and return
+ * On error throw a message back to the caller.
*/
void
config_subdisk(int update)
@@ -1201,6 +1199,9 @@
if (sd->driveno < 0) /* no current drive? */
throw_rude_remark(EINVAL, "Subdisk %s is not associated with a drive", sd->name);
}
+ if (DRIVE[sd->driveno].state != drive_up)
+ sd->state = sd_crashed;
+
/*
* This is tacky. If something goes wrong
* with the checks, we may end up losing drive
@@ -1225,11 +1226,13 @@
/* Do we have a plex name? */
if (sdindex >= 0) /* we have a plex */
- strcpy(sd->name, PLEX[sd->plexno].name); /* take it from there */
+ strlcpy(sd->name, /* take it from there */
+ PLEX[sd->plexno].name,
+ sizeof(sd->name));
else /* no way */
throw_rude_remark(EINVAL, "Unnamed sd is not associated with a plex");
sprintf(sdsuffix, ".s%d", sdindex); /* form the suffix */
- strcat(sd->name, sdsuffix); /* and add it to the name */
+ strlcat(sd->name, sdsuffix, sizeof(sd->name)); /* and add it to the name */
}
/* do we have complete info for this subdisk? */
if (sd->sectors < 0)
@@ -1434,19 +1437,20 @@
char plexsuffix[8]; /* form plex name suffix here */
/* Do we have a volume name? */
if (plex->volno >= 0) /* we have a volume */
- strcpy(plex->name, /* take it from there */
- VOL[plex->volno].name);
+ strlcpy(plex->name, /* take it from there */
+ VOL[plex->volno].name,
+ sizeof(plex->name));
else /* no way */
throw_rude_remark(EINVAL, "Unnamed plex is not associated with a volume");
sprintf(plexsuffix, ".p%d", pindex); /* form the suffix */
- strcat(plex->name, plexsuffix); /* and add it to the name */
+ strlcat(plex->name, plexsuffix, sizeof(plex->name)); /* and add it to the name */
}
if (isstriped(plex)) {
plex->lock = (struct rangelock *)
Malloc(PLEX_LOCKS * sizeof(struct rangelock));
CHECKALLOC(plex->lock, "vinum: Can't allocate lock table\n");
bzero((char *) plex->lock, PLEX_LOCKS * sizeof(struct rangelock));
- mtx_init(&plex->lockmtx, plex->name, "plex", MTX_DEF);
+ plex->lockmtx = &plexmutex[plexno % PLEXMUTEXES]; /* use this mutex for locking */
}
/* Note the last plex we configured */
current_plex = plexno;
@@ -2025,7 +2029,7 @@
}
void
-update_volume_config(int volno, int diskconfig)
+update_volume_config(int volno)
{
struct volume *vol = &VOL[volno];
struct plex *plex;
@@ -2082,7 +2086,7 @@
if (VOL[volno].state > volume_uninit) {
VOL[volno].flags &= ~VF_CONFIG_SETUPSTATE; /* no more setupstate */
update_volume_state(volno);
- update_volume_config(volno, diskconfig);
+ update_volume_config(volno);
}
}
save_config();
==== //depot/projects/hammer/sys/dev/vinum/vinumext.h#6 (text+ko) ====
@@ -33,8 +33,8 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: vinumext.h,v 1.31 2003/04/25 08:01:37 grog Exp $
- * $FreeBSD: src/sys/dev/vinum/vinumext.h,v 1.39 2003/05/05 07:50:15 grog Exp $
+ * $Id: vinumext.h,v 1.33 2003/05/23 00:57:48 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinumext.h,v 1.40 2003/05/23 01:13:43 grog Exp $
*/
/* vinumext.h: external definitions */
@@ -42,6 +42,7 @@
/* *sigh* We still need this at the moment. */
#ifdef _KERNEL
extern struct _vinum_conf vinum_conf; /* configuration information */
+extern struct mtx plexmutex[]; /* mutexes for plexes to use */
#else
extern struct __vinum_conf vinum_conf; /* configuration information */
#endif
@@ -102,7 +103,7 @@
void updateconfig(int);
void update_sd_config(int sdno, int kernelstate);
void update_plex_config(int plexno, int kernelstate);
-void update_volume_config(int volno, int kernelstate);
+void update_volume_config(int volno);
void update_config(void);
void drive_io_done(struct buf *);
void save_config(void);
@@ -159,7 +160,11 @@
char *basename(char *);
#endif
+#ifdef VINUMDEBUG
+void expand_table(void **, int, int, char *, int);
+#else
void expand_table(void **, int, int);
+#endif
struct disklabel;
struct request;
==== //depot/projects/hammer/sys/dev/vinum/vinumioctl.c#8 (text+ko) ====
@@ -41,8 +41,8 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: vinumioctl.c,v 1.22 2003/05/07 03:31:45 grog Exp grog $
- * $FreeBSD: src/sys/dev/vinum/vinumioctl.c,v 1.46 2003/05/08 00:36:20 grog Exp $
+ * $Id: vinumioctl.c,v 1.23 2003/05/23 01:02:22 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinumioctl.c,v 1.47 2003/05/23 01:14:13 grog Exp $
*/
#include <dev/vinum/vinumhdr.h>
@@ -721,6 +721,8 @@
set_plex_state(plex->plexno,
plex_down,
setstate_force | setstate_configuring);
+ if (plex->volno >= 0) /* plex attached to volume, */
+ update_volume_config(plex->volno);
save_config();
reply->error = 0;
}
@@ -783,7 +785,7 @@
bcopy("ex-", plex->name, 3);
plex->name[MAXPLEXNAME - 1] = '\0';
}
- update_volume_config(volno, 0);
+ update_volume_config(volno);
save_config();
reply->error = 0;
} else {
@@ -856,7 +858,7 @@
vol = validvol(msg->index, reply);
if (vol) {
bcopy(msg->newname, vol->name, MAXVOLNAME);
- update_volume_config(msg->index, 0);
+ update_volume_config(msg->index);
save_config();
reply->error = 0;
}
==== //depot/projects/hammer/sys/dev/vinum/vinumlock.c#4 (text+ko) ====
@@ -37,8 +37,8 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: vinumlock.c,v 1.17 2003/02/02 05:07:51 grog Exp $
- * $FreeBSD: src/sys/dev/vinum/vinumlock.c,v 1.25 2003/05/05 05:35:52 grog Exp $
+ * $Id: vinumlock.c,v 1.19 2003/05/23 01:07:18 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinumlock.c,v 1.26 2003/05/23 01:14:35 grog Exp $
*/
#include <dev/vinum/vinumhdr.h>
@@ -132,11 +132,11 @@
* increment all addresses by 1.
*/
stripe++;
- mtx_lock(&plex->lockmtx);
+ mtx_lock(plex->lockmtx);
/* Wait here if the table is full */
while (plex->usedlocks == PLEX_LOCKS) /* all in use */
- msleep(&plex->usedlocks, &plex->lockmtx, PRIBIO, "vlock", 0);
+ msleep(&plex->usedlocks, plex->lockmtx, PRIBIO, "vlock", 0);
#ifdef DIAGNOSTIC
if (plex->usedlocks >= PLEX_LOCKS)
@@ -164,7 +164,7 @@
}
#endif
plex->lockwaits++; /* waited one more time */
- msleep(lock, &plex->lockmtx, PRIBIO, "vrlock", 0);
+ msleep(lock, plex->lockmtx, PRIBIO, "vrlock", 0);
lock = &plex->lock[-1]; /* start again */
foundlocks = 0;
pos = NULL;
@@ -188,7 +188,7 @@
pos->stripe = stripe;
pos->bp = bp;
plex->usedlocks++; /* one more lock */
- mtx_unlock(&plex->lockmtx);
+ mtx_unlock(plex->lockmtx);
#ifdef VINUMDEBUG
if (debug & DEBUG_LOCKREQS) {
struct rangelockinfo lockinfo;
==== //depot/projects/hammer/sys/dev/vinum/vinummemory.c#4 (text+ko) ====
@@ -33,8 +33,8 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: vinummemory.c,v 1.30 2003/04/28 02:54:43 grog Exp $
- * $FreeBSD: src/sys/dev/vinum/vinummemory.c,v 1.32 2003/05/01 01:32:08 grog Exp $
+ * $Id: vinummemory.c,v 1.31 2003/05/23 01:08:36 grog Exp $
+ * $FreeBSD: src/sys/dev/vinum/vinummemory.c,v 1.33 2003/05/23 01:15:01 grog Exp $
*/
#include <dev/vinum/vinumhdr.h>
@@ -104,27 +104,40 @@
return ++f; /* skip the / */
}
+#ifdef VINUMDEBUG
+void
+expand_table(void **table, int oldsize, int newsize, char *file, int line)
+#else
void
expand_table(void **table, int oldsize, int newsize)
+#endif
{
if (newsize > oldsize) {
int *temp;
int s;
s = splhigh();
+#ifdef VINUMDEBUG
+ temp = (int *) MMalloc(newsize, file, line); /* allocate a new table */
+#else
temp = (int *) Malloc(newsize); /* allocate a new table */
+#endif
CHECKALLOC(temp, "vinum: Can't expand table\n");
bzero((char *) temp, newsize); /* clean it all out */
if (*table != NULL) { /* already something there, */
bcopy((char *) *table, (char *) temp, oldsize); /* copy it to the old table */
+#ifdef VINUMDEBUG
+ FFree(*table, file, line);
+#else
Free(*table);
+#endif
}
*table = temp;
splx(s);
}
}
-#ifdef VINUMDEBUG /* XXX debug */
+#ifdef VINUMDEBUG
#define MALLOCENTRIES 16384
int malloccount = 0;
int highwater = 0; /* highest index ever allocated */
@@ -172,8 +185,7 @@
malloced[i].size = size;
malloced[i].line = line;
malloced[i].address = result;
- bcopy(f, malloced[i].file, min(strlen(f), MCFILENAMELEN - 1));
- malloced[i].file[MCFILENAMELEN - 1] = '\0';
+ strlcpy(malloced[i].file, f, MCFILENAMELEN);
}
if (malloccount > highwater)
highwater = malloccount;
@@ -208,8 +220,7 @@
freeinfo[lastfree].size = malloced[i].size;
freeinfo[lastfree].line = line;
freeinfo[lastfree].address = mem;
- bcopy(f, freeinfo[lastfree].file, min(strlen(f), MCFILENAMELEN - 1));
- freeinfo[lastfree].file[MCFILENAMELEN - 1] = '\0';
+ bcopy(f, freeinfo[lastfree].file, MCFILENAMELEN);
if (++lastfree == FREECOUNT)
lastfree = 0;
}
@@ -251,7 +262,7 @@
m->size = malloced[ent].size;
m->line = malloced[ent].line;
m->seq = malloced[ent].seq;
- bcopy(malloced[ent].file, m->file, MCFILENAMELEN);
+ strlcpy(m->file, malloced[ent].file, MCFILENAMELEN);
return 0;
}
==== //depot/projects/hammer/sys/dev/vinum/vinumobj.h#3 (text+ko) ====
@@ -37,8 +37,8 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list