mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
MFC @ r221324
This commit is contained in:
commit
7be8a2de4f
27 changed files with 173 additions and 102 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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, §orsize);
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
------------------------
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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
|
||||
#
|
||||
|
|
|
|||
|
|
@ -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 \
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue