PERFORCE change 60065 for review
Robert Watson
rwatson at FreeBSD.org
Thu Aug 19 07:53:59 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=60065
Change 60065 by rwatson at rwatson_tislabs on 2004/08/19 14:53:14
Integrate netperf_socket:
More ACPI stuff.
Profiling of hashing for mutexes.
Various build fixen.
More GEOM stuff.
More aic stuff.
Consistency and abstraction improvements for sleep queues.
FS_BAD2_MAGIC now FS_BAD_MAGIC.
Loop back of UNP_UNLOCK_ASSERT() from rwatson_netperf.
Loop back of inpcb assertion fixups.
Loop back of udp_send()/udp_output() locking push-down and cleanup.
Affected files ...
.. //depot/projects/netperf_socket/sys/Makefile#3 integrate
.. //depot/projects/netperf_socket/sys/boot/common/help.common#5 integrate
.. //depot/projects/netperf_socket/sys/boot/common/loader.8#7 integrate
.. //depot/projects/netperf_socket/sys/boot/powerpc/loader/Makefile#6 integrate
.. //depot/projects/netperf_socket/sys/conf/NOTES#37 integrate
.. //depot/projects/netperf_socket/sys/conf/options#27 integrate
.. //depot/projects/netperf_socket/sys/conf/options.pc98#6 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/aclocal.h#5 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#38 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#10 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpiio.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#21 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/ahc_isa.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.h#6 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic7xxx.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/firewire/if_fwe.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/twa/twa_freebsd.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/twa/twa_reg.h#2 integrate
.. //depot/projects/netperf_socket/sys/dev/vx/if_vx.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/vx/if_vx_eisa.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/vx/if_vx_pci.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/vx/if_vxreg.h#2 integrate
.. //depot/projects/netperf_socket/sys/dev/vx/if_vxvar.h#2 integrate
.. //depot/projects/netperf_socket/sys/geom/geom_slice.c#7 integrate
.. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.c#7 integrate
.. //depot/projects/netperf_socket/sys/geom/nop/g_nop.c#7 integrate
.. //depot/projects/netperf_socket/sys/geom/raid3/g_raid3.c#2 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#9 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_init.c#3 integrate
.. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_state.c#3 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_condvar.c#7 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_mutex.c#11 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_synch.c#16 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_thread.c#24 integrate
.. //depot/projects/netperf_socket/sys/kern/subr_sleepqueue.c#9 integrate
.. //depot/projects/netperf_socket/sys/kern/uipc_usrreq.c#25 integrate
.. //depot/projects/netperf_socket/sys/modules/Makefile#18 integrate
.. //depot/projects/netperf_socket/sys/modules/linprocfs/Makefile#2 integrate
.. //depot/projects/netperf_socket/sys/netinet/in_pcb.c#15 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_input.c#22 integrate
.. //depot/projects/netperf_socket/sys/netinet/udp_usrreq.c#13 integrate
.. //depot/projects/netperf_socket/sys/sys/param.h#25 integrate
.. //depot/projects/netperf_socket/sys/sys/proc.h#23 integrate
.. //depot/projects/netperf_socket/sys/sys/sleepqueue.h#4 integrate
.. //depot/projects/netperf_socket/sys/ufs/ffs/fs.h#5 integrate
.. //depot/projects/netperf_socket/sys/vm/vnode_pager.c#5 integrate
Differences ...
==== //depot/projects/netperf_socket/sys/Makefile#3 (text+ko) ====
@@ -1,9 +1,11 @@
-# $FreeBSD: src/sys/Makefile,v 1.30 2004/05/16 00:19:12 cognet Exp $
+# $FreeBSD: src/sys/Makefile,v 1.31 2004/08/19 09:54:28 des Exp $
# The boot loader
+.if !defined(NO_BOOT)
.if ${MACHINE_ARCH} != "arm"
SUBDIR= boot
.endif
+.endif
# Loadable kernel modules
.if defined(MODULES_WITH_WORLD)
==== //depot/projects/netperf_socket/sys/boot/common/help.common#5 (text+ko) ====
@@ -277,13 +277,6 @@
this option provides a hint as to the actual size of
system memory (which will be tested before use).
- set hw.pci.allow_unsupported_io_range=<value>
-
- Allow the PCI Bridge to pass through an unsupported
- memory range assigned by the BIOS.
-
- value is 0 (default) or non-zero to enable.
-
set hw.pci.enable_io_modes=<value>
Enable PCI resources which are left off by some BIOSes
==== //depot/projects/netperf_socket/sys/boot/common/loader.8#7 (text+ko) ====
@@ -22,9 +22,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.64 2004/07/08 22:35:33 brian Exp $
+.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.66 2004/08/18 09:39:24 maxim Exp $
.\"
-.Dd January 27, 2004
+.Dd August 18, 2004
.Dt LOADER 8
.Os
.Sh NAME
@@ -426,10 +426,6 @@
enabled correctly by the device driver.
Tunable value set to ON (1) by default, but this may cause problems
with some peripherals.
-.It Va hw.pci.allow_unsupported_io_range
-Allow the PCI bridge to pass through an unsupported memory range
-assigned by the BIOS.
-Tunable value set to OFF (0) by default.
.It Va kern.maxusers
Set the size of a number of statically allocated system tables; see
.Xr tuning 7
==== //depot/projects/netperf_socket/sys/boot/powerpc/loader/Makefile#6 (text+ko) ====
@@ -1,7 +1,6 @@
-# $FreeBSD: src/sys/boot/powerpc/loader/Makefile,v 1.16 2004/08/16 15:45:25 marius Exp $
+# $FreeBSD: src/sys/boot/powerpc/loader/Makefile,v 1.17 2004/08/18 11:31:00 grehan Exp $
PROG= loader
-NOMAN=
NEWVERSWHAT= "bootstrap loader" "Open Firmware/PowerPC"
BINDIR?= /boot
INSTALLFLAGS= -b
==== //depot/projects/netperf_socket/sys/conf/NOTES#37 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1261 2004/08/16 06:36:20 pjd Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1262 2004/08/19 06:38:26 jmg Exp $
#
# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
#
@@ -222,6 +222,10 @@
# MUTEX_PROFILING - Profiling mutual exclusion locks (mutexes). See
# MUTEX_PROFILING(9) for details.
options MUTEX_PROFILING
+# Set the number of buffers and the hash size. The hash size MUST be larger
+# than the number of buffers. Hash size should be prime.
+options MPROF_BUFFERS="1536"
+options MPROF_HASH_SIZE="1543"
# Profiling for internal hash tables.
options SLEEPQUEUE_PROFILING
==== //depot/projects/netperf_socket/sys/conf/options#27 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.475 2004/08/17 22:05:53 andre Exp $
+# $FreeBSD: src/sys/conf/options,v 1.476 2004/08/19 06:38:26 jmg Exp $
#
# On the handling of kernel options
#
@@ -108,6 +108,8 @@
MAC_TEST opt_dontuse.h
MD_ROOT opt_md.h
MD_ROOT_SIZE opt_md.h
+MPROF_BUFFERS opt_mprof.h
+MPROF_HASH_SIZE opt_mprof.h
MUTEX_WAKE_ALL
NSWBUF_MIN opt_swap.h
PANIC_REBOOT_WAIT_TIME opt_panic.h
==== //depot/projects/netperf_socket/sys/conf/options.pc98#6 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.pc98,v 1.177 2004/08/16 13:59:01 rwatson Exp $
+# $FreeBSD: src/sys/conf/options.pc98,v 1.178 2004/08/18 03:46:39 rwatson Exp $
# Options specific to the pc98 platform kernels
AUTO_EOI_1 opt_auto_eoi.h
@@ -108,3 +108,6 @@
DEV_APIC opt_apic.h
DEV_MECIA opt_mecia.h
DEV_NPX opt_npx.h
+
+# agp options
+AGP_AMD64_GART opt_agp.h
==== //depot/projects/netperf_socket/sys/contrib/dev/acpica/aclocal.h#5 (text+ko) ====
@@ -1050,7 +1050,8 @@
UINT32 Component; \
UINT32 Line; \
char Module[ACPI_MAX_MODULE_NAME]; \
- UINT8 AllocType;
+ UINT8 AllocType; \
+ UINT8 Padding[3];
typedef struct acpi_debug_mem_header
{
==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#38 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.186 2004/08/13 06:21:32 njl Exp $
+ * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.188 2004/08/18 07:00:43 njl Exp $
*/
#include "opt_acpi.h"
@@ -625,7 +625,7 @@
size_t buflen)
{
struct acpi_device *dinfo = device_get_ivars(child);
-
+
if (dinfo->ad_handle)
snprintf(buf, buflen, "handle=%s", acpi_name(dinfo->ad_handle));
else
@@ -1581,7 +1581,7 @@
{
ACPI_OBJECT *comp;
int i;
-
+
if (pkg == NULL || pkg->Type != ACPI_TYPE_PACKAGE)
return (AE_BAD_PARAMETER);
@@ -1636,7 +1636,7 @@
{
ACPI_RESOURCE *rp;
void *newp;
-
+
/* Initialise the buffer if necessary. */
if (buf->Pointer == NULL) {
buf->Length = ACPI_INITIAL_RESOURCE_BUFFER_SIZE;
@@ -1648,7 +1648,7 @@
}
if (res == NULL)
return (AE_OK);
-
+
/*
* Scan the current buffer looking for the terminator.
* This will either find the terminator or hit the end
@@ -1687,10 +1687,10 @@
buf->Pointer = newp;
buf->Length += buf->Length;
}
-
+
/* Insert the new resource. */
bcopy(res, rp, res->Length + ACPI_RESOURCE_LENGTH_NO_DATA);
-
+
/* And add the terminator. */
rp = ACPI_NEXT_RESOURCE(rp);
rp->Id = ACPI_RSTYPE_END_TAG;
@@ -1837,10 +1837,10 @@
acpi_wake_prep_walk(state);
sc->acpi_sstate = ACPI_STATE_S0;
}
+ if (slp_state >= ACPI_SS_SLP_PREP)
+ AcpiLeaveSleepState(state);
if (slp_state >= ACPI_SS_DEV_SUSPEND)
DEVICE_RESUME(root_bus);
- if (slp_state >= ACPI_SS_SLP_PREP)
- AcpiLeaveSleepState(state);
if (slp_state >= ACPI_SS_SLEPT)
acpi_enable_fixed_events(sc);
@@ -2146,49 +2146,6 @@
}
/*
- * Enable/Disable ACPI
- */
-ACPI_STATUS
-acpi_Enable(struct acpi_softc *sc)
-{
- ACPI_STATUS status;
- u_int32_t flags;
-
- ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
-
- status = AE_ERROR;
- flags = ACPI_NO_ADDRESS_SPACE_INIT | ACPI_NO_HARDWARE_INIT |
- ACPI_NO_DEVICE_INIT | ACPI_NO_OBJECT_INIT;
-
- ACPI_SERIAL_BEGIN(acpi);
- if (!sc->acpi_enabled)
- status = AcpiEnableSubsystem(flags);
- if (ACPI_SUCCESS(status))
- sc->acpi_enabled = 1;
- ACPI_SERIAL_END(acpi);
-
- return_ACPI_STATUS (status);
-}
-
-ACPI_STATUS
-acpi_Disable(struct acpi_softc *sc)
-{
- ACPI_STATUS status;
-
- ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
-
- status = AE_ERROR;
- ACPI_SERIAL_BEGIN(acpi);
- if (sc->acpi_enabled)
- status = AcpiDisable();
- if (ACPI_SUCCESS(status))
- sc->acpi_enabled = 0;
- ACPI_SERIAL_END(acpi);
-
- return_ACPI_STATUS (status);
-}
-
-/*
* ACPI Event Handlers
*/
@@ -2463,14 +2420,6 @@
/* Core system ioctls. */
switch (cmd) {
- case ACPIIO_ENABLE:
- if (ACPI_FAILURE(acpi_Enable(sc)))
- error = ENXIO;
- break;
- case ACPIIO_DISABLE:
- if (ACPI_FAILURE(acpi_Disable(sc)))
- error = ENXIO;
- break;
case ACPIIO_SETSLPSTATE:
error = EINVAL;
state = *(int *)addr;
==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#10 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.24 2004/08/13 19:27:21 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.25 2004/08/18 16:39:59 njl Exp $");
#include "opt_acpi.h"
#include <sys/param.h>
@@ -648,10 +648,9 @@
* assume we were successful.
*/
error = acpi_pci_link_get_current_irq(link, &link->current_irq);
- if (ACPI_FAILURE(error)) {
+ if (ACPI_FAILURE(error) && bootverbose) {
printf("acpi link set: _CRS failed for link %s - %s\n",
acpi_name(link->handle), AcpiFormatException(error));
- goto out;
}
if (link->current_irq != irq) {
printf("acpi link set: curr irq %d != %d for %s (ignoring)\n",
==== //depot/projects/netperf_socket/sys/dev/acpica/acpiio.h#3 (text+ko) ====
@@ -24,14 +24,12 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/acpica/acpiio.h,v 1.10 2004/06/22 08:23:26 brueffer Exp $
+ * $FreeBSD: src/sys/dev/acpica/acpiio.h,v 1.11 2004/08/18 05:48:24 njl Exp $
*/
/*
* Core ACPI subsystem ioctls
*/
-#define ACPIIO_ENABLE _IO('P', 1)
-#define ACPIIO_DISABLE _IO('P', 2)
#define ACPIIO_SETSLPSTATE _IOW('P', 3, int)
struct acpi_battdesc {
==== //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#21 (text+ko) ====
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.79 2004/08/13 06:21:19 njl Exp $
+ * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.80 2004/08/18 05:48:24 njl Exp $
*/
#include "acpi_if.h"
@@ -274,8 +274,6 @@
int acpi_wake_set_enable(device_t dev, int enable);
int acpi_parse_prw(ACPI_HANDLE h, struct acpi_prw_data *prw);
ACPI_STATUS acpi_Startup(void);
-ACPI_STATUS acpi_Enable(struct acpi_softc *sc);
-ACPI_STATUS acpi_Disable(struct acpi_softc *sc);
void acpi_UserNotify(const char *subsystem, ACPI_HANDLE h,
uint8_t notify);
struct resource *acpi_bus_alloc_gas(device_t dev, int *rid,
==== //depot/projects/netperf_socket/sys/dev/aic7xxx/ahc_isa.c#2 (text+ko) ====
@@ -36,12 +36,11 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/aic7xxx/ahc_isa.c,v 1.1 2004/08/17 02:32:30 gibbs Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/aic7xxx/ahc_isa.c,v 1.3 2004/08/18 17:17:43 gibbs Exp $");
#include <dev/aic7xxx/aic7xxx_osm.h>
#include <sys/limits.h> /* For CHAR_BIT*/
-#include <dev/eisa/eisaconf.h> /* For EISA constants */
#include <isa/isavar.h> /* For ISA attach glue */
@@ -62,7 +61,7 @@
*/
static struct aic7770_identity *
ahc_isa_find_device(bus_space_tag_t tag, bus_space_handle_t bsh) {
- eisa_id_t id;
+ uint32_t id;
u_int id_size;
int i;
@@ -93,7 +92,7 @@
int rid;
rid = 0;
- iobase = (slot * EISA_SLOT_SIZE) + AHC_EISA_SLOT_OFFSET;
+ iobase = (slot * AHC_EISA_SLOT_SIZE) + AHC_EISA_SLOT_OFFSET;
regs = bus_alloc_resource(parent, SYS_RES_IOPORT, &rid,
iobase, iobase, AHC_EISA_IOSIZE,
RF_ACTIVE);
@@ -138,7 +137,6 @@
int error;
int zero;
- iobase = isa_get_port(dev);
error = ENODEV;
zero = 0;
regs = NULL;
@@ -146,10 +144,11 @@
regs = bus_alloc_resource_any(dev, SYS_RES_IOPORT, &zero, RF_ACTIVE);
if (regs == NULL) {
- device_printf(dev, "ioport 0x%x alloc failed\n", iobase);
+ device_printf(dev, "No resources alloated.\n");
return (ENOMEM);
}
+ iobase = rman_get_start(regs);
tag = rman_get_bustag(regs);
bsh = rman_get_bushandle(regs);
==== //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.c#6 (text+ko) ====
@@ -46,7 +46,7 @@
#include "aicasm/aicasm_insformat.h"
#else
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/aic7xxx/aic79xx.c,v 1.31 2004/08/17 00:14:30 gibbs Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/aic7xxx/aic79xx.c,v 1.32 2004/08/18 16:35:52 gibbs Exp $");
#include <dev/aic7xxx/aic79xx_osm.h>
#include <dev/aic7xxx/aic79xx_inline.h>
#include <dev/aic7xxx/aicasm/aicasm_insformat.h>
@@ -9391,7 +9391,7 @@
* untimed-out command is outstanding.
*/
if (ahd_other_scb_timeout(ahd, scb,
- active_scb) != 0)
+ active_scb) == 0)
goto bus_reset;
continue;
}
@@ -9430,7 +9430,7 @@
* some other command. Reset the timer
* and go on.
*/
- if (ahd_other_scb_timeout(ahd, scb, NULL) != 0)
+ if (ahd_other_scb_timeout(ahd, scb, NULL) == 0)
goto bus_reset;
} else {
/*
==== //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.h#6 (text+ko) ====
@@ -39,7 +39,7 @@
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#107 $
*
- * $FreeBSD: src/sys/dev/aic7xxx/aic79xx.h,v 1.21 2004/08/17 00:14:30 gibbs Exp $
+ * $FreeBSD: src/sys/dev/aic7xxx/aic79xx.h,v 1.22 2004/08/18 16:33:14 gibbs Exp $
*/
#ifndef _AIC79XX_H_
@@ -1346,19 +1346,6 @@
extern struct ahd_pci_identity ahd_pci_ident_table [];
extern const u_int ahd_num_pci_devs;
-/***************************** VL/EISA Declarations ***************************/
-struct aic7770_identity {
- uint32_t full_id;
- uint32_t id_mask;
- char *name;
- ahd_device_setup_t *setup;
-};
-extern struct aic7770_identity aic7770_ident_table [];
-extern const int ahd_num_aic7770_devs;
-
-#define AHD_EISA_SLOT_OFFSET 0xc00
-#define AHD_EISA_IOSIZE 0x100
-
/*************************** Function Declarations ****************************/
/******************************************************************************/
void ahd_reset_cmds_pending(struct ahd_softc *ahd);
==== //depot/projects/netperf_socket/sys/dev/aic7xxx/aic7xxx.h#3 (text+ko) ====
@@ -39,7 +39,7 @@
*
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.h#85 $
*
- * $FreeBSD: src/sys/dev/aic7xxx/aic7xxx.h,v 1.51 2004/08/17 00:14:31 gibbs Exp $
+ * $FreeBSD: src/sys/dev/aic7xxx/aic7xxx.h,v 1.52 2004/08/18 16:31:56 gibbs Exp $
*/
#ifndef _AIC7XXX_H_
@@ -1175,6 +1175,7 @@
extern struct aic7770_identity aic7770_ident_table[];
extern const int ahc_num_aic7770_devs;
+#define AHC_EISA_SLOT_SIZE 0x1000
#define AHC_EISA_SLOT_OFFSET 0xc00
#define AHC_EISA_IOSIZE 0x100
==== //depot/projects/netperf_socket/sys/dev/firewire/if_fwe.c#6 (text+ko) ====
@@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/firewire/if_fwe.c,v 1.34 2004/08/12 03:02:16 rwatson Exp $
+ * $FreeBSD: src/sys/dev/firewire/if_fwe.c,v 1.35 2004/08/18 04:54:54 rwatson Exp $
*/
#include "opt_inet.h"
@@ -488,6 +488,8 @@
struct fwe_softc *fwe = ((struct fwe_eth_softc *)ifp->if_softc)->fwe;
int s;
+ GIANT_REQUIRED;
+
FWEDEBUG(ifp, "starting\n");
if (fwe->dma_ch < 0) {
==== //depot/projects/netperf_socket/sys/dev/twa/twa_freebsd.c#6 (text+ko) ====
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/twa/twa_freebsd.c,v 1.7 2004/06/24 18:30:08 scottl Exp $
+ * $FreeBSD: src/sys/dev/twa/twa_freebsd.c,v 1.8 2004/08/18 16:14:44 vkashyap Exp $
*/
/*
@@ -657,7 +657,7 @@
for (i = 0; i < nsegments; i++) {
sgl[i].address = segs[i].ds_addr;
- sgl[i].length = segs[i].ds_len;
+ sgl[i].length = (u_int32_t)(segs[i].ds_len);
}
}
==== //depot/projects/netperf_socket/sys/dev/twa/twa_reg.h#2 (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/dev/twa/twa_reg.h,v 1.1 2004/03/30 03:45:59 vkashyap Exp $
+ * $FreeBSD: src/sys/dev/twa/twa_reg.h,v 1.2 2004/08/18 16:14:44 vkashyap Exp $
*/
/*
@@ -198,7 +198,7 @@
/* Scatter/Gather list entry. */
struct twa_sg {
bus_addr_t address;
- bus_size_t length;
+ u_int32_t length;
} __attribute__ ((packed));
==== //depot/projects/netperf_socket/sys/dev/vx/if_vx.c#5 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/vx/if_vx.c,v 1.51 2004/08/14 00:12:42 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/vx/if_vx.c,v 1.52 2004/08/18 16:56:54 gibbs Exp $");
/*
* Created from if_ep.c driver by Fred Gray (fgray at rice.edu) to support
@@ -84,35 +84,51 @@
#define ETHER_ALIGN 2
static struct connector_entry {
- int bit;
- char *name;
+ int bit;
+ char *name;
} conn_tab[VX_CONNECTORS] = {
+
#define CONNECTOR_UTP 0
- { 0x08, "utp"},
+ {
+ 0x08, "utp"
+ },
#define CONNECTOR_AUI 1
- { 0x20, "aui"},
+ {
+ 0x20, "aui"
+ },
/* dummy */
- { 0, "???"},
+ {
+ 0, "???"
+ },
#define CONNECTOR_BNC 3
- { 0x10, "bnc"},
+ {
+ 0x10, "bnc"
+ },
#define CONNECTOR_TX 4
- { 0x02, "tx"},
+ {
+ 0x02, "tx"
+ },
#define CONNECTOR_FX 5
- { 0x04, "fx"},
+ {
+ 0x04, "fx"
+ },
#define CONNECTOR_MII 6
- { 0x40, "mii"},
- { 0, "???"}
+ {
+ 0x40, "mii"
+ },
+ {
+ 0, "???"
+ }
};
/* int vxattach(struct vx_softc *); */
static void vxtxstat(struct vx_softc *);
static int vxstatus(struct vx_softc *);
static void vxinit(void *);
-static int vxioctl(struct ifnet *, u_long, caddr_t);
-static void vxstart(struct ifnet *ifp);
+static int vxioctl(struct ifnet *, u_long, caddr_t);
+static void vxstart(struct ifnet *);
static void vxwatchdog(struct ifnet *);
static void vxreset(struct vx_softc *);
-/* void vxstop(struct vx_softc *); */
static void vxread(struct vx_softc *);
static struct mbuf *vxget(struct vx_softc *, u_int);
static void vxmbuffill(void *);
@@ -120,381 +136,372 @@
static void vxsetfilter(struct vx_softc *);
static void vxgetlink(struct vx_softc *);
static void vxsetlink(struct vx_softc *);
-/* int vxbusyeeprom(struct vx_softc *); */
-
int
-vxattach(dev)
- device_t dev;
+vxattach(device_t dev)
{
- struct vx_softc *sc = device_get_softc(dev);
- struct ifnet *ifp = &sc->arpcom.ac_if;
- int i;
+ struct vx_softc *sc = device_get_softc(dev);
+ struct ifnet *ifp = &sc->arpcom.ac_if;
+ int i;
+
+ callout_handle_init(&sc->ch);
+ GO_WINDOW(0);
+ CSR_WRITE_2(sc, VX_COMMAND, GLOBAL_RESET);
+ VX_BUSY_WAIT;
- callout_handle_init(&sc->ch);
- GO_WINDOW(0);
- CSR_WRITE_2(sc, VX_COMMAND, GLOBAL_RESET);
- VX_BUSY_WAIT;
+ vxgetlink(sc);
- vxgetlink(sc);
+ /*
+ * Read the station address from the eeprom
+ */
+ GO_WINDOW(0);
+ for (i = 0; i < 3; i++) {
+ int x;
- /*
- * Read the station address from the eeprom
- */
- GO_WINDOW(0);
- for (i = 0; i < 3; i++) {
- int x;
- if (vxbusyeeprom(sc))
- return 0;
- CSR_WRITE_2(sc, VX_W0_EEPROM_COMMAND, EEPROM_CMD_RD
- | (EEPROM_OEM_ADDR0 + i));
- if (vxbusyeeprom(sc))
- return 0;
- x = CSR_READ_2(sc, VX_W0_EEPROM_DATA);
- sc->arpcom.ac_enaddr[(i << 1)] = x >> 8;
- sc->arpcom.ac_enaddr[(i << 1) + 1] = x;
- }
+ if (vxbusyeeprom(sc))
+ return 0;
+ CSR_WRITE_2(sc, VX_W0_EEPROM_COMMAND, EEPROM_CMD_RD
+ | (EEPROM_OEM_ADDR0 + i));
+ if (vxbusyeeprom(sc))
+ return 0;
+ x = CSR_READ_2(sc, VX_W0_EEPROM_DATA);
+ sc->arpcom.ac_enaddr[(i << 1)] = x >> 8;
+ sc->arpcom.ac_enaddr[(i << 1) + 1] = x;
+ }
- if_initname(ifp, device_get_name(dev), device_get_unit(dev));
- ifp->if_mtu = ETHERMTU;
- ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
- ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST |
- IFF_NEEDSGIANT;
- ifp->if_start = vxstart;
- ifp->if_ioctl = vxioctl;
- ifp->if_init = vxinit;
- ifp->if_watchdog = vxwatchdog;
- ifp->if_softc = sc;
+ if_initname(ifp, device_get_name(dev), device_get_unit(dev));
+ ifp->if_mtu = ETHERMTU;
+ ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
+ ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST |
+ IFF_NEEDSGIANT;
+ ifp->if_start = vxstart;
+ ifp->if_ioctl = vxioctl;
+ ifp->if_init = vxinit;
+ ifp->if_watchdog = vxwatchdog;
+ ifp->if_softc = sc;
- ether_ifattach(ifp, sc->arpcom.ac_enaddr);
+ ether_ifattach(ifp, sc->arpcom.ac_enaddr);
- sc->tx_start_thresh = 20; /* probably a good starting point. */
+ sc->tx_start_thresh = 20; /* probably a good starting point. */
- vxstop(sc);
+ vxstop(sc);
- return 1;
+ return 1;
}
-
-
/*
* The order in here seems important. Otherwise we may not receive
* interrupts. ?!
*/
static void
-vxinit(xsc)
- void *xsc;
+vxinit(void *xsc)
{
- struct vx_softc *sc = (struct vx_softc *) xsc;
- struct ifnet *ifp = &sc->arpcom.ac_if;
- int i;
+ struct vx_softc *sc = (struct vx_softc *)xsc;
+ struct ifnet *ifp = &sc->arpcom.ac_if;
+ int i;
- VX_BUSY_WAIT;
+ VX_BUSY_WAIT;
- GO_WINDOW(2);
+ GO_WINDOW(2);
- for (i = 0; i < 6; i++) /* Reload the ether_addr. */
- CSR_WRITE_1(sc, VX_W2_ADDR_0 + i, sc->arpcom.ac_enaddr[i]);
+ for (i = 0; i < 6; i++) /* Reload the ether_addr. */
+ CSR_WRITE_1(sc, VX_W2_ADDR_0 + i, sc->arpcom.ac_enaddr[i]);
- CSR_WRITE_2(sc, VX_COMMAND, RX_RESET);
- VX_BUSY_WAIT;
- CSR_WRITE_2(sc, VX_COMMAND, TX_RESET);
- VX_BUSY_WAIT;
+ CSR_WRITE_2(sc, VX_COMMAND, RX_RESET);
+ VX_BUSY_WAIT;
+ CSR_WRITE_2(sc, VX_COMMAND, TX_RESET);
+ VX_BUSY_WAIT;
- GO_WINDOW(1); /* Window 1 is operating window */
- for (i = 0; i < 31; i++)
- CSR_READ_1(sc, VX_W1_TX_STATUS);
+ GO_WINDOW(1); /* Window 1 is operating window */
+ for (i = 0; i < 31; i++)
+ CSR_READ_1(sc, VX_W1_TX_STATUS);
- CSR_WRITE_2(sc, VX_COMMAND,SET_RD_0_MASK | S_CARD_FAILURE |
- S_RX_COMPLETE | S_TX_COMPLETE | S_TX_AVAIL);
- CSR_WRITE_2(sc, VX_COMMAND,SET_INTR_MASK | S_CARD_FAILURE |
- S_RX_COMPLETE | S_TX_COMPLETE | S_TX_AVAIL);
+ CSR_WRITE_2(sc, VX_COMMAND, SET_RD_0_MASK | S_CARD_FAILURE |
+ S_RX_COMPLETE | S_TX_COMPLETE | S_TX_AVAIL);
+ CSR_WRITE_2(sc, VX_COMMAND, SET_INTR_MASK | S_CARD_FAILURE |
+ S_RX_COMPLETE | S_TX_COMPLETE | S_TX_AVAIL);
- /*
- * Attempt to get rid of any stray interrupts that occured during
- * configuration. On the i386 this isn't possible because one may
- * already be queued. However, a single stray interrupt is
- * unimportant.
- */
- CSR_WRITE_2(sc, VX_COMMAND, ACK_INTR | 0xff);
+ /*
+ * Attempt to get rid of any stray interrupts that occured during
+ * configuration. On the i386 this isn't possible because one may
+ * already be queued. However, a single stray interrupt is
+ * unimportant.
+ */
+ CSR_WRITE_2(sc, VX_COMMAND, ACK_INTR | 0xff);
- vxsetfilter(sc);
- vxsetlink(sc);
+ vxsetfilter(sc);
+ vxsetlink(sc);
- CSR_WRITE_2(sc, VX_COMMAND, RX_ENABLE);
- CSR_WRITE_2(sc, VX_COMMAND, TX_ENABLE);
+ CSR_WRITE_2(sc, VX_COMMAND, RX_ENABLE);
+ CSR_WRITE_2(sc, VX_COMMAND, TX_ENABLE);
- vxmbuffill((caddr_t) sc);
+ vxmbuffill((caddr_t) sc);
- /* Interface is now `running', with no output active. */
- ifp->if_flags |= IFF_RUNNING;
- ifp->if_flags &= ~IFF_OACTIVE;
+ /* Interface is now `running', with no output active. */
+ ifp->if_flags |= IFF_RUNNING;
+ ifp->if_flags &= ~IFF_OACTIVE;
- /* Attempt to start output, if any. */
- vxstart(ifp);
+ /* Attempt to start output, if any. */
+ vxstart(ifp);
}
static void
-vxsetfilter(sc)
- struct vx_softc *sc;
+vxsetfilter(struct vx_softc *sc)
{
- register struct ifnet *ifp = &sc->arpcom.ac_if;
-
- GO_WINDOW(1); /* Window 1 is operating window */
- CSR_WRITE_2(sc, VX_COMMAND, SET_RX_FILTER | FIL_INDIVIDUAL | FIL_BRDCST |
- FIL_MULTICAST |
- ((ifp->if_flags & IFF_PROMISC) ? FIL_PROMISC : 0 ));
-}
+ register struct ifnet *ifp = &sc->arpcom.ac_if;
+
+ GO_WINDOW(1); /* Window 1 is operating window */
+ CSR_WRITE_2(sc, VX_COMMAND, SET_RX_FILTER |
+ FIL_INDIVIDUAL | FIL_BRDCST | FIL_MULTICAST |
+ ((ifp->if_flags & IFF_PROMISC) ? FIL_PROMISC : 0));
+}
-static void
-vxgetlink(sc)
- struct vx_softc *sc;
+static void
+vxgetlink(struct vx_softc *sc)
{
- int n, k;
+ int n, k;
- GO_WINDOW(3);
- sc->vx_connectors = CSR_READ_2(sc, VX_W3_RESET_OPT) & 0x7f;
- for (n = 0, k = 0; k < VX_CONNECTORS; k++) {
- if (sc->vx_connectors & conn_tab[k].bit) {
- if (n > 0) {
- printf("/");
+ GO_WINDOW(3);
+ sc->vx_connectors = CSR_READ_2(sc, VX_W3_RESET_OPT) & 0x7f;
+ for (n = 0, k = 0; k < VX_CONNECTORS; k++) {
+ if (sc->vx_connectors & conn_tab[k].bit) {
+ if (n > 0)
+ printf("/");
+ printf("%s", conn_tab[k].name);
+ n++;
+ }
+ }
+ if (sc->vx_connectors == 0) {
+ printf("no connectors!");
+ return;
+ }
+ GO_WINDOW(3);
+ sc->vx_connector =
+ (CSR_READ_4(sc, VX_W3_INTERNAL_CFG) & INTERNAL_CONNECTOR_MASK)
+ >> INTERNAL_CONNECTOR_BITS;
+ if (sc->vx_connector & 0x10) {
+ sc->vx_connector &= 0x0f;
+ printf("[*%s*]", conn_tab[(int)sc->vx_connector].name);
+ printf(": disable 'auto select' with DOS util!");
+ } else {
+ printf("[*%s*]", conn_tab[(int)sc->vx_connector].name);
}
- printf("%s", conn_tab[k].name);
- n++;
- }
- }
- if (sc->vx_connectors == 0) {
- printf("no connectors!");
- return;
- }
- GO_WINDOW(3);
- sc->vx_connector = (CSR_READ_4(sc, VX_W3_INTERNAL_CFG)
- & INTERNAL_CONNECTOR_MASK)
- >> INTERNAL_CONNECTOR_BITS;
- if (sc->vx_connector & 0x10) {
- sc->vx_connector &= 0x0f;
- printf("[*%s*]", conn_tab[(int)sc->vx_connector].name);
- printf(": disable 'auto select' with DOS util!");
- } else {
- printf("[*%s*]", conn_tab[(int)sc->vx_connector].name);
- }
}
-static void
-vxsetlink(sc)
- struct vx_softc *sc;
-{
- register struct ifnet *ifp = &sc->arpcom.ac_if;
- int i, j, k;
- char *reason, *warning;
- static int prev_flags;
- static char prev_conn = -1;
+static void
+vxsetlink(struct vx_softc *sc)
+{
+ register struct ifnet *ifp = &sc->arpcom.ac_if;
+ int i, j, k;
+ char *reason, *warning;
+ static int prev_flags;
+ static char prev_conn = -1;
- if (prev_conn == -1) {
- prev_conn = sc->vx_connector;
- }
+ if (prev_conn == -1)
+ prev_conn = sc->vx_connector;
- /*
- * S.B.
- *
- * Now behavior was slightly changed:
- *
- * if any of flags link[0-2] is used and its connector is
- * physically present the following connectors are used:
- *
- * link0 - AUI * highest precedence
- * link1 - BNC
- * link2 - UTP * lowest precedence
- *
- * If none of them is specified then
- * connector specified in the EEPROM is used
- * (if present on card or UTP if not).
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list