svn commit: r188317 - in user/thompsa/usb: . contrib/wpa_supplicant
etc/rc.d lib/libc/net lib/libc/stdlib lib/libc/string
lib/libc_r/uthread lib/msun/src sbin sbin/ifconfig sbin/ipfw
sbin/mount_nfs...
Andrew Thompson
thompsa at FreeBSD.org
Sun Feb 8 09:49:34 PST 2009
Author: thompsa
Date: Sun Feb 8 17:49:32 2009
New Revision: 188317
URL: http://svn.freebsd.org/changeset/base/188317
Log:
MFH r188181-188316
Added:
user/thompsa/usb/sys/netinet/libalias/alias_sctp.c
- copied unchanged from r188316, head/sys/netinet/libalias/alias_sctp.c
user/thompsa/usb/sys/netinet/libalias/alias_sctp.h
- copied unchanged from r188316, head/sys/netinet/libalias/alias_sctp.h
Modified:
user/thompsa/usb/ (props changed)
user/thompsa/usb/UPDATING
user/thompsa/usb/contrib/wpa_supplicant/ (props changed)
user/thompsa/usb/etc/rc.d/named
user/thompsa/usb/lib/libc/net/getaddrinfo.c
user/thompsa/usb/lib/libc/net/gethostbydns.c
user/thompsa/usb/lib/libc/stdlib/atol.3
user/thompsa/usb/lib/libc/string/memchr.c
user/thompsa/usb/lib/libc_r/uthread/uthread_init.c
user/thompsa/usb/lib/msun/src/math.h
user/thompsa/usb/sbin/ (props changed)
user/thompsa/usb/sbin/ifconfig/ifieee80211.c
user/thompsa/usb/sbin/ifconfig/regdomain.c
user/thompsa/usb/sbin/ifconfig/regdomain.h
user/thompsa/usb/sbin/ipfw/ipfw.8
user/thompsa/usb/sbin/ipfw/nat.c
user/thompsa/usb/sbin/mount_nfs/mount_nfs.c
user/thompsa/usb/share/man/man4/rum.4
user/thompsa/usb/share/man/man4/smb.4
user/thompsa/usb/sys/ (props changed)
user/thompsa/usb/sys/amd64/conf/NOTES
user/thompsa/usb/sys/amd64/include/legacyvar.h
user/thompsa/usb/sys/amd64/pci/pci_bus.c
user/thompsa/usb/sys/arm/arm/cpufunc_asm_sheeva.S (props changed)
user/thompsa/usb/sys/conf/NOTES
user/thompsa/usb/sys/conf/files
user/thompsa/usb/sys/conf/options
user/thompsa/usb/sys/conf/options.amd64
user/thompsa/usb/sys/conf/options.i386
user/thompsa/usb/sys/conf/options.ia64
user/thompsa/usb/sys/conf/options.mips
user/thompsa/usb/sys/conf/options.pc98
user/thompsa/usb/sys/contrib/pf/ (props changed)
user/thompsa/usb/sys/dev/agp/agp.c
user/thompsa/usb/sys/dev/ath/ath_hal/ah_regdomain.c
user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212.h
user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c
user/thompsa/usb/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c
user/thompsa/usb/sys/dev/ath/if_ath.c
user/thompsa/usb/sys/dev/ath/if_athioctl.h
user/thompsa/usb/sys/dev/cardbus/cardbus_device.c
user/thompsa/usb/sys/dev/cfi/cfi_core.c
user/thompsa/usb/sys/dev/exca/exca.c
user/thompsa/usb/sys/dev/pccard/pccard.c
user/thompsa/usb/sys/dev/pccard/pccard_cis.c
user/thompsa/usb/sys/dev/pccard/pccardvarp.h
user/thompsa/usb/sys/dev/si/si.c
user/thompsa/usb/sys/dev/sound/macio/aoa.c
user/thompsa/usb/sys/dev/sound/macio/aoa.h
user/thompsa/usb/sys/dev/sound/macio/davbus.c
user/thompsa/usb/sys/dev/sound/macio/i2s.c
user/thompsa/usb/sys/dev/sound/macio/snapper.c
user/thompsa/usb/sys/dev/sound/macio/tumbler.c
user/thompsa/usb/sys/dev/usb/ehci_ixp4xx.c (props changed)
user/thompsa/usb/sys/dev/usb/if_rum.c
user/thompsa/usb/sys/dev/usb/if_urtw.c
user/thompsa/usb/sys/dev/usb/usbdevs
user/thompsa/usb/sys/dev/usb2/controller/ehci2.c
user/thompsa/usb/sys/dev/usb2/controller/ohci2.c
user/thompsa/usb/sys/dev/usb2/controller/uhci2.c
user/thompsa/usb/sys/dev/usb2/include/usb2_devid.h
user/thompsa/usb/sys/dev/usb2/include/usb2_devtable.h
user/thompsa/usb/sys/dev/xen/netfront/netfront.c
user/thompsa/usb/sys/fs/fifofs/fifo_vnops.c
user/thompsa/usb/sys/fs/udf/ecma167-udf.h
user/thompsa/usb/sys/fs/udf/udf.h
user/thompsa/usb/sys/fs/udf/udf_vfsops.c
user/thompsa/usb/sys/fs/udf/udf_vnops.c
user/thompsa/usb/sys/geom/part/g_part_bsd.c
user/thompsa/usb/sys/geom/part/g_part_mbr.c
user/thompsa/usb/sys/i386/conf/NOTES
user/thompsa/usb/sys/i386/i386/vm_machdep.c
user/thompsa/usb/sys/ia64/conf/NOTES
user/thompsa/usb/sys/kern/kern_linker.c
user/thompsa/usb/sys/kern/kern_lock.c
user/thompsa/usb/sys/kern/kern_sysctl.c
user/thompsa/usb/sys/kern/vfs_bio.c
user/thompsa/usb/sys/kern/vfs_init.c
user/thompsa/usb/sys/kern/vfs_subr.c
user/thompsa/usb/sys/mips/mips/busdma_machdep.c
user/thompsa/usb/sys/mips/mips/elf64_machdep.c (props changed)
user/thompsa/usb/sys/modules/libalias/libalias/Makefile
user/thompsa/usb/sys/modules/usb2/controller_atmegadci/ (props changed)
user/thompsa/usb/sys/net80211/ieee80211_ddb.c
user/thompsa/usb/sys/netinet/ip_fw_nat.c
user/thompsa/usb/sys/netinet/ip_ipsec.c
user/thompsa/usb/sys/netinet/ip_output.c
user/thompsa/usb/sys/netinet/libalias/alias.c
user/thompsa/usb/sys/netinet/libalias/alias_db.c
user/thompsa/usb/sys/netinet/libalias/alias_local.h
user/thompsa/usb/sys/netinet/sctp_crc32.c
user/thompsa/usb/sys/netinet/sctp_crc32.h
user/thompsa/usb/sys/netinet/tcp_subr.c
user/thompsa/usb/sys/netinet6/ip6_forward.c
user/thompsa/usb/sys/netinet6/ip6_ipsec.c
user/thompsa/usb/sys/netinet6/ip6_output.c
user/thompsa/usb/sys/netipsec/ipsec.c
user/thompsa/usb/sys/netipsec/ipsec.h
user/thompsa/usb/sys/netipsec/ipsec6.h
user/thompsa/usb/sys/nfsserver/nfs_syscalls.c
user/thompsa/usb/sys/pc98/conf/NOTES
user/thompsa/usb/sys/security/audit/audit_bsm.c
user/thompsa/usb/sys/security/audit/audit_bsm_klib.c
user/thompsa/usb/sys/security/audit/audit_pipe.c
user/thompsa/usb/sys/security/audit/audit_private.h
user/thompsa/usb/sys/sys/mount.h
user/thompsa/usb/sys/sys/sysctl.h
user/thompsa/usb/sys/ufs/ffs/ffs_alloc.c
user/thompsa/usb/tools/tools/ath/athstats/athstats.c
user/thompsa/usb/tools/tools/ath/athstats/main.c
user/thompsa/usb/tools/tools/net80211/wlanstats/main.c
user/thompsa/usb/tools/tools/net80211/wlanstats/wlanstats.c
user/thompsa/usb/usr.sbin/config/main.c
user/thompsa/usb/usr.sbin/makefs/ffs/ffs_bswap.c (props changed)
user/thompsa/usb/usr.sbin/makefs/ffs/ffs_subr.c (props changed)
user/thompsa/usb/usr.sbin/makefs/ffs/ufs_bswap.h (props changed)
user/thompsa/usb/usr.sbin/makefs/getid.c (props changed)
Modified: user/thompsa/usb/UPDATING
==============================================================================
--- user/thompsa/usb/UPDATING Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/UPDATING Sun Feb 8 17:49:32 2009 (r188317)
@@ -22,6 +22,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
+20090203:
+ The ichsmb(4) driver has been changed to require SMBus slave
+ addresses be left-justified (xxxxxxx0b) rather than right-justified.
+ All of the other SMBus controller drivers require left-justified
+ slave addresses, so this change makes all the drivers provide the
+ same interface.
+
20090201:
INET6 statistics (struct ip6stat) was updated.
netstat(1) needs to be recompiled.
Modified: user/thompsa/usb/etc/rc.d/named
==============================================================================
--- user/thompsa/usb/etc/rc.d/named Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/etc/rc.d/named Sun Feb 8 17:49:32 2009 (r188317)
@@ -61,10 +61,23 @@ chroot_autoupdate()
# Mount a devfs in the chroot directory if needed
#
- umount ${named_chrootdir}/dev 2>/dev/null
- devfs_domount ${named_chrootdir}/dev devfsrules_hide_all
- devfs -m ${named_chrootdir}/dev rule apply path null unhide
- devfs -m ${named_chrootdir}/dev rule apply path random unhide
+ if [ `${SYSCTL_N} security.jail.jailed` -eq 0 ]; then
+ umount ${named_chrootdir}/dev 2>/dev/null
+ devfs_domount ${named_chrootdir}/dev devfsrules_hide_all
+ devfs -m ${named_chrootdir}/dev rule apply path null unhide
+ devfs -m ${named_chrootdir}/dev rule apply path random unhide
+ else
+ if [ -c ${named_chrootdir}/dev/null -a \
+ -c ${named_chrootdir}/dev/random ]; then
+ info "named chroot: using pre-mounted devfs."
+ else
+ err 1 "named chroot: devfs cannot be mounted from" \
+ "within a jail. Thus a chrooted named cannot" \
+ "be run from within a jail." \
+ "To run named without chrooting it, set" \
+ "named_chrootdir=\"\" in /etc/rc.conf."
+ fi
+ fi
# Copy and/or update key files to the chroot /etc
#
@@ -113,7 +126,12 @@ named_stop()
named_poststop()
{
if [ -n "${named_chrootdir}" -a -c ${named_chrootdir}/dev/null ]; then
- umount ${named_chrootdir}/dev 2>/dev/null || true
+ if [ `${SYSCTL_N} security.jail.jailed` -eq 0 ]; then
+ umount ${named_chrootdir}/dev 2>/dev/null || true
+ else
+ warn "named chroot:" \
+ "cannot unmount devfs from inside jail!"
+ fi
fi
}
Modified: user/thompsa/usb/lib/libc/net/getaddrinfo.c
==============================================================================
--- user/thompsa/usb/lib/libc/net/getaddrinfo.c Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/lib/libc/net/getaddrinfo.c Sun Feb 8 17:49:32 2009 (r188317)
@@ -1863,7 +1863,8 @@ getanswer(const querybuf *answer, int an
}
} else if (type != qtype) {
#ifdef DEBUG
- if (type != T_KEY && type != T_SIG)
+ if (type != T_KEY && type != T_SIG &&
+ type != ns_t_dname)
syslog(LOG_NOTICE|LOG_AUTH,
"gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"",
qname, p_class(C_IN), p_type(qtype),
Modified: user/thompsa/usb/lib/libc/net/gethostbydns.c
==============================================================================
--- user/thompsa/usb/lib/libc/net/gethostbydns.c Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/lib/libc/net/gethostbydns.c Sun Feb 8 17:49:32 2009 (r188317)
@@ -294,7 +294,7 @@ gethostanswer(const querybuf *answer, in
continue;
}
if (type != qtype) {
- if (type != T_SIG)
+ if (type != T_SIG && type != ns_t_dname)
syslog(LOG_NOTICE|LOG_AUTH,
"gethostby*.gethostanswer: asked for \"%s %s %s\", got type \"%s\"",
qname, p_class(C_IN), p_type(qtype),
Modified: user/thompsa/usb/lib/libc/stdlib/atol.3
==============================================================================
--- user/thompsa/usb/lib/libc/stdlib/atol.3 Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/lib/libc/stdlib/atol.3 Sun Feb 8 17:49:32 2009 (r188317)
@@ -32,7 +32,7 @@
.\" @(#)atol.3 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
-.Dd November 28, 2001
+.Dd February 1, 2009
.Dt ATOL 3
.Os
.Sh NAME
@@ -78,13 +78,42 @@ representation.
It is equivalent to:
.Pp
.Dl "strtoll(nptr, (char **)NULL, 10);"
+.Sh COMPATIBILITY
+The
+.Fx
+implementations of the
+.Fn atol
+and
+.Fn atoll
+functions are thin wrappers around
+.Fn strtol
+and
+.Fn stroll
+respectively, so these functions will affect the value of
+.Va errno
+in the same way that the
+.Fn strtol
+and
+.Fn stroll
+functions are able to.
+This behavior of
+.Fn atol
+and
+.Fn atoll
+is not required by
+.St -isoC
+or
+.St -isoC-c99 ,
+but it is allowed by all of
+.St -isoC , St -isoC-99
+and
+.St -p1003.1-2001 .
.Sh ERRORS
The functions
.Fn atol
and
.Fn atoll
-need not
-affect the value of
+may affect the value of
.Va errno
on an error.
.Sh SEE ALSO
Modified: user/thompsa/usb/lib/libc/string/memchr.c
==============================================================================
--- user/thompsa/usb/lib/libc/string/memchr.c Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/lib/libc/string/memchr.c Sun Feb 8 17:49:32 2009 (r188317)
@@ -45,7 +45,7 @@ memchr(const void *s, int c, size_t n)
const unsigned char *p = s;
do {
- if (*p++ == c)
+ if (*p++ == (unsigned char)c)
return ((void *)(p - 1));
} while (--n != 0);
}
Modified: user/thompsa/usb/lib/libc_r/uthread/uthread_init.c
==============================================================================
--- user/thompsa/usb/lib/libc_r/uthread/uthread_init.c Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/lib/libc_r/uthread/uthread_init.c Sun Feb 8 17:49:32 2009 (r188317)
@@ -95,6 +95,7 @@ static void *references[] = {
&_getsockopt,
&_ioctl,
&_kevent,
+ &_kqueue,
&_listen,
&_nanosleep,
&_open,
Modified: user/thompsa/usb/lib/msun/src/math.h
==============================================================================
--- user/thompsa/usb/lib/msun/src/math.h Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/lib/msun/src/math.h Sun Feb 8 17:49:32 2009 (r188317)
@@ -70,12 +70,12 @@ extern const union __nan_un {
/* XXX We need a <machine/math.h>. */
#if defined(__ia64__) || defined(__sparc64__)
-#define FP_FAST_FMA
+#define FP_FAST_FMA 1
#endif
#ifdef __ia64__
-#define FP_FAST_FMAL
+#define FP_FAST_FMAL 1
#endif
-#define FP_FAST_FMAF
+#define FP_FAST_FMAF 1
/* Symbolic constants to classify floating point numbers. */
#define FP_INFINITE 0x01
Modified: user/thompsa/usb/sbin/ifconfig/ifieee80211.c
==============================================================================
--- user/thompsa/usb/sbin/ifconfig/ifieee80211.c Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sbin/ifconfig/ifieee80211.c Sun Feb 8 17:49:32 2009 (r188317)
@@ -99,10 +99,6 @@
#define IEEE80211_FIXED_RATE_NONE 0xff
#endif
-#define REQ_ECM 0x01000000 /* enable if ECM set */
-#define REQ_OUTDOOR 0x02000000 /* enable for outdoor operation */
-#define REQ_FLAGS 0xff000000 /* private flags, don't pass to os */
-
/* XXX need these publicly defined or similar */
#ifndef IEEE80211_NODE_AUTH
#define IEEE80211_NODE_AUTH 0x0001 /* authorized for data */
@@ -1802,6 +1798,57 @@ chanfind(const struct ieee80211_channel
return 0;
}
+/*
+ * Check channel compatibility.
+ */
+static int
+checkchan(const struct ieee80211req_chaninfo *avail, int freq, int flags)
+{
+ flags &= ~REQ_FLAGS;
+ /*
+ * Check if exact channel is in the calibration table;
+ * everything below is to deal with channels that we
+ * want to include but that are not explicitly listed.
+ */
+ if (flags & IEEE80211_CHAN_HT40) {
+ /* NB: we use an HT40 channel center that matches HT20 */
+ flags = (flags &~ IEEE80211_CHAN_HT40) | IEEE80211_CHAN_HT20;
+ }
+ if (chanlookup(avail->ic_chans, avail->ic_nchans, freq, flags) != NULL)
+ return 1;
+ if (flags & IEEE80211_CHAN_GSM) {
+ /*
+ * XXX GSM frequency mapping is handled in the kernel
+ * so we cannot find them in the calibration table;
+ * just accept the channel and the kernel will reject
+ * the channel list if it's wrong.
+ */
+ return 1;
+ }
+ /*
+ * If this is a 1/2 or 1/4 width channel allow it if a full
+ * width channel is present for this frequency, and the device
+ * supports fractional channels on this band. This is a hack
+ * that avoids bloating the calibration table; it may be better
+ * by per-band attributes though (we are effectively calculating
+ * this attribute by scanning the channel list ourself).
+ */
+ if ((flags & (IEEE80211_CHAN_HALF | IEEE80211_CHAN_QUARTER)) == 0)
+ return 0;
+ if (chanlookup(avail->ic_chans, avail->ic_nchans, freq,
+ flags &~ (IEEE80211_CHAN_HALF | IEEE80211_CHAN_QUARTER)) == NULL)
+ return 0;
+ if (flags & IEEE80211_CHAN_HALF) {
+ return chanfind(avail->ic_chans, avail->ic_nchans,
+ IEEE80211_CHAN_HALF |
+ (flags & (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ)));
+ } else {
+ return chanfind(avail->ic_chans, avail->ic_nchans,
+ IEEE80211_CHAN_QUARTER |
+ (flags & (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ)));
+ }
+}
+
static void
regdomain_addchans(struct ieee80211req_chaninfo *ci,
const netband_head *bands,
@@ -1812,15 +1859,12 @@ regdomain_addchans(struct ieee80211req_c
const struct netband *nb;
const struct freqband *b;
struct ieee80211_channel *c, *prev;
- int freq, channelSep, hasHalfChans, hasQuarterChans;
+ int freq, hi_adj, lo_adj, channelSep;
+ uint32_t flags;
+ hi_adj = (chanFlags & IEEE80211_CHAN_HT40U) ? -20 : 0;
+ lo_adj = (chanFlags & IEEE80211_CHAN_HT40D) ? 20 : 0;
channelSep = (chanFlags & IEEE80211_CHAN_2GHZ) ? 0 : 40;
- hasHalfChans = chanfind(avail->ic_chans, avail->ic_nchans,
- IEEE80211_CHAN_HALF |
- (chanFlags & (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ)));
- hasQuarterChans = chanfind(avail->ic_chans, avail->ic_nchans,
- IEEE80211_CHAN_QUARTER |
- (chanFlags & (IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_5GHZ)));
LIST_FOREACH(nb, bands, next) {
b = nb->band;
if (verbose) {
@@ -1831,63 +1875,80 @@ regdomain_addchans(struct ieee80211req_c
putchar('\n');
}
prev = NULL;
- for (freq = b->freqStart; freq <= b->freqEnd; freq += b->chanSep) {
- uint32_t flags = nb->flags | b->flags;
-
- /* check if device can operate on this frequency */
+ for (freq = b->freqStart + lo_adj;
+ freq <= b->freqEnd + hi_adj; freq += b->chanSep) {
+ /*
+ * Construct flags for the new channel. We take
+ * the attributes from the band descriptions except
+ * for HT40 which is enabled generically (i.e. +/-
+ * extension channel) in the band description and
+ * then constrained according by channel separation.
+ */
+ flags = nb->flags | b->flags;
+ if (flags & IEEE80211_CHAN_HT) {
+ /*
+ * HT channels are generated specially; we're
+ * called to add HT20, HT40+, and HT40- chan's
+ * so we need to expand only band specs for
+ * the HT channel type being added.
+ */
+ if ((chanFlags & IEEE80211_CHAN_HT20) &&
+ (flags & IEEE80211_CHAN_HT20) == 0) {
+ if (verbose)
+ printf("%u: skip, not an "
+ "HT20 channel\n", freq);
+ continue;
+ }
+ if ((chanFlags & IEEE80211_CHAN_HT40) &&
+ (flags & IEEE80211_CHAN_HT40) == 0) {
+ if (verbose)
+ printf("%u: skip, not an "
+ "HT40 channel\n", freq);
+ continue;
+ }
+ /*
+ * DFS and HT40 don't mix. This should be
+ * expressed in the regdomain database but
+ * just in case enforce it here.
+ */
+ if ((chanFlags & IEEE80211_CHAN_HT40) &&
+ (flags & IEEE80211_CHAN_DFS)) {
+ if (verbose)
+ printf("%u: skip, HT40+DFS "
+ "not permitted\n", freq);
+ continue;
+ }
+ /* NB: HT attribute comes from caller */
+ flags &= ~IEEE80211_CHAN_HT;
+ flags |= chanFlags & IEEE80211_CHAN_HT;
+ }
/*
- * XXX GSM frequency mapping is handled in the kernel
- * so we cannot find them in the calibration table;
- * just construct the list and the kernel will reject
- * if it's wrong.
+ * Check if device can operate on this frequency.
*/
- if (chanlookup(avail->ic_chans, avail->ic_nchans, freq, chanFlags) == NULL &&
- (flags & IEEE80211_CHAN_GSM) == 0) {
+ if (!checkchan(avail, freq, flags)) {
if (verbose) {
printf("%u: skip, ", freq);
- printb("flags", chanFlags,
+ printb("flags", flags,
IEEE80211_CHAN_BITS);
printf(" not available\n");
}
continue;
}
- if ((flags & IEEE80211_CHAN_HALF) && !hasHalfChans) {
+ if ((flags & REQ_ECM) && !reg->ecm) {
if (verbose)
- printf("%u: skip, device does not "
- "support half-rate channel\n",
- freq);
+ printf("%u: skip, ECM channel\n", freq);
continue;
}
- if ((flags & IEEE80211_CHAN_QUARTER) &&
- !hasQuarterChans) {
+ if ((flags & REQ_INDOOR) && reg->location == 'O') {
if (verbose)
- printf("%u: skip, device does not "
- "support quarter-rate channel\n",
+ printf("%u: skip, indoor channel\n",
freq);
continue;
}
- if ((flags & IEEE80211_CHAN_HT20) &&
- (chanFlags & IEEE80211_CHAN_HT20) == 0) {
- if (verbose)
- printf("%u: skip, device does not "
- "support HT20 operation\n", freq);
- continue;
- }
- if ((flags & IEEE80211_CHAN_HT40) &&
- (chanFlags & IEEE80211_CHAN_HT40) == 0) {
- if (verbose)
- printf("%u: skip, device does not "
- "support HT40 operation\n", freq);
- continue;
- }
- if ((flags & REQ_ECM) && !reg->ecm) {
- if (verbose)
- printf("%u: skip, ECM channel\n", freq);
- continue;
- }
if ((flags & REQ_OUTDOOR) && reg->location == 'I') {
if (verbose)
- printf("%u: skip, outdoor channel\n", freq);
+ printf("%u: skip, outdoor channel\n",
+ freq);
continue;
}
if ((flags & IEEE80211_CHAN_HT40) &&
@@ -1907,8 +1968,7 @@ regdomain_addchans(struct ieee80211req_c
c = &ci->ic_chans[ci->ic_nchans++];
memset(c, 0, sizeof(*c));
c->ic_freq = freq;
- c->ic_flags = chanFlags |
- (flags &~ (REQ_FLAGS | IEEE80211_CHAN_HT40));
+ c->ic_flags = flags;
if (c->ic_flags & IEEE80211_CHAN_DFS)
c->ic_maxregpower = nb->maxPowerDFS;
else
@@ -1973,27 +2033,31 @@ regdomain_makechannels(
if (!LIST_EMPTY(&rd->bands_11a))
regdomain_addchans(ci, &rd->bands_11a, reg,
IEEE80211_CHAN_A, &dc->dc_chaninfo);
- if (!LIST_EMPTY(&rd->bands_11na)) {
+ if (!LIST_EMPTY(&rd->bands_11na) && dc->dc_htcaps != 0) {
regdomain_addchans(ci, &rd->bands_11na, reg,
IEEE80211_CHAN_A | IEEE80211_CHAN_HT20,
&dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11na, reg,
- IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U,
- &dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11na, reg,
- IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D,
- &dc->dc_chaninfo);
+ if (dc->dc_htcaps & IEEE80211_HTCAP_CHWIDTH40) {
+ regdomain_addchans(ci, &rd->bands_11na, reg,
+ IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U,
+ &dc->dc_chaninfo);
+ regdomain_addchans(ci, &rd->bands_11na, reg,
+ IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D,
+ &dc->dc_chaninfo);
+ }
}
- if (!LIST_EMPTY(&rd->bands_11ng)) {
+ if (!LIST_EMPTY(&rd->bands_11ng) && dc->dc_htcaps != 0) {
regdomain_addchans(ci, &rd->bands_11ng, reg,
IEEE80211_CHAN_G | IEEE80211_CHAN_HT20,
&dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11ng, reg,
- IEEE80211_CHAN_G | IEEE80211_CHAN_HT40U,
- &dc->dc_chaninfo);
- regdomain_addchans(ci, &rd->bands_11ng, reg,
- IEEE80211_CHAN_G | IEEE80211_CHAN_HT40D,
- &dc->dc_chaninfo);
+ if (dc->dc_htcaps & IEEE80211_HTCAP_CHWIDTH40) {
+ regdomain_addchans(ci, &rd->bands_11ng, reg,
+ IEEE80211_CHAN_G | IEEE80211_CHAN_HT40U,
+ &dc->dc_chaninfo);
+ regdomain_addchans(ci, &rd->bands_11ng, reg,
+ IEEE80211_CHAN_G | IEEE80211_CHAN_HT40D,
+ &dc->dc_chaninfo);
+ }
}
qsort(ci->ic_chans, ci->ic_nchans, sizeof(ci->ic_chans[0]),
regdomain_sort);
Modified: user/thompsa/usb/sbin/ifconfig/regdomain.c
==============================================================================
--- user/thompsa/usb/sbin/ifconfig/regdomain.c Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sbin/ifconfig/regdomain.c Sun Feb 8 17:49:32 2009 (r188317)
@@ -208,6 +208,9 @@ decode_flag(struct mystate *mt, const ch
FLAG(IEEE80211_CHAN_108A),
FLAG(IEEE80211_CHAN_108G),
#undef FLAG
+ { "ECM", 3, REQ_ECM },
+ { "INDOOR", 6, REQ_INDOOR },
+ { "OUTDOOR", 7, REQ_OUTDOOR },
};
int i;
Modified: user/thompsa/usb/sbin/ifconfig/regdomain.h
==============================================================================
--- user/thompsa/usb/sbin/ifconfig/regdomain.h Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sbin/ifconfig/regdomain.h Sun Feb 8 17:49:32 2009 (r188317)
@@ -45,6 +45,13 @@ struct freqband {
LIST_ENTRY(freqband) next;
};
+/* private flags, don't pass to os */
+#define REQ_ECM 0x1 /* enable if ECM set */
+#define REQ_INDOOR 0x2 /* enable only for indoor operation */
+#define REQ_OUTDOOR 0x4 /* enable only for outdoor operation */
+
+#define REQ_FLAGS (REQ_ECM|REQ_INDOOR|REQ_OUTDOOR)
+
struct netband {
const struct freqband *band; /* channel list description */
uint8_t maxPower; /* regulatory cap on tx power (dBm) */
Modified: user/thompsa/usb/sbin/ipfw/ipfw.8
==============================================================================
--- user/thompsa/usb/sbin/ipfw/ipfw.8 Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sbin/ipfw/ipfw.8 Sun Feb 8 17:49:32 2009 (r188317)
@@ -2183,17 +2183,173 @@ Redirect and LSNAT support follow closel
See Section
.Sx EXAMPLES
for some examples on how to do redirect and lsnat.
+.Sh SCTP NAT SUPPORT
+Sctp nat can be configured in a simillar manner to TCP through the
+ipfw command line tool
+.Xr ipfw 8
+, the main difference is that
+.Nm sctp nat
+does not do port
+translation. Since the local and global side ports will be the same,
+there is no need to specify both. Ports are redirected as follows:
+.Bd -ragged -offset indent
+.Bk -words
+.Cm nat
+.Ar nat_number
+.Cm config if
+.Ar nic
+.Cm redirect_port sctp
+.Ar ip_address [,addr_list] {[port | port-port] [,ports]}
+.Ek
+.Ed
+.Pp
+.
+Most
+.B sctp nat
+configuration can be done in real-time through the
+.B sysctl(8)
+interface. All may be changed dynamically, though the hash_table size will only
+change for new
+.Nm nat
+instances. See
+.Sx SYSCTL VARIABLES
+for more info.
.Sh SYSCTL VARIABLES
A set of
.Xr sysctl 8
variables controls the behaviour of the firewall and
associated modules
-.Pq Nm dummynet , bridge .
+.Pq Nm dummynet , bridge , sctp nat .
These are shown below together with their default value
(but always check with the
.Xr sysctl 8
command what value is actually in use) and meaning:
.Bl -tag -width indent
+.It Va net.inet.ip.alias.sctp.accept_global_ootb_addip: No 0
+Defines how the
+.Nm nat
+responds to receipt of global OOTB ASCONF-AddIP:
+.Bl -tag -width indent
+.It Cm 0
+No response (unless a partially matching association exists -
+ports and vtags match but global address does not)
+.It Cm 1
+.Nm nat
+will accept and process all OOTB global AddIP messages.
+.El
+.Pp
+Option 1 should never be selected as this forms a security risk. An attacker can
+establish multiple fake associations by sending AddIP messages.
+.It Va net.inet.ip.alias.sctp.chunk_proc_limit: No 5
+Defines the maximum number of chunks in an SCTP packet that will be parsed for a
+packet that matches an existing association. This value is enforced to be greater or equal
+than
+.Cm net.inet.ip.alias.sctp.initialising_chunk_proc_limit .
+A high value is
+a DoS risk yet setting too low a value may result in important control chunks in
+the packet not being located and parsed.
+.It Va net.inet.ip.alias.sctp.error_on_ootb: No 1
+Defines when the
+.Nm nat
+responds to any Out-of-the-Blue (OOTB) packets with ErrorM
+packets. An OOTB packet is a packet that arrives with no existing association
+registered in the
+.Nm nat
+and is not an INIT or ASCONF-AddIP packet:
+.Bl -tag -width indent
+.It Cm 0
+ErrorM is never sent in response to OOTB packets.
+.It Cm 1
+ErrorM is only sent to OOTB packets received on the local side.
+.It Cm 2
+ErrorM is sent to the local side and on the global side ONLY if there is a
+partial match (ports and vtags match but the source global IP does not). This
+value is only useful if the
+.Nm nat
+is tracking global IP addresses.
+.It Cm 3
+ErrorM is sent in response to all OOTB packets on both the local and global side
+(DoS risk).
+.El
+.Pp
+At the moment the default is 0, since the ErrorM packet is not yet
+supported by most SCTP stacks. When it is supported, and if not tracking
+global addresses, we recommend setting this value to 1 to allow
+multi-homed local hosts to function with the
+.Nm nat .
+To track global addresses, we recommend setting this value to 2 to
+allow global hosts to be informed when they need to (re)send an
+ASCONF-AddIP. Value 3 should never be chosen (except for debugging) as
+the
+.Nm nat
+will respond to all OOTB global packets (a DoS risk).
+.It Va net.inet.ip.alias.sctp.hashtable_size: No 2003
+Size of hash tables used for
+.Nm nat
+lookups (100 < prime_number > 1000001)
+This value sets the
+.Nm hash table
+size for any future created
+.Nm nat
+instance and therefore must be set prior to creating a
+.Nm nat
+instance.
+The table sizes my be changed to suit specific needs. If there will be few
+concurrent associations, and memory is scarce, you may make these smaller. If
+there will be many thousands (or millions) of concurrent associations, you
+should make these larger. A prime number is best for the table size. The sysctl
+update function will adjust your input value to the next highest prime number.
+.It Va net.inet.ip.alias.sctp.holddown_time: No 0
+Hold association in table for this many seconds after receiving a
+SHUTDOWN-COMPLETE. This allows endpoints to correct shutdown gracefully if a
+shutdown_complete is lost and retransmissions are required.
+.It Va net.inet.ip.alias.sctp.init_timer: No 15
+Timeout value while waiting for (INIT-ACK|AddIP-ACK).
+This value cannot be 0.
+.It Va net.inet.ip.alias.sctp.initialising_chunk_proc_limit: No 2
+Defines the maximum number of chunks in an SCTP packet that will be parsed when
+no existing association exists that matches that packet. Ideally this packet
+will only be an INIT or ASCONF-AddIP packet. A higher value may become a DoS
+risk as malformed packets can consume processing resources.
+.It Va net.inet.ip.alias.sctp.param_proc_limit: No 25
+Defines the maximum number of parameters within a chunk that will be parsed in a
+packet. As for other similar sysctl variables, larger values pose a DoS risk.
+.It Va net.inet.ip.alias.sctp.log_level: No 0
+Level of detail in the system log messages (0 \- minimal, 1 \- event,
+2 \- info, 3 \- detail, 4 \- debug, 5 \- max debug). May be a good
+option in high loss environments.
+.It Va net.inet.ip.alias.sctp.shutdown_time: No 15
+Timeout value while waiting for SHUTDOWN-COMPLETE.
+This value cannot be 0.
+.It Va net.inet.ip.alias.sctp.track_global_addresses: No 0
+Enables/disables global IP address tracking within the
+.Nm nat
+and places an
+upper limit on the number of addresses tracked for each association:
+.Bl -tag -width indent
+.It Cm 0
+Global tracking is disabled
+.It Cm >1
+Enables tracking, the maximum number of addresses tracked for each
+association is limited to this value
+.El
+.Pp
+This variable is fully dynamic, the new value will be adopted for all newly
+arriving associations, existing association are treated as they were previously.
+Global tracking will decrease the number of collisions within the
+.Nm nat
+at a cost
+of increased processing load, memory usage, complexity, and possible
+.Nm nat
+state
+problems in complex networks with multiple
+.Nm nats .
+We recommend not tracking
+global IP addresses, this will still result in a fully functional
+.Nm nat .
+.It Va net.inet.ip.alias.sctp.up_timer: No 300
+Timeout value to keep an association up with no traffic.
+This value cannot be 0.
.It Va net.inet.ip.dummynet.expire : No 1
Lazily delete dynamic pipes/queue once they have no pending traffic.
You can disable this by setting the variable to 0, in which case
@@ -2718,6 +2874,15 @@ as part of a Summer of Code 2005 project
Work on
.Nm dummynet
traffic shaper supported by Akamba Corp.
+.Pp
+Sctp
+.Nm nat
+support has been developed by
+.An The Centre for Advanced Internet Architectures (CAIA) Aq http://www.caia.swin.edu.au .
+The primary developers and maintainers are David Hayes and Jason But.
+For further information visit:
+.Aq http://www.caia.swin.edu.au/urp/SONATA
+.
.Sh BUGS
The syntax has grown over the years and sometimes it might be confusing.
Unfortunately, backward compatibility prevents cleaning up mistakes
Modified: user/thompsa/usb/sbin/ipfw/nat.c
==============================================================================
--- user/thompsa/usb/sbin/ipfw/nat.c Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sbin/ipfw/nat.c Sun Feb 8 17:49:32 2009 (r188317)
@@ -257,7 +257,9 @@ StrToProto (const char* str)
if (!strcmp (str, "udp"))
return IPPROTO_UDP;
- errx (EX_DATAERR, "unknown protocol %s. Expected tcp or udp", str);
+ if (!strcmp (str, "sctp"))
+ return IPPROTO_SCTP;
+ errx (EX_DATAERR, "unknown protocol %s. Expected sctp, tcp or udp", str);
}
static int
@@ -433,13 +435,27 @@ setup_redir_port(char *spool_buf, int le
strncpy(tmp_spool_buf, *av, strlen(*av)+1);
lsnat = 1;
} else {
- if (StrToAddrAndPortRange (*av, &r->laddr, protoName,
- &portRange) != 0)
- errx(EX_DATAERR, "redirect_port:"
- "invalid local port range");
+ /*
+ * The sctp nat does not allow the port numbers to be mapped to
+ * new port numbers. Therefore, no ports are to be specified
+ * in the target port field.
+ */
+ if (r->proto == IPPROTO_SCTP) {
+ if (strchr (*av, ':'))
+ errx(EX_DATAERR, "redirect_port:"
+ "port numbers do not change in sctp, so do not "
+ "specify them as part of the target");
+ else
+ StrToAddr(*av, &r->laddr);
+ } else {
+ if (StrToAddrAndPortRange (*av, &r->laddr, protoName,
+ &portRange) != 0)
+ errx(EX_DATAERR, "redirect_port:"
+ "invalid local port range");
- r->lport = GETLOPORT(portRange);
- numLocalPorts = GETNUMPORTS(portRange);
+ r->lport = GETLOPORT(portRange);
+ numLocalPorts = GETNUMPORTS(portRange);
+ }
}
INC_ARGCV();
@@ -463,6 +479,10 @@ setup_redir_port(char *spool_buf, int le
}
r->pport = GETLOPORT(portRange);
+ if (r->proto == IPPROTO_SCTP) { /* so the logic below still works */
+ numLocalPorts = GETNUMPORTS(portRange);
+ r->lport = r->pport;
+ }
r->pport_cnt = GETNUMPORTS(portRange);
INC_ARGCV();
@@ -518,14 +538,31 @@ setup_redir_port(char *spool_buf, int le
goto nospace;
len -= SOF_SPOOL;
space += SOF_SPOOL;
- if (StrToAddrAndPortRange(sep, &tmp->addr, protoName,
- &portRange) != 0)
- errx(EX_DATAERR, "redirect_port:"
- "invalid local port range");
- if (GETNUMPORTS(portRange) != 1)
- errx(EX_DATAERR, "redirect_port: local port"
- "must be single in this context");
- tmp->port = GETLOPORT(portRange);
+ /*
+ * The sctp nat does not allow the port numbers to be mapped to new port numbers
+ * Therefore, no ports are to be specified in the target port field
+ */
+ if (r->proto == IPPROTO_SCTP) {
+ if (strchr (sep, ':')) {
+ errx(EX_DATAERR, "redirect_port:"
+ "port numbers do not change in "
+ "sctp, so do not specify them as "
+ "part of the target");
+ } else {
+ StrToAddr(sep, &tmp->addr);
+ tmp->port = r->pport;
+ }
+ } else {
+ if (StrToAddrAndPortRange(sep, &tmp->addr,
+ protoName, &portRange) != 0)
+ errx(EX_DATAERR, "redirect_port:"
+ "invalid local port range");
+ if (GETNUMPORTS(portRange) != 1)
+ errx(EX_DATAERR, "redirect_port: "
+ "local port must be single in "
+ "this context");
+ tmp->port = GETLOPORT(portRange);
+ }
r->spool_cnt++;
/* Point to the next possible cfg_spool. */
spool_buf = &spool_buf[SOF_SPOOL];
Modified: user/thompsa/usb/sbin/mount_nfs/mount_nfs.c
==============================================================================
--- user/thompsa/usb/sbin/mount_nfs/mount_nfs.c Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sbin/mount_nfs/mount_nfs.c Sun Feb 8 17:49:32 2009 (r188317)
@@ -469,6 +469,12 @@ copyopt(struct iovec **newiov, int *newi
build_iovec(newiov, newiovlen, name, value, len);
}
+/*
+ * XXX: This function is provided for backwards
+ * compatibility with older kernels which did not support
+ * passing NFS mount options to nmount() as individual
+ * parameters. It should be eventually be removed.
+ */
int
fallback_mount(struct iovec *iov, int iovlen, int mntflags)
{
@@ -587,24 +593,28 @@ fallback_mount(struct iovec *iov, int io
if (ret != 1 || args.acregmin < 0) {
errx(1, "illegal acregmin: %s", opt);
}
+ args.flags |= NFSMNT_ACREGMIN;
}
if (findopt(iov, iovlen, "acregmax", &opt, NULL) == 0) {
ret = sscanf(opt, "%d", &args.acregmax);
if (ret != 1 || args.acregmax < 0) {
errx(1, "illegal acregmax: %s", opt);
}
+ args.flags |= NFSMNT_ACREGMAX;
}
if (findopt(iov, iovlen, "acdirmin", &opt, NULL) == 0) {
ret = sscanf(opt, "%d", &args.acdirmin);
if (ret != 1 || args.acdirmin < 0) {
errx(1, "illegal acdirmin: %s", opt);
}
+ args.flags |= NFSMNT_ACDIRMIN;
}
if (findopt(iov, iovlen, "acdirmax", &opt, NULL) == 0) {
ret = sscanf(opt, "%d", &args.acdirmax);
if (ret != 1 || args.acdirmax < 0) {
errx(1, "illegal acdirmax: %s", opt);
}
+ args.flags |= NFSMNT_ACDIRMAX;
}
if (findopt(iov, iovlen, "deadthresh", &opt, NULL) == 0) {
ret = sscanf(opt, "%d", &args.deadthresh);
Modified: user/thompsa/usb/share/man/man4/rum.4
==============================================================================
--- user/thompsa/usb/share/man/man4/rum.4 Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/share/man/man4/rum.4 Sun Feb 8 17:49:32 2009 (r188317)
@@ -91,6 +91,7 @@ including:
.It "Belkin F5D7050 ver 3" Ta USB
.It "Belkin F5D9050 ver 3" Ta USB
.It "Buffalo WLI-U2-SG54HP" Ta USB
+.It "Buffalo WLI-U2-SG54HG" Ta USB
.It "Buffalo WLI-U2-G54HP" Ta USB
.It "CNet CWD-854 ver F" Ta USB
.It "Conceptronic C54RU ver 2" Ta USB
Modified: user/thompsa/usb/share/man/man4/smb.4
==============================================================================
--- user/thompsa/usb/share/man/man4/smb.4 Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/share/man/man4/smb.4 Sun Feb 8 17:49:32 2009 (r188317)
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 25, 1998
+.Dd February 6, 2009
.Dt SMB 4
.Os
.Sh NAME
@@ -72,6 +72,9 @@ The
.Fa slave
field is always used, and provides the address of the
SMBus slave device to talk to.
+The slave address is specified in the seven most significant bits
+.Pq i.e. Dq "left-justified" .
+The least significant bit of the slave address must be zero.
.Pp
.Bl -column ".Dv SMB_QUICK_WRITE" -compact
.It Em Ioctl Ta Em Description
Modified: user/thompsa/usb/sys/amd64/conf/NOTES
==============================================================================
--- user/thompsa/usb/sys/amd64/conf/NOTES Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sys/amd64/conf/NOTES Sun Feb 8 17:49:32 2009 (r188317)
@@ -150,6 +150,11 @@ device pci
# AGP GART support
device agp
+#
+# AGP debugging.
+#
+options AGP_DEBUG
+
#####################################################################
# HARDWARE DEVICE CONFIGURATION
@@ -267,7 +272,6 @@ options DRM_DEBUG # Include debug print
# nfe: nVidia nForce MCP on-board Ethernet Networking (BSD open source)
# nve: nVidia nForce MCP on-board Ethernet Networking
# ral: Ralink Technology IEEE 802.11 wireless adapter
-# ural: Ralink Technology RT2500USB IEEE 802.11 wireless adapter
# wpi: Intel 3945ABG Wireless LAN controller
device ed
@@ -277,10 +281,9 @@ options ED_SIC
device iwi
device iwn
device ipw
-device nfe # nVidia nForce MCP on-board Ethernet Networking
-device nve # nVidia nForce MCP on-board Ethernet Networking
+device nfe
+device nve
device ral
-device ural
device wpi
device ath # Atheros pci/cardbus NIC's
@@ -356,9 +359,11 @@ options SAFE_RNDTEST # enable rndtest s
# Miscellaneous hardware:
#
# ipmi: Intelligent Platform Management Interface
+# pbio: Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
# smbios: DMI/SMBIOS entry point
# vpd: Vital Product Data kernel interface
# asmc: Apple System Management Controller
+# si: Specialix International SI/XIO or SX intelligent serial card
# Notes on the Specialix SI/XIO driver:
# The host card is memory, not IO mapped.
@@ -367,13 +372,14 @@ options SAFE_RNDTEST # enable rndtest s
# The cards can use an IRQ of 11, 12 or 15.
device ipmi
-# Parallel (8255 PPI) basic I/O (mode 0) port (e.g. Advantech PCL-724)
device pbio
hint.pbio.0.at="isa"
hint.pbio.0.port="0x360"
device smbios
device vpd
device asmc
+#device si
+
#
# Laptop/Notebook options:
#
Modified: user/thompsa/usb/sys/amd64/include/legacyvar.h
==============================================================================
--- user/thompsa/usb/sys/amd64/include/legacyvar.h Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sys/amd64/include/legacyvar.h Sun Feb 8 17:49:32 2009 (r188317)
@@ -43,12 +43,12 @@ LEGACY_ACCESSOR(pcibus, PCIBUS, uint3
#undef LEGACY_ACCESSOR
int legacy_pcib_maxslots(device_t dev);
-uint32_t legacy_pcib_read_config(device_t dev, int bus, int slot, int func,
- int reg, int bytes);
+uint32_t legacy_pcib_read_config(device_t dev, u_int bus, u_int slot,
+ u_int func, u_int reg, int bytes);
int legacy_pcib_read_ivar(device_t dev, device_t child, int which,
uintptr_t *result);
-void legacy_pcib_write_config(device_t dev, int bus, int slot, int func,
- int reg, u_int32_t data, int bytes);
+void legacy_pcib_write_config(device_t dev, u_int bus, u_int slot,
+ u_int func, u_int reg, uint32_t data, int bytes);
int legacy_pcib_write_ivar(device_t dev, device_t child, int which,
uintptr_t value);
struct resource *legacy_pcib_alloc_resource(device_t dev, device_t child,
Modified: user/thompsa/usb/sys/amd64/pci/pci_bus.c
==============================================================================
--- user/thompsa/usb/sys/amd64/pci/pci_bus.c Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sys/amd64/pci/pci_bus.c Sun Feb 8 17:49:32 2009 (r188317)
@@ -55,9 +55,9 @@ legacy_pcib_maxslots(device_t dev)
/* read configuration space register */
-u_int32_t
-legacy_pcib_read_config(device_t dev, int bus, int slot, int func,
- int reg, int bytes)
+uint32_t
+legacy_pcib_read_config(device_t dev, u_int bus, u_int slot, u_int func,
+ u_int reg, int bytes)
{
return(pci_cfgregread(bus, slot, func, reg, bytes));
}
@@ -65,8 +65,8 @@ legacy_pcib_read_config(device_t dev, in
/* write configuration space register */
void
-legacy_pcib_write_config(device_t dev, int bus, int slot, int func,
- int reg, u_int32_t data, int bytes)
+legacy_pcib_write_config(device_t dev, u_int bus, u_int slot, u_int func,
+ u_int reg, uint32_t data, int bytes)
{
pci_cfgregwrite(bus, slot, func, reg, data, bytes);
}
Modified: user/thompsa/usb/sys/conf/NOTES
==============================================================================
--- user/thompsa/usb/sys/conf/NOTES Sun Feb 8 16:58:05 2009 (r188316)
+++ user/thompsa/usb/sys/conf/NOTES Sun Feb 8 17:49:32 2009 (r188317)
@@ -714,40 +714,81 @@ device mn # Munich32x/Falc54 Nx64kbit/s
#
# Network interfaces:
# The `loop' device is MANDATORY when networking is enabled.
+device loop
+
# The `ether' device provides generic code to handle
# Ethernets; it is MANDATORY when an Ethernet device driver is
# configured or token-ring is enabled.
+device ether
+
# The `vlan' device implements the VLAN tagging of Ethernet frames
# according to IEEE 802.1Q. It requires `device miibus'.
+device vlan
+
# The `wlan' device provides generic code to support 802.11
# drivers, including host AP mode; it is MANDATORY for the wi,
# and ath drivers and will eventually be required by all 802.11 drivers.
+device wlan
+options IEEE80211_DEBUG #enable debugging msgs
+options IEEE80211_AMPDU_AGE #age frames in AMPDU reorder q's
+
# The `wlan_wep', `wlan_tkip', and `wlan_ccmp' devices provide
# support for WEP, TKIP, and AES-CCMP crypto protocols optionally
# used with 802.11 devices that depend on the `wlan' module.
+device wlan_wep
+device wlan_ccmp
+device wlan_tkip
+
# The `wlan_xauth' device provides support for external (i.e. user-mode)
# authenticators for use with 802.11 drivers that use the `wlan'
# module and support 802.1x and/or WPA security protocols.
+device wlan_xauth
+
# The `wlan_acl' device provides a MAC-based access control mechanism
# for use with 802.11 drivers operating in ap mode and using the
# `wlan' module.
+# The 'wlan_amrr' device provides AMRR transmit rate control algorithm
+device wlan_acl
+device wlan_amrr
+
+# Generic TokenRing
+device token
+
# The `fddi' device provides generic code to support FDDI.
+device fddi
+
# The `arcnet' device provides generic code to support Arcnet.
+device arcnet
+
# The `sppp' device serves a similar role for certain types
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list