MFC @ r221324

This commit is contained in:
Attilio Rao 2011-05-02 14:23:36 +00:00
commit 7be8a2de4f
27 changed files with 173 additions and 102 deletions

View file

@ -43,7 +43,7 @@ Listed below are the standard
.Nm
variables that may be set.
.Pp
After updaing this file, you may wish to run
After updating this file, you may wish to run
.Nm resolvconf -u
to apply the new configuration.
.Sh RESOLVCONF OPTIONS

View file

@ -5,7 +5,7 @@
PROG= mount_nfs
SRCS= mount_nfs.c getmntopts.c mounttab.c
MAN= mount_nfs.8
MLINKS= mount_nfs.8 mount_newnfs.8
MLINKS= mount_nfs.8 mount_oldnfs.8
MOUNT= ${.CURDIR}/../mount
UMNTALL= ${.CURDIR}/../../usr.sbin/rpc.umntall

View file

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd May 6, 2006
.Dd May 1, 2011
.Dt RECOVERDISK 1
.Os
.Sh NAME
@ -33,17 +33,20 @@
.Sh SYNOPSIS
.Nm
.Op Fl b Ar bigsize
.Op Fl r Ar rlist
.Op Fl s Ar snapshot
.Op Fl w Ar wlist
.Ar special
.Op Ar file
.Op Fl r Ar readlist
.Op Fl s Ar interval
.Op Fl w Ar writelist
.Ar source
.Op Ar destination
.Sh DESCRIPTION
The
.Nm
utility reads data from the
.Ar special
.Ar source
file until all blocks could be successfully read.
If
.Ar destination
was specified all data is being written to that file.
It starts reading in multiples of the sector size.
Whenever a block fails, it is put to the end of the working queue and will be
read again, possibly with a smaller read size.
@ -59,13 +62,13 @@ The options are as follows:
The size of reads attempted first.
The middle pass is roughly the logarithmic average of the bigsize and
the sectorsize.
.It Fl r Ar rlist
.It Fl r Ar readlist
Read the list of blocks and block sizes to read from the specified file.
.It Fl s Ar snapshot
How often we should update the worklist file while things go OK.
The default is 60 and the units is "progress messages" so if things
.It Fl s Ar interval
How often we should update the writelist file while things go OK.
The default is 60 and the unit is "progress messages" so if things
go well, this is the same as once per minute.
.It Fl w Ar wlist
.It Fl w Ar writelist
Write the list of remaining blocks to read to the specified file if
.Nm
is aborted via
@ -102,20 +105,19 @@ Percent complete.
.Sh EXAMPLES
.Bd -literal
# recover data from failing hard drive ad3
touch /data/lots_of_space
recoverdisk /dev/ad3 /data/lots_of_space
recoverdisk /dev/ad3 /data/disk.img
# clone a hard disk
recoverdisk /dev/ad3 /dev/ad4
# read an ISO image from a CD-ROM
touch /data/cd.iso; recoverdisk /dev/acd0 /data/cd.iso
recoverdisk /dev/cd0 /data/cd.iso
# continue reading from a broken CD and update the existing worklist
recoverdisk -r worklist -w worklist /dev/acd0 /data/cd.iso
recoverdisk -r worklist -w worklist /dev/cd0 /data/cd.iso
# recover a single file from the unreadable media
touch file.avi; recoverdisk /cdrom/file.avi file.avi
recoverdisk /cdrom/file.avi file.avi
# If the disk hangs the system on read-errors try:
recoverdisk -b 0 /dev/ad3 /somewhere
@ -133,7 +135,7 @@ utility first appeared in
The original implementation was done by
.An Poul-Henning Kamp Aq phk@FreeBSD.org
with minor improvements from
.An Ulrich Sp\(:orlein Aq uspoerlein@gmail.com .
.An Ulrich Sp\(:orlein Aq uqs@FreeBSD.org .
.Pp
This manual page was written by
.An Ulrich Sp\(:orlein .
@ -144,4 +146,13 @@ This is due to the DMA reads being split up into blocks of at most 128kB.
These reads then fail if the sectorsize is not a divisor of 128kB.
When reading a full raw audio CD, this leads to roughly 700 error messages
flying by.
This is harmless.
This is harmless and can be avoided by setting
.Fl b
to no more than 128kB.
.\".Pp
.\"When reading from optical media, a bug in the GEOM framework will
.\"prevent it from seeing that the media has been removed.
.\"The device can still be opened, but all reads will fail.
.\"This is usually harmless, but will send
.\".Nm
.\"into an infinite loop.

View file

@ -86,7 +86,7 @@ save_worklist(void)
if (file == NULL)
err(1, "Error opening file %s", wworklist);
TAILQ_FOREACH(llp, &lumps, list)
TAILQ_FOREACH(llp, &lumps, list)
fprintf(file, "%jd %jd %d\n",
(intmax_t)llp->start, (intmax_t)llp->len,
llp->state);
@ -134,8 +134,8 @@ read_worklist(off_t t)
static void
usage(void)
{
(void)fprintf(stderr,
"usage: recoverdisk [-r worklist] [-w worklist] source-drive [destination]\n");
(void)fprintf(stderr, "usage: recoverdisk [-b bigsize] [-r readlist] "
"[-s interval] [-w writelist] source [destination]\n");
exit(1);
}
@ -153,7 +153,7 @@ main(int argc, char * const argv[])
int fdr, fdw;
off_t t, d, start, len;
size_t i, j;
int error, flags, state;
int error, state;
u_char *buf;
u_int sectorsize;
time_t t1, t2;
@ -196,7 +196,6 @@ main(int argc, char * const argv[])
error = fstat(fdr, &sb);
if (error < 0)
err(1, "fstat failed");
flags = O_WRONLY;
if (S_ISBLK(sb.st_mode) || S_ISCHR(sb.st_mode)) {
error = ioctl(fdr, DIOCGSECTORSIZE, &sectorsize);
if (error < 0)
@ -210,7 +209,6 @@ main(int argc, char * const argv[])
err(1, "DIOCGMEDIASIZE failed");
} else {
t = sb.st_size;
flags |= O_CREAT | O_TRUNC;
}
if (bigsize < minsize)
@ -229,9 +227,12 @@ main(int argc, char * const argv[])
err(1, "Cannot allocate %zu bytes buffer", bigsize);
if (argc > 1) {
fdw = open(argv[1], flags, DEFFILEMODE);
fdw = open(argv[1], O_WRONLY | O_CREAT, DEFFILEMODE);
if (fdw < 0)
err(1, "Cannot open write descriptor %s", argv[1]);
if (ftruncate(fdw, t) < 0)
err(1, "Cannot truncate output %s to %jd bytes",
argv[1], (intmax_t)t);
} else
fdw = -1;
@ -292,6 +293,10 @@ main(int argc, char * const argv[])
}
printf("\n%jd %zu failed (%s)\n",
lp->start, i, strerror(errno));
if (errno == EINVAL) {
printf("read() size too big? Try with -b 131072");
aborting = 1;
}
if (errno == ENXIO)
aborting = 1;
new_lump(lp->start, i, lp->state + 1);

View file

@ -49,13 +49,12 @@ The
.Nm
driver provides support for Neterion X3100 adapters.
The driver supports TCP Segmentation Offload (TSO/LSO),
Large Receive Offlaod (LRO), Jumbo Frames, Receive Traffic Hash (RTH),
Large Receive Offload (LRO), Jumbo Frames, Receive Traffic Hash (RTH),
VLAN, Promiscuous mode and Multi function mode.
.Pp
The
.Nm
driver supports following function modes:
driver supports the following function modes:
.Bd -ragged -offset indent
.Cd "SF1_VP17 - 1 function with 17 VPATHs"
.Ed

View file

@ -246,7 +246,7 @@ FreeBSD 5.2 | | | |
| | | | | NetBSD 5.1 | |
| FreeBSD FreeBSD | | | |
| 8.2 7.4 | | | DragonFly 2.10.1
| v | | | |
| v | | OpenBSD 4.9 |
| | | | |
FreeBSD 9 -current | NetBSD -current OpenBSD -current |
| | | | |
@ -533,6 +533,7 @@ NetBSD 5.1 2010-11-19 [NBD]
FreeBSD 7.4 2011-02-24 [FBD]
FreeBSD 8.2 2011-02-24 [FBD]
DragonFly 2.10.1 2011-04-26 [DFB]
OpenBSD 4.9 2011-05-01 [OBD]
Bibliography
------------------------

View file

@ -261,8 +261,16 @@ device ath_pci # Atheros pci/cardbus glue
device ath_hal # pci/cardbus chip support
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample # SampleRate tx rate control for ath
#device bwi # Broadcom BCM430x/BCM431x wireless NICs.
#device bwn # Broadcom BCM43xx wireless NICs.
device ipw # Intel 2100 wireless NICs.
device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs.
device iwn # Intel 4965/1000/5000/6000 wireless NICs.
device malo # Marvell Libertas wireless NICs.
device mwl # Marvell 88W8363 802.11n wireless NICs.
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
device wpi # Intel 3945ABG wireless NICs.
# Pseudo devices.
device loop # Network loopback
@ -314,7 +322,9 @@ device rue # RealTek RTL8150 USB Ethernet
device udav # Davicom DM9601E USB
# USB Wireless
device rum # Ralink Technology RT2501USB wireless NICs
device run # Ralink Technology RT2700/RT2800/RT3000 NICs.
device uath # Atheros AR5523 wireless NICs
device upgt # Conexant/Intersil PrismGT wireless NICs.
device ural # Ralink Technology RT2500USB wireless NICs
device urtw # Realtek RTL8187B/L wireless NICs
device zyd # ZyDAS zb1211/zb1211b wireless NICs

View file

@ -348,6 +348,7 @@ static device_method_t legacy_pcib_methods[] = {
DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar),
DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar),
DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource),
DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource),
DEVMETHOD(bus_release_resource, bus_generic_release_resource),
DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),

View file

@ -1940,6 +1940,8 @@ device xmphy # XaQti XMAC II
# lge: Support for PCI gigabit ethernet adapters based on the Level 1
# LXT1001 NetCellerator chipset. This includes the D-Link DGE-500SX,
# SMC TigerCard 1000 (SMC9462SX), and some Addtron cards.
# malo: Marvell Libertas wireless NICs.
# mwl: Marvell 88W8363 802.11n wireless NICs.
# msk: Support for gigabit ethernet adapters based on the Marvell/SysKonnect
# Yukon II Gigabit controllers, including 88E8021, 88E8022, 88E8061,
# 88E8062, 88E8035, 88E8036, 88E8038, 88E8050, 88E8052, 88E8053,
@ -2131,6 +2133,8 @@ options AH_RXCFG_SDMAMW_4BYTES
device ath_rate_sample # SampleRate tx rate control for ath
device bwi # Broadcom BCM430* BCM431*
device bwn # Broadcom BCM43xx
device malo # Marvell Libertas wireless NICs.
device mwl # Marvell 88W8363 802.11n wireless NICs.
device ral # Ralink Technology RT2500 wireless NICs.
# Use "private" jumbo buffers allocated exclusively for the ti(4) driver.
@ -2727,6 +2731,9 @@ device run
# Atheros AR5523 wireless driver
device uath
#
# Conexant/Intersil PrismGT wireless driver
device upgt
#
# Ralink Technology RT2500USB wireless driver
device ural
#

View file

@ -1995,6 +1995,7 @@ dev/wi/if_wi.c optional wi
dev/wi/if_wi_pccard.c optional wi pccard
dev/wi/if_wi_pci.c optional wi pci
dev/wl/if_wl.c optional wl isa
dev/wpi/if_wpi.c optional wpi pci
wpifw.c optional wpifw \
compile-with "${AWK} -f $S/tools/fw_stub.awk wpi.fw:wpifw:153229 -mwpi -c${.TARGET}" \
no-implicit-rule before-depend local \

View file

@ -3,24 +3,25 @@
#
# Warning flags for compiling the kernel and components of the kernel.
#
# Note that the newly added -Wcast-qual is responsible for generating
# Note that the newly added -Wcast-qual is responsible for generating
# most of the remaining warnings. Warnings introduced with -Wall will
# also pop up, but are easier to fix.
CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \
-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \
-Wundef -Wno-pointer-sign -fformat-extensions
-Wundef -Wno-pointer-sign -fformat-extensions \
-Wmissing-include-dirs
#
# The following flags are next up for working on:
# -W
# -Wextra
#
# On the i386, do not align the stack to 16-byte boundaries. Otherwise GCC
# 2.95 adds code to the entry and exit point of every function to align the
# On i386, do not align the stack to 16-byte boundaries. Otherwise GCC 2.95
# and above adds code to the entry and exit point of every function to align the
# stack to 16-byte boundaries -- thus wasting approximately 12 bytes of stack
# per function call. While the 16-byte alignment may benefit micro benchmarks,
# per function call. While the 16-byte alignment may benefit micro benchmarks,
# it is probably an overall loss as it makes the code bigger (less efficient
# use of code cache tag lines) and uses more stack (less efficient use of data
# cache tag lines). Explicitly prohibit the use of SSE and other SIMD
# cache tag lines). Explicitly prohibit the use of FPU, SSE and other SIMD
# operations inside the kernel itself. These operations are exclusively
# reserved for user applications.
#
@ -35,6 +36,7 @@ INLINE_LIMIT?= 8000
.if ${MACHINE_CPUARCH} == "arm"
INLINE_LIMIT?= 8000
.endif
#
# For IA-64, we use r13 for the kernel globals pointer and we only use
# a very small subset of float registers for integer divides.
@ -98,7 +100,7 @@ INLINE_LIMIT?= 8000
CFLAGS+= -ffreestanding
#
# GCC SSP support.
# GCC SSP support
#
.if ${MK_SSP} != "no" && ${MACHINE_CPUARCH} != "ia64" && \
${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
@ -106,9 +108,8 @@ CFLAGS+= -fstack-protector
.endif
#
# Enable CTF conversation on request.
# Enable CTF conversation on request
#
.if defined(WITH_CTF)
.undef NO_CTF
.endif

View file

@ -775,6 +775,8 @@ ATH_ENABLE_11N opt_ah.h
# options for the Atheros hal
AH_SUPPORT_AR5416 opt_ah.h
# XXX For now, this breaks non-AR9130 chipsets, so only use it
# XXX when actually targetting AR9130.
AH_SUPPORT_AR9130 opt_ah.h
AH_DEBUG opt_ah.h
@ -791,6 +793,7 @@ AH_MAXCHAN opt_ah.h
AH_RXCFG_SDMAMW_4BYTES opt_ah.h
# AR5416 and later interrupt mitigation
# XXX do not use this for AR9130
AH_AR5416_INTERRUPT_MITIGATION opt_ah.h
# options for the Broadcom BCM43xx driver (bwi)

View file

@ -100,6 +100,7 @@ static device_method_t acpi_pcib_acpi_methods[] = {
DEVMETHOD(bus_read_ivar, acpi_pcib_read_ivar),
DEVMETHOD(bus_write_ivar, acpi_pcib_write_ivar),
DEVMETHOD(bus_alloc_resource, acpi_pcib_acpi_alloc_resource),
DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource),
DEVMETHOD(bus_release_resource, bus_generic_release_resource),
DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),

View file

@ -142,6 +142,7 @@ static device_method_t pci_methods[] = {
DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource),
DEVMETHOD(bus_delete_resource, pci_delete_resource),
DEVMETHOD(bus_alloc_resource, pci_alloc_resource),
DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource),
DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource),
DEVMETHOD(bus_activate_resource, pci_activate_resource),
DEVMETHOD(bus_deactivate_resource, pci_deactivate_resource),

View file

@ -73,6 +73,7 @@ static device_method_t pcib_methods[] = {
DEVMETHOD(bus_read_ivar, pcib_read_ivar),
DEVMETHOD(bus_write_ivar, pcib_write_ivar),
DEVMETHOD(bus_alloc_resource, pcib_alloc_resource),
DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource),
DEVMETHOD(bus_release_resource, bus_generic_release_resource),
DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),

View file

@ -2298,7 +2298,7 @@ wpi_mrr_setup(struct wpi_softc *sc)
}
/* setup MRR for control frames */
mrr.which = htole32(WPI_MRR_CTL);
mrr.which = WPI_MRR_CTL;
error = wpi_cmd(sc, WPI_CMD_MRR_SETUP, &mrr, sizeof mrr, 0);
if (error != 0) {
device_printf(sc->sc_dev,
@ -2307,7 +2307,7 @@ wpi_mrr_setup(struct wpi_softc *sc)
}
/* setup MRR for data frames */
mrr.which = htole32(WPI_MRR_DATA);
mrr.which = WPI_MRR_DATA;
error = wpi_cmd(sc, WPI_CMD_MRR_SETUP, &mrr, sizeof mrr, 0);
if (error != 0) {
device_printf(sc->sc_dev,

View file

@ -404,6 +404,8 @@ nfssvc_call(struct thread *p, struct nfssvc_args *uap, struct ucred *cred)
} else if (uap->flag & NFSSVC_GETSTATS) {
error = copyout(&newnfsstats,
CAST_USER_ADDR_T(uap->argp), sizeof (newnfsstats));
if ((uap->flag & NFSSVC_ZEROSTATS) != 0 && error == 0)
bzero(&newnfsstats, sizeof(newnfsstats));
return (error);
} else if (uap->flag & NFSSVC_NFSUSERDPORT) {
u_short sockport;

View file

@ -273,9 +273,17 @@ device ath_pci # Atheros pci/cardbus glue
device ath_hal # pci/cardbus chip support
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample # SampleRate tx rate control for ath
#device bwi # Broadcom BCM430x/BCM431x wireless NICs.
#device bwn # Broadcom BCM43xx wireless NICs.
device ipw # Intel 2100 wireless NICs.
device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs.
device iwn # Intel 4965/1000/5000/6000 wireless NICs.
device malo # Marvell Libertas wireless NICs.
device mwl # Marvell 88W8363 802.11n wireless NICs.
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.
device wpi # Intel 3945ABG wireless NICs.
# Pseudo devices.
device loop # Network loopback
@ -327,7 +335,9 @@ device rue # RealTek RTL8150 USB Ethernet
device udav # Davicom DM9601E USB
# USB Wireless
device rum # Ralink Technology RT2501USB wireless NICs
device run # Ralink Technology RT2700/RT2800/RT3000 NICs.
device uath # Atheros AR5523 wireless NICs
device upgt # Conexant/Intersil PrismGT wireless NICs.
device ural # Ralink Technology RT2500USB wireless NICs
device urtw # Realtek RTL8187B/L wireless NICs
device zyd # ZyDAS zb1211/zb1211b wireless NICs

View file

@ -565,6 +565,7 @@ static device_method_t legacy_pcib_methods[] = {
DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar),
DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar),
DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource),
DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource),
DEVMETHOD(bus_release_resource, bus_generic_release_resource),
DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),

View file

@ -57,8 +57,7 @@ __FBSDID("$FreeBSD$");
#include <mips/atheros/ar71xxreg.h>
#include <mips/atheros/ar724xreg.h>
#include <mips/atheros/ar71xx_setup.h>
#include <mips/atheros/ar71xx_pci_bus_space.h> /* XXX */
#include <mips/atheros/ar71xx_bus_space_reversed.h> /* XXX */
#include <mips/atheros/ar71xx_pci_bus_space.h>
#include <mips/atheros/ar71xx_cpudef.h>
@ -113,7 +112,7 @@ static uint32_t
ar724x_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func,
u_int reg, int bytes)
{
uint32_t cmd, data, shift, mask;
uint32_t data, shift, mask;
/* Register access is 32-bit aligned */
shift = (reg & 3) * 8;
@ -125,18 +124,9 @@ ar724x_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func,
dprintf("%s: tag (%x, %x, %x) reg %d(%d)\n", __func__, bus, slot,
func, reg, bytes);
if ((bus == 0) && (slot == 0) && (func == 0)) {
if ((bus == 0) && (slot == 0) && (func == 0))
data = ATH_READ_REG(AR724X_PCI_CFG_BASE + (reg & ~3));
/*
* WAR for BAR issue - We are unable to access the PCI device
* space if we set the BAR with proper base address.
*/
if (reg == PCIR_BAR(0) && bytes == 4) {
cmd = (ar71xx_soc == AR71XX_SOC_AR7240) ?
0xffff : 0x1000ffff;
ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, cmd, bytes);
}
} else
else
data = -1;
/* Get request bytes from 32-bit word */
@ -158,14 +148,14 @@ ar724x_pci_write_config(device_t dev, u_int bus, u_int slot, u_int func,
if ((bus != 0) || (slot != 0) || (func != 0))
return;
ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, data, bytes);
/*
* WAR for BAR issue - We are unable to access the PCI device space
* if we set the BAR with proper base address.
* Force a flush here (at register writing).
* WAR for BAR issue on AR7240 - We are unable to access the PCI device
* space if we set the BAR with proper base address.
*/
if (reg == PCIR_BAR(0) && bytes == 4)
(void)ar724x_pci_read_config(dev, bus, slot, func, reg, bytes);
if (reg == PCIR_BAR(0) && bytes == 4 && ar71xx_soc == AR71XX_SOC_AR7240)
ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, 0xffff, bytes);
else
ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, data, bytes);
}
static void
@ -232,6 +222,9 @@ ar724x_pci_setup(device_t dev)
else
reg = 0x1ffc1;
ATH_WRITE_REG(AR724X_PCI_APP, reg);
/* Flush write */
(void) ATH_READ_REG(AR724X_PCI_APP);
DELAY(1000);
reg = ATH_READ_REG(AR724X_PCI_RESET);
@ -457,10 +450,7 @@ ar724x_pci_activate_resource(device_t bus, device_t child, int type, int rid,
case SYS_RES_MEMORY:
case SYS_RES_IOPORT:
/* XXX */
//rman_set_bustag(r, ar71xx_bus_space_pcimem);
//rman_set_bustag(r, mips_bus_space_generic);
rman_set_bustag(r, ar71xx_bus_space_reversed);
rman_set_bustag(r, ar71xx_bus_space_pcimem);
break;
}
}

View file

@ -30,7 +30,11 @@ hint.arge.0.at="nexus0"
hint.arge.0.maddr=0x19000000
hint.arge.0.msize=0x1000
hint.arge.0.irq=2
hint.arge.0.phymask=0x1
# AR8316 workaround for now
hint.arge.0.media=1000
hint.arge.0.fduplex=1
hint.arge.0.phymask=0x3
# GPIO
hint.gpio.0.at="apb0"

View file

@ -64,5 +64,6 @@
#define NFSSVC_CBADDSOCK 0x00200000
#define NFSSVC_GETSTATS 0x00400000
#define NFSSVC_BACKUPSTABLE 0x00800000
#define NFSSVC_ZEROSTATS 0x01000000 /* modifier for GETSTATS */
#endif /* _NFS_NFSSVC_H */

View file

@ -116,6 +116,7 @@ static device_method_t mptable_hostb_methods[] = {
DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar),
DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar),
DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource),
DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource),
DEVMETHOD(bus_release_resource, bus_generic_release_resource),
DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),

View file

@ -100,6 +100,8 @@ static device_t nexus_add_child(device_t bus, u_int order, const char *name,
int unit);
static struct resource *nexus_alloc_resource(device_t, device_t, int, int *,
u_long, u_long, u_long, u_int);
static int nexus_adjust_resource(device_t, device_t, int, struct resource *,
u_long, u_long);
#ifdef SMP
static int nexus_bind_intr(device_t, device_t, struct resource *, int);
#endif
@ -144,6 +146,7 @@ static device_method_t nexus_methods[] = {
DEVMETHOD(bus_print_child, nexus_print_child),
DEVMETHOD(bus_add_child, nexus_add_child),
DEVMETHOD(bus_alloc_resource, nexus_alloc_resource),
DEVMETHOD(bus_adjust_resource, nexus_adjust_resource),
DEVMETHOD(bus_release_resource, nexus_release_resource),
DEVMETHOD(bus_activate_resource, nexus_activate_resource),
DEVMETHOD(bus_deactivate_resource, nexus_deactivate_resource),
@ -332,6 +335,23 @@ nexus_add_child(device_t bus, u_int order, const char *name, int unit)
return(child);
}
static struct rman *
nexus_rman(int type)
{
switch (type) {
case SYS_RES_IRQ:
return (&irq_rman);
case SYS_RES_DRQ:
return (&drq_rman);
case SYS_RES_IOPORT:
return (&port_rman);
case SYS_RES_MEMORY:
return (&mem_rman);
default:
return (NULL);
}
}
/*
* Allocate a resource on behalf of child. NB: child is usually going to be a
* child of one of our descendants, not a direct child of nexus0.
@ -364,27 +384,9 @@ nexus_alloc_resource(device_t bus, device_t child, int type, int *rid,
}
flags &= ~RF_ACTIVE;
switch (type) {
case SYS_RES_IRQ:
rm = &irq_rman;
break;
case SYS_RES_DRQ:
rm = &drq_rman;
break;
case SYS_RES_IOPORT:
rm = &port_rman;
break;
case SYS_RES_MEMORY:
rm = &mem_rman;
break;
default:
return 0;
}
rm = nexus_rman(type);
if (rm == NULL)
return (NULL);
rv = rman_reserve_resource(rm, start, end, count, flags, child);
if (rv == 0)
@ -401,6 +403,20 @@ nexus_alloc_resource(device_t bus, device_t child, int type, int *rid,
return rv;
}
static int
nexus_adjust_resource(device_t bus, device_t child, int type,
struct resource *r, u_long start, u_long end)
{
struct rman *rm;
rm = nexus_rman(type);
if (rm == NULL)
return (ENXIO);
if (!rman_is_region_manager(r, rm))
return (EINVAL);
return (rman_adjust_resource(r, start, end));
}
static int
nexus_activate_resource(device_t bus, device_t child, int type, int rid,
struct resource *r)

View file

@ -889,16 +889,18 @@ do_whatis() {
search_whatis whatis "$@"
}
EQN=/usr/bin/eqn
# User's PATH setting decides on the groff-suite to pick up.
EQN=eqn
NROFF='groff -S -P-c -Wall -mtty-char -man'
PIC=pic
REFER=refer
TBL=tbl
TROFF='groff -S -P-c -man'
VGRIND=vgrind
COL=/usr/bin/col
LOCALE=/usr/bin/locale
NROFF='/usr/bin/groff -S -Wall -mtty-char -man'
PIC=/usr/bin/pic
SYSCTL=/sbin/sysctl
TBL=/usr/bin/tbl
TROFF='/usr/bin/groff -S -man'
REFER=/usr/bin/refer
VGRIND=/usr/bin/vgrind
debug=0
man_default_sections='1:1aout:8:2:3:n:4:5:6:7:9:l'

View file

@ -28,7 +28,7 @@
.\" From: @(#)nfsstat.1 8.1 (Berkeley) 6/6/93
.\" $FreeBSD$
.\"
.Dd October 18, 2007
.Dd May 1, 2011
.Dt NFSSTAT 1
.Os
.Sh NAME
@ -78,7 +78,6 @@ activity for both the client and server at
second intervals.
.It Fl z
Reset statistics after displaying them.
(Not currently supported by the experimental nfs subsystem.)
.It Fl e
Gather statistics from the experimental nfs subsystem that includes
support for NFSv4 instead of the regular nfs subsystem.

View file

@ -85,6 +85,7 @@ static int zflag = 0;
static int run_v4 = 0;
static int printtitle = 1;
static struct ext_nfsstats ext_nfsstats;
static int nfssvc_flag;
void intpr(int, int);
void printhdr(int, int);
@ -107,6 +108,7 @@ main(int argc, char **argv)
char *memf, *nlistf;
char errbuf[_POSIX2_LINE_MAX];
nfssvc_flag = NFSSVC_GETSTATS;
interval = 0;
memf = nlistf = NULL;
while ((ch = getopt(argc, argv, "cesWM:N:w:z")) != -1)
@ -135,6 +137,7 @@ main(int argc, char **argv)
break;
case 'z':
zflag = 1;
nfssvc_flag |= NFSSVC_ZEROSTATS;
break;
case 'e':
run_v4 = 1;
@ -161,7 +164,7 @@ main(int argc, char **argv)
errx(1, "experimental client/server not loaded");
if (run_v4 != 0) {
if (nfssvc(NFSSVC_GETSTATS, &ext_nfsstats) < 0)
if (nfssvc(nfssvc_flag, &ext_nfsstats) < 0)
err(1, "Can't get stats");
} else if (nlistf != NULL || memf != NULL) {
deadkernel = 1;
@ -793,13 +796,13 @@ exp_sidewaysintpr(u_int interval, int clientOnly, int serverOnly)
int hdrcnt = 1;
ext_nfsstatsp = &lastst;
if (nfssvc(NFSSVC_GETSTATS, ext_nfsstatsp) < 0)
if (nfssvc(nfssvc_flag, ext_nfsstatsp) < 0)
err(1, "Can't get stats");
sleep(interval);
for (;;) {
ext_nfsstatsp = &nfsstats;
if (nfssvc(NFSSVC_GETSTATS, ext_nfsstatsp) < 0)
if (nfssvc(nfssvc_flag, ext_nfsstatsp) < 0)
err(1, "Can't get stats");
if (--hdrcnt == 0) {