From owner-p4-projects@FreeBSD.ORG Sun Aug 3 14:26:29 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 55E5D37B401; Sun, 3 Aug 2003 14:26:29 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B733837B404 for ; Sun, 3 Aug 2003 14:26:28 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 28E9D43FBD for ; Sun, 3 Aug 2003 14:26:28 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h73LQR0U042893 for ; Sun, 3 Aug 2003 14:26:27 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h73LQROm042890 for perforce@freebsd.org; Sun, 3 Aug 2003 14:26:27 -0700 (PDT) Date: Sun, 3 Aug 2003 14:26:27 -0700 (PDT) Message-Id: <200308032126.h73LQROm042890@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 35437 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Aug 2003 21:26:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=35437 Change 35437 by rwatson@rwatson_paprika on 2003/08/03 14:25:56 More notes on file permissions and UFS protections, to be fleshed out into text later. Affected files ... .. //depot/projects/trustedbsd/doc/en_US.ISO8859-1/books/developers-handbook/secarch/chapter.sgml#8 edit Differences ... ==== //depot/projects/trustedbsd/doc/en_US.ISO8859-1/books/developers-handbook/secarch/chapter.sgml#8 (text+ko) ==== @@ -1376,7 +1376,7 @@ - UFS Mode Field + UFS Owner and Mode Fields @@ -1392,20 +1392,35 @@ generally implemented only at open() for files, per operation for directories -file - write - read - execute +file, device, fifo + write write/append file contents, truncate file, map writable + read read file contents, map readable + execute permission to execve() apply to data of file; also user namespace extended attributes system namespace extended attributes require suser - admin limited to owner, suser + admin limited to owner + + additional protections may apply to device objects as implemented + by the device driver. + +socket + write (connect) + read unused + execute unused + +symlink + permissions have no effect on symlink operations directory - write - read - execute + write (insert, delete) + read (list) + execute (lookup) + sticky bit special protection for objects in directory + must be object owner or directory owner to + delete/replace entries in the directory, + regardless of permissions apply to data of directory; also user namespace extended attributes system namespace extended attributes require suser @@ -1467,6 +1482,29 @@ requested creation mode for the operation, and the protections on the parent directory (specifically, the default ACL). +New UFS file system objects will be assigned the effective uid +of the authorizing credential as their owner uid. + +New UFS file system objects will be assigned a group equal to the +group of the directory in which the object is created. + +Setgid flag removed from new file system objects if the creating +credential is not a member of the group. + +Processes requesting the creation of the file provide two elements +used to calculate the new object's mode bits: an explicit creation +mode argument to the call creating the object, and an implicit +process umask, set by the umask() system call, which masks the +creation mode. + +In addition, the setgid bit will not be included in the mode of +a new object even if requested, if the object does not have a +group that appears in the process credential effective or extended +group. + +The sticky bit is only permitted for directory objects if the +authorizing credential is not privileged. + Note: composition of default ACL, umask, and cmode, are as defined in POSIX.1e; some other systems use alternative compositions. From owner-p4-projects@FreeBSD.ORG Sun Aug 3 14:35:42 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 851E837B407; Sun, 3 Aug 2003 14:35:41 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2F68037B404 for ; Sun, 3 Aug 2003 14:35:41 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5A68943FB1 for ; Sun, 3 Aug 2003 14:35:40 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h73LZe0U043314 for ; Sun, 3 Aug 2003 14:35:40 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h73LZdWM043288 for perforce@freebsd.org; Sun, 3 Aug 2003 14:35:39 -0700 (PDT) Date: Sun, 3 Aug 2003 14:35:39 -0700 (PDT) Message-Id: <200308032135.h73LZdWM043288@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 35438 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Aug 2003 21:35:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=35438 Change 35438 by rwatson@rwatson_paprika on 2003/08/03 14:35:28 Finish up the quota section; summarize the kernel protections, and the impact of file system protections on the backing files. Affected files ... .. //depot/projects/trustedbsd/doc/en_US.ISO8859-1/books/developers-handbook/secarch/chapter.sgml#9 edit Differences ... ==== //depot/projects/trustedbsd/doc/en_US.ISO8859-1/books/developers-handbook/secarch/chapter.sgml#9 (text+ko) ==== @@ -1605,37 +1605,31 @@ While the file system is in operation and quota support is enabled, the quota file measurements are updated by the kernel as a result of various file operations allocating or freeing - resources. + resources; the backing files are sychronized with the condition + of the file system during the boot process to account for any + operations that occurred while quotas were disabled, or to + address inconsistencies resulting from a crash or improper + dismounted. Operations requiring allocation in excess of the limits for a process will result in an error and message sent to the - controlling terminal for that process (if any). + controlling terminal for that process (if any). + Quota protections are not enforced for the root user. - XXX: only if uid matches that of file. - - -to retrieve quota information, may do so from the quota definition -files (operator readable), or using the system call interface. -the system call interface will succeed if the effective uid of the -process matches that of the requested user, or if the requested -group quota is present in the processes effective or extended -group set. - - - -control the use of disk space by users or groups -resources of interest are #inodes (#files/directories/...) and #blocks -configured per-filesystem, backed into files that may be on that or -another file system (should be owned by root user) -soft/hard distinctions permits warnings -space synchronized at boot, and tracked over I/O operations -users may monitor their own quota, but privilege required to change -quotas (note: bypass of privilege check is possible if quota -databases are not properly protected). - - - XXX: Odd kernel vs non-kernel enforcement of viewing - protections. - + Quota configuration, including the specific values assigned + as quotas, may be performed only by privileged processes. + Quota information may be retrieved by a unprivileged process for + uids and gids that match the effective uid, effective gid, or + extended group of the process credential. + By setting the + security.bsd.unprivileged_get_quota sysctl, + privileged processes may authorize unprivileged processes to + query the quotas of other uids and gids. + As quota information is stored in backing files, the protections + on the backing files must be set correctly to properly + protect quota information and configuration, or direct I/O to + to the backing files may bypass kernel protections. + By default, quota backing files are readable and writable by + the root user, and readable by the operator group. From owner-p4-projects@FreeBSD.ORG Sun Aug 3 22:30:44 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BAB9437B404; Sun, 3 Aug 2003 22:30:43 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5805437B401 for ; Sun, 3 Aug 2003 22:30:43 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1B52743F93 for ; Sun, 3 Aug 2003 22:30:42 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h745Ug0U079667 for ; Sun, 3 Aug 2003 22:30:42 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h745UdWN079664 for perforce@freebsd.org; Sun, 3 Aug 2003 22:30:39 -0700 (PDT) Date: Sun, 3 Aug 2003 22:30:39 -0700 (PDT) Message-Id: <200308040530.h745UdWN079664@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 35459 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 05:30:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=35459 Change 35459 by marcel@marcel_nfs on 2003/08/03 22:29:59 IFC @35458 Affected files ... .. //depot/projects/ia64/bin/sh/expand.c#12 integrate .. //depot/projects/ia64/games/fortune/datfiles/freebsd-tips#11 integrate .. //depot/projects/ia64/games/fortune/strfile/strfile.c#5 integrate .. //depot/projects/ia64/gnu/lib/libregex/regex.c#2 integrate .. //depot/projects/ia64/gnu/usr.bin/man/man/glob.c#2 integrate .. //depot/projects/ia64/lib/libc/ia64/sys/Makefile.inc#4 integrate .. //depot/projects/ia64/lib/libc/ia64/sys/Ovfork.S#3 integrate .. //depot/projects/ia64/lib/libc/ia64/sys/fork.S#3 integrate .. //depot/projects/ia64/lib/libc/ia64/sys/getcontext.S#1 branch .. //depot/projects/ia64/lib/libc/ia64/sys/setlogin.S#3 integrate .. //depot/projects/ia64/lib/libc/ia64/sys/swapcontext.S#1 branch .. //depot/projects/ia64/lib/libc/locale/collcmp.c#3 integrate .. //depot/projects/ia64/lib/libpthread/arch/amd64/amd64/enter_uts.S#3 integrate .. //depot/projects/ia64/release/Makefile#64 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/errata/article.sgml#22 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/hardware/alpha/proc-alpha.sgml#24 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#113 integrate .. //depot/projects/ia64/release/ia64/doFS.sh#6 delete .. //depot/projects/ia64/release/ia64/mkisoimages.sh#3 integrate .. //depot/projects/ia64/release/pc98/dokern.sh#14 integrate .. //depot/projects/ia64/sbin/atm/Makefile#2 integrate .. //depot/projects/ia64/sbin/atm/Makefile.inc#2 integrate .. //depot/projects/ia64/sbin/atm/atm/Makefile#4 integrate .. //depot/projects/ia64/sbin/atm/fore_dnld/Makefile#4 integrate .. //depot/projects/ia64/sbin/atm/ilmid/Makefile#5 integrate .. //depot/projects/ia64/share/examples/kld/cdev/module/Makefile#2 integrate .. //depot/projects/ia64/share/examples/kld/cdev/module/cdevmod.c#2 integrate .. //depot/projects/ia64/share/examples/kld/cdev/test/Makefile#2 integrate .. //depot/projects/ia64/share/examples/kld/cdev/test/testcdev.c#2 integrate .. //depot/projects/ia64/share/man/man4/ath.4#5 integrate .. //depot/projects/ia64/sys/alpha/include/endian.h#8 integrate .. //depot/projects/ia64/sys/amd64/amd64/pmap.c#16 integrate .. //depot/projects/ia64/sys/amd64/include/ieeefp.h#3 integrate .. //depot/projects/ia64/sys/arm/include/endian.h#2 integrate .. //depot/projects/ia64/sys/boot/efi/libefi/efiboot.h#5 integrate .. //depot/projects/ia64/sys/boot/efi/libefi/efifs.c#6 integrate .. //depot/projects/ia64/sys/boot/efi/loader/main.c#18 integrate .. //depot/projects/ia64/sys/conf/NOTES#60 integrate .. //depot/projects/ia64/sys/conf/files.alpha#23 integrate .. //depot/projects/ia64/sys/conf/files.amd64#9 integrate .. //depot/projects/ia64/sys/conf/files.i386#42 integrate .. //depot/projects/ia64/sys/conf/files.pc98#34 integrate .. //depot/projects/ia64/sys/conf/options#60 integrate .. //depot/projects/ia64/sys/contrib/dev/ath/README#2 integrate .. //depot/projects/ia64/sys/contrib/dev/ath/ah.h#2 integrate .. //depot/projects/ia64/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 integrate .. //depot/projects/ia64/sys/contrib/dev/ath/freebsd/ah_osdep.h#2 integrate .. //depot/projects/ia64/sys/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#3 integrate .. //depot/projects/ia64/sys/contrib/dev/ath/version.h#2 integrate .. //depot/projects/ia64/sys/dev/ath/if_ath.c#5 integrate .. //depot/projects/ia64/sys/dev/fxp/if_fxp.c#41 integrate .. //depot/projects/ia64/sys/dev/pci/pci.c#27 integrate .. //depot/projects/ia64/sys/dev/pci/pcireg.h#4 integrate .. //depot/projects/ia64/sys/dev/puc/pucdata.c#16 integrate .. //depot/projects/ia64/sys/geom/geom_dev.c#39 integrate .. //depot/projects/ia64/sys/i386/i386/pmap.c#53 integrate .. //depot/projects/ia64/sys/i386/i386/sys_machdep.c#20 integrate .. //depot/projects/ia64/sys/i386/include/endian.h#8 integrate .. //depot/projects/ia64/sys/i386/pci/pci_bus.c#17 integrate .. //depot/projects/ia64/sys/i386/pci/pci_cfgreg.c#16 integrate .. //depot/projects/ia64/sys/ia64/ia64/clock.c#17 integrate .. //depot/projects/ia64/sys/ia64/ia64/exception.S#3 integrate .. //depot/projects/ia64/sys/ia64/ia64/genassym.c#13 integrate .. //depot/projects/ia64/sys/ia64/ia64/interrupt.c#29 integrate .. //depot/projects/ia64/sys/ia64/ia64/machdep.c#85 integrate .. //depot/projects/ia64/sys/ia64/ia64/mp_machdep.c#34 integrate .. //depot/projects/ia64/sys/ia64/ia64/timerreg.h#2 delete .. //depot/projects/ia64/sys/ia64/include/clock.h#8 integrate .. //depot/projects/ia64/sys/ia64/include/cpu.h#18 integrate .. //depot/projects/ia64/sys/ia64/include/endian.h#7 integrate .. //depot/projects/ia64/sys/ia64/include/pcpu.h#4 integrate .. //depot/projects/ia64/sys/ia64/include/ucontext.h#3 integrate .. //depot/projects/ia64/sys/kern/kern_acl.c#18 integrate .. //depot/projects/ia64/sys/kern/kern_ktr.c#15 integrate .. //depot/projects/ia64/sys/kern/kern_physio.c#10 integrate .. //depot/projects/ia64/sys/kern/sys_process.c#22 integrate .. //depot/projects/ia64/sys/kern/uipc_syscalls.c#35 integrate .. //depot/projects/ia64/sys/kern/vfs_bio.c#55 integrate .. //depot/projects/ia64/sys/modules/ep/Makefile#3 integrate .. //depot/projects/ia64/sys/pc98/pc98/ppc.c#5 integrate .. //depot/projects/ia64/sys/pc98/pc98/sio.c#25 integrate .. //depot/projects/ia64/sys/powerpc/include/endian.h#8 integrate .. //depot/projects/ia64/sys/powerpc/powerpc/pmap.c#29 integrate .. //depot/projects/ia64/sys/sys/acl.h#6 integrate .. //depot/projects/ia64/sys/ufs/ufs/acl.h#4 integrate .. //depot/projects/ia64/sys/ufs/ufs/ufs_acl.c#8 integrate .. //depot/projects/ia64/sys/ufs/ufs/ufs_vnops.c#32 integrate .. //depot/projects/ia64/sys/vm/swap_pager.c#36 integrate .. //depot/projects/ia64/sys/vm/swap_pager.h#13 integrate .. //depot/projects/ia64/sys/vm/uma_core.c#48 integrate .. //depot/projects/ia64/sys/vm/vm_glue.c#32 integrate .. //depot/projects/ia64/sys/vm/vm_pageout.c#43 integrate .. //depot/projects/ia64/sys/vm/vm_pageout.h#10 integrate .. //depot/projects/ia64/sys/vm/vm_pager.c#14 integrate .. //depot/projects/ia64/sys/vm/vm_pager.h#8 integrate .. //depot/projects/ia64/tools/tools/tinderbox/etc/experimental.rc#3 integrate .. //depot/projects/ia64/tools/tools/tinderbox/powerpc.diff#1 branch .. //depot/projects/ia64/tools/tools/tinderbox/tbmaster.1#5 integrate .. //depot/projects/ia64/tools/tools/tinderbox/tbmaster.pl#18 integrate .. //depot/projects/ia64/usr.bin/systat/Makefile#5 integrate .. //depot/projects/ia64/usr.bin/systat/cmdtab.c#4 integrate .. //depot/projects/ia64/usr.bin/systat/extern.h#5 integrate .. //depot/projects/ia64/usr.bin/systat/icmp6.c#1 branch .. //depot/projects/ia64/usr.bin/systat/ip6.c#1 branch .. //depot/projects/ia64/usr.bin/systat/netstat.c#5 integrate .. //depot/projects/ia64/usr.bin/systat/systat.1#8 integrate .. //depot/projects/ia64/usr.bin/tr/extern.h#4 integrate .. //depot/projects/ia64/usr.bin/tr/str.c#6 integrate .. //depot/projects/ia64/usr.bin/tr/tr.1#6 integrate .. //depot/projects/ia64/usr.bin/tr/tr.c#9 integrate .. //depot/projects/ia64/usr.bin/truss/ia64-fbsd.c#4 integrate .. //depot/projects/ia64/usr.sbin/acpi/acpidump/acpi.c#12 integrate .. //depot/projects/ia64/usr.sbin/acpi/acpidump/acpidump.h#9 integrate .. //depot/projects/ia64/usr.sbin/newsyslog/newsyslog.c#20 integrate .. //depot/projects/ia64/usr.sbin/pccard/pccardd/cardd.h#5 integrate .. //depot/projects/ia64/usr.sbin/pkg_install/lib/match.c#7 integrate .. //depot/projects/ia64/usr.sbin/sysinstall/config.c#13 integrate Differences ... ==== //depot/projects/ia64/bin/sh/expand.c#12 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.44 2003/07/05 15:18:44 dds Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.45 2003/08/03 04:28:10 ache Exp $"); #include #include @@ -116,20 +116,13 @@ STATIC int collate_range_cmp(int, int); STATIC int -collate_range_cmp (int c1, int c2) +collate_range_cmp(int c1, int c2) { static char s1[2], s2[2]; - int ret; - c1 &= UCHAR_MAX; - c2 &= UCHAR_MAX; - if (c1 == c2) - return (0); s1[0] = c1; s2[0] = c2; - if ((ret = strcoll(s1, s2)) != 0) - return (ret); - return (c1 - c2); + return (strcoll(s1, s2)); } /* ==== //depot/projects/ia64/games/fortune/datfiles/freebsd-tips#11 (text+ko) ==== @@ -1,5 +1,5 @@ This fortune brought to you by: -$FreeBSD: src/games/fortune/datfiles/freebsd-tips,v 1.30 2003/02/15 09:11:25 robert Exp $ +$FreeBSD: src/games/fortune/datfiles/freebsd-tips,v 1.31 2003/08/02 20:36:28 schweikh Exp $ % Having trouble using fetch through a firewall? Try setting the environment variable FTP_PASSIVE_MODE to yes, and see fetch(3) for more details. @@ -439,7 +439,7 @@ "sockstat -4l" for IPv4, and "sockstat -l" for IPv4 and IPv6. -- Dru % -Can't remember is you've installed a certain port or not? Try "pkg_info | +Can't remember if you've installed a certain port or not? Try "pkg_info | grep port_name". -- Dru % @@ -449,7 +449,7 @@ To repeat the last command in the C shell, type "!!". -- Dru % -Need to quickly empty a file? Use "echo > filename". +Need to quickly empty a file? Use ": > filename". -- Dru % To see all of the directories on your FreeBSD system, type @@ -466,10 +466,6 @@ ifconfig -a -- Dru % -You can save your kernel startup configuration with kget(8). The -Configuration can be edited at boot time with 'boot -c' command in loader. -See boot(8), loader(8) for details. -% You can open up a new split-screen window in (n)vi with :N or :E and then use ^w to switch between the two. % ==== //depot/projects/ia64/games/fortune/strfile/strfile.c#5 (text+ko) ==== @@ -46,7 +46,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/games/fortune/strfile/strfile.c,v 1.22 2003/05/05 09:52:25 obrien Exp $"); +__FBSDID("$FreeBSD: src/games/fortune/strfile/strfile.c,v 1.23 2003/08/03 19:44:36 ache Exp $"); # include # include @@ -131,7 +131,7 @@ void add_offset(FILE *, long); int cmp_str(const void *, const void *); -static int collate_range_cmp(int, int); +static int stable_collate_range_cmp(int, int); void do_order(void); void getargs(int, char **); void randomize(void); @@ -367,16 +367,12 @@ Tbl.str_flags |= STR_ORDERED; } -static int collate_range_cmp (c1, c2) +static int stable_collate_range_cmp(c1, c2) int c1, c2; { static char s1[2], s2[2]; int ret; - c1 &= UCHAR_MAX; - c2 &= UCHAR_MAX; - if (c1 == c2) - return (0); s1[0] = c1; s2[0] = c2; if ((ret = strcoll(s1, s2)) != 0) @@ -404,8 +400,8 @@ c1 = (unsigned char) p1->first; c2 = (unsigned char) p2->first; - if ((r = collate_range_cmp(c1, c2)) != 0) - return r; + if ((r = stable_collate_range_cmp(c1, c2)) != 0) + return (r); (void) fseek(Sort_1, p1->pos, 0); (void) fseek(Sort_2, p2->pos, 0); @@ -424,8 +420,8 @@ if (isupper(c2)) c2 = tolower(c2); } - if ((r = collate_range_cmp(c1, c2)) != 0) - return r; + if ((r = stable_collate_range_cmp(c1, c2)) != 0) + return (r); SET_N(n1, c1); SET_N(n2, c2); c1 = getc(Sort_1); @@ -435,7 +431,7 @@ c1 = 0; if (IS_END(c2, n2)) c2 = 0; - return collate_range_cmp(c1, c2); + return (stable_collate_range_cmp(c1, c2)); } /* ==== //depot/projects/ia64/gnu/lib/libregex/regex.c#2 (text+ko) ==== @@ -19,6 +19,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* $FreeBSD: src/gnu/lib/libregex/regex.c,v 1.10 2003/08/03 04:36:09 ache Exp $ */ + /* AIX requires this to be the first thing in the file. */ #if defined (_AIX) && !defined (REGEX_MALLOC) #pragma alloca @@ -1114,19 +1116,14 @@ regnum_t regnum)); #ifdef __FreeBSD__ -static int collate_range_cmp (a, b) +static int collate_range_cmp(a, b) int a, b; { - int r; static char s[2][2]; - if ((unsigned char)a == (unsigned char)b) - return 0; s[0][0] = a; s[1][0] = b; - if ((r = strcoll(s[0], s[1])) == 0) - r = (unsigned char)a - (unsigned char)b; - return r; + return (strcoll(s[0], s[1])); } #endif ==== //depot/projects/ia64/gnu/usr.bin/man/man/glob.c#2 (text+ko) ==== @@ -15,6 +15,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* $FreeBSD: src/gnu/usr.bin/man/man/glob.c,v 1.5 2003/08/03 04:47:34 ache Exp $ */ + /* To whomever it may concern: I have never seen the code which most Unix programs use to perform this function. I wrote this from scratch based on specifications for the pattern matching. --RMS. */ @@ -112,19 +114,14 @@ static int glob_match_after_star (); #ifdef __FreeBSD__ -static int collate_range_cmp (a, b) +static int collate_range_cmp(a, b) int a, b; { - int r; static char s[2][2]; - if ((unsigned char)a == (unsigned char)b) - return 0; s[0][0] = a; s[1][0] = b; - if ((r = strcoll(s[0], s[1])) == 0) - r = (unsigned char)a - (unsigned char)b; - return r; + return (strcoll(s[0], s[1])); } #endif ==== //depot/projects/ia64/lib/libc/ia64/sys/Makefile.inc#4 (text+ko) ==== @@ -1,7 +1,7 @@ -# $FreeBSD: src/lib/libc/ia64/sys/Makefile.inc,v 1.6 2002/05/23 23:51:57 jake Exp $ +# $FreeBSD: src/lib/libc/ia64/sys/Makefile.inc,v 1.7 2003/08/02 00:49:36 marcel Exp $ -MDASM+= Ovfork.S brk.S cerror.S exect.S fork.S pipe.S ptrace.S \ - sbrk.S setlogin.S sigreturn.S +MDASM+= Ovfork.S brk.S cerror.S exect.S fork.S getcontext.S pipe.S ptrace.S \ + sbrk.S setlogin.S sigreturn.S swapcontext.S # Don't generate default code for these syscalls: NOASM= break.o exit.o ftruncate.o getdomainname.o getlogin.o \ ==== //depot/projects/ia64/lib/libc/ia64/sys/Ovfork.S#3 (text+ko) ==== @@ -25,14 +25,13 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/Ovfork.S,v 1.5 2003/03/03 01:09:46 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/Ovfork.S,v 1.6 2003/08/01 22:17:12 marcel Exp $"); #include "SYS.h" SYSCALL(vfork) + cmp.ne p7,p0=ret1,r0 /* ret1!=0 for child */ ;; - cmp.ne p6,p0=ret1,r0 /* ret1!=0 for child */ - ;; -(p6) mov ret0=r0 +(p7) mov ret0=r0 br.ret.sptk.few rp -END(vfork) +END(__sys_vfork) ==== //depot/projects/ia64/lib/libc/ia64/sys/fork.S#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/fork.S,v 1.5 2003/03/03 01:09:46 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/fork.S,v 1.6 2003/08/01 22:17:12 marcel Exp $"); #include "SYS.h" @@ -34,4 +34,4 @@ ;; (p7) mov ret0=r0 br.ret.sptk.few rp -END(fork) +END(__sys_fork) ==== //depot/projects/ia64/lib/libc/ia64/sys/setlogin.S#3 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/setlogin.S,v 1.3 2003/03/03 01:09:46 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/ia64/sys/setlogin.S,v 1.4 2003/08/01 22:17:12 marcel Exp $"); #include "SYS.h" @@ -39,4 +39,4 @@ ld8 r14=[r14] ;; st4 [r14]=r0 /* clear it */ br.ret.sptk.few rp -END(setlogin) +END(__sys_setlogin) ==== //depot/projects/ia64/lib/libc/locale/collcmp.c#3 (text+ko) ==== @@ -25,61 +25,21 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/collcmp.c,v 1.14 2002/03/22 21:52:18 obrien Exp $"); - -#define ASCII_COMPATIBLE_COLLATE /* see share/colldef */ +__FBSDID("$FreeBSD: src/lib/libc/locale/collcmp.c,v 1.17 2003/08/03 19:28:23 ache Exp $"); #include #include "collate.h" -#ifndef ASCII_COMPATIBLE_COLLATE -#include -#endif /* - * Compare two characters converting collate information - * into ASCII-compatible range, it allows to handle - * "[a-z]"-type ranges with national characters. + * Compare two characters using collate */ -int __collate_range_cmp (c1, c2) +int __collate_range_cmp(c1, c2) int c1, c2; { static char s1[2], s2[2]; - int ret; -#ifndef ASCII_COMPATIBLE_COLLATE - int as1, as2, al1, al2; -#endif - - c1 &= UCHAR_MAX; - c2 &= UCHAR_MAX; - if (c1 == c2) - return (0); - -#ifndef ASCII_COMPATIBLE_COLLATE - as1 = isascii(c1); - as2 = isascii(c2); - al1 = isalpha(c1); - al2 = isalpha(c2); - if (as1 || as2 || al1 || al2) { - if ((as1 && as2) || (!al1 && !al2)) - return (c1 - c2); - if (al1 && !al2) { - if (isupper(c1)) - return ('A' - c2); - else - return ('a' - c2); - } else if (al2 && !al1) { - if (isupper(c2)) - return (c1 - 'A'); - else - return (c1 - 'a'); - } - } -#endif s1[0] = c1; s2[0] = c2; - if ((ret = strcoll(s1, s2)) != 0) - return (ret); - return (c1 - c2); + return (strcoll(s1, s2)); } ==== //depot/projects/ia64/lib/libpthread/arch/amd64/amd64/enter_uts.S#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libpthread/arch/amd64/amd64/enter_uts.S,v 1.2 2003/07/31 08:50:01 davidxu Exp $"); +__FBSDID("$FreeBSD: src/lib/libpthread/arch/amd64/amd64/enter_uts.S,v 1.3 2003/08/02 22:39:10 davidxu Exp $"); /* @@ -34,7 +34,7 @@ */ ENTRY(_amd64_enter_uts) addq %rcx, %rdx /* get stack base */ - andq $-15, %rdx /* align to 16 bytes */ + andq $~0xf, %rdx /* align to 16 bytes */ movq %rdx, %rsp /* switch to UTS stack */ movq %rdx, %rbp /* set frame */ pushq %rsi ==== //depot/projects/ia64/release/Makefile#64 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile,v 1.808 2003/07/31 07:28:58 ru Exp $ +# $FreeBSD: src/release/Makefile,v 1.810 2003/08/03 15:06:00 ru Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ # [RELEASETAG=tag] @@ -240,15 +240,16 @@ RND= ${RD}/release.doc FD= ${_R}/ftp CD= ${_R}/cdrom +.if ${TARGET} != "pc98" +CD_BOOT= ${CD}/bootonly +.endif CD_DISC1= ${CD}/disc1 CD_DISC2= ${CD}/disc2 # Where the bootstrap ports (see DOCPORTS) get installed. LOCALDIR= /usr/local/bin -.if exists(${.CURDIR}/${TARGET_ARCH}/doFS.sh) -DOFS_SH= ${.CURDIR}/${TARGET_ARCH}/doFS.sh -.elif ${TARGET} != ${MACHINE} +.if ${TARGET} != ${MACHINE} DOFS_SH= ${.CURDIR}/scripts/doFS.sh ${DISKLABEL} ${TARGET} .else DOFS_SH= ${.CURDIR}/scripts/doFS.sh ${DISKLABEL} "" @@ -601,6 +602,19 @@ echo "$${i} distribution is finished."; \ fi ; \ done +.if !defined(NOPORTS) + # XXX: Inline stripped version of doTARBALL + @rm -rf ${RD}/dists/ports/ports* + @mkdir -p ${RD}/dists/ports + @echo rolling ports/ports tarball + @tar --exclude CVS --exclude 'ports/distfiles/*' -czf \ + ${RD}/dists/ports/ports.tgz -C /usr ports + @cp ${.CURDIR}/scripts/ports-install.sh ${RD}/dists/ports/install.sh + @(cd ${RD}/dists/ports; \ + rm -f CHECKSUM.MD5; \ + md5 * > CHECKSUM.MD5) + @echo "ports distribution is finished." +.endif touch ${.TARGET} @@ -701,8 +715,8 @@ .endif @tar --exclude CVS -cf - -C ${.CURDIR}/../usr.sbin/sysinstall help | \ tar xf - -C ${RD}/mfsfd/stand - @mkdir -p ${RD}/mfsroot .if defined(SMALLBOOTSIZE) + @mkdir -p ${RD}/mfsroot-small .if exists(${.CURDIR}/${TARGET}/drivers-small.conf) @mkdir -p ${RD}/mfsfd/modules @awk -f ${.CURDIR}/scripts/driver-copy2.awk 2 \ @@ -711,7 +725,7 @@ .endif sh -e ${DOFS_SH} mfsroot-small ${RD} ${MNT} \ ${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL} - @gzip -9vc mfsroot-small > ${RD}/mfsroot/mfsroot-small.gz + @gzip -9cnv mfsroot-small > ${RD}/mfsroot-small/mfsroot.gz @rm -rf ${RD}/mfsfd/modules .endif .if exists(${.CURDIR}/${TARGET}/drivers.conf) @@ -720,9 +734,10 @@ ${.CURDIR}/${TARGET}/drivers.conf \ ${RD}/trees/base/boot/kernel ${RD}/mfsfd/modules .endif + @mkdir -p ${RD}/mfsroot sh -e ${DOFS_SH} mfsroot ${RD} ${MNT} \ ${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL} - @gzip -9vc mfsroot > ${RD}/mfsroot/mfsroot.gz + @gzip -9cnv mfsroot > ${RD}/mfsroot/mfsroot.gz @rm -f mfsroot mfsroot-small touch ${.TARGET} @@ -827,9 +842,6 @@ @mv ${FD}/EARLY-ADOPTER.HTM ${FD}/EARLY.HTM .endif @echo "CD_VERSION = ${BUILDNAME}" > ${FD}/cdrom.inf -.if !defined(NOPORTS) - @tar --exclude CVS -cBf - -C ${CD_DISC1} ports | tar -xBf - -C ${FD} -.endif touch ${.TARGET} # @@ -837,7 +849,7 @@ # cdrom.1: @echo "Setting up CDROM distribution area" - @mkdir -p ${CD_DISC1} ${CD_DISC2} + @mkdir -p ${CD_BOOT} ${CD_DISC1} ${CD_DISC2} -@ln -s . ${CD_DISC1}/${BUILDNAME} .if !defined(NO_FLOPPIES) @cd ${RD} && find floppies -print | cpio -dumpl ${CD_DISC1} @@ -871,31 +883,36 @@ @mv ${CD_DISC1}/EARLY-ADOPTER.HTM ${CD_DISC1}/EARLY.HTM .endif .if ${TARGET} != "pc98" - @echo "Setting up /boot" + @echo "Setting up boot area" @rm -f ${CD_DISC2}/boot/loader.conf @cp ${RD}/mfsroot/mfsroot.gz ${CD_DISC2}/boot/mfsroot.gz @echo 'mfsroot_load="YES"' > ${CD_DISC2}/boot/loader.conf @echo 'mfsroot_type="mfs_root"' >> ${CD_DISC2}/boot/loader.conf @echo 'mfsroot_name="/boot/mfsroot"' >> ${CD_DISC2}/boot/loader.conf +.if defined(CD_BOOT) + @cp -Rp ${CD_DISC2}/boot ${CD_BOOT} +.endif @cp -Rp ${CD_DISC2}/boot ${CD_DISC1} -.endif .if ${TARGET} == "i386" && defined(EMUL_BOOT) && !defined(NO_FLOPPIES) # In case bootable ISO with floppy emulation is desired. +.if defined(CD_BOOT) + @mkdir -p ${CD_BOOT}/floppies + @cp ${CD_DISC1}/floppies/boot.flp ${CD_BOOT}/floppies +.endif @mkdir -p ${CD_DISC2}/floppies @cp ${CD_DISC1}/floppies/boot.flp ${CD_DISC2}/floppies .endif -.if !defined(NOPORTS) - @mkdir -p ${CD_DISC1}/ports && \ - tar --exclude CVS --exclude 'ports/distfiles/*' -czf \ - ${CD_DISC1}/ports/ports.tgz -C /usr ports && \ - cp ${.CURDIR}/scripts/ports-install.sh ${CD_DISC1}/ports/install.sh \ - && (cd ${CD_DISC1}/ports; md5 * > CHECKSUM.MD5) .endif touch ${.TARGET} iso.1: .if exists(${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh) @echo "Creating ISO images..." +.if defined(CD_BOOT) + @sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \ + fbsd_bootonly \ + ${CD}/${BUILDNAME}-${TARGET}-bootonly.iso ${CD_BOOT} +.endif @sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \ fbsd_miniinst \ ${CD}/${BUILDNAME}-${TARGET}-miniinst.iso ${CD_DISC1} @@ -1056,8 +1073,6 @@ .if ${TARGET} == "i386" @${WMAKEENV} kgzip -v -l ${RD}/trees/base/usr/lib/kgzldr.o \ -o ${RD}/image.${FSIMAGE}/boot/loader ${RD}/trees/base/boot/loader -.elif ${TARGET_ARCH} == "ia64" - @cp ${RD}/trees/base/boot/loader.efi ${RD}/image.${FSIMAGE}/boot .else @cp ${RD}/trees/base/boot/loader ${RD}/image.${FSIMAGE}/boot .endif @@ -1072,14 +1087,8 @@ @echo "echo Please insert MFS root floppy and press enter:" >> ${RD}/image.${FSIMAGE}/boot/loader.rc @echo "read" >> ${RD}/image.${FSIMAGE}/boot/loader.rc .endif -.if defined(FDSIZE) && ${FDSIZE} == "SMALL" - @echo "load -t mfs_root /mfsroot-small" >> ${RD}/image.${FSIMAGE}/boot/loader.rc -.else @echo "load -t mfs_root /mfsroot" >> ${RD}/image.${FSIMAGE}/boot/loader.rc -.endif -.if ${TARGET_ARCH} != "ia64" @echo "set hint.acpi.0.disabled=1" >> ${RD}/image.${FSIMAGE}/boot/loader.rc -.endif @if [ -r ${RD}/floppies/drivers.flp ]; then \ echo "set driver_floppy=YES" >> ${RD}/image.${FSIMAGE}/boot/loader.rc; \ fi @@ -1098,7 +1107,7 @@ ${BOOTINODE} ${BIGBOOTLABEL} .elif defined(FDSIZE) && ${FDSIZE} == "SMALL" sh -e ${DOFS_SH} ${RD}/floppies/mfsroot-small.flp \ - ${RD} ${MNT} ${SMALLBOOTSIZE} ${RD}/mfsroot/mfsroot-small.gz \ + ${RD} ${MNT} ${SMALLBOOTSIZE} ${RD}/mfsroot-small/mfsroot.gz \ ${BOOTINODE} ${SMALLBOOTLABEL} sh -e ${DOFS_SH} ${RD}/floppies/${FSIMAGE}.flp \ ${RD} ${MNT} ${SMALLBOOTSIZE} ${RD}/image.${FSIMAGE} \ ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/errata/article.sgml#22 (text+ko) ==== @@ -36,7 +36,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.43 2003/06/24 17:58:22 bmah Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/errata/article.sgml,v 1.44 2003/08/04 00:57:27 bmah Exp $ 2000 @@ -116,7 +116,13 @@ ]]> No advisories. + The implementation of the &man.realpath.3; function contains + a single-byte buffer overflow bug. This may have various + impacts, depending on the application using &man.realpath.3; and + other factors. This bug has been fixed on the &release.prev; + security fix branch and the &release.branch; development branch. For + more information, see security advisory + FreeBSD-SA-03:08. ]]> ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/hardware/alpha/proc-alpha.sgml#24 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -2283,9 +2283,12 @@ Rawhide comes with RCM functionality, which means you can power it on/off remotely, reset it etc. See also the description for - RMC in the DS10 section of this document. RCM versus RMC is not a typo, + the RMC in the DS10 section of this document. RCM versus RMC is not a typo, the various documentation I consulted used both acronyms - interchangably. + interchangably. Note that if you want remote power on/off to function + you need to connect a small DC adapter to the machine in order to have + the RCM logic powered. You need to supply 9-12V DC to the small inlet + located next to the keyboard connector. The kernel config file must contain: options DEC_KN300 ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#113 (text+ko) ==== @@ -3,7 +3,7 @@ The FreeBSD Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.604 2003/08/01 13:46:22 yar Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.608 2003/08/04 00:57:28 bmah Exp $ 2000 @@ -116,7 +116,9 @@ Security Advisories - + A single-byte buffer overflow in &man.realpath.3; has been + fixed. See security advisory + FreeBSD-SA-03:08. &merged; @@ -146,6 +148,10 @@ is no longer needed when only a USB keyboard is connected. &merged; + The &man.puc.4;, + PCI Universal Communications driver now supports + to connect parallel ports to the &man.ppc.4; driver. + The &man.safe.4; driver has been added to support SafeNet 1141, 1741-based crypto accelerators. &merged; @@ -177,6 +183,10 @@ A bug in the &man.bge.4; driver that prevented it from working correctly at 10 Mbps has been fixed. + The &man.em.4; driver now has support for tuning + the interrupt delays using sysctl tunables + without recompiling the driver. + The &man.harp.4; driver has been added. This is a pseudo physical interface driver for HARP, which attaches to all netgraph ATM interface in the @@ -289,6 +299,11 @@ The dev_db utility is unnecessary due to the mandatory presence of devfs, and has been removed. + &man.dhclient.8; now polls the state of network interfaces + and only sends DHCP requests on interfaces that are up. The + polling interval can be controlled with the + option. + &man.ipfw.8; list and show command now support ranges of rule numbers. &merged; @@ -331,6 +346,9 @@ A bug that &man.rarpd.8; does not recognize removable Ethernet NICs has been fixed. + &man.systat.1; now includes displays for IPv6 and ICMPv6 + traffic. + A number of utilities available in /bin and /sbin are now available as a statically-linked crunched binary that lives in @@ -388,6 +406,10 @@ Release Engineering and Integration + Floppy disk installation images are + no longer built for the alpha, amd64, and ia64 + architectures. + The supported release of GNOME has been updated from 2.2.1 to 2.2.2. &merged; ==== //depot/projects/ia64/release/ia64/mkisoimages.sh#3 (text+ko) ==== @@ -4,7 +4,7 @@ # Author: Jordan K Hubbard # Date: 22 June 2001 # -# $FreeBSD: src/release/ia64/mkisoimages.sh,v 1.4 2003/07/29 18:29:44 ru Exp $ +# $FreeBSD: src/release/ia64/mkisoimages.sh,v 1.5 2003/08/03 15:06:00 ru Exp $ # # This script is used by release/Makefile to build the (optional) ISO images # for a FreeBSD release. It is considered architecture dependent since each @@ -70,20 +70,20 @@ EFIPART=efipart.sys # To create a bootable CD under EFI, the boot image should be an EFI -# system partition. Since we already made that on the boot floppy, -# we sneakily extract that. +# system partition. if [ $bootable = yes ]; then - EFISZ=20480 + EFISZ=32768 MNT=/mnt dd if=/dev/zero of=$BASE/$EFIPART count=$EFISZ md=`mdconfig -a -t vnode -f $BASE/$EFIPART` newfs_msdos -F 12 -S 512 -h 4 -o 0 -s $EFISZ -u 16 $md - mount -t msdos /dev/$md $MNT + mount -t msdosfs /dev/$md $MNT mkdir -p $MNT/efi/boot $MNT/boot $MNT/boot/kernel cp -R $BASE/boot/defaults $MNT/boot cp $BASE/boot/kernel/kernel $MNT/boot/kernel cp $BASE/boot/device.hints $MNT/boot cp $BASE/boot/loader.* $MNT/boot + cp $BASE/boot/mfsroot.gz $MNT/boot cp $BASE/boot/support.4th $MNT/boot mv $MNT/boot/loader.efi $MNT/efi/boot/bootia64.efi umount $MNT ==== //depot/projects/ia64/release/pc98/dokern.sh#14 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/release/pc98/dokern.sh,v 1.78 2003/07/28 18:22:07 ru Exp $ +# $FreeBSD: src/release/pc98/dokern.sh,v 1.79 2003/08/02 09:36:49 ru Exp $ # if [ $# -lt 1 ]; then @@ -12,62 +12,62 @@ if [ "${FDSIZE}" = "SMALL" ]; then sed -e 's/ident.*GENERIC/ident BOOTMFS/g' \ + -e '/COMPAT_FREEBSD4/d' \ + -e '/DDB/d' \ -e '/DEBUG/d' \ - -e '/SOFTUPDATES/d' \ - -e '/UFS_DIRHASH/d' \ + -e '/INVARIANTS/d' \ + -e '/INVARIANT_SUPPORT/d' \ + -e '/KTRACE/d' \ -e '/NFSSERVER/d' \ -e '/NFS_ROOT/d' \ -e '/PROCFS/d' \ -e '/PSEUDOFS/d' \ - -e '/COMPAT_FREEBSD4/d' \ - -e '/KTRACE/d' \ + -e '/SOFTUPDATES/d' \ -e '/SYSV/d' \ - -e '/DDB/d' \ - -e '/INVARIANTS/d' \ - -e '/INVARIANT_SUPPORT/d' \ + -e '/UFS_DIRHASH/d' \ -e '/WITNESS/d' \ + -e '/ adv /d' \ + -e '/ ahc /d' \ + -e '/ amd /d' \ + -e '/ an /d' \ -e '/ atapifd /d' \ -e '/ atapist /d' \ - -e '/ ch /d' \ - -e '/ sa /d' \ + -e '/ awi /d' \ + -e '/ ch /d' \ + -e '/ dc /d' \ + -e '/ de /d' \ + -e '/ em /d' \ + -e '/ faith /d' \ + -e '/ fxp /d' \ + -e '/ gif /d' \ + -e '/ isp /d' \ + -e '/ lpt /d' \ -e '/ pass /d' \ - -e '/ ses /d' \ - -e '/ splash /d' \ + -e '/ pci$/d' \ + -e '/ pcn /d' \ + -e '/ plip /d' \ + -e '/ ppbus /d' \ -e '/ ppc$/d' \ - -e '/ ppbus /d' \ - -e '/ lpt /d' \ - -e '/ plip /d' \ -e '/ ppi /d' \ - -e '/ an /d' \ - -e '/ awi /d' \ - -e '/ wi /d' \ - -e '/ random /d' \ - -e '/ sl /d' \ -e '/ ppp /d' \ -e '/ pty /d' \ - -e '/ gif /d' \ - -e '/ faith /d' \ - -e '/ pci$/d' \ - -e '/ adv /d' \ - -e '/ ahc /d' \ - -e '/ amd /d' \ - -e '/ isp /d' \ - -e '/ sym /d' \ - -e '/ de /d' \ - -e '/ em /d' \ - -e '/ txp /d' \ - -e '/ vx /d' \ - -e '/ dc /d' \ - -e '/ fxp /d' \ - -e '/ pcn /d' \ + -e '/ random /d' \ -e '/ rl /d' \ + -e '/ sa /d' \ + -e '/ ses /d' \ -e '/ sf /d' \ -e '/ sis /d' \ + -e '/ sl /d' \ + -e '/ splash /d' \ -e '/ ste /d' \ + -e '/ sym /d' \ -e '/ tl /d' \ -e '/ tx /d' \ + -e '/ txp /d' \ -e '/ vr /d' \ + -e '/ vx /d' \ -e '/ wb /d' \ + -e '/ wi /d' \ -e '/ xl /d' echo "options ATA_NOPCI" @@ -75,38 +75,38 @@ else sed -e 's/ident.*GENERIC/ident BOOTMFS/g' \ + -e '/COMPAT_FREEBSD4/d' \ + -e '/DDB/d' \ -e '/DEBUG/d' \ - -e '/SOFTUPDATES/d' \ - -e '/UFS_DIRHASH/d' \ + -e '/INVARIANTS/d' \ + -e '/INVARIANT_SUPPORT/d' \ + -e '/KTRACE/d' \ -e '/NFSSERVER/d' \ -e '/NFS_ROOT/d' \ -e '/PROCFS/d' \ -e '/PSEUDOFS/d' \ - -e '/COMPAT_FREEBSD4/d' \ - -e '/KTRACE/d' \ + -e '/SOFTUPDATES/d' \ -e '/SYSV/d' \ - -e '/DDB/d' \ - -e '/INVARIANTS/d' \ - -e '/INVARIANT_SUPPORT/d' \ + -e '/UFS_DIRHASH/d' \ -e '/WITNESS/d' \ -e '/ atapifd /d' \ -e '/ atapist /d' \ -e '/ ch /d' \ - -e '/ sa /d' \ + -e '/ faith /d' \ + -e '/ gif /d' \ + -e '/ lpt /d' \ -e '/ pass /d' \ - -e '/ ses /d' \ - -e '/ splash /d' \ + -e '/ plip /d' \ + -e '/ ppbus /d' \ -e '/ ppc$/d' \ - -e '/ ppbus /d' \ - -e '/ lpt /d' \ - -e '/ plip /d' \ -e '/ ppi /d' \ + -e '/ ppp /d' \ + -e '/ pty /d' \ -e '/ random /d' \ + -e '/ sa /d' \ + -e '/ ses /d' \ -e '/ sl /d' \ - -e '/ ppp /d' \ - -e '/ pty /d' \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 3 22:42:01 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A662437B404; Sun, 3 Aug 2003 22:42:00 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 40D9037B401 for ; Sun, 3 Aug 2003 22:42:00 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1299343F3F for ; Sun, 3 Aug 2003 22:41:59 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h745fw0U081273 for ; Sun, 3 Aug 2003 22:41:58 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h745fuqV081270 for perforce@freebsd.org; Sun, 3 Aug 2003 22:41:56 -0700 (PDT) Date: Sun, 3 Aug 2003 22:41:56 -0700 (PDT) Message-Id: <200308040541.h745fuqV081270@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 35461 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 05:42:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=35461 Change 35461 by marcel@marcel_nfs on 2003/08/03 22:41:52 IFC @35458 Affected files ... .. //depot/projects/uart/alpha/include/endian.h#2 integrate .. //depot/projects/uart/amd64/amd64/pmap.c#9 integrate .. //depot/projects/uart/amd64/include/ieeefp.h#3 integrate .. //depot/projects/uart/arm/include/endian.h#2 integrate .. //depot/projects/uart/boot/efi/libefi/efiboot.h#2 integrate .. //depot/projects/uart/boot/efi/libefi/efifs.c#2 integrate .. //depot/projects/uart/boot/efi/loader/main.c#2 integrate .. //depot/projects/uart/conf/NOTES#6 integrate .. //depot/projects/uart/conf/files.alpha#5 integrate .. //depot/projects/uart/conf/files.amd64#3 integrate .. //depot/projects/uart/conf/files.i386#5 integrate .. //depot/projects/uart/conf/files.pc98#3 integrate .. //depot/projects/uart/conf/options#6 integrate .. //depot/projects/uart/contrib/dev/ath/README#2 integrate .. //depot/projects/uart/contrib/dev/ath/ah.h#2 integrate .. //depot/projects/uart/contrib/dev/ath/freebsd/ah_osdep.c#2 integrate .. //depot/projects/uart/contrib/dev/ath/freebsd/ah_osdep.h#2 integrate .. //depot/projects/uart/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#3 integrate .. //depot/projects/uart/contrib/dev/ath/version.h#2 integrate .. //depot/projects/uart/dev/ath/if_ath.c#5 integrate .. //depot/projects/uart/dev/fxp/if_fxp.c#7 integrate .. //depot/projects/uart/dev/pci/pci.c#4 integrate .. //depot/projects/uart/dev/pci/pcireg.h#2 integrate .. //depot/projects/uart/dev/puc/pucdata.c#3 integrate .. //depot/projects/uart/geom/geom_dev.c#2 integrate .. //depot/projects/uart/i386/i386/pmap.c#8 integrate .. //depot/projects/uart/i386/i386/sys_machdep.c#5 integrate .. //depot/projects/uart/i386/include/endian.h#2 integrate .. //depot/projects/uart/i386/pci/pci_bus.c#2 integrate .. //depot/projects/uart/i386/pci/pci_cfgreg.c#2 integrate .. //depot/projects/uart/ia64/ia64/clock.c#2 integrate .. //depot/projects/uart/ia64/ia64/exception.S#3 integrate .. //depot/projects/uart/ia64/ia64/genassym.c#2 integrate .. //depot/projects/uart/ia64/ia64/interrupt.c#2 integrate .. //depot/projects/uart/ia64/ia64/machdep.c#6 integrate .. //depot/projects/uart/ia64/ia64/mp_machdep.c#3 integrate .. //depot/projects/uart/ia64/ia64/timerreg.h#2 delete .. //depot/projects/uart/ia64/include/clock.h#2 integrate .. //depot/projects/uart/ia64/include/cpu.h#3 integrate .. //depot/projects/uart/ia64/include/endian.h#2 integrate .. //depot/projects/uart/ia64/include/pcpu.h#2 integrate .. //depot/projects/uart/ia64/include/ucontext.h#2 integrate .. //depot/projects/uart/kern/kern_acl.c#2 integrate .. //depot/projects/uart/kern/kern_ktr.c#4 integrate .. //depot/projects/uart/kern/kern_physio.c#2 integrate .. //depot/projects/uart/kern/sys_process.c#2 integrate .. //depot/projects/uart/kern/uipc_syscalls.c#2 integrate .. //depot/projects/uart/kern/vfs_bio.c#2 integrate .. //depot/projects/uart/modules/ep/Makefile#2 integrate .. //depot/projects/uart/pc98/pc98/ppc.c#2 integrate .. //depot/projects/uart/pc98/pc98/sio.c#3 integrate .. //depot/projects/uart/powerpc/include/endian.h#2 integrate .. //depot/projects/uart/powerpc/powerpc/pmap.c#6 integrate .. //depot/projects/uart/sys/acl.h#2 integrate .. //depot/projects/uart/ufs/ufs/acl.h#2 integrate .. //depot/projects/uart/ufs/ufs/ufs_acl.c#2 integrate .. //depot/projects/uart/ufs/ufs/ufs_vnops.c#4 integrate .. //depot/projects/uart/vm/swap_pager.c#6 integrate .. //depot/projects/uart/vm/swap_pager.h#4 integrate .. //depot/projects/uart/vm/uma_core.c#7 integrate .. //depot/projects/uart/vm/vm_glue.c#3 integrate .. //depot/projects/uart/vm/vm_pageout.c#4 integrate .. //depot/projects/uart/vm/vm_pageout.h#2 integrate .. //depot/projects/uart/vm/vm_pager.c#2 integrate .. //depot/projects/uart/vm/vm_pager.h#2 integrate Differences ... ==== //depot/projects/uart/alpha/include/endian.h#2 (text+ko) ==== @@ -32,7 +32,7 @@ * * @(#)endian.h 8.1 (Berkeley) 6/10/93 * $NetBSD: endian.h,v 1.5 1997/10/09 15:42:19 bouyer Exp $ - * $FreeBSD: src/sys/alpha/include/endian.h,v 1.13 2002/09/23 04:32:16 mike Exp $ + * $FreeBSD: src/sys/alpha/include/endian.h,v 1.14 2003/08/03 07:50:18 obrien Exp $ */ #ifndef _MACHINE_ENDIAN_H_ @@ -44,8 +44,8 @@ /* * Define the order of 32-bit words in 64-bit words. */ -#define _QUAD_HIGHWORD 1 -#define _QUAD_LOWWORD 0 +#define _QUAD_HIGHWORD 1 +#define _QUAD_LOWWORD 0 /* * Definitions for byte order, according to byte significance from low @@ -81,7 +81,7 @@ } static __inline __uint32_t -__bswap32(__uint32_t __x) +__bswap32(__uint32_t _x) { __uint32_t __r; @@ -95,12 +95,12 @@ "or $4, $1, %0\n\t" "or $2, $3, $2\n\t" "or $2, %0, %0" - : "=r" (__r) : "r" (__x) : "$1", "$2", "$3", "$4"); + : "=r" (__r) : "r" (_x) : "$1", "$2", "$3", "$4"); return (__r); } -static __inline __uint16_t -__bswap16(__uint16_t __x) +static __inline __uint16_t +__bswap16(__uint16_t _x) { __uint16_t __r; @@ -108,7 +108,7 @@ "insbl %1, 1, $1\n\t" "extbl %1, 1, $2\n\t" "or $1, $2, %0" - : "=r" (__r) : "r" (__x) : "$1", "$2"); + : "=r" (__r) : "r" (_x) : "$1", "$2"); return (__r); } ==== //depot/projects/uart/amd64/amd64/pmap.c#9 (text+ko) ==== @@ -73,7 +73,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.427 2003/07/31 03:39:50 bmilekic Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.428 2003/08/02 19:26:08 alc Exp $"); /* * Manages physical address maps. @@ -2820,7 +2820,7 @@ return ((void *)PHYS_TO_DMAP(pa)); offset = pa & PAGE_MASK; size = roundup(offset + size, PAGE_SIZE); - va = kmem_alloc_pageable(kernel_map, size); + va = kmem_alloc_nofault(kernel_map, size); if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); pa = pa & PG_FRAME; ==== //depot/projects/uart/amd64/include/ieeefp.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#) ieeefp.h 1.0 (Berkeley) 9/23/93 - * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.9 2003/07/22 06:44:54 peter Exp $ + * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.10 2003/08/02 00:26:30 peter Exp $ */ /* @@ -266,8 +266,8 @@ #if !defined(__IEEEFP_NOINLINES__) && !defined(__cplusplus) && defined(__GNUC__) -#define fpsetround() __fpsetround() -#define fpgetround(_m) __fpgetround(_m) +#define fpgetround() __fpgetround() +#define fpsetround(_m) __fpsetround(_m) #define fpgetprec() __fpgetprec() #define fpsetprec(_m) __fpsetprec(_m) #define fpgetmask() __fpgetmask() ==== //depot/projects/uart/arm/include/endian.h#2 (text+ko) ==== @@ -27,12 +27,12 @@ * * @(#)endian.h 8.1 (Berkeley) 6/10/93 * $NetBSD: endian.h,v 1.7 1999/08/21 05:53:51 simonb Exp $ - * $FreeBSD: src/sys/arm/include/endian.h,v 1.1 2001/01/04 05:23:06 obrien Exp $ + * $FreeBSD: src/sys/arm/include/endian.h,v 1.2 2003/08/03 07:50:19 obrien Exp $ */ #ifndef _ENDIAN_H_ #define _ENDIAN_H_ -#define BYTE_ORDER LITTLE_ENDIAN +#define BYTE_ORDER _LITTLE_ENDIAN #endif /* !_ENDIAN_H_ */ ==== //depot/projects/uart/boot/efi/libefi/efiboot.h#2 (text+ko) ==== @@ -28,7 +28,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/efi/libefi/efiboot.h,v 1.7 2002/10/24 07:53:12 marcel Exp $ + * $FreeBSD: src/sys/boot/efi/libefi/efiboot.h,v 1.8 2003/08/02 08:22:03 marcel Exp $ */ /* @@ -69,6 +69,9 @@ /* Find EFI network resources */ extern void efinet_init_driver(void); +/* Map handles to units */ +int efifs_get_unit(EFI_HANDLE); + /* Wrapper over EFI filesystems. */ extern struct fs_ops efi_fsops; ==== //depot/projects/uart/boot/efi/libefi/efifs.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/efi/libefi/efifs.c,v 1.7 2003/02/26 09:13:05 marcel Exp $ + * $FreeBSD: src/sys/boot/efi/libefi/efifs.c,v 1.8 2003/08/02 08:22:03 marcel Exp $ */ #include @@ -291,7 +291,18 @@ }; static EFI_HANDLE *fs_handles; -UINTN fs_handle_count;; +UINTN fs_handle_count; + +int +efifs_get_unit(EFI_HANDLE h) +{ + UINTN u; + + u = 0; + while (u < fs_handle_count && fs_handles[u] != h) + u++; + return ((u < fs_handle_count) ? u : -1); +} static int efifs_dev_init(void) ==== //depot/projects/uart/boot/efi/loader/main.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/efi/loader/main.c,v 1.19 2003/04/03 21:36:29 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/efi/loader/main.c,v 1.20 2003/08/02 08:22:03 marcel Exp $"); #include #include @@ -54,6 +54,7 @@ EFI_GUID acpi = ACPI_TABLE_GUID; EFI_GUID acpi20 = ACPI_20_TABLE_GUID; +EFI_GUID devid = DEVICE_PATH_PROTOCOL; EFI_GUID hcdp = HCDP_TABLE_GUID; EFI_GUID imgid = LOADED_IMAGE_PROTOCOL; EFI_GUID mps = MPS_TABLE_GUID; @@ -101,8 +102,6 @@ main(int argc, CHAR16 *argv[]) { EFI_LOADED_IMAGE *img; - EFI_SIMPLE_NETWORK *net; - EFI_STATUS status; int i; /* @@ -129,7 +128,6 @@ efinet_init_driver(); - /* Get our loaded image protocol interface structure. */ BS->HandleProtocol(IH, &imgid, (VOID**)&img); @@ -139,23 +137,16 @@ printf("%s, Revision %s\n", bootprog_name, bootprog_rev); printf("(%s, %s)\n", bootprog_maker, bootprog_date); - /* - * XXX quick and dirty check to see if we're loaded from the - * network. If so, we set the default device to 'net'. In all - * other cases we set the default device to 'disk'. We presume - * fixed positions in devsw for both net and disk. - */ - status = BS->HandleProtocol(img->DeviceHandle, &netid, (VOID**)&net); - if (status == EFI_SUCCESS && net != NULL) { - currdev.d_dev = devsw[1]; /* XXX net */ - currdev.d_kind.netif.unit = 0; - } else { - currdev.d_dev = devsw[0]; /* XXX disk */ - currdev.d_kind.efidisk.unit = 0; + i = efifs_get_unit(img->DeviceHandle); + if (i >= 0) { + currdev.d_dev = devsw[0]; /* XXX disk */ + currdev.d_kind.efidisk.unit = i; /* XXX should be able to detect this, default to autoprobe */ currdev.d_kind.efidisk.slice = -1; - /* default to 'a' */ currdev.d_kind.efidisk.partition = 0; + } else { + currdev.d_dev = devsw[1]; /* XXX net */ + currdev.d_kind.netif.unit = 0; /* XXX */ } currdev.d_type = currdev.d_dev->dv_type; ==== //depot/projects/uart/conf/NOTES#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1165 2003/07/29 04:32:32 njl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1166 2003/08/03 13:39:59 phk Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -726,14 +726,6 @@ # images of type mfs_root or md_root. options MD_ROOT -# Allow this many swap-devices. -# -# In order to manage swap, the system must reserve bitmap space that -# scales with the largest mounted swap device multiplied by NSWAPDEV, -# irrespective of whether other swap devices exist. So it is not a -# good idea to make this value too large. -options NSWAPDEV=5 - # Disk quotas are supported when this option is enabled. options QUOTA #enable disk quotas ==== //depot/projects/uart/conf/files.alpha#5 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.alpha,v 1.104 2003/08/01 02:25:32 ambrisko Exp $ +# $FreeBSD: src/sys/conf/files.alpha,v 1.105 2003/08/04 02:39:14 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -178,6 +178,7 @@ dev/kbd/kbd.c optional kbd dev/kbd/kbd.c optional sc dev/kbd/kbd.c optional ukbd +dev/ppc/ppc.c optional ppc dev/sio/sio.c optional sio dev/sio/sio_isa.c optional sio isa dev/syscons/schistory.c optional sc @@ -197,7 +198,6 @@ isa/atkbd_isa.c optional atkbd isa/atkbdc_isa.c optional atkbdc isa/fd.c optional fdc -dev/ppc/ppc.c optional ppc isa/psm.c optional psm isa/syscons_isa.c optional sc isa/vga_isa.c optional vga ==== //depot/projects/uart/conf/files.amd64#3 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.amd64,v 1.19 2003/08/01 02:25:32 ambrisko Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.20 2003/08/04 02:39:14 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -110,6 +110,8 @@ dev/kbd/kbd.c optional ukbd dev/kbd/kbd.c optional vt +dev/ppc/ppc.c optional ppc + dev/syscons/schistory.c optional sc dev/syscons/scmouse.c optional sc dev/syscons/scterm.c optional sc @@ -130,7 +132,6 @@ isa/atkbd_isa.c optional atkbd isa/atkbdc_isa.c optional atkbdc isa/fd.c optional fdc -dev/ppc/ppc.c optional ppc isa/psm.c optional psm isa/syscons_isa.c optional sc isa/vga_isa.c optional vga ==== //depot/projects/uart/conf/files.i386#5 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.449 2003/08/01 02:25:32 ambrisko Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.450 2003/08/04 02:39:14 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -133,6 +133,8 @@ dev/kbd/kbd.c optional ukbd dev/kbd/kbd.c optional vt dev/lnc/if_lnc_isa.c optional lnc isa +dev/ppc/ppc.c optional ppc +dev/ppc/ppc_puc.c optional ppc puc pci dev/sbni/if_sbni.c optional sbni dev/sbni/if_sbni_isa.c optional sbni isa dev/sbni/if_sbni_pci.c optional sbni pci @@ -375,8 +377,6 @@ isa/atkbd_isa.c optional atkbd isa/atkbdc_isa.c optional atkbdc isa/fd.c optional fdc -dev/ppc/ppc.c optional ppc -dev/ppc/ppc_puc.c optional ppc puc pci isa/psm.c optional psm isa/syscons_isa.c optional sc isa/vga_isa.c optional vga ==== //depot/projects/uart/conf/files.pc98#3 (text+ko) ==== @@ -3,7 +3,7 @@ # # modified for PC-9801 # -# $FreeBSD: src/sys/conf/files.pc98,v 1.273 2003/07/22 08:11:12 peter Exp $ +# $FreeBSD: src/sys/conf/files.pc98,v 1.274 2003/08/02 09:23:03 nyan Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -115,6 +115,7 @@ dev/kbd/kbd.c optional ukbd dev/kbd/kbd.c optional pckbd dev/lnc/if_lnc_cbus.c optional lnc isa +dev/ppc/ppc_puc.c optional ppc puc pci dev/sbni/if_sbni.c optional sbni dev/sbni/if_sbni_pci.c optional sbni pci dev/snc/dp83932.c optional snc ==== //depot/projects/uart/conf/options#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.406 2003/07/29 18:08:16 njl Exp $ +# $FreeBSD: src/sys/conf/options,v 1.407 2003/08/03 13:39:59 phk Exp $ # # On the handling of kernel options # @@ -119,7 +119,6 @@ MD_ROOT opt_md.h MD_ROOT_SIZE opt_md.h NDGBPORTS opt_dgb.h -NSWAPDEV opt_swap.h NSWBUF_MIN opt_swap.h NTIMECOUNTER opt_ntp.h PANIC_REBOOT_WAIT_TIME opt_panic.h ==== //depot/projects/uart/contrib/dev/ath/README#2 (text+ko) ==== @@ -1,4 +1,4 @@ -$Id: README,v 1.1 2003/06/23 17:59:07 sam Exp $ +$Id: README,v 1.2 2003/07/02 01:55:27 sam Exp $ WARNING: THIS IS A BETA DISTRIBUTION. THIS SOFTWARE HAS KNOWN PROBLEMS AND @@ -9,7 +9,9 @@ Atheros Hardware Access Layer (HAL) =================================== -* Copyright (c) 2002, 2003 Sam Leffler. All rights reserved. +* Copyright (c) 2002, 2003 Sam Leffler. +* Copyright (c) 2002, 2003 Atheros Communications, Inc. +* All rights reserved. Read the file COPYRIGHT for the complete copyright. ==== //depot/projects/uart/contrib/dev/ath/ah.h#2 (text+ko) ==== @@ -33,7 +33,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * - * $Id: ah.h,v 1.34 2003/06/25 04:50:21 sam Exp $ + * $Id: ah.h,v 1.35 2003/07/21 02:36:53 sam Exp $ */ #ifndef _ATH_AH_H_ @@ -286,7 +286,8 @@ typedef enum { HAL_M_STA = 1, /* infrastructure station */ HAL_M_IBSS = 0, /* IBSS (adhoc) station */ - HAL_M_HOSTAP = 6 /* Software Access Point */ + HAL_M_HOSTAP = 6, /* Software Access Point */ + HAL_M_MONITOR = 8 /* Monitor mode */ } HAL_OPMODE; typedef struct { ==== //depot/projects/uart/contrib/dev/ath/freebsd/ah_osdep.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * - * $Id: ah_osdep.c,v 1.21 2003/06/25 05:49:14 sam Exp $ + * $Id: ah_osdep.c,v 1.22 2003/07/26 14:58:00 sam Exp $ */ #include "opt_ah.h" @@ -43,6 +43,7 @@ #include #include #include +#include #include @@ -207,6 +208,7 @@ error = suser(curthread); if (error == 0) { error = alq_open(&ath_hal_alq, ath_hal_logfile, + curthread->td_ucred, sizeof (struct athregrec), ath_hal_alq_qsize); ath_hal_alq_lost = 0; ath_hal_alq_emitdev = 1; ==== //depot/projects/uart/contrib/dev/ath/freebsd/ah_osdep.h#2 (text+ko) ==== @@ -33,7 +33,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * - * $Id: ah_osdep.h,v 1.8 2003/06/25 04:50:26 sam Exp $ + * $Id: ah_osdep.h,v 1.9 2003/07/26 14:55:11 sam Exp $ */ #ifndef _ATH_AH_OSDEP_H_ #define _ATH_AH_OSDEP_H_ @@ -56,7 +56,6 @@ #define OS_MEMCPY(_dst, _src, _size) bcopy((_src), (_dst), (_size)) #define OS_MACEQU(_a, _b) \ (bcmp((_a), (_b), IEEE80211_ADDR_LEN) == 0) -#define OS_QSORT(_a, _n, _es, _cmp) qsort((_a), (_n), (_es), (_cmp)) struct ath_hal; extern u_int32_t OS_GETUPTIME(struct ath_hal *); ==== //depot/projects/uart/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#3 (text+ko) ==== @@ -33,3062 +33,3278 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * - * $Id: i386-elf.hal.o.uu,v 1.3 2003/06/25 04:50:26 sam Exp $ + * $Id: i386-elf.hal.o.uu,v 1.6 2003/08/01 03:42:51 sam Exp $ */ begin 644 hal.o -M?T5,1@$!`0D```````````$``P`!```````````````XT@$``````#0````` +M?T5,1@$!`0D```````````$``P`!``````````````!<[@$``````#0````` M`"@`#0`*`````````````````%6)Y0^W50B!^@<1``!T88'Z!Q$``'\9@_H2 M?PR#^A%]5H/Z!W1*ZU^#^A-T4^M8D('Z$Q$``'1(@?H3$0``?Q"!^A(1``!T M+^L]C;8`````N`````"!^A/P``!T+[@4````@?H;\0``="+K&XUT)@"X*``` M`.L5N#4```#K#HGVN$(```#K!;@`````7<.)]E6)Y8/L!`^W10QF@7T(C!9U -M#HD$).A6____ZPF-="8`N`````")[%W#C;0F`````%6)Y8/L'(E=^(EU_(MU -M#(M=$(M-%(M5&`^W10@]!P(```^$F0```#T'`@``?R*#^!)_$X/X$7UH@_@' -M#X1_````Z9H```"#^!-T->F0````/1,1``!T*3T3$0``?Q(]!Q$``'1;/1(1 -M``#K$(UT)@`]$_```'0)/1OQ``!T(NM@B50D$(E,)`R)7"0(B70D!(D$).C\ -M____ZU&-M@````")5"00B4PD#(E<)`B)="0$B00DZ/S____K,8VV`````(E4 -M)!")3"0,B5PD"(ET)`2)!"3H_/___^L1C;8`````N`````#'`@$```"+7?B+ -M=?R)[%W#C70F`(V\)P````!5B>564XM-"(MU#+L`````N``````Y\',8C;0F -M`````(T4`(G(@^`!"=#1Z4,Y\W+O6UY=PXUT)@"-O"<`````58GE@^P,B1PD -MB70D!(E\)`B+30R+=1`/MU44#[=Q=PXGVC;PG`````%6)Y8M-#`^W00*#X""Z`@```&:% -MP'59#[=!`B7`````N@,```!F/<``=$4/MT$")=````"Z!````&8]T`!T,0^W -M00*#X!"Z`0```&:%P'4@#[=!`B4`"```9H7`#Y7`#[;0C122C70F`(V\)P`` -M``")T%W#C;8`````C;\`````58GEBU4(BT4,A,!Y%[@.````@?JT"0``=%V! -M^K,)``!V'NLLJ0`!``!U.K@.````@?JT"0``=#^!^K,)``!W"('J9PD``.LC -M@?J'$P``=Q6!ZM`)``"XSH$C4(/ZQ*!ZH@3``"XS6+50B+10R$P'D3N+0)``"#^@YT0H/Z#78:ZR>)]JD` -M`0``=2JXM`D``(/Z#G0H@_H-=PJ-!)(%9PD``.L9@_H:=PR-!)*-!(6D"``` -MZPB-!)(%B!,``%W#D(UT)@!5B>564XM=#(![`@!U3KD`````C;8`````C;PG -M`````,9$&0+_08/Y'W[UN0`````/MP.)QCG!?2.-M"8`````#[9$RR8/MM"( -M3!H""D3+)P^VP(A,&`)!.?%\Y%M>7<-5B>575E.#[$"+=0B+70R-0Q")P3M% -M$`^'Z@```(UV`(M6$(-^#`!U"`'*[8E%Y.L&BQ01B57DBTX0C5,,@WX,`'4- -MC10*[8E%\.L*C70F`(L,"HE-\(M.$(U3"(-^#`!U#HT4"NV)1>SK"Y"-="8` -MBPP*B4WLBTX0C5,$@WX,`'4.C10*[8G'ZPF-M@````"+/`J+3A"#?@P`=0B- -M%`OMB<+K`XL4"XM%Y(E$)"R-0Q")1"0HBT7PB40D)(U##(E$)""+1>R)1"0< -MC4,(B40D&(E\)!2-0P2)1"00B50D#(E<)`C'1"0$3P```,<$)`````#H_/__ -M_X/#%(U+$#M-$`^&&?___XM%$"G8@_@(#X0Y`0``@_@(=PZ#^`0/A'T!``#I -MJ`$``(/X#`^$IP```(/X$`^%E@$``(M6$(U##(-^#`!U"`'"[8E%Z.L&BQ00 -MB57HBU80C4,(@WX,`'4'`<+MBR+5A"+1-\,@WX, -M`'4-`<+MB<'K"8VV`````(L,$(M6$(M$WP2#?@P`=0CK!HL4$(E5Z(M6$(M$WPR#?@P`=0L#BPP0BU80 -MBT3?!(-^#`!U!P'"[8G"ZP.+%!"+1>B)1"0L#BP00B40D#(L$WXE$)`C'1"0$5P$``,<$)`````#H_/__ -M_XVV`````(V\)P````"#Q#1;7E]=PY"0D)"0D)"058GE5U93@^P(BUT4#[=% -M#(E%\`^W?1"+10AF@3@!,'<)QT7L`````.L'QT7L%@```+X`````C78`C;PG -M`````(M5[`^W!'*)P0^OS[ID````*<*)T`^O1?`!P;@?A>M1]^G!^@7!^1\I -MRF:)$X/#`D:#_@I^RH/$"%M>7UW#B?95B>4/MU4,B=!F@?K_`'0[BT4(9H$X -M`C!W)F:#^CYV$(T$D@4B%0``ZQZ-M@````"-!)*-A`#L$P``ZPR-="8`C022 -M!<`2```/M\!=PXUV`%6)Y0^W50R)T&:!^O\`=!N+10AF@3@",'<(C8)@"0`` -MZP:-@OP(```/M\!=PXUV`%6)Y5=64X/L$(MU#&:!/@(P=FV_4`$``+L````` -M9H.^2@$````/A!4"``"0C70F`(U%\HE$)`B)^HU'`0^W^(E4)`2+10B)!"3_ -M51"%P`^$S`$```^V1?-FB81>-@$```^V1?)FB81>.`$``(/#`@^WADH!```Y -MPP^-P@$``.NPC47RB40D"+\!`0``QT0D!``!``"+10B)!"3_51"Z`````(7` -M#X33`0``#[=5\HG0P>@)9HF&-@$``(G0P>@"@^!_9HF&.`$``,'B!8/B?V:) -MECH!``"-1?*)1"0(B?J-1P$/M_B)5"0$BT4(B00D_U40N@````"%P`^$?@$` -M``^W5?*)T<'I"P^WACH!```)R&:)ACH!``")T,'H!(/@?V:)ACP!``#!X@.# -MXG]FB98^`0``C47RB40D"(GZC4-@$``(E$)`2)-"3H'/W__V:) -MA%XV`0``0P^WADH!```YPWS8N@$```")T(/$$%M>7UW#B?:-O"<`````58GE -M5U93@^P@OP````"+10QF@3@",'8'OE`!``#K!;X``0``@_\!=#R#_P%_"87_ -M=`_IB0```(/_`G16Z7\```"#Q@6+50P/MY)*`0``B57LBUT,@<-,`0``BTT, -M@<$V`0``ZU:+10QF@W@8``^$;0(``(/&-P^WD%0#``")5>R)PX'#_@,```5< -M`P``B47DZSZ+30QF@WD8``^$0`(``(/&1@^W@50#``")1>R)RX'#8@,``('! -M5@,``(E-Y.L0N@````#I)0(``(VV`````,=%Z`````"+5>PY5>@/C?T!``"+ -M3>B+5>0/MP1*9HD#C47RB40D"(ET)`1&BTT(B0PD_U40N@````"%P`^$W0$` -M``^W1?+!Z`IFB4,$#[=%\L'H!(/@/V:)0P(/MT7RP>`"@^`_9HE#'HU%\HE$ -M)`B)="0$1HM%"(D$)/]5$+H`````A<`/A)0!```/MU7RP>H.#[=#'@G09HE# -M'@^V1?.#X#]FB4,@#[=%\L'H`H/@/V:)0R(/MT7RP>`$@^`_9HE#)(U%\HE$ -M)`B)="0$1HM5"(D4)/]5$+H`````A<`/A#H!```/MU7RP>H,#[=#)`G09HE# -M)`^W1?+!Z`:#X#]FB4,F#[=%\H/@/V:)0RB-1?*)1"0(B70D!$:+30B)#"3_ -M51"Z`````(7`#X3N````#[=%\L'H"F:)0RH/MT7RP>@$@^`_9HE#+`^W1?+! -MX`*#X#]FB4,NC47RB40D"(ET)`1&BT4(B00D_U40N@````"%P`^$I0````^W -M5?+!Z@X/MT,N"=!FB4,N#[9%\X/@/V:)0S`/MT7RP>@"@^`_9HE#,HU#"(E$ -M)`P/MT,$B40D"`^W0P*)1"0$BU4,B10DZ-KY__^Z``````^W0P:)P3G"?2*- -M="8`C;PG``````^_1%,>C02`C02``#_P(/CB3]__^Z`0```(G0@\0@6UY?7<.-M"8````` -M58GE5U93@^P@BWT,QT7H`````&:!/P(P=@>^4`$``.L%O@`!``"#?>@!=#2# -M?>@!?PZ#?>@`=!#K0"````C9\.!0``C9<,!0``B57@ZS!F -M@W\8``^$E@$``(/&:<=%Y`,```"-G^X$``"-A^P$``")1>#K"KH`````Z8,! -M``"+5>!FQP(``,=%[`````"+1>0Y1>P/C58!``#K#9"0D)"0D)"0D)"0D)"- -M1?*)1"0(B70D!$:+50B)%"3_51"Z`````(7`#X0W`0``9H$_`C!V!P^V1?/K -M")`/MT7RP>@)9HE#"&:#>P@`#X3O````@WWH`'44#[=#"(E$)`2)/"3HM/C_ -M_^L2B?8/MT,(B40D!(D\).CP^/__9HE#"&:!/P(P=A@"@^`_9HE# -M!@^W1?+!X`3K%0^W1?+!Z`.#X#]FB4,&#[=%\L'@`X/@/V:)0P2-1?*)1"0( -MB70D!$:+10B)!"3_51"Z`````(7`#X2)````9H$_`C!V*0^W5?+!Z@P/MT,$ -M"=!FB4,$#[=%\L'H!H/@/V:)0P(/MT7RZRF-="8`#[=5\L'J#0^W0P0)T&:) -M0P0/MT7RP>@'@^`_9HE#`@^W1?+1Z(/@/V:)`XM5X`^W`D!FB0*#PPK_1>R+ -M1>0Y1>P/C+G^____1>B#?>@"#X[?_?__N@$```")T(/$(%M>7UW#C;8````` -MC;PG`````%6)Y5=64X/L%(MU#('&)`4``(M%#&:!.`(P=A2_OP$``.L2N``` -M``#I90,``(UV`+]O`0``QT7L`````(M5#&:#NM@`````#X1``P``BTWLBT4, -M9H.\2-H`````=1IF@3@",'8+@\<(Z0<#``"-=@"#QP?I_`(``(M5#&:!.@(P -M#X:O````NP````"0C70F`(U%\HE$)`B)?"0$1XM-"(D,)/]5$(7`#X1V____ -M#[9%\V:)!-X/MD7R9HE$W@B#PP*#^P=^RKL`````D(UT)@"-1?*)1"0(B7PD -M!$>+10B)!"3_51"%P`^$-O___P^V1?.#X#]FB43>`@^W1?+!Z`Z#X`$/M\") -M1-X$#[=%\H/@/V:)1-X*#[=%\L'H!H/@`0^WP(E$W@R#PP*#^P@)9HD&B=#! -MZ`*#X']FB48(P>(%@^)_9HE6$(U%\HE$)`B)?"0$1XM-"(D,)/]5$(7`#X22 -M_O__#[=5\HG1P>D+#[=&$`G(9HE&$(G0P>@$@^!_9HE&&,'B`X/B?V:)5B"- -M1?*)1"0(B7PD!$>+10B)!"3_51"%P`^$3/[__P^W5?*)T<'I#0^W1B`)R&:) -M1B")T,'H!H/@?V:)1B@!TH/B?V:)5C"-1?*)1"0(B7PD!$>+50B)%"3_51"% -MP`^$!_[__P^W5?*)T<'I#P^W1C`)R&:)1C")T,'H"(/@?V:)1CB)T,'H`H/@ -M/V:)1@+!X@2#XC]FB58*C47RB40D"(E\)`1'BTT(B0PD_U40A<`/A+7]__\/ -MMU7RB='!Z0P/MT8*"H&@^(_9HE6$@^W1?*#X#]FB48:C47RB40D -M"(E\)`1'BT4(B00D_U40A<`/A'#]__\/MU7RB=#!Z`IFB48BB=#!Z`2#X#]F -MB48JP>("@^(_9HE6,HU%\HE$)`B)?"0$1XM5"(D4)/]5$(7`#X0P_?__#[=% -M\HG!P>D.#[=6,@G*9HE6,L'H"(/@/V:)1CJ[`````(UT)@"-O"<`````@SS> -M`'1(BTWLBU4,#[>$2MH```"#X`-FA0X/[!WZL@\9`_T7LBU4, -M#[>"V````#E%[`^,P/S__[@!````@\046UY?7<.-M@````!5B>575E.#[!2+ -M=0QF@3X",'82QT7L1````&;'AM@````@`.L0QT7L+````&;'AM@````0`(U% -M\HE$)`B+5>R+`HE$)`2+10B)!"3_51"Z`````(7`#X35!@``#[=5\HG0P>@/ -M9HE&!HG0P>@.@^`!9HE&"HG0P>@+@^`'9HE&#(G0P>@$@^!_9HE&#HG0P>@# -M@^`!9HE&"(G0P>@"@^`!9HE&&M'J@^(!9HE6&`^W1?*#X`%FB486C47RB40D -M"(M5[(M"!(E$)`2+10B)!"3_51"Z`````(7`#X11!@``#[9%\XA&'`^V1?*( -M1AV_`````(M5[(MH.#[>$?H@````)T&:)A'Z(````#[9%\X/@/V:)A'Z.````#[=%\L'H`H/@ -M/V:)A'Z4````#[=%\L'@!(/@/V:)A'Z:````C47RB40D"(E<)`1#BT4(B00D -M_U40A<`/A.,#```/MU7RP>H,#[>$?IH````)T&:)A'Z:````#[=%\L'H!H/@ -M/V:)A'Z@````#[=%\H/@/V:)A'ZF````C47RB40D"(E<)`1#BU4(B10D_U40 -MA<`/A(P#```/MD7SB$0^3(/_`71%@_\!?PF%_W0,Z?D```"#_P)T4^MP#[=% -M\HG"P>H%@^('9HF6Q````(G"P>H"@^('9HF6Q@````'`@^`'9HF&P````.M` -M#[=%\L'H!(/@!V:)AL@````/MT7R@^`'9HF&R@```.L?#[=%\L'H!(/@!V:) -MALP````/MT7R@^`'9HF&S@```(7_=7Z-1?*)1"0(B5PD!$.+10B)!"3_51"% -MP`^$V0(```^W5?*)T<'I#P^WAL`````)R&:)AL````")T,'H#(/@!V:)AL(` -M``")T,'H"8/@!V:)AKP```")T,'H!H/@!V:)AKX```#!Z@.#X@=FB9:X```` -M#[=%\H/@!V:)AKH```"-1?*)1"0(B5PD!$.+50B)%"3_51"%P`^$6P(```^V -M1?-FB41^-`^V1?)FB41^.HU%\HE$)`B)7"0$0XM%"(D$)/]5$(7`#X0L`@`` -M#[9%\V:)1'Y`#[9%\F:)1'Y&C47RB40D"(E<)`1#BU4(B10D_U40A<`/A/T! -M```/MD7SB$0^3P^V1?)FB41^4H!\?E(`>0H-`/___V:)1'Y2C47RB40D"(E< -M)`1#BT4(B00D_U40A<`/A+X!```/MT7RP>@%)?\```!FB41^6`^W1?+1Z(/@ -M#V:)1'Y>#[=%\H/@`6:)1'YD9H$^`C`/AI<```"-1?*)1"0(B5PD!$.+50B) -M%"3_51"%P`^$:P$```^W1?+!Z`:#X']FB81^K````(/_`702@_\!?P:%_W1+ -MZUB#_P)T(^M1#[=%\H/@!V:)AM`````/MT7RP>@#@^`'9HF&U````.LP#[=% -M\H/@!V:)AM(````/MT7RP>@#@^`'9HF&U@```.L/#[=%\H/@/V:)1A*-="8` -M9H$^`S!V7`^W1?+!Z`UFB81^L@```(U%\HE$)`B)7"0$BT4(B00D_U40A<`/ -MA+\````/MU7RP>(#@^(X#[>$?K(````)T&:)A'ZR````@_\"=1X/MT7RP>@# -MB$8@A,!U$.L*9L>$?K(````*`,9&(`]'@_\"#XXG^___9H$^`C`/AY0```"- -M1?*)1"0(QT0D!.P```"+50B)%"3_51"Z`````(7`#X0U`0``#[=%\H/@!V:) -MAM`````/MT7RP>@#@^`'9HF&U````(U%\HE$)`C'1"0$[0```(M%"(D$)/]5 -M$+H`````A<`/A/$```#K"KH`````Z>4````/MT7R@^`'9HF&T@````^W1?+! -MZ`.#X`=FB8;6````9L>&-`$```0`9L>&,@$```$`9L>&,`$```$`9L>&+@$` -M````BU7LBUH4OP````!F@[[8`````'10C;8`````C;PG`````(U%\HE$)`B) -M7"0$0XM%"(D$)/]5$(7`#X1T____#[9%\V:)A'[:````#[9%\F:)A'[<```` -M@\<"#[>&V````#G'?+UF@3X",'Q=PY!5B>53#[==#+H`````C78`C012 -MB=%F.9P`8`4``'01C4(!#[_09H/Z%W;EN?____^)R%M=PXUT)@"-O"<````` -M58GE4P^W70RZ`````(UV`(G0P>`%B=%F.9A@````=!&-0@$/O]!F@_HG=N2Y -M_____XG(6UW#C78`C;PG`````%6)Y8/L%(E=](EU^(E]_(MU"`^W10P/MWT0 -M9H7`=4''1"0$$````(DT).A1____#[_8B30D_Y;,````#[?`9H7`=$,E_[\` -M`(E$)`2)-"3H+/___YAF@_C_="N)P^LGD(E$)`2)-"3H5/___YC!X`4/MX!B -M````B40D!(DT).C]_O__#[_8B?B$P'D4C01;#[>$`&0%``#K$HVT)@````"- -M!%L/MX0`8@4``(M=](MU^(M]_(GL7<.0C;0F`````%6)Y0^W50RX!0```(32 -M>"B)T"4``0``9H7`=!>)T(/@$&:%P`^5P`^VP$B#X.R#P"CK!;@4````7<.- -MM@````!5B>6+50RX!P```(32>";WP@`!``!T&??"$`````^4P`^VP(U$P`+K -M#(VT)@````"X`````%W#B?:-O"<`````58GEBU4,N*`'``"$TG@AN`````#W -MP@`!``!T%+A@!P``]\(0````=0>X``8``(GV7<.-M"8`````C;PG`````%6) -MY5=64X/L#`^W70R)7"0$BT4(B00DZ*3___^)QHE<)`2+50B)%"3H4____XG' -MB5PD"(M5"`^W0A2)1"0$B10DZ#K^__\/M\BZ`````#GZ?2>-M"8`````C;PG -M`````(G0P>`$*=`!P&8Y#`9U!8T$,.L*0CGZ?.>X``8``(/$#%M>7UW#C78` -MC;PG`````%6)Y5=64X/L#`^W70R)7"0$BT4(B00DZ!3___^)QHE<)`2+50B) -M%"3HP_[__XG'B5PD"(M5"`^W0A2)1"0$B10DZ*K]__\/M\BZ`````#GZ?22- -MM"8`````C;PG`````(G0P>`$*=!F.0Q&=02)R.L*0CGZ?.JX`````(/$#%M> -M7UW#C;8`````C;PG`````%6)Y0^W30BX`````(UT)@")PL'B!68YBF````!U -M$KAP````BT00".L2C;0F`````$"#^"=VVK@`````7<.-=@!5B>4/MTT(N``` -M``"-="8`B<+!X@5F.8I@````=1*X<````(M$$`SK$HVT)@````!`@_@G=MJX -M`````%W#C78`58GEBT4(#[<`BU4,#[<2*=!=PXVV`````(V\)P````!5B>57 -M5E.#[$P/MUT8#[=%'(E%[(E<)`2+50B)%"3H_/___XE%Z,=%Y%@;``"#?2`` -M=1UF@?M(`W46QT7D718``.L-D)"0D)"0D)"0D)"0D,=%X`````"^)`H``&:# -M/20*````#X2#`0``C;8`````#[<&(T7L9H7`#X1A`0``#[<&A47H#X15`0`` -MC47RB40D#(U%\(E$)`@/MT8"B40D!(M-"(D,)/^1.`$``(7`#X0K`0``#[=& -M`HE$)`2+?0B)/"3H>/W__XE%W`^W7@*)7"0$B3PDZ*7\__\/M\")1=B)7"0$ -MB3PDZ./]__\/M\")1=2[`````(M%W&:#>`(`#X3:````C78`C;PG`````(T$ -M6XM5W(T$0@^W4`9F.5`(#X*?````#[9-U(E-T(T$6XM]W(T$1XE%N(VV```` -M`&8Y5?!W:F8Y5?)R9&8[5>1W7HM%$#E%X`^#CP```(M-X(M]#&:)%(\/MT8" -M9HE%P&:)1(\"9H-]T#!U)`^W1@(E``$``&:%P'06BTW`@!0`#X69`0``B00D_Y#, -M````#[?`B47L)0"`__^Z`````&:%P'4;BU7L@>+_#P``ZQ"+1=PI\(M-Z(T$ -M0>EV`0``B57L9H-][``/A%(!``"_`````(T$?XT$AXM5[&8Y%(6`"```#X4F -M`0``C47PB40D#(U%\HE$)`B+30P/MT$"B40D!(M%"(D$)/^0.`$``(7`#X0) -M`0``BTT,#[=!`HE$)`2+10B)!"3H$_O__XE%Z(M5#`^W6@*)7"0$BTT(B0PD -MZ'KZ__\/M\")1>2)7"0$BT4(B00DZ*7Z__^)1>"^`````#G&#XVE````B?#! -MX`2)PBGPNP````"+3>AF@WQ!`@!T=(G0*?"-%%N-!`*+5>B-!$(/MT@&9CE( -M"')$B?#!X`2)1=PI\(T46XT4`HM%Z(T44(E5V(GVC;PG`````&8Y3?)W"F8Y -M3?`/@^#^__^+5>2-!`H/M\B+1=AF.4@(<]Y#B?+!X@2)T"GPBTWH#[=$00(Y -MPWR,1CMUX`^,:?___XVT)@````"-O"<`````1X/_!@^&N?[__XVV`````(M5 -M#`^W0@*)1"0$BTT(B0PDZ$KZ__^#Q"Q;7E]=PXGV58GE5U93@^P(BUT,B5PD -M!(M%"(D$).@5_O__B<8/MQNY`````&:#>`(`=#D/MW@"C01)`<"-%`9F.5H& -M=R)F.5H(7UW#C;0F`````(V\)P````!5B>575E.#[`B+70R)7"0$BT4(B00D -MZ)7]__^)Q@^W&[D`````9H-X`@!T*0^W>`*-!$D!P(T4!F8Y6@9W$F8Y6@AR -M#`^V1`8*ZP^0C70F`$$Y^7S;N`4```"#Q`A;7E]=PXVT)@````"-O"<````` -M58GE@^P(BT4,B40D!(M%"(D$).@H_?__#[9`!(GL7<-5B>6#[`R)7?B)=?R+ -M10@/MW4,B00D_Y#0````B<.I`@```'0;B30DZ&/Z__^%P'4/@^/]C;8````` -MC;\`````]\,(````=!B)-"3H`/K__X7`=0R#X_>)]HV\)P````")V(M=^(MU -M_(GL7<.0D)"058GE5U93@>RD````#[=%"(F%;/___\<$)$P"``#H_/___XF% -M:/___[X"````A<`/A)$'``"+G6C___^)W[Y`"@``N#@!``#WA6C___\$```` -M=!JA0`H``(D#B[UH____@\<$OD0*``"X-`$``/R)P<'I`O.EBY5L____9HE3 -M!&;'0P8``(M%#(E#"(M%$(E##(M%%(E#$(N%:/___\>`.`$``.`O``#'@#P! -M````````QX#\`0```````,>`+`(```````#'@#`"````````QX`T`@`````` -M`,>`/`(```H```#'@$`"```"````9L>`2`(`````QT0D!`````")'"3H_/__ -M_[X#````A<`/A+,&``"+E6C____'@D`!````````BT,0@WL,`'4)C9`@0``` -M[>L&BX`@0```)?\```"+E6C___]FB8)$`0``BT,0@WL,`'4)C9`8F```[>L& -MBX`8F```BY5H____B8)(`0``BT,0@WL,`'4.C9#0F```N!8<``#OZPK'@-"8 -M```6'```O@````"_```!`+D```$`ZPV0D)"0D)"0D)"0D)"0BT,0@WL,`'4+ -MC9"`F```BPP`=0F-D`"<``#MZP:+@`"< -M``#!Z!S'1"0$!````(D$).C\____0(N5:/___V:)@D8!``"+0Q"#>PP`=0F- -MD!!```#MZP:+@!!```")QXM3$(/(`8-[#`!U"8'"$$```._K!HF"$$```(V% -M%$=73___\QA6#___]&@_X_=L>^!P`` -M`(&]8/______```/A4$$``"-A7+___^)1"0(QT0D!+\```")'"3H_/___[X( -M````A<`/A!H$```/MH5R____BY5H____B()4`0``BX5X____9HF"4`$```^W -MA7K___]FB8)2`0``#[:%?/___XB"50$```^VA7W___^(@E8!```/MH5^____ -MB()8`0``#[:%?____XB"5P$```^V18&(@EL!```/MD6`B()<`0``#[9%@XB" -M70$```^V18*(@EX!```/MD6$)`&(@ED!```/MT6$T>@D!XB"6@$``+X````` -MQX5D____"0```(T4]0`````I\HT4E@.5:/___XV*7P$``(N%9/___P^WA$5T -M____B85<____P>@*)#^(@E\!``"+E63___\/MX15=/___\'H!"0_B$$+#[>$ -M573____!X`*(PH#B/(N%9/___P^WA$5V____B85<____P>@."-"(00&+E63_ -M__\/MH15=____R0_B$$,#[>$57;____!Z`(D/XA!`@^WA%5V____P>`$B,*` -MXC"+A63___\/MX1%>/___XF%7/___\'H#`C0B$$-BY5D____#[>$57C____! -MZ`8D/XA!`P^VA%5X____)#^(00X/MX15>O___\'H"B0_B$$$#[>$57K____! -MZ`0D/XA!#P^WA%5Z____P>`"B,*`XCR+A63___\/MX1%?/___XF%7/___\'H -M#@C0B$$%BY5D____#[:$57W___\D/XA!$`^WA%5\____P>@")#^(008/MX15 -M?/___\'@!(C"@.(PBX5D____#[>$17[___^)A5S____!Z`P(T(A!$8N59/__ -M_P^WA%5^____P>@&)#^(00@$)#^(01,/MT15@,'@`HC"@.(\BX5D____#[=$18*)A5S____!Z`X( -MT(A!"8N59/___P^V1%6#)#^(010/MT15@L'H`B0_B$$*#[=$58+!X`2(PH#B -M,(N%9/___P^W1$6$B85<____P>@,"-"(016+E63___\/MT15A,'H!B0_B$$6 -M#[9$580D/XA!%P^W1%6&P>@*)#^(01@/MT15AL'H!"0_B$$9#[=$58;!X`*( -MPH#B/(N%9/___P^W1$6(B85<____P>@."-"(01J+E63___\/MD15B20_B$$; -M#[=$58C!Z`(D/XA!'$:#P@N)E63___^#_@0/AD?]___'A6#___\`````O@`` -M``"-A7+___^)1"0(N!\````I\(E$)`2)'"3H_/___X7`#X2.````#[>%7UW#D(VT)@````!5B>6#[`2+10B)!"3H -M_/___XGL7<.-="8`C;PG`````%6)Y5W#C70F`(V\)P````!5B>4/MT4,)0`! -M``!FA575E.+ -M70B+31"+=12)WXM3$(G(@WL,`'4)@<(L@```[^L&B8HL@```@WT,`71OBU,0 -MB<@K!0````#!X`.#>PP`=0N!PC"```#OZPB)]HF",(```(M3$(G(*P4````` -MP>`#@WL,`'4)@<(T@```[^L&B8(T@```BU,0B<@#AS0"``"#>PP`=0B!PCB` -M``#K9(F".(```.MVC;8`````BT,0@WL,`'4.C9`P@```N/_____OZPK'@#"` -M``#_____BT,0@WL,`'4.C9`T@```N/_____OZPK'@#2```#_____BT,0@WL, -M`'45C9`X@```N`$```#OZQ>-M"8`````QX`X@````0```(VV`````('F__\` -M`(-]#`%T"(-]#`%R#NL4@7UW#C78`58GE5U93@^P$BUT(OC(` -M``"_+````.M(QP0D`0```.C\____3G4YBU,0BT4,@WL,`'4&@\($[^L#B4($ -MBT,0@WL,`'4+C5`HN`H```#OZP?'0"@*````N`````#K18GVBT,0@WL,`'4' -MC5`L[>L$D(L$!ZD$````=9Z+0Q"#>PP`=0V-4`CMZPJ-M"8`````BT`(J0(` -M```/A7K___^X`0```(/$!%M>7UW#D(UT)@!5B>6+30B+01"#>0P`=1&-D"R` -M``"X`````._K#8UV`,>`+(````````"+01"#>0P`=0V-D`2```#MZPJ-="8` -MBX`$@```#0``$`"+41`E__]?_X-Y#`!U"8'"!(```._K!HF"!(```(M!$(-Y -M#`!U#XV0)(```+C__P``[^L+D,>`)(```/__``!=PXUT)@!5B>575E.#[`2+ -M=0B)=?"+10R`>`L`#X3,````BUX,BTX0OP2```"%VW4)C9$$@```[>L&BX$$ -M@```)?__?_\-```@`(7;=0B-%`_OZP6)]HD$#XM5#`^V6@L/MD(*#Z_8#[=" -M"`^OV(M6$(G8@WX,`'4-@<(H@```[^L*C70F`(F:*(```(M6$(M-#`^W00R# -M?@P`=0J!PDB```#OZP>0B8)(@```BU4,#[9""HM-&`^OR`--%`^W0@@/K\B% -MR74"B=F+5A"+11`!R,'@`X-^#`!U#('"-(```.LVC70F`(F"-(```.LPBUX, -MBTX0OP2```"%VW4)C9$$@```[>L&BX$$@```)?__7_^%VW4&C10/[^L#B00/ -MBU80BTT,BP&#?@P`=0J!PBR```#OZP>0B8(L@```BWX,BUX0A?]U$(V3)(`` -M`.WK#8VT)@````"+@R2```")PH'B``"`_XM-#`^W00B)T0G!BT4,9H-X$`!T -M$0^W0!"#P`3!X!`E``!_``G!A?]U"XV3)(```(G([^L&B8LD@```BU7P9H.Z -M1`$```-V:HM-#`^W012#X`=FA$+X8@```A?]U#(V3&(```.WK -M"8UV`(N#&(```(G!@>'_^/__BU4,#[="%,'@""4`!P``"<&%_W4-C10>BL&BX((0```A<`/E<`/ML!=PY"-M"8`````58GE -M4XM=#(M-"(M!$(-Y#`!U#8U0'.WK"HVT)@````"+0!R)PH/X_W4-QP,````` -MN`````#K-R.!^`$``"6ZV`4!B0/WPB``<`!T!PT```!`B0/WP@4```!T`X,+ -M`??"0`$``'0#@PM`N`$```!;76+10B+@/@! -M``!=PXGV58GE@^P,B1PDB70D!(E\)`B+30B+70R)SXNQ^`$``(7V>1N+01"# -M>0P`=0N-4"2X`````._K!\=`)`````")V"6ZV`4!]\,!````=`.#R`7WPT`` -M``!T!0U``0``BU$0@WD,`'4*@\(@[^L'C70F`(E"((F?^`$``(7;>1N+01"# -M>0P`=0N-4"2X`0```._K!\=`)`$```")\(L<)(MT)`2+?"0(B>Q=PY"0D)"0 -MD)!5B>6X0````%W#C;8`````58GEBTT(#[=%#&:#^#]W*(M1$,'@!0453BUT(#[=-#&:#^3\/APT!``"+4Q")R,'@!04`D```@WL, -M`'4*`<*X`````._K!\<$$`````"+4Q")R,'@!04$D```@WL,`'4*`<*X```` -M`._K!\<$$`````"+4Q")R,'@!04(D```@WL,`'40`<*X`````._K#8VV```` -M`,<$$`````"+4Q")R,'@!040D```@WL,`'4*`<*X`````._K!\<$$`````"+ -M4Q")R,'@!044D```@WL,`'4*`<*X`````._K!\<$$`````"+4Q")R,'@!048 -MD```@WL,`'4.`<*X`````._K"XUT)@#'!!``````BU,0BA````A=)T.`^V6@7! -MXP@/MD($"<,/MDH#P>$8#[9"`L'@$`G!#[9"`<'@"`G!#[8""<'1Z8G8P>`? -M"<'1Z^L*NP````"Y`````(M%"(MX$(GPP>`%C9`8D```B0P`=0>- -M%#KOZP20B00ZBT4(BT@0B?#!X`6-D!R0``")V`T`@```BUT(@WL,`'4,C10* -M[^L)C;8`````B00*N`$```"+'"2+="0$BWPD"(GL7<.)]HV\)P````!5B>57 -M5E.#[!R+71`/MT4,B47P@WT8``^5P`^VR$F!X595556!Z595556X`````&:# -M??`_#X?H`0``@SL$?Q&X`````.G9`0``C;0F``````^V`("<8/ -MMD,&P>`0"<8/MD,'P>`8"<8QS@^V0PG!X`@/ME,("<*)5>PQ3>R!9>S__P`` -M#[9#"HE%Z`^V0PO!X`@)1>@/MD,,P>`0"47H#[9##<'@&`E%Z#%-Z`^V0P_! -MX`@/ME,."<*)5>0Q3>2!9>3__P``#[9[$`^V0Q'!X`@)QP^V0Q+!X!`)QP^V -M0Q/!X!@)QS'/@SL-?P:!Y_\```"#.P5_![L`````ZQ&#.PU_![L!````ZP6[ -M`P```(M%"(M($(M%\,'@!8V0`)```(GPBW4(@WX,`'4-C10*[^L*C;0F```` -M`(D$"HM%"(M($(M%\,'@!8V0!)```(M%[(MU"(-^#`!U!HT4"N_K`XD$"HM% -M"(M($(M%\,'@!8V0")```(M%Z(MU"(-^#`!U"(T4"N_K!8GVB00*BT4(BT@0 -MBT7PP>`%C9`,D```BT7DBW4(@WX,`'4&C10*[^L#B00*BT4(BT@0BT7PP>`% -MC9`0D```B?B+=0B#?@P`=0F-%`KOZP:-=@")/`J+10B+2!"+1?#!X`6-D!20 -M``")V(M="(-[#`!U!HT4"N_K`XD$"HM%%(E$)`B+=?")="0$BT4(B00DZ/S_ -M__^#Q!Q;7E]=PY"0D)"0D%6)Y8/L#,=$)`@&````BT4(!?`!``")1"0$BT4, -MB00DZ/S___^)[%W#C;0F`````%6)Y8/L%(E=_(M="(M3$(M%#(T$A0!@``"# -M>PP`=04!PNWK`XL$$,=$)`P"````QT0D"`,```#'1"0$`&P``(D<).C\____ -MN@````"%P'0EBT,0@WL,`'4+C9``:```[8G"ZP:+D`!H``"+11!FB1"Z`0`` -M`(G0BUW\B>Q=PXGV58GE@^P4B5W\BUT(BTL0BT4,C12%`&````^W11"#>PP` -M=0V-%`KOZPJ-M"8`````B00*QT0D#`@```#'1"0(#````,=$)`0`;```B1PD -MZ/S___^%P`^5P`^VP(M=_(GL7<.-M"8`````C;PG`````%6)Y8M-$(M5"&8/ -MMH)4`0``9CE%#'4)N`P```#K%HGV@+I.`0````^9P`^VP(T$Q0,```"#.0!T -M`HD!N`````!=PXVT)@````"-O"<`````58GEBT4(#[:`5`$``%W#D%6)Y;@! -M````7<.-M@````!5B>6+10B`N%D!````#Y7`#[;`7<.-="8`C;PG`````%6) -MY8/L$(E=_(M=",=$)`0`````B1PDZ/S___^%P`^4P`^VP(E$)`C'1"0$```` -M`(D<).C\____BUW\B>Q=PY!5B>6+50B+30R#^05W(HM"$(-Z#`!U"8V0'$`` -M`.WK!HN`'$```(/@+]/H@^`!ZP6X_____UW#B?:-O"<`````58GE5E.#[`B+ -M70B+30R+0Q"#>PP`=0N-D!1```#MB<;K!HNP%$```(G*P>(,`PP`=0F!PA1```#O -MZP:)@A1```"+@_@!```-`````8E$)`2)'"3H_/___X/$"%M>7<.-M"8````` -M58GE4XM-"(M=#(M!$(-Y#`!U#8V0$$```.WK"HUT)@"+@!!```"%VW0'@_L$ -M=`?K#X/@G^L0@^#?@\A`ZPB)]H/(((/@OXM1$(-Y#`!U"8'"$$```._K!HF" -M$$```%M=P^L-D)"0D)"0D)"0D)"0D%6)Y8M%"(M0$(-X#`!U"8'"!(```.WK -M!HN"!(```*D``(``#Y7`#[;`0%W#C70F`%6)Y5=64X/L%(M="`^W11")1?`/ -MMT44B47LB=_'1"0(!@```(M%#(E$)`2-@P0"``")!"3H_/___XM3$`^VBP0" -M```/MH,%`@``P>`("<$/MH,&`@``P>`0"<$/MH,'`@``P>`8"<&#>PP`=0N! -MP@B```")R._K!HF*"(```(MS$`^VAPD"``#!X`@/MI<(`@``B=$)P8M%\"7_ -M/P``P>`0"<&#>PP`=0N-E@R```")R._K!HF.#(```&:#??``='"+0Q"#>PP` -M=0F-D"2```#MZP:+@"2```")P8M%[(/`!&:#?>P`#Y3"#[;22B'0@>'__X#_ -MP>`0)0``?P"+4Q`)R(-[#`!U"8'")(```._K!HF")(```,=$)`@`````QT0D -M!`````")'"3H_/___^L(B1PDZ/S___^#Q!1;7E]=P^L-D)"0D)"0D)"0D)"0 -MD%6)Y8/L#(D<)(ET)`2)?"0(BU4(BT(0@WH,`'4)C9!P@```[>L&BX!P@``` -MB<>^`````(M5"(M"$(-Z#`!U"8V0;(```.WK!HN`;(```+H`````B?$)P8G[ -M"=.)R(G:BQPDBW0D!(M\)`B)[%W#B?95B>6+10B+4!"#>`P`=0F!PFR```#M -MZP:+@FR```!=PU6)Y8M-"(M!$(-Y#`!U"8V0)(```.WK!HN`)(```(M1$`T` -M```!@WD,`'4)@<(D@```[^L&B8(D@```7<.-=@!5B>6#[`B)'"2)="0$BUT( -MBT,0@WL,`'4)C9!DF```[>L&BX!DF```B<'!Z1.!X?\!``#WP0`!``!T!H'Q -M`/[__XM#$(-[#`!U"XV0<(```.V)QNL&B[!P@```BU,0@WL,`'4,@<)L@``` -M[>L)C78`BX)L@```,?`QR(L<)(MT)`2)[%W#C70F`(V\)P````!5B>6+10@/ -MMXA$`0``BU`0@W@,`'4*@<(@0```[>L'D(N"($```"7_````.<$/E,`/ML!= -MPXUT)@"-O"<`````58GE4XM-"(M=#(M!$(-Y#`!U#8V0F(```.WK"HUT)@"+ -M@)B````!`XM!$(-Y#`!U#XV0E(```.WK#(VV`````(N`E(````%#!(M!$(-Y -M#`!U#HV0G(```.WK"Y"-="8`BX"<@````4,,BT$0@WD,`'4.C9"0@```[>L+ -MD(UT)@"+@)"````!0PB+01"#>0P`=0Z-D*"```#MZPN0C70F`(N`H(````%# -M$%M=PXUT)@!5B>6X`0```%W#C;8`````58GEBTT(BT$0@WD,`'4)C9!H@``` -M[>L&BX!H@```BU$0@^#G@WD,`'4)@<)H@```[^L&B8)H@```7<.0C70F`%6) -MY8M-"(M!$(-Y#`!U"8V0:(```.WK!HN`:(```&:#N40!```%=PB#R!#K!HUV -M`(/(&(M1$(-Y#`!U"8'":(```._K!HF":(```%W#C78`58GE4XM-"(G+BT$0 -M@WD,`'4.C5`DN`````#OZPJ-=@#'0"0`````BX/X`0``#0!```")@_@!``"+ -M41"#>0P`=0:#PB#OZP.)0B"+01"#>0P`=0V-4"2X`0```._K"8GVQT`D`0`` -M`%M=PXVV`````%6)Y;@`````7<.-M@````!5B>5=PXUT)@"-O"<`````58GE -M7<.-="8`C;PG`````%6)Y8/L#,=$)`3]`@``QP0D`````.C\____QT0D!!8# -M``#'!"0`````Z/S____'1"0(/0```,=$)`2`"P``BT4(B00DZ/S___^)[%W# -MD)"058GE4XM-"`^W71"+01"#>0P`=0R-D`2```#MZPF-=@"+@`2```"+41`E -M__]__PT```0`@WD,`'4)@<($@```[^L&B8($@```@WT,`'0?BU$0B=@-```# -M`(-Y#`!U"8'"!$```._K!HF"!$```%M=PU6)Y5=64X/L!(M="(-]#``/A)H` -M``"+0Q"#>PP`=0Z-D`1```"X`````._K"L>`!$````````#'!"30!P``Z/S_ -M__^^"@```+\00```C78`BT,0@WL,`'4)C9`00```[>L#BP0'J0```0!T,\<$ -M),@```#H_/___XM#$(-[#`!U#XV0!$```+@`````[^L+D,>`!$````````!. -M=;/K!(7V=0VX`````.M`C;8`````BT,0@WL,`'4)C9`$@```[>L&BX`$@``` -MBU,0)?__>_^#>PP`=0F!P@2```#OZP:)@@2```"X`0```(/$!%M>7UW#C;0F -M`````(V\)P````!5B>6+30B+01"#>0P`=0F-D`2```#MZP:+@`2```"+41`E -M__]__PT```0`@WD,`'4/@<($@```[^L,C;8`````B8($@```@WT,`'0ABT$0 -M@WD,`'4.C9`$0```N````0#OZPK'@`1```````$`7<.058GE@^P8B5WTB77X -MB7W\BT4(BUT,BTT0#[=5%(G&OP$```"#^P)T*(/[`G<'@_L!=`GK/(/[`W0G -MZS6)5"0(B4PD!(D$).C5_?__ZRJ-=@")3"0$B00DZ#3^__^)Q^L7B4PD!(D$ -M).@D____ZPF)]K@`````ZPB)GOP!``")^(M=](MU^(M]_(GL7<.-="8`58GE -MBT4(BX#\`0``7<.)]E6)Y;@!````7<.-M@````!5B>6X`````%W#C;8````` -M58GEBTT(BT$0@WD,`'4)C9`$@```[>L&BX`$@```BU$0)?__;_^#>0P`=0F! -MP@2```#OZP:)@@2```"X`0```%W#C;0F`````(V\)P````!5B>6+30B+01"# -M>0P`=0F-D`2```#MZP:+@`2```"+41`E__]__PT``!``@WD,`'4/@<($@``` -M[^L,C;8`````B8($@```N`$```!=PY"0D%6)Y8/L#(E=_(M%#(/X`70'@_@" -M=`KK#[L`````ZQ&0NP````#K";@`````ZQ.)]HE<)`2+10B)!"3H_/___XG8 -MBUW\B>Q=PY"0D)"0D)"058GEBT4(BU`0@W@,`'4&@\(,[>L#BT(,7<.-M@`` -M``!5B>6+30B+41"+10R#>0P`=0:#P@SOZP.)0@Q=PXUV`%6)Y8M%"(M0$(-X -M#`!U$8/""+@$````[^L-C;8`````QT((!````%W#C;0F`````%6)Y5=64X/L -M!(MU"(M&$(-^#`!U$HU0"+@@````[^L.N`$```#K3<=`""````"[`````+\( -M````D(VT)@````"+1A"#?@P`=0>-4`CMZP20BP0'J00```!TQL<$)`H```#H -M_/___T.!^^<#``!^T;@`````@\0$6UY?7<.-="8`58GE@^P(B1PDB70D!(M% -M"(M8#(M($+YH@```A=MU"8V1:(```.WK!HN!:(```(/@OX7;=0N-%`[OZPB0 -MC70F`(D$#HL<)(MT)`2)[%W#B?95B>6#[`B)'"2)="0$BT4(BU@,BT@0OFB` -M``"%VW4)C9%H@```[>L&BX%H@```@\A`A=MU"XT4#N_K")"-="8`B00.BQPD -MBW0D!(GL7<.)]E6)Y8M-"(M1$(M%#(-Y#`!U#H'"4(```._K"Y"-="8`B8)0 -M@```BU$0BT40@WD,`'4.@<)4@```[^L+D(UT)@")@E2```!=PY"-M"8````` -M58GE@^P(B1PDB70D!(M="(M-#+@`````@_D_#X>/````@_D?=DJ+0Q"#>PP` -M=1&-D%2```#MB<+K#(VV`````(N05(```(MS$(/I(+C^____T\`AT(-[#`!U -M"(V65(```.L_B894@```ZT"0C70F`(M#$(-[#`!U"XV04(```.V)PNL&BY!0 -M@```BW,0N/[____3P"'0@WL,`'4)C990@```[^L&B890@```N`$```"+'"2+ -M="0$B>Q=PY"-="8`58GE@^P(B1PDB70D!(M="(M-#+@`````@_D_#X>/```` -M@_D?=DJ+0Q"#>PP`=1&-D%2```#MB<+K#(VV`````(N05(```(MS$(/I(+@! -M````T^`)T(-[#`!U"(V65(```.L_B894@```ZT"0C70F`(M#$(-[#`!U"XV0 -M4(```.V)PNL&BY!0@```BW,0N`$```#3X`G0@WL,`'4)C990@```[^L&B890 -M@```N`$```"+'"2+="0$B>Q=PY"-="8`58GEBT4(BU`0@W@,`'4)@<),@``` -M[>L&BX),@```7<-5B>6+30B+10RI``(``'0()?_]__^#R""+41"#>0P`=0^! -MPDR```#OZPR-M@````")@DR```!=PY"-M"8`````58GEBTT0BU4,QT((```` -M`(G()?\/``")0@SW110@````=`@-`"```(E"#,="%`````#'0A``````.4H, -M=`>X`````.L%N`$```!=PXUT)@!5B>564XM5"(MU#(GS]D84`74-N`\```#I -M%0$``(UV``^W1A`E_P\``&:)1B"+3A2!X0"`_P_!Z0^+0A"#>@P`=0Z-D&R` -M``#MZPN0C70F`(N`;(```(G"P>H*@>+__P``B=`E_Q\``#G(0C70F``G1B<@E_W\``&:)1B+&1B0`BT,4J0(```!U1:D$```` -M=`;&1B0!ZSCV0Q00=`:`3B0(ZRSV0Q0(=`:`3B0$ZR"`3B0"BT,4)>````#! -MZ`6(1B6-M"8`````C;PG`````(M#$"4``/@'P>@3B$8FBT,4J0`!``!T#24` -M?@``P>@)B$8GZP3&1B?_BT,0)0"`!P#!Z`^(1BB+0Q#!Z`XD`8A&*8M#$,'H -M#"0!B$8JN`````!;7EW#D)"0D)"0D)"0D%6)Y5=64X/L&(M]"(M=#(E]\(M5 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 4 07:37:00 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E16E37B407; Mon, 4 Aug 2003 07:37:00 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D45AE37B401 for ; Mon, 4 Aug 2003 07:36:59 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id AE6E943FAF for ; Mon, 4 Aug 2003 07:36:54 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h74Eas0U021133 for ; Mon, 4 Aug 2003 07:36:54 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h74EarVL021130 for perforce@freebsd.org; Mon, 4 Aug 2003 07:36:53 -0700 (PDT) Date: Mon, 4 Aug 2003 07:36:53 -0700 (PDT) Message-Id: <200308041436.h74EarVL021130@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 35474 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 14:37:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=35474 Change 35474 by rwatson@rwatson_tislabs on 2003/08/04 07:36:15 Expand the annotation for ip_output(): in the IP forwarding case, the options will already be in the IP header of (m), so the opt pointer must be NULL (we can't insert options into a packet that already holds options). Affected files ... .. //depot/projects/trustedbsd/mac/sys/netinet/ip_output.c#29 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/netinet/ip_output.c#29 (text+ko) ==== @@ -118,10 +118,12 @@ extern struct protosw inetsw[]; /* - * IP output. The packet in mbuf chain m contains a skeletal IP - * header (with len, off, ttl, proto, tos, src, dst). + * IP output. The packet in mbuf chain m contains a skeletal IP header (with + * len, off, ttl, proto, tos, src, dst). * The mbuf chain containing the packet will be freed. - * The mbuf opt, if present, will not be freed. + * The mbuf opt, if present, will not be freed. In the IP forwarding + * case, the packet will arrive with options already inserted, so must + * have a NULL opt pointer. */ int ip_output(m0, opt, ro, flags, imo, inp) From owner-p4-projects@FreeBSD.ORG Mon Aug 4 13:07:03 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E81C837B404; Mon, 4 Aug 2003 13:07:02 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 97D9937B401 for ; Mon, 4 Aug 2003 13:07:02 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 37CF643FA3 for ; Mon, 4 Aug 2003 13:07:02 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h74K710U050882 for ; Mon, 4 Aug 2003 13:07:01 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h74K712f050879 for perforce@freebsd.org; Mon, 4 Aug 2003 13:07:01 -0700 (PDT) Date: Mon, 4 Aug 2003 13:07:01 -0700 (PDT) Message-Id: <200308042007.h74K712f050879@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 35486 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 20:07:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=35486 Change 35486 by rwatson@rwatson_tislabs on 2003/08/04 13:06:25 vn_open() now takes a additional argument. Affected files ... .. //depot/projects/trustedbsd/mac/sys/security/sebsd/ss/fileutils.c#5 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/security/sebsd/ss/fileutils.c#5 (text+ko) ==== @@ -75,7 +75,7 @@ fp->FILE_saved_open_flags = FREAD; mtx_lock(&Giant); NDINIT(&nd, LOOKUP, LOCKLEAF, pathseg, path, td); - error = vn_open(&nd, &fp->FILE_saved_open_flags, 0); + error = vn_open(&nd, &fp->FILE_saved_open_flags, 0, -1); if (error) { mtx_unlock(&Giant); return (NULL); From owner-p4-projects@FreeBSD.ORG Mon Aug 4 13:54:06 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3263F37B404; Mon, 4 Aug 2003 13:54:06 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B898937B401 for ; Mon, 4 Aug 2003 13:54:05 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 83AE243F93 for ; Mon, 4 Aug 2003 13:54:04 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h74Ks40U053041 for ; Mon, 4 Aug 2003 13:54:04 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h74Ks03h053034 for perforce@freebsd.org; Mon, 4 Aug 2003 13:54:00 -0700 (PDT) Date: Mon, 4 Aug 2003 13:54:00 -0700 (PDT) Message-Id: <200308042054.h74Ks03h053034@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 35489 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Aug 2003 20:54:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=35489 Change 35489 by jhb@jhb_laptop on 2003/08/04 13:53:41 IFC @35488. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/critical.c#4 integrate .. //depot/projects/smpng/sys/alpha/include/critical.h#2 integrate .. //depot/projects/smpng/sys/alpha/include/endian.h#11 integrate .. //depot/projects/smpng/sys/amd64/amd64/critical.c#3 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#9 integrate .. //depot/projects/smpng/sys/amd64/include/critical.h#2 integrate .. //depot/projects/smpng/sys/amd64/include/ieeefp.h#3 integrate .. //depot/projects/smpng/sys/arm/include/endian.h#2 integrate .. //depot/projects/smpng/sys/boot/efi/libefi/efiboot.h#6 integrate .. //depot/projects/smpng/sys/boot/efi/libefi/efifs.c#8 integrate .. //depot/projects/smpng/sys/boot/efi/loader/main.c#11 integrate .. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#30 integrate .. //depot/projects/smpng/sys/conf/NOTES#51 integrate .. //depot/projects/smpng/sys/conf/files.alpha#24 integrate .. //depot/projects/smpng/sys/conf/files.amd64#5 integrate .. //depot/projects/smpng/sys/conf/files.i386#44 integrate .. //depot/projects/smpng/sys/conf/files.ia64#30 integrate .. //depot/projects/smpng/sys/conf/files.pc98#45 integrate .. //depot/projects/smpng/sys/conf/options#58 integrate .. //depot/projects/smpng/sys/contrib/dev/ath/README#2 integrate .. //depot/projects/smpng/sys/contrib/dev/ath/ah.h#2 integrate .. //depot/projects/smpng/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/ath/freebsd/ah_osdep.h#2 integrate .. //depot/projects/smpng/sys/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#3 integrate .. //depot/projects/smpng/sys/contrib/dev/ath/version.h#2 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath.c#5 integrate .. //depot/projects/smpng/sys/dev/bge/if_bge.c#31 integrate .. //depot/projects/smpng/sys/dev/em/if_em.c#24 integrate .. //depot/projects/smpng/sys/dev/em/if_em.h#17 integrate .. //depot/projects/smpng/sys/dev/em/if_em_osdep.h#12 integrate .. //depot/projects/smpng/sys/dev/firewire/firewire.h#7 integrate .. //depot/projects/smpng/sys/dev/firewire/firewirereg.h#11 integrate .. //depot/projects/smpng/sys/dev/firewire/fwdev.c#9 integrate .. //depot/projects/smpng/sys/dev/firewire/fwohci.c#21 integrate .. //depot/projects/smpng/sys/dev/firewire/fwohci_pci.c#17 integrate .. //depot/projects/smpng/sys/dev/firewire/if_fwe.c#13 integrate .. //depot/projects/smpng/sys/dev/firewire/sbp.c#23 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#43 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#31 integrate .. //depot/projects/smpng/sys/dev/pci/pcireg.h#4 integrate .. //depot/projects/smpng/sys/dev/ppc/ppc.c#2 integrate .. //depot/projects/smpng/sys/dev/ppc/ppc_puc.c#1 branch .. //depot/projects/smpng/sys/dev/ppc/ppcvar.h#1 branch .. //depot/projects/smpng/sys/dev/puc/puc.c#13 integrate .. //depot/projects/smpng/sys/dev/puc/pucdata.c#15 integrate .. //depot/projects/smpng/sys/geom/geom_dev.c#28 integrate .. //depot/projects/smpng/sys/i386/i386/critical.c#7 integrate .. //depot/projects/smpng/sys/i386/i386/exception.s#14 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#44 integrate .. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#32 integrate .. //depot/projects/smpng/sys/i386/include/critical.h#3 integrate .. //depot/projects/smpng/sys/i386/include/endian.h#11 integrate .. //depot/projects/smpng/sys/i386/include/sysarch.h#5 integrate .. //depot/projects/smpng/sys/i386/pci/pci_bus.c#16 integrate .. //depot/projects/smpng/sys/i386/pci/pci_cfgreg.c#19 integrate .. //depot/projects/smpng/sys/ia64/ia64/clock.c#13 integrate .. //depot/projects/smpng/sys/ia64/ia64/critical.c#3 integrate .. //depot/projects/smpng/sys/ia64/ia64/exception.S#3 integrate .. //depot/projects/smpng/sys/ia64/ia64/genassym.c#21 integrate .. //depot/projects/smpng/sys/ia64/ia64/interrupt.c#19 integrate .. //depot/projects/smpng/sys/ia64/ia64/machdep.c#62 integrate .. //depot/projects/smpng/sys/ia64/ia64/mp_machdep.c#23 integrate .. //depot/projects/smpng/sys/ia64/ia64/timerreg.h#2 delete .. //depot/projects/smpng/sys/ia64/include/clock.h#5 integrate .. //depot/projects/smpng/sys/ia64/include/cpu.h#16 integrate .. //depot/projects/smpng/sys/ia64/include/critical.h#2 integrate .. //depot/projects/smpng/sys/ia64/include/endian.h#10 integrate .. //depot/projects/smpng/sys/ia64/include/pcpu.h#4 integrate .. //depot/projects/smpng/sys/ia64/include/ucontext.h#3 integrate .. //depot/projects/smpng/sys/isa/ppc.c#9 delete .. //depot/projects/smpng/sys/isa/ppcreg.h#2 delete .. //depot/projects/smpng/sys/kern/kern_acl.c#21 integrate .. //depot/projects/smpng/sys/kern/kern_fork.c#63 integrate .. //depot/projects/smpng/sys/kern/kern_ktr.c#23 integrate .. //depot/projects/smpng/sys/kern/kern_mac.c#27 integrate .. //depot/projects/smpng/sys/kern/kern_physio.c#10 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#42 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#103 integrate .. //depot/projects/smpng/sys/kern/sys_generic.c#26 integrate .. //depot/projects/smpng/sys/kern/sys_process.c#30 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#36 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#47 integrate .. //depot/projects/smpng/sys/modules/ep/Makefile#3 integrate .. //depot/projects/smpng/sys/pc98/pc98/ppc.c#6 integrate .. //depot/projects/smpng/sys/pc98/pc98/sio.c#30 integrate .. //depot/projects/smpng/sys/pccard/pcic_pci.c#29 integrate .. //depot/projects/smpng/sys/powerpc/include/critical.h#3 integrate .. //depot/projects/smpng/sys/powerpc/include/endian.h#10 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/critical.c#3 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/pmap.c#31 integrate .. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#17 integrate .. //depot/projects/smpng/sys/sparc64/include/critical.h#2 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/critical.c#4 integrate .. //depot/projects/smpng/sys/sys/acl.h#8 integrate .. //depot/projects/smpng/sys/sys/proc.h#96 integrate .. //depot/projects/smpng/sys/ufs/ufs/acl.h#5 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_acl.c#13 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#31 integrate .. //depot/projects/smpng/sys/vm/swap_pager.c#30 integrate .. //depot/projects/smpng/sys/vm/swap_pager.h#11 integrate .. //depot/projects/smpng/sys/vm/uma_core.c#34 integrate .. //depot/projects/smpng/sys/vm/vm_glue.c#31 integrate .. //depot/projects/smpng/sys/vm/vm_kern.c#17 integrate .. //depot/projects/smpng/sys/vm/vm_pageout.c#35 integrate .. //depot/projects/smpng/sys/vm/vm_pageout.h#11 integrate .. //depot/projects/smpng/sys/vm/vm_pager.c#14 integrate .. //depot/projects/smpng/sys/vm/vm_pager.h#7 integrate Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/critical.c#4 (text+ko) ==== @@ -4,7 +4,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/critical.c,v 1.4 2003/06/10 16:50:43 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/critical.c,v 1.5 2003/08/04 20:32:44 jhb Exp $"); #include #include @@ -31,17 +31,5 @@ struct thread *td; td = curthread; - td->td_critnest = 1; td->td_md.md_savecrit = ALPHA_PSL_IPL_0; } - -/* - * cpu_thread_link() - thread linkup, initialize machine-dependant fields - */ -void -cpu_thread_link(struct thread *td) -{ - - td->td_md.md_savecrit = 0; -} - ==== //depot/projects/smpng/sys/alpha/include/critical.h#2 (text+ko) ==== @@ -8,11 +8,10 @@ * cpu_critical_enter() - inlined * cpu_critical_exit() - inlined * cpu_critical_fork_exit() - prototyped - * cpu_thread_link() - prototyped * related support functions residing * in //critical.c - prototyped * - * $FreeBSD: src/sys/alpha/include/critical.h,v 1.1 2002/04/01 23:51:22 dillon Exp $ + * $FreeBSD: src/sys/alpha/include/critical.h,v 1.2 2003/08/04 20:32:44 jhb Exp $ */ #ifndef _MACHINE_CRITICAL_H_ @@ -24,7 +23,6 @@ * Prototypes - see //critical.c */ void cpu_critical_fork_exit(void); -void cpu_thread_link(struct thread *td); #ifdef __GNUC__ ==== //depot/projects/smpng/sys/alpha/include/endian.h#11 (text+ko) ==== @@ -32,7 +32,7 @@ * * @(#)endian.h 8.1 (Berkeley) 6/10/93 * $NetBSD: endian.h,v 1.5 1997/10/09 15:42:19 bouyer Exp $ - * $FreeBSD: src/sys/alpha/include/endian.h,v 1.13 2002/09/23 04:32:16 mike Exp $ + * $FreeBSD: src/sys/alpha/include/endian.h,v 1.14 2003/08/03 07:50:18 obrien Exp $ */ #ifndef _MACHINE_ENDIAN_H_ @@ -44,8 +44,8 @@ /* * Define the order of 32-bit words in 64-bit words. */ -#define _QUAD_HIGHWORD 1 -#define _QUAD_LOWWORD 0 +#define _QUAD_HIGHWORD 1 +#define _QUAD_LOWWORD 0 /* * Definitions for byte order, according to byte significance from low @@ -81,7 +81,7 @@ } static __inline __uint32_t -__bswap32(__uint32_t __x) +__bswap32(__uint32_t _x) { __uint32_t __r; @@ -95,12 +95,12 @@ "or $4, $1, %0\n\t" "or $2, $3, $2\n\t" "or $2, %0, %0" - : "=r" (__r) : "r" (__x) : "$1", "$2", "$3", "$4"); + : "=r" (__r) : "r" (_x) : "$1", "$2", "$3", "$4"); return (__r); } -static __inline __uint16_t -__bswap16(__uint16_t __x) +static __inline __uint16_t +__bswap16(__uint16_t _x) { __uint16_t __r; @@ -108,7 +108,7 @@ "insbl %1, 1, $1\n\t" "extbl %1, 1, $2\n\t" "or $1, $2, %0" - : "=r" (__r) : "r" (__x) : "$1", "$2"); + : "=r" (__r) : "r" (_x) : "$1", "$2"); return (__r); } ==== //depot/projects/smpng/sys/amd64/amd64/critical.c#3 (text+ko) ==== @@ -4,7 +4,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/critical.c,v 1.10 2003/07/25 21:15:44 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/critical.c,v 1.11 2003/08/04 20:32:44 jhb Exp $"); #include #include @@ -28,16 +28,5 @@ struct thread *td; td = curthread; - td->td_critnest = 1; td->td_md.md_savecrit = read_rflags() | PSL_I; } - -/* - * cpu_thread_link() - thread linkup, initialize machine-dependant fields - */ -void -cpu_thread_link(struct thread *td) -{ - - td->td_md.md_savecrit = 0; -} ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#9 (text+ko) ==== @@ -73,7 +73,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.427 2003/07/31 03:39:50 bmilekic Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.428 2003/08/02 19:26:08 alc Exp $"); /* * Manages physical address maps. @@ -2820,7 +2820,7 @@ return ((void *)PHYS_TO_DMAP(pa)); offset = pa & PAGE_MASK; size = roundup(offset + size, PAGE_SIZE); - va = kmem_alloc_pageable(kernel_map, size); + va = kmem_alloc_nofault(kernel_map, size); if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); pa = pa & PG_FRAME; ==== //depot/projects/smpng/sys/amd64/include/critical.h#2 (text+ko) ==== @@ -8,11 +8,10 @@ * cpu_critical_enter() - inlined * cpu_critical_exit() - inlined * cpu_critical_fork_exit() - prototyped - * cpu_thread_link() - prototyped * related support functions residing * in //critical.c - prototyped * - * $FreeBSD: src/sys/amd64/include/critical.h,v 1.3 2003/05/01 01:05:23 peter Exp $ + * $FreeBSD: src/sys/amd64/include/critical.h,v 1.4 2003/08/04 20:32:45 jhb Exp $ */ #ifndef _MACHINE_CRITICAL_H_ @@ -24,7 +23,6 @@ * Prototypes - see //critical.c */ void cpu_critical_fork_exit(void); -void cpu_thread_link(struct thread *td); #ifdef __GNUC__ ==== //depot/projects/smpng/sys/amd64/include/ieeefp.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#) ieeefp.h 1.0 (Berkeley) 9/23/93 - * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.9 2003/07/22 06:44:54 peter Exp $ + * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.10 2003/08/02 00:26:30 peter Exp $ */ /* @@ -266,8 +266,8 @@ #if !defined(__IEEEFP_NOINLINES__) && !defined(__cplusplus) && defined(__GNUC__) -#define fpsetround() __fpsetround() -#define fpgetround(_m) __fpgetround(_m) +#define fpgetround() __fpgetround() +#define fpsetround(_m) __fpsetround(_m) #define fpgetprec() __fpgetprec() #define fpsetprec(_m) __fpsetprec(_m) #define fpgetmask() __fpgetmask() ==== //depot/projects/smpng/sys/arm/include/endian.h#2 (text+ko) ==== @@ -27,12 +27,12 @@ * * @(#)endian.h 8.1 (Berkeley) 6/10/93 * $NetBSD: endian.h,v 1.7 1999/08/21 05:53:51 simonb Exp $ - * $FreeBSD: src/sys/arm/include/endian.h,v 1.1 2001/01/04 05:23:06 obrien Exp $ + * $FreeBSD: src/sys/arm/include/endian.h,v 1.2 2003/08/03 07:50:19 obrien Exp $ */ #ifndef _ENDIAN_H_ #define _ENDIAN_H_ -#define BYTE_ORDER LITTLE_ENDIAN +#define BYTE_ORDER _LITTLE_ENDIAN #endif /* !_ENDIAN_H_ */ ==== //depot/projects/smpng/sys/boot/efi/libefi/efiboot.h#6 (text+ko) ==== @@ -28,7 +28,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/efi/libefi/efiboot.h,v 1.7 2002/10/24 07:53:12 marcel Exp $ + * $FreeBSD: src/sys/boot/efi/libefi/efiboot.h,v 1.8 2003/08/02 08:22:03 marcel Exp $ */ /* @@ -69,6 +69,9 @@ /* Find EFI network resources */ extern void efinet_init_driver(void); +/* Map handles to units */ +int efifs_get_unit(EFI_HANDLE); + /* Wrapper over EFI filesystems. */ extern struct fs_ops efi_fsops; ==== //depot/projects/smpng/sys/boot/efi/libefi/efifs.c#8 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/efi/libefi/efifs.c,v 1.7 2003/02/26 09:13:05 marcel Exp $ + * $FreeBSD: src/sys/boot/efi/libefi/efifs.c,v 1.8 2003/08/02 08:22:03 marcel Exp $ */ #include @@ -291,7 +291,18 @@ }; static EFI_HANDLE *fs_handles; -UINTN fs_handle_count;; +UINTN fs_handle_count; + +int +efifs_get_unit(EFI_HANDLE h) +{ + UINTN u; + + u = 0; + while (u < fs_handle_count && fs_handles[u] != h) + u++; + return ((u < fs_handle_count) ? u : -1); +} static int efifs_dev_init(void) ==== //depot/projects/smpng/sys/boot/efi/loader/main.c#11 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/efi/loader/main.c,v 1.19 2003/04/03 21:36:29 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/efi/loader/main.c,v 1.20 2003/08/02 08:22:03 marcel Exp $"); #include #include @@ -54,6 +54,7 @@ EFI_GUID acpi = ACPI_TABLE_GUID; EFI_GUID acpi20 = ACPI_20_TABLE_GUID; +EFI_GUID devid = DEVICE_PATH_PROTOCOL; EFI_GUID hcdp = HCDP_TABLE_GUID; EFI_GUID imgid = LOADED_IMAGE_PROTOCOL; EFI_GUID mps = MPS_TABLE_GUID; @@ -101,8 +102,6 @@ main(int argc, CHAR16 *argv[]) { EFI_LOADED_IMAGE *img; - EFI_SIMPLE_NETWORK *net; - EFI_STATUS status; int i; /* @@ -129,7 +128,6 @@ efinet_init_driver(); - /* Get our loaded image protocol interface structure. */ BS->HandleProtocol(IH, &imgid, (VOID**)&img); @@ -139,23 +137,16 @@ printf("%s, Revision %s\n", bootprog_name, bootprog_rev); printf("(%s, %s)\n", bootprog_maker, bootprog_date); - /* - * XXX quick and dirty check to see if we're loaded from the - * network. If so, we set the default device to 'net'. In all - * other cases we set the default device to 'disk'. We presume - * fixed positions in devsw for both net and disk. - */ - status = BS->HandleProtocol(img->DeviceHandle, &netid, (VOID**)&net); - if (status == EFI_SUCCESS && net != NULL) { - currdev.d_dev = devsw[1]; /* XXX net */ - currdev.d_kind.netif.unit = 0; - } else { - currdev.d_dev = devsw[0]; /* XXX disk */ - currdev.d_kind.efidisk.unit = 0; + i = efifs_get_unit(img->DeviceHandle); + if (i >= 0) { + currdev.d_dev = devsw[0]; /* XXX disk */ + currdev.d_kind.efidisk.unit = i; /* XXX should be able to detect this, default to autoprobe */ currdev.d_kind.efidisk.slice = -1; - /* default to 'a' */ currdev.d_kind.efidisk.partition = 0; + } else { + currdev.d_dev = devsw[1]; /* XXX net */ + currdev.d_kind.netif.unit = 0; /* XXX */ } currdev.d_type = currdev.d_dev->dv_type; ==== //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#30 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.67 2003/07/18 10:26:08 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.68 2003/08/04 10:55:22 des Exp $"); #include #include @@ -253,7 +253,14 @@ static int linprocfs_docpuinfo(PFS_FILL_ARGS) { - int class, i, fqmhz, fqkhz; + int class, fqmhz, fqkhz, ncpu; + int name[2], olen, plen; + int i; + + name[0] = CTL_HW; + name[1] = HW_NCPU; + if (kernel_sysctl(td, name, 2, &ncpu, &olen, NULL, 0, &plen) != 0) + ncpu = 1; /* * We default the flags to include all non-conflicting flags, @@ -290,13 +297,16 @@ break; } - sbuf_printf(sb, - "processor\t: %d\n" - "vendor_id\t: %.20s\n" - "cpu family\t: %d\n" - "model\t\t: %d\n" - "stepping\t: %d\n", - 0, cpu_vendor, class, cpu, cpu_id & 0xf); + for (i = 0; i < ncpu; ++i) { + sbuf_printf(sb, + "processor\t: %d\n" + "vendor_id\t: %.20s\n" + "cpu family\t: %d\n" + "model\t\t: %d\n" + "stepping\t: %d\n", + i, cpu_vendor, class, cpu, cpu_id & 0xf); + /* XXX per-cpu vendor / class / id? */ + } sbuf_cat(sb, "flags\t\t:"); ==== //depot/projects/smpng/sys/conf/NOTES#51 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1165 2003/07/29 04:32:32 njl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1166 2003/08/03 13:39:59 phk Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -726,14 +726,6 @@ # images of type mfs_root or md_root. options MD_ROOT -# Allow this many swap-devices. -# -# In order to manage swap, the system must reserve bitmap space that -# scales with the largest mounted swap device multiplied by NSWAPDEV, -# irrespective of whether other swap devices exist. So it is not a -# good idea to make this value too large. -options NSWAPDEV=5 - # Disk quotas are supported when this option is enabled. options QUOTA #enable disk quotas ==== //depot/projects/smpng/sys/conf/files.alpha#24 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.alpha,v 1.103 2003/07/22 11:41:15 ticso Exp $ +# $FreeBSD: src/sys/conf/files.alpha,v 1.105 2003/08/04 02:39:14 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -178,6 +178,7 @@ dev/kbd/kbd.c optional kbd dev/kbd/kbd.c optional sc dev/kbd/kbd.c optional ukbd +dev/ppc/ppc.c optional ppc dev/sio/sio.c optional sio dev/sio/sio_isa.c optional sio isa dev/syscons/schistory.c optional sc @@ -196,7 +197,6 @@ isa/atkbd_isa.c optional atkbd isa/atkbdc_isa.c optional atkbdc isa/fd.c optional fdc -isa/ppc.c optional ppc isa/psm.c optional psm isa/syscons_isa.c optional sc isa/vga_isa.c optional vga ==== //depot/projects/smpng/sys/conf/files.amd64#5 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.amd64,v 1.18 2003/05/31 06:49:53 peter Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.20 2003/08/04 02:39:14 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -110,6 +110,8 @@ dev/kbd/kbd.c optional ukbd dev/kbd/kbd.c optional vt +dev/ppc/ppc.c optional ppc + dev/syscons/schistory.c optional sc dev/syscons/scmouse.c optional sc dev/syscons/scterm.c optional sc @@ -130,7 +132,6 @@ isa/atkbd_isa.c optional atkbd isa/atkbdc_isa.c optional atkbdc isa/fd.c optional fdc -isa/ppc.c optional ppc isa/psm.c optional psm isa/syscons_isa.c optional sc isa/vga_isa.c optional vga ==== //depot/projects/smpng/sys/conf/files.i386#44 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.448 2003/07/22 11:41:15 ticso Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.450 2003/08/04 02:39:14 imp Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -133,6 +133,8 @@ dev/kbd/kbd.c optional ukbd dev/kbd/kbd.c optional vt dev/lnc/if_lnc_isa.c optional lnc isa +dev/ppc/ppc.c optional ppc +dev/ppc/ppc_puc.c optional ppc puc pci dev/sbni/if_sbni.c optional sbni dev/sbni/if_sbni_isa.c optional sbni isa dev/sbni/if_sbni_pci.c optional sbni pci @@ -374,7 +376,6 @@ isa/atkbd_isa.c optional atkbd isa/atkbdc_isa.c optional atkbdc isa/fd.c optional fdc -isa/ppc.c optional ppc isa/psm.c optional psm isa/syscons_isa.c optional sc isa/vga_isa.c optional vga ==== //depot/projects/smpng/sys/conf/files.ia64#30 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.ia64,v 1.53 2003/07/02 12:57:06 ru Exp $ +# $FreeBSD: src/sys/conf/files.ia64,v 1.55 2003/08/01 05:28:43 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -47,6 +47,7 @@ dev/kbd/kbd.c optional kbd dev/kbd/kbd.c optional sc dev/kbd/kbd.c optional ukbd +dev/ppc/ppc.c optional ppc isa dev/sio/sio.c optional sio dev/sio/sio_isa.c optional sio isa dev/syscons/schistory.c optional sc @@ -114,7 +115,6 @@ isa/atkbd_isa.c optional atkbd isa/atkbdc_isa.c optional atkbdc isa/fd.c optional fdc -isa/ppc.c optional ppc isa/psm.c optional psm isa/syscons_isa.c optional sc isa/vga_isa.c optional vga ==== //depot/projects/smpng/sys/conf/files.pc98#45 (text+ko) ==== @@ -3,7 +3,7 @@ # # modified for PC-9801 # -# $FreeBSD: src/sys/conf/files.pc98,v 1.273 2003/07/22 08:11:12 peter Exp $ +# $FreeBSD: src/sys/conf/files.pc98,v 1.274 2003/08/02 09:23:03 nyan Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -115,6 +115,7 @@ dev/kbd/kbd.c optional ukbd dev/kbd/kbd.c optional pckbd dev/lnc/if_lnc_cbus.c optional lnc isa +dev/ppc/ppc_puc.c optional ppc puc pci dev/sbni/if_sbni.c optional sbni dev/sbni/if_sbni_pci.c optional sbni pci dev/snc/dp83932.c optional snc ==== //depot/projects/smpng/sys/conf/options#58 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.406 2003/07/29 18:08:16 njl Exp $ +# $FreeBSD: src/sys/conf/options,v 1.407 2003/08/03 13:39:59 phk Exp $ # # On the handling of kernel options # @@ -119,7 +119,6 @@ MD_ROOT opt_md.h MD_ROOT_SIZE opt_md.h NDGBPORTS opt_dgb.h -NSWAPDEV opt_swap.h NSWBUF_MIN opt_swap.h NTIMECOUNTER opt_ntp.h PANIC_REBOOT_WAIT_TIME opt_panic.h ==== //depot/projects/smpng/sys/contrib/dev/ath/README#2 (text+ko) ==== @@ -1,4 +1,4 @@ -$Id: README,v 1.1 2003/06/23 17:59:07 sam Exp $ +$Id: README,v 1.2 2003/07/02 01:55:27 sam Exp $ WARNING: THIS IS A BETA DISTRIBUTION. THIS SOFTWARE HAS KNOWN PROBLEMS AND @@ -9,7 +9,9 @@ Atheros Hardware Access Layer (HAL) =================================== -* Copyright (c) 2002, 2003 Sam Leffler. All rights reserved. +* Copyright (c) 2002, 2003 Sam Leffler. +* Copyright (c) 2002, 2003 Atheros Communications, Inc. +* All rights reserved. Read the file COPYRIGHT for the complete copyright. ==== //depot/projects/smpng/sys/contrib/dev/ath/ah.h#2 (text+ko) ==== @@ -33,7 +33,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * - * $Id: ah.h,v 1.34 2003/06/25 04:50:21 sam Exp $ + * $Id: ah.h,v 1.35 2003/07/21 02:36:53 sam Exp $ */ #ifndef _ATH_AH_H_ @@ -286,7 +286,8 @@ typedef enum { HAL_M_STA = 1, /* infrastructure station */ HAL_M_IBSS = 0, /* IBSS (adhoc) station */ - HAL_M_HOSTAP = 6 /* Software Access Point */ + HAL_M_HOSTAP = 6, /* Software Access Point */ + HAL_M_MONITOR = 8 /* Monitor mode */ } HAL_OPMODE; typedef struct { ==== //depot/projects/smpng/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * - * $Id: ah_osdep.c,v 1.21 2003/06/25 05:49:14 sam Exp $ + * $Id: ah_osdep.c,v 1.22 2003/07/26 14:58:00 sam Exp $ */ #include "opt_ah.h" @@ -43,6 +43,7 @@ #include #include #include +#include #include @@ -207,6 +208,7 @@ error = suser(curthread); if (error == 0) { error = alq_open(&ath_hal_alq, ath_hal_logfile, + curthread->td_ucred, sizeof (struct athregrec), ath_hal_alq_qsize); ath_hal_alq_lost = 0; ath_hal_alq_emitdev = 1; ==== //depot/projects/smpng/sys/contrib/dev/ath/freebsd/ah_osdep.h#2 (text+ko) ==== @@ -33,7 +33,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * - * $Id: ah_osdep.h,v 1.8 2003/06/25 04:50:26 sam Exp $ + * $Id: ah_osdep.h,v 1.9 2003/07/26 14:55:11 sam Exp $ */ #ifndef _ATH_AH_OSDEP_H_ #define _ATH_AH_OSDEP_H_ @@ -56,7 +56,6 @@ #define OS_MEMCPY(_dst, _src, _size) bcopy((_src), (_dst), (_size)) #define OS_MACEQU(_a, _b) \ (bcmp((_a), (_b), IEEE80211_ADDR_LEN) == 0) -#define OS_QSORT(_a, _n, _es, _cmp) qsort((_a), (_n), (_es), (_cmp)) struct ath_hal; extern u_int32_t OS_GETUPTIME(struct ath_hal *); ==== //depot/projects/smpng/sys/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#3 (text+ko) ==== @@ -33,3062 +33,3278 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGES. * - * $Id: i386-elf.hal.o.uu,v 1.3 2003/06/25 04:50:26 sam Exp $ + * $Id: i386-elf.hal.o.uu,v 1.6 2003/08/01 03:42:51 sam Exp $ */ begin 644 hal.o -M?T5,1@$!`0D```````````$``P`!```````````````XT@$``````#0````` +M?T5,1@$!`0D```````````$``P`!``````````````!<[@$``````#0````` M`"@`#0`*`````````````````%6)Y0^W50B!^@<1``!T88'Z!Q$``'\9@_H2 M?PR#^A%]5H/Z!W1*ZU^#^A-T4^M8D('Z$Q$``'1(@?H3$0``?Q"!^A(1``!T M+^L]C;8`````N`````"!^A/P``!T+[@4````@?H;\0``="+K&XUT)@"X*``` M`.L5N#4```#K#HGVN$(```#K!;@`````7<.)]E6)Y8/L!`^W10QF@7T(C!9U -M#HD$).A6____ZPF-="8`N`````")[%W#C;0F`````%6)Y8/L'(E=^(EU_(MU -M#(M=$(M-%(M5&`^W10@]!P(```^$F0```#T'`@``?R*#^!)_$X/X$7UH@_@' -M#X1_````Z9H```"#^!-T->F0````/1,1``!T*3T3$0``?Q(]!Q$``'1;/1(1 -M``#K$(UT)@`]$_```'0)/1OQ``!T(NM@B50D$(E,)`R)7"0(B70D!(D$).C\ -M____ZU&-M@````")5"00B4PD#(E<)`B)="0$B00DZ/S____K,8VV`````(E4 -M)!")3"0,B5PD"(ET)`2)!"3H_/___^L1C;8`````N`````#'`@$```"+7?B+ -M=?R)[%W#C70F`(V\)P````!5B>564XM-"(MU#+L`````N``````Y\',8C;0F -M`````(T4`(G(@^`!"=#1Z4,Y\W+O6UY=PXUT)@"-O"<`````58GE@^P,B1PD -MB70D!(E\)`B+30R+=1`/MU44#[=Q=PXGVC;PG`````%6)Y8M-#`^W00*#X""Z`@```&:% -MP'59#[=!`B7`````N@,```!F/<``=$4/MT$")=````"Z!````&8]T`!T,0^W -M00*#X!"Z`0```&:%P'4@#[=!`B4`"```9H7`#Y7`#[;0C122C70F`(V\)P`` -M``")T%W#C;8`````C;\`````58GEBU4(BT4,A,!Y%[@.````@?JT"0``=%V! -M^K,)``!V'NLLJ0`!``!U.K@.````@?JT"0``=#^!^K,)``!W"('J9PD``.LC -M@?J'$P``=Q6!ZM`)``"XSH$C4(/ZQ*!ZH@3``"XS6+50B+10R$P'D3N+0)``"#^@YT0H/Z#78:ZR>)]JD` -M`0``=2JXM`D``(/Z#G0H@_H-=PJ-!)(%9PD``.L9@_H:=PR-!)*-!(6D"``` -MZPB-!)(%B!,``%W#D(UT)@!5B>564XM=#(![`@!U3KD`````C;8`````C;PG -M`````,9$&0+_08/Y'W[UN0`````/MP.)QCG!?2.-M"8`````#[9$RR8/MM"( -M3!H""D3+)P^VP(A,&`)!.?%\Y%M>7<-5B>575E.#[$"+=0B+70R-0Q")P3M% -M$`^'Z@```(UV`(M6$(-^#`!U"`'*[8E%Y.L&BQ01B57DBTX0C5,,@WX,`'4- -MC10*[8E%\.L*C70F`(L,"HE-\(M.$(U3"(-^#`!U#HT4"NV)1>SK"Y"-="8` -MBPP*B4WLBTX0C5,$@WX,`'4.C10*[8G'ZPF-M@````"+/`J+3A"#?@P`=0B- -M%`OMB<+K`XL4"XM%Y(E$)"R-0Q")1"0HBT7PB40D)(U##(E$)""+1>R)1"0< -MC4,(B40D&(E\)!2-0P2)1"00B50D#(E<)`C'1"0$3P```,<$)`````#H_/__ -M_X/#%(U+$#M-$`^&&?___XM%$"G8@_@(#X0Y`0``@_@(=PZ#^`0/A'T!``#I -MJ`$``(/X#`^$IP```(/X$`^%E@$``(M6$(U##(-^#`!U"`'"[8E%Z.L&BQ00 -MB57HBU80C4,(@WX,`'4'`<+MBR+5A"+1-\,@WX, -M`'4-`<+MB<'K"8VV`````(L,$(M6$(M$WP2#?@P`=0CK!HL4$(E5Z(M6$(M$WPR#?@P`=0L#BPP0BU80 -MBT3?!(-^#`!U!P'"[8G"ZP.+%!"+1>B)1"0L#BP00B40D#(L$WXE$)`C'1"0$5P$``,<$)`````#H_/__ -M_XVV`````(V\)P````"#Q#1;7E]=PY"0D)"0D)"058GE5U93@^P(BUT4#[=% -M#(E%\`^W?1"+10AF@3@!,'<)QT7L`````.L'QT7L%@```+X`````C78`C;PG -M`````(M5[`^W!'*)P0^OS[ID````*<*)T`^O1?`!P;@?A>M1]^G!^@7!^1\I -MRF:)$X/#`D:#_@I^RH/$"%M>7UW#B?95B>4/MU4,B=!F@?K_`'0[BT4(9H$X -M`C!W)F:#^CYV$(T$D@4B%0``ZQZ-M@````"-!)*-A`#L$P``ZPR-="8`C022 -M!<`2```/M\!=PXUV`%6)Y0^W50R)T&:!^O\`=!N+10AF@3@",'<(C8)@"0`` -MZP:-@OP(```/M\!=PXUV`%6)Y5=64X/L$(MU#&:!/@(P=FV_4`$``+L````` -M9H.^2@$````/A!4"``"0C70F`(U%\HE$)`B)^HU'`0^W^(E4)`2+10B)!"3_ -M51"%P`^$S`$```^V1?-FB81>-@$```^V1?)FB81>.`$``(/#`@^WADH!```Y -MPP^-P@$``.NPC47RB40D"+\!`0``QT0D!``!``"+10B)!"3_51"Z`````(7` -M#X33`0``#[=5\HG0P>@)9HF&-@$``(G0P>@"@^!_9HF&.`$``,'B!8/B?V:) -MECH!``"-1?*)1"0(B?J-1P$/M_B)5"0$BT4(B00D_U40N@````"%P`^$?@$` -M``^W5?*)T<'I"P^WACH!```)R&:)ACH!``")T,'H!(/@?V:)ACP!``#!X@.# -MXG]FB98^`0``C47RB40D"(GZC4-@$``(E$)`2)-"3H'/W__V:) -MA%XV`0``0P^WADH!```YPWS8N@$```")T(/$$%M>7UW#B?:-O"<`````58GE -M5U93@^P@OP````"+10QF@3@",'8'OE`!``#K!;X``0``@_\!=#R#_P%_"87_ -M=`_IB0```(/_`G16Z7\```"#Q@6+50P/MY)*`0``B57LBUT,@<-,`0``BTT, -M@<$V`0``ZU:+10QF@W@8``^$;0(``(/&-P^WD%0#``")5>R)PX'#_@,```5< -M`P``B47DZSZ+30QF@WD8``^$0`(``(/&1@^W@50#``")1>R)RX'#8@,``('! -M5@,``(E-Y.L0N@````#I)0(``(VV`````,=%Z`````"+5>PY5>@/C?T!``"+ -M3>B+5>0/MP1*9HD#C47RB40D"(ET)`1&BTT(B0PD_U40N@````"%P`^$W0$` -M``^W1?+!Z`IFB4,$#[=%\L'H!(/@/V:)0P(/MT7RP>`"@^`_9HE#'HU%\HE$ -M)`B)="0$1HM%"(D$)/]5$+H`````A<`/A)0!```/MU7RP>H.#[=#'@G09HE# -M'@^V1?.#X#]FB4,@#[=%\L'H`H/@/V:)0R(/MT7RP>`$@^`_9HE#)(U%\HE$ -M)`B)="0$1HM5"(D4)/]5$+H`````A<`/A#H!```/MU7RP>H,#[=#)`G09HE# -M)`^W1?+!Z`:#X#]FB4,F#[=%\H/@/V:)0RB-1?*)1"0(B70D!$:+30B)#"3_ -M51"Z`````(7`#X3N````#[=%\L'H"F:)0RH/MT7RP>@$@^`_9HE#+`^W1?+! -MX`*#X#]FB4,NC47RB40D"(ET)`1&BT4(B00D_U40N@````"%P`^$I0````^W -M5?+!Z@X/MT,N"=!FB4,N#[9%\X/@/V:)0S`/MT7RP>@"@^`_9HE#,HU#"(E$ -M)`P/MT,$B40D"`^W0P*)1"0$BU4,B10DZ-KY__^Z``````^W0P:)P3G"?2*- -M="8`C;PG``````^_1%,>C02`C02``#_P(/CB3]__^Z`0```(G0@\0@6UY?7<.-M"8````` -M58GE5U93@^P@BWT,QT7H`````&:!/P(P=@>^4`$``.L%O@`!``"#?>@!=#2# -M?>@!?PZ#?>@`=!#K0"````C9\.!0``C9<,!0``B57@ZS!F -M@W\8``^$E@$``(/&:<=%Y`,```"-G^X$``"-A^P$``")1>#K"KH`````Z8,! -M``"+5>!FQP(``,=%[`````"+1>0Y1>P/C58!``#K#9"0D)"0D)"0D)"0D)"- -M1?*)1"0(B70D!$:+50B)%"3_51"Z`````(7`#X0W`0``9H$_`C!V!P^V1?/K -M")`/MT7RP>@)9HE#"&:#>P@`#X3O````@WWH`'44#[=#"(E$)`2)/"3HM/C_ -M_^L2B?8/MT,(B40D!(D\).CP^/__9HE#"&:!/P(P=A@"@^`_9HE# -M!@^W1?+!X`3K%0^W1?+!Z`.#X#]FB4,&#[=%\L'@`X/@/V:)0P2-1?*)1"0( -MB70D!$:+10B)!"3_51"Z`````(7`#X2)````9H$_`C!V*0^W5?+!Z@P/MT,$ -M"=!FB4,$#[=%\L'H!H/@/V:)0P(/MT7RZRF-="8`#[=5\L'J#0^W0P0)T&:) -M0P0/MT7RP>@'@^`_9HE#`@^W1?+1Z(/@/V:)`XM5X`^W`D!FB0*#PPK_1>R+ -M1>0Y1>P/C+G^____1>B#?>@"#X[?_?__N@$```")T(/$(%M>7UW#C;8````` -MC;PG`````%6)Y5=64X/L%(MU#('&)`4``(M%#&:!.`(P=A2_OP$``.L2N``` -M``#I90,``(UV`+]O`0``QT7L`````(M5#&:#NM@`````#X1``P``BTWLBT4, -M9H.\2-H`````=1IF@3@",'8+@\<(Z0<#``"-=@"#QP?I_`(``(M5#&:!.@(P -M#X:O````NP````"0C70F`(U%\HE$)`B)?"0$1XM-"(D,)/]5$(7`#X1V____ -M#[9%\V:)!-X/MD7R9HE$W@B#PP*#^P=^RKL`````D(UT)@"-1?*)1"0(B7PD -M!$>+10B)!"3_51"%P`^$-O___P^V1?.#X#]FB43>`@^W1?+!Z`Z#X`$/M\") -M1-X$#[=%\H/@/V:)1-X*#[=%\L'H!H/@`0^WP(E$W@R#PP*#^P@)9HD&B=#! -MZ`*#X']FB48(P>(%@^)_9HE6$(U%\HE$)`B)?"0$1XM-"(D,)/]5$(7`#X22 -M_O__#[=5\HG1P>D+#[=&$`G(9HE&$(G0P>@$@^!_9HE&&,'B`X/B?V:)5B"- -M1?*)1"0(B7PD!$>+10B)!"3_51"%P`^$3/[__P^W5?*)T<'I#0^W1B`)R&:) -M1B")T,'H!H/@?V:)1B@!TH/B?V:)5C"-1?*)1"0(B7PD!$>+50B)%"3_51"% -MP`^$!_[__P^W5?*)T<'I#P^W1C`)R&:)1C")T,'H"(/@?V:)1CB)T,'H`H/@ -M/V:)1@+!X@2#XC]FB58*C47RB40D"(E\)`1'BTT(B0PD_U40A<`/A+7]__\/ -MMU7RB='!Z0P/MT8*"H&@^(_9HE6$@^W1?*#X#]FB48:C47RB40D -M"(E\)`1'BT4(B00D_U40A<`/A'#]__\/MU7RB=#!Z`IFB48BB=#!Z`2#X#]F -MB48JP>("@^(_9HE6,HU%\HE$)`B)?"0$1XM5"(D4)/]5$(7`#X0P_?__#[=% -M\HG!P>D.#[=6,@G*9HE6,L'H"(/@/V:)1CJ[`````(UT)@"-O"<`````@SS> -M`'1(BTWLBU4,#[>$2MH```"#X`-FA0X/[!WZL@\9`_T7LBU4, -M#[>"V````#E%[`^,P/S__[@!````@\046UY?7<.-M@````!5B>575E.#[!2+ -M=0QF@3X",'82QT7L1````&;'AM@````@`.L0QT7L+````&;'AM@````0`(U% -M\HE$)`B+5>R+`HE$)`2+10B)!"3_51"Z`````(7`#X35!@``#[=5\HG0P>@/ -M9HE&!HG0P>@.@^`!9HE&"HG0P>@+@^`'9HE&#(G0P>@$@^!_9HE&#HG0P>@# -M@^`!9HE&"(G0P>@"@^`!9HE&&M'J@^(!9HE6&`^W1?*#X`%FB486C47RB40D -M"(M5[(M"!(E$)`2+10B)!"3_51"Z`````(7`#X11!@``#[9%\XA&'`^V1?*( -M1AV_`````(M5[(MH.#[>$?H@````)T&:)A'Z(````#[9%\X/@/V:)A'Z.````#[=%\L'H`H/@ -M/V:)A'Z4````#[=%\L'@!(/@/V:)A'Z:````C47RB40D"(E<)`1#BT4(B00D -M_U40A<`/A.,#```/MU7RP>H,#[>$?IH````)T&:)A'Z:````#[=%\L'H!H/@ -M/V:)A'Z@````#[=%\H/@/V:)A'ZF````C47RB40D"(E<)`1#BU4(B10D_U40 -MA<`/A(P#```/MD7SB$0^3(/_`71%@_\!?PF%_W0,Z?D```"#_P)T4^MP#[=% -M\HG"P>H%@^('9HF6Q````(G"P>H"@^('9HF6Q@````'`@^`'9HF&P````.M` -M#[=%\L'H!(/@!V:)AL@````/MT7R@^`'9HF&R@```.L?#[=%\L'H!(/@!V:) -MALP````/MT7R@^`'9HF&S@```(7_=7Z-1?*)1"0(B5PD!$.+10B)!"3_51"% -MP`^$V0(```^W5?*)T<'I#P^WAL`````)R&:)AL````")T,'H#(/@!V:)AL(` -M``")T,'H"8/@!V:)AKP```")T,'H!H/@!V:)AKX```#!Z@.#X@=FB9:X```` -M#[=%\H/@!V:)AKH```"-1?*)1"0(B5PD!$.+50B)%"3_51"%P`^$6P(```^V -M1?-FB41^-`^V1?)FB41^.HU%\HE$)`B)7"0$0XM%"(D$)/]5$(7`#X0L`@`` -M#[9%\V:)1'Y`#[9%\F:)1'Y&C47RB40D"(E<)`1#BU4(B10D_U40A<`/A/T! -M```/MD7SB$0^3P^V1?)FB41^4H!\?E(`>0H-`/___V:)1'Y2C47RB40D"(E< -M)`1#BT4(B00D_U40A<`/A+X!```/MT7RP>@%)?\```!FB41^6`^W1?+1Z(/@ -M#V:)1'Y>#[=%\H/@`6:)1'YD9H$^`C`/AI<```"-1?*)1"0(B5PD!$.+50B) -M%"3_51"%P`^$:P$```^W1?+!Z`:#X']FB81^K````(/_`702@_\!?P:%_W1+ -MZUB#_P)T(^M1#[=%\H/@!V:)AM`````/MT7RP>@#@^`'9HF&U````.LP#[=% -M\H/@!V:)AM(````/MT7RP>@#@^`'9HF&U@```.L/#[=%\H/@/V:)1A*-="8` -M9H$^`S!V7`^W1?+!Z`UFB81^L@```(U%\HE$)`B)7"0$BT4(B00D_U40A<`/ -MA+\````/MU7RP>(#@^(X#[>$?K(````)T&:)A'ZR````@_\"=1X/MT7RP>@# -MB$8@A,!U$.L*9L>$?K(````*`,9&(`]'@_\"#XXG^___9H$^`C`/AY0```"- -M1?*)1"0(QT0D!.P```"+50B)%"3_51"Z`````(7`#X0U`0``#[=%\H/@!V:) -MAM`````/MT7RP>@#@^`'9HF&U````(U%\HE$)`C'1"0$[0```(M%"(D$)/]5 -M$+H`````A<`/A/$```#K"KH`````Z>4````/MT7R@^`'9HF&T@````^W1?+! -MZ`.#X`=FB8;6````9L>&-`$```0`9L>&,@$```$`9L>&,`$```$`9L>&+@$` -M````BU7LBUH4OP````!F@[[8`````'10C;8`````C;PG`````(U%\HE$)`B) -M7"0$0XM%"(D$)/]5$(7`#X1T____#[9%\V:)A'[:````#[9%\F:)A'[<```` -M@\<"#[>&V````#G'?+UF@3X",'Q=PY!5B>53#[==#+H`````C78`C012 -MB=%F.9P`8`4``'01C4(!#[_09H/Z%W;EN?____^)R%M=PXUT)@"-O"<````` -M58GE4P^W70RZ`````(UV`(G0P>`%B=%F.9A@````=!&-0@$/O]!F@_HG=N2Y -M_____XG(6UW#C78`C;PG`````%6)Y8/L%(E=](EU^(E]_(MU"`^W10P/MWT0 -M9H7`=4''1"0$$````(DT).A1____#[_8B30D_Y;,````#[?`9H7`=$,E_[\` -M`(E$)`2)-"3H+/___YAF@_C_="N)P^LGD(E$)`2)-"3H5/___YC!X`4/MX!B -M````B40D!(DT).C]_O__#[_8B?B$P'D4C01;#[>$`&0%``#K$HVT)@````"- -M!%L/MX0`8@4``(M=](MU^(M]_(GL7<.0C;0F`````%6)Y0^W50RX!0```(32 -M>"B)T"4``0``9H7`=!>)T(/@$&:%P`^5P`^VP$B#X.R#P"CK!;@4````7<.- -MM@````!5B>6+50RX!P```(32>";WP@`!``!T&??"$`````^4P`^VP(U$P`+K -M#(VT)@````"X`````%W#B?:-O"<`````58GEBU4,N*`'``"$TG@AN`````#W -MP@`!``!T%+A@!P``]\(0````=0>X``8``(GV7<.-M"8`````C;PG`````%6) -MY5=64X/L#`^W70R)7"0$BT4(B00DZ*3___^)QHE<)`2+50B)%"3H4____XG' -MB5PD"(M5"`^W0A2)1"0$B10DZ#K^__\/M\BZ`````#GZ?2>-M"8`````C;PG -M`````(G0P>`$*=`!P&8Y#`9U!8T$,.L*0CGZ?.>X``8``(/$#%M>7UW#C78` -MC;PG`````%6)Y5=64X/L#`^W70R)7"0$BT4(B00DZ!3___^)QHE<)`2+50B) -M%"3HP_[__XG'B5PD"(M5"`^W0A2)1"0$B10DZ*K]__\/M\BZ`````#GZ?22- -MM"8`````C;PG`````(G0P>`$*=!F.0Q&=02)R.L*0CGZ?.JX`````(/$#%M> -M7UW#C;8`````C;PG`````%6)Y0^W30BX`````(UT)@")PL'B!68YBF````!U -M$KAP````BT00".L2C;0F`````$"#^"=VVK@`````7<.-=@!5B>4/MTT(N``` -M``"-="8`B<+!X@5F.8I@````=1*X<````(M$$`SK$HVT)@````!`@_@G=MJX -M`````%W#C78`58GEBT4(#[<`BU4,#[<2*=!=PXVV`````(V\)P````!5B>57 -M5E.#[$P/MUT8#[=%'(E%[(E<)`2+50B)%"3H_/___XE%Z,=%Y%@;``"#?2`` -M=1UF@?M(`W46QT7D718``.L-D)"0D)"0D)"0D)"0D,=%X`````"^)`H``&:# -M/20*````#X2#`0``C;8`````#[<&(T7L9H7`#X1A`0``#[<&A47H#X15`0`` -MC47RB40D#(U%\(E$)`@/MT8"B40D!(M-"(D,)/^1.`$``(7`#X0K`0``#[=& -M`HE$)`2+?0B)/"3H>/W__XE%W`^W7@*)7"0$B3PDZ*7\__\/M\")1=B)7"0$ -MB3PDZ./]__\/M\")1=2[`````(M%W&:#>`(`#X3:````C78`C;PG`````(T$ -M6XM5W(T$0@^W4`9F.5`(#X*?````#[9-U(E-T(T$6XM]W(T$1XE%N(VV```` -M`&8Y5?!W:F8Y5?)R9&8[5>1W7HM%$#E%X`^#CP```(M-X(M]#&:)%(\/MT8" -M9HE%P&:)1(\"9H-]T#!U)`^W1@(E``$``&:%P'06BTW`@>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 4 19:37:33 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 54CAD37B404; Mon, 4 Aug 2003 19:37:33 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0C48F37B401 for ; Mon, 4 Aug 2003 19:37:33 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A411543F3F for ; Mon, 4 Aug 2003 19:37:32 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h752bW0U077765 for ; Mon, 4 Aug 2003 19:37:32 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h752bVmC077762 for perforce@freebsd.org; Mon, 4 Aug 2003 19:37:31 -0700 (PDT) Date: Mon, 4 Aug 2003 19:37:31 -0700 (PDT) Message-Id: <200308050237.h752bVmC077762@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 35509 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 02:37:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=35509 Change 35509 by rwatson@rwatson_tislabs on 2003/08/04 19:36:45 An XXX on a possibly wrong cred in the NFS code: it's using td->td_ucred instead of nd->nd_cr (the NFS credential). Affected files ... .. //depot/projects/trustedbsd/mac/sys/nfsserver/nfs_serv.c#26 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/nfsserver/nfs_serv.c#26 (text+ko) ==== @@ -1969,6 +1969,9 @@ nd.ni_cnd.cn_nameiop = LOOKUP; nd.ni_cnd.cn_flags &= ~(LOCKPARENT); nd.ni_cnd.cn_thread = td; + /* + * XXXMAC: Wrong cred? + */ nd.ni_cnd.cn_cred = td->td_ucred; error = lookup(&nd); From owner-p4-projects@FreeBSD.ORG Tue Aug 5 16:12:18 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C406D37B404; Tue, 5 Aug 2003 16:12:17 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 45CBF37B401 for ; Tue, 5 Aug 2003 16:12:17 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DFCA143F3F for ; Tue, 5 Aug 2003 16:12:16 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h75NCG0U073550 for ; Tue, 5 Aug 2003 16:12:16 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h75NCGVh073547 for perforce@freebsd.org; Tue, 5 Aug 2003 16:12:16 -0700 (PDT) Date: Tue, 5 Aug 2003 16:12:16 -0700 (PDT) Message-Id: <200308052312.h75NCGVh073547@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35567 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 23:12:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=35567 Change 35567 by sam@sam_ebb on 2003/08/05 16:11:26 add R_Zalloc definition that returns a zero'd area; this is to take advantage of pre-zeroing support in the kernel Affected files ... .. //depot/projects/netperf/sys/net/radix.h#2 edit Differences ... ==== //depot/projects/netperf/sys/net/radix.h#2 (text+ko) ==== @@ -153,12 +153,14 @@ #define Bcopy(a, b, n) bcopy(((char *)(a)), ((char *)(b)), (unsigned)(n)) #define Bzero(p, n) bzero((char *)(p), (int)(n)); #define R_Malloc(p, t, n) (p = (t) malloc((unsigned int)(n))) +#define R_Zalloc(p, t, n) (p = (t) calloc(1,(unsigned int)(n))) #define Free(p) free((char *)p); #else #define Bcmp(a, b, n) bcmp(((caddr_t)(a)), ((caddr_t)(b)), (unsigned)(n)) #define Bcopy(a, b, n) bcopy(((caddr_t)(a)), ((caddr_t)(b)), (unsigned)(n)) #define Bzero(p, n) bzero((caddr_t)(p), (unsigned)(n)); #define R_Malloc(p, t, n) (p = (t) malloc((unsigned long)(n), M_RTABLE, M_NOWAIT)) +#define R_Zalloc(p, t, n) (p = (t) malloc((unsigned long)(n), M_RTABLE, M_NOWAIT | M_ZERO)) #define Free(p) free((caddr_t)p, M_RTABLE); #define RADIX_NODE_HEAD_LOCK_INIT(rnh) \ From owner-p4-projects@FreeBSD.ORG Tue Aug 5 16:18:28 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9FD7737B404; Tue, 5 Aug 2003 16:18:27 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3DB3337B401 for ; Tue, 5 Aug 2003 16:18:27 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4CE243F93 for ; Tue, 5 Aug 2003 16:18:26 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h75NIQ0U073827 for ; Tue, 5 Aug 2003 16:18:26 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h75NIQ14073824 for perforce@freebsd.org; Tue, 5 Aug 2003 16:18:26 -0700 (PDT) Date: Tue, 5 Aug 2003 16:18:26 -0700 (PDT) Message-Id: <200308052318.h75NIQ14073824@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35571 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 23:18:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=35571 Change 35571 by sam@sam_ebb on 2003/08/05 16:18:18 Checkpoint fast forwarding locking: we use a mutex per hash bucket. Need to revisit fast path processing to see if we can come up with a lock free scheme. Note this code is untested. Affected files ... .. //depot/projects/netperf/sys/netinet/ip_flow.c#2 edit .. //depot/projects/netperf/sys/netinet/ip_flow.h#2 edit Differences ... ==== //depot/projects/netperf/sys/netinet/ip_flow.c#2 (text+ko) ==== @@ -38,8 +38,10 @@ #include #include +#include #include #include +#include #include #include #include @@ -59,10 +61,31 @@ #define IPFLOW_TIMER (5 * PR_SLOWHZ) #define IPFLOW_HASHBITS 6 /* should not be a multiple of 8 */ #define IPFLOW_HASHSIZE (1 << IPFLOW_HASHBITS) -static LIST_HEAD(ipflowhead, ipflow) ipflows[IPFLOW_HASHSIZE]; +#if IPFLOW_HASHSIZE > 255 +#error "make ipf_hash larger" +#endif +static struct ipflow_head ipflows[IPFLOW_HASHSIZE]; static int ipflow_inuse; #define IPFLOW_MAX 256 +/* + * Each flow list has a lock that guards updates to the list and to + * all entries on the list. Flow entries hold the hash index for + * finding the head of the list so the lock can be found quickly. + * + * ipflow_inuse holds a count of the number of flow entries present. + * This is used to bound the size of the table. When IPFLOW_MAX entries + * are present and an additional entry is needed one is chosen for + * replacement. We could use atomic ops for this counter but having it + * inconsistent doesn't appear to be a problem. + */ +#define IPFLOW_HEAD_LOCK(_ipfh) mtx_lock(&(_ipfh)->ipfh_mtx) +#define IPFLOW_HEAD_UNLOCK(_ipfh) mtx_unlock(&(_ipfh)->ipfh_mtx) +#define IPFLOW_LOCK(_ipf) \ + IPFLOW_HEAD_LOCK(&ipflows[(_ipf)->ipf_hash]) +#define IPFLOW_UNLOCK(_ipf) \ + IPFLOW_HEAD_UNLOCK(&ipflows[(_ipf)->ipf_hash]) + static int ipflow_active = 0; SYSCTL_INT(_net_inet_ip, IPCTL_FASTFORWARDING, fastforwarding, CTLFLAG_RW, &ipflow_active, 0, "Enable flow-based IP forwarding"); @@ -70,10 +93,7 @@ static MALLOC_DEFINE(M_IPFLOW, "ip_flow", "IP flow"); static unsigned -ipflow_hash( - struct in_addr dst, - struct in_addr src, - unsigned tos) +ipflow_hash(struct in_addr dst, struct in_addr src, unsigned tos) { unsigned hash = tos; int idx; @@ -83,28 +103,30 @@ } static struct ipflow * -ipflow_lookup( - const struct ip *ip) +ipflow_lookup(const struct ip *ip) { unsigned hash; + struct ipflow_head *head; struct ipflow *ipf; hash = ipflow_hash(ip->ip_dst, ip->ip_src, ip->ip_tos); + head = &ipflows[hash]; - ipf = LIST_FIRST(&ipflows[hash]); - while (ipf != NULL) { + IPFLOW_HEAD_LOCK(head); + LIST_FOREACH(ipf, &head->ipfh_head, ipf_next) { if (ip->ip_dst.s_addr == ipf->ipf_dst.s_addr && ip->ip_src.s_addr == ipf->ipf_src.s_addr - && ip->ip_tos == ipf->ipf_tos) - break; - ipf = LIST_NEXT(ipf, ipf_next); + && ip->ip_tos == ipf->ipf_tos) { + /* NB: return head locked */ + return ipf; + } } - return ipf; + IPFLOW_HEAD_UNLOCK(head); + return NULL; } int -ipflow_fastforward( - struct mbuf *m) +ipflow_fastforward(struct mbuf *m) { struct ip *ip; struct ipflow *ipf; @@ -134,14 +156,18 @@ * Route and interface still up? */ rt = ipf->ipf_ro.ro_rt; - if ((rt->rt_flags & RTF_UP) == 0 || (rt->rt_ifp->if_flags & IFF_UP) == 0) + if ((rt->rt_flags & RTF_UP) == 0 || (rt->rt_ifp->if_flags & IFF_UP) == 0) { + IPFLOW_UNLOCK(ipf); return 0; + } /* * Packet size OK? TTL? */ - if (m->m_pkthdr.len > rt->rt_ifp->if_mtu || ip->ip_ttl <= IPTTLDEC) + if (m->m_pkthdr.len > rt->rt_ifp->if_mtu || ip->ip_ttl <= IPTTLDEC) { + IPFLOW_UNLOCK(ipf); return 0; + } /* * Everything checks out and so we can forward this packet. @@ -170,12 +196,12 @@ else ipf->ipf_errors++; } + IPFLOW_UNLOCK(ipf); return 1; } - + static void -ipflow_addstats( - struct ipflow *ipf) +ipflow_addstats(struct ipflow *ipf) { ipf->ipf_ro.ro_rt->rt_use += ipf->ipf_uses; ipstat.ips_cantforward += ipf->ipf_errors + ipf->ipf_dropped; @@ -183,36 +209,21 @@ ipstat.ips_fastforward += ipf->ipf_uses; } -static void -ipflow_free( - struct ipflow *ipf) -{ - int s; - /* - * Remove the flow from the hash table (at elevated IPL). - * Once it's off the list, we can deal with it at normal - * network IPL. - */ - s = splimp(); - LIST_REMOVE(ipf, ipf_next); - splx(s); - ipflow_addstats(ipf); - RTFREE(ipf->ipf_ro.ro_rt); - ipflow_inuse--; - free(ipf, M_IPFLOW); -} - +/* + * XXX the locking here makes reaping an entry very expensive... + */ static struct ipflow * -ipflow_reap( - void) +ipflow_reap(void) { - struct ipflow *ipf, *maybe_ipf = NULL; + struct ipflow *victim = NULL; + struct ipflow *ipf; int idx; - int s; for (idx = 0; idx < IPFLOW_HASHSIZE; idx++) { - ipf = LIST_FIRST(&ipflows[idx]); - while (ipf != NULL) { + struct ipflow_head *head = &ipflows[idx]; + + IPFLOW_HEAD_LOCK(head); + LIST_FOREACH(ipf, &head->ipfh_head, ipf_next) { /* * If this no longer points to a valid route * reclaim it. @@ -224,38 +235,58 @@ * or has had the least uses in the last 1.5 * intervals. */ - if (maybe_ipf == NULL - || ipf->ipf_timer < maybe_ipf->ipf_timer - || (ipf->ipf_timer == maybe_ipf->ipf_timer + if (victim == NULL) + victim = ipf; + else if (ipf->ipf_timer < victim->ipf_timer + || (ipf->ipf_timer == victim->ipf_timer && ipf->ipf_last_uses + ipf->ipf_uses < - maybe_ipf->ipf_last_uses + - maybe_ipf->ipf_uses)) - maybe_ipf = ipf; - ipf = LIST_NEXT(ipf, ipf_next); + victim->ipf_last_uses + victim->ipf_uses)) { + if (victim->ipf_hash != ipf->ipf_hash) + IPFLOW_UNLOCK(victim); + victim = ipf; + } } + if (victim && victim->ipf_hash != idx) + IPFLOW_HEAD_UNLOCK(head); } - ipf = maybe_ipf; + ipf = victim; done: /* * Remove the entry from the flow table. */ - s = splimp(); LIST_REMOVE(ipf, ipf_next); - splx(s); + IPFLOW_UNLOCK(ipf); + ipflow_addstats(ipf); RTFREE(ipf->ipf_ro.ro_rt); return ipf; } +static void +ipflow_free(struct ipflow *ipf) +{ + /* + * Remove the flow from the hash table. + */ + LIST_REMOVE(ipf, ipf_next); + + ipflow_addstats(ipf); + RTFREE(ipf->ipf_ro.ro_rt); + ipflow_inuse--; + free(ipf, M_IPFLOW); +} + void -ipflow_slowtimo( - void) +ipflow_slowtimo(void) { struct ipflow *ipf; int idx; for (idx = 0; idx < IPFLOW_HASHSIZE; idx++) { - ipf = LIST_FIRST(&ipflows[idx]); + struct ipflow_head *head = &ipflows[idx]; + + IPFLOW_HEAD_LOCK(head); + ipf = LIST_FIRST(&head->ipfh_head); while (ipf != NULL) { struct ipflow *next_ipf = LIST_NEXT(ipf, ipf_next); if (--ipf->ipf_timer == 0) { @@ -269,18 +300,15 @@ } ipf = next_ipf; } + IPFLOW_HEAD_UNLOCK(head); } } void -ipflow_create( - const struct route *ro, - struct mbuf *m) +ipflow_create(const struct route *ro, struct mbuf *m) { const struct ip *const ip = mtod(m, struct ip *); struct ipflow *ipf; - unsigned hash; - int s; /* * Don't create cache entries for ICMP messages. @@ -304,12 +332,18 @@ ipflow_inuse++; } bzero((caddr_t) ipf, sizeof(*ipf)); + + ipf->ipf_hash = ipflow_hash(ip->ip_dst, ip->ip_src, ip->ip_tos); + ipf->ipf_dst = ip->ip_dst; + ipf->ipf_src = ip->ip_src; + ipf->ipf_tos = ip->ip_tos; + + IPFLOW_LOCK(ipf); } else { - s = splimp(); LIST_REMOVE(ipf, ipf_next); - splx(s); - ipflow_addstats(ipf); - RTFREE(ipf->ipf_ro.ro_rt); + + ipflow_addstats(ipf); /* add stats to old route */ + RTFREE(ipf->ipf_ro.ro_rt); /* clear reference */ ipf->ipf_uses = ipf->ipf_last_uses = 0; ipf->ipf_errors = ipf->ipf_dropped = 0; } @@ -318,16 +352,26 @@ * Fill in the updated information. */ ipf->ipf_ro = *ro; + RT_LOCK(ro->ro_rt); ro->ro_rt->rt_refcnt++; - ipf->ipf_dst = ip->ip_dst; - ipf->ipf_src = ip->ip_src; - ipf->ipf_tos = ip->ip_tos; + RT_UNLOCK(ro->ro_rt); ipf->ipf_timer = IPFLOW_TIMER; /* * Insert into the approriate bucket of the flow table. */ - hash = ipflow_hash(ip->ip_dst, ip->ip_src, ip->ip_tos); - s = splimp(); - LIST_INSERT_HEAD(&ipflows[hash], ipf, ipf_next); - splx(s); + LIST_INSERT_HEAD(&ipflows[ipf->ipf_hash].ipfh_head, ipf, ipf_next); + IPFLOW_UNLOCK(ipf); +} + +static void +ipflow_init(void) +{ + int idx; + + for (idx = 0; idx < IPFLOW_HASHSIZE; idx++) { + struct ipflow_head *head = &ipflows[idx]; + LIST_INIT(&head->ipfh_head); + mtx_init(&head->ipfh_mtx, "ipflow list head", NULL, MTX_DEF); + } } +SYSINIT(ipflow, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY, ipflow_init, 0); ==== //depot/projects/netperf/sys/netinet/ip_flow.h#2 (text+ko) ==== @@ -44,6 +44,8 @@ struct in_addr ipf_dst; /* destination address */ struct in_addr ipf_src; /* source address */ + /* NB: this assumes the size of the list head hash table is <=256 */ + u_int8_t ipf_hash; /* index in list head table */ u_int8_t ipf_tos; /* type-of-service */ struct route ipf_ro; /* associated route entry */ u_long ipf_uses; /* number of uses in this period */ @@ -54,4 +56,9 @@ u_long ipf_last_uses; /* number of uses in last period */ }; +struct ipflow_head { + LIST_HEAD(ipflowhead, ipflow) ipfh_head; + struct mtx ipfh_mtx; +}; + #endif From owner-p4-projects@FreeBSD.ORG Tue Aug 5 16:19:31 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 78EB937B404; Tue, 5 Aug 2003 16:19:30 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 16A1437B418 for ; Tue, 5 Aug 2003 16:19:30 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 96CEA43F3F for ; Tue, 5 Aug 2003 16:19:28 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h75NJS0U073851 for ; Tue, 5 Aug 2003 16:19:28 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h75NJS1A073848 for perforce@freebsd.org; Tue, 5 Aug 2003 16:19:28 -0700 (PDT) Date: Tue, 5 Aug 2003 16:19:28 -0700 (PDT) Message-Id: <200308052319.h75NJS1A073848@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35572 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 23:19:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=35572 Change 35572 by sam@sam_ebb on 2003/08/05 16:18:27 delay creating ic_bss until after the super-class has a chance to override the method points for manipulating nodes; this fixes a problem where the ic_bss node was not being created properly for ath driver causing the driver to scribble on random memory Affected files ... .. //depot/projects/netperf/sys/net80211/ieee80211.c#2 edit .. //depot/projects/netperf/sys/net80211/ieee80211_node.c#2 edit .. //depot/projects/netperf/sys/net80211/ieee80211_node.h#2 edit Differences ... ==== //depot/projects/netperf/sys/net80211/ieee80211.c#2 (text+ko) ==== @@ -337,6 +337,7 @@ if (maxrate) ifp->if_baudrate = IF_Mbps(maxrate); + ieee80211_node_lateattach(ifp); /* XXX */ #undef ADD } ==== //depot/projects/netperf/sys/net80211/ieee80211_node.c#2 (text+ko) ==== @@ -86,6 +86,13 @@ ic->ic_node_alloc = ieee80211_node_alloc; ic->ic_node_free = ieee80211_node_free; ic->ic_node_copy = ieee80211_node_copy; +} + +void +ieee80211_node_lateattach(struct ifnet *ifp) +{ + struct ieee80211com *ic = (void *)ifp; + ic->ic_bss = (*ic->ic_node_alloc)(ic); KASSERT(ic->ic_bss != NULL, ("unable to setup inital BSS node")); ic->ic_bss->ni_chan = IEEE80211_CHAN_ANYC; ==== //depot/projects/netperf/sys/net80211/ieee80211_node.h#2 (text+ko) ==== @@ -121,6 +121,7 @@ struct ieee80211com; extern void ieee80211_node_attach(struct ifnet *); +extern void ieee80211_node_lateattach(struct ifnet *); extern void ieee80211_node_detach(struct ifnet *); extern void ieee80211_begin_scan(struct ifnet *); From owner-p4-projects@FreeBSD.ORG Tue Aug 5 16:26:40 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DC48837B404; Tue, 5 Aug 2003 16:26:39 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7840137B401 for ; Tue, 5 Aug 2003 16:26:39 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8D7C343FA3 for ; Tue, 5 Aug 2003 16:26:38 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h75NQc0U074173 for ; Tue, 5 Aug 2003 16:26:38 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h75NQc3X074170 for perforce@freebsd.org; Tue, 5 Aug 2003 16:26:38 -0700 (PDT) Date: Tue, 5 Aug 2003 16:26:38 -0700 (PDT) Message-Id: <200308052326.h75NQc3X074170@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35574 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 23:26:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=35574 Change 35574 by sam@sam_ebb on 2003/08/05 16:25:47 Checkpoint ipfw locking: we use two "big locks", one for the static rules and one for the dynamic rules. It may be possible to eliminate one or both of these by extending the coverage of another lock (TBD). Only lightly tested, more testing coming shortly. Affected files ... .. //depot/projects/netperf/sys/netinet/ip_fw2.c#2 edit Differences ... ==== //depot/projects/netperf/sys/netinet/ip_fw2.c#2 (text+ko) ==== @@ -102,13 +102,21 @@ static int fw_verbose; static int verbose_limit; -static struct callout_handle ipfw_timeout_h; +static struct callout ipfw_timeout; #define IPFW_DEFAULT_RULE 65535 +struct ip_fw_chain { + struct ip_fw *rules; /* list of rules */ + struct mtx mtx; /* lock guarding rule list */ +}; +#define IPFW_LOCK(_chain) mtx_lock(&(_chain)->mtx) +#define IPFW_UNLOCK(_chain) mtx_unlock(&(_chain)->mtx) +#define IPFW_LOCK_ASSERT(_chain, _what) mtx_assert(&(_chain)->mtx, _what) + /* * list of rules for layer 3 */ -static struct ip_fw *layer3_chain; +static struct ip_fw_chain layer3_chain; MALLOC_DEFINE(M_IPFW, "IpFw/IpAcct", "IpFw/IpAcct chain's"); @@ -174,6 +182,11 @@ static u_int32_t dyn_buckets = 256; /* must be power of 2 */ static u_int32_t curr_dyn_buckets = 256; /* must be power of 2 */ +static struct mtx ipfw_dyn_mtx; /* mutex guarding dynamic rules */ +#define IPFW_DYN_LOCK() mtx_lock(&ipfw_dyn_mtx) +#define IPFW_DYN_UNLOCK() mtx_unlock(&ipfw_dyn_mtx) +#define IPFW_DYN_LOCK_ASSERT(_what) mtx_assert(&ipfw_dyn_mtx, _what) + /* * Timeouts for various events in handing dynamic rules. */ @@ -395,6 +408,7 @@ } else { struct ifaddr *ia; + /* XXX lock? */ TAILQ_FOREACH(ia, &ifp->if_addrhead, ifa_link) { if (ia->ifa_addr == NULL) continue; @@ -704,6 +718,8 @@ ipfw_dyn_rule *prev, *q; int i, pass = 0, max_pass = 0; + IPFW_DYN_LOCK_ASSERT(MA_OWNED); + if (ipfw_dyn_v == NULL || dyn_count == 0) return; /* do not expire more than once per second, it is useless */ @@ -760,7 +776,7 @@ * lookup a dynamic rule. */ static ipfw_dyn_rule * -lookup_dyn_rule(struct ipfw_flow_id *pkt, int *match_direction, +lookup_dyn_rule_locked(struct ipfw_flow_id *pkt, int *match_direction, struct tcphdr *tcp) { /* @@ -774,6 +790,8 @@ int i, dir = MATCH_NONE; ipfw_dyn_rule *prev, *q=NULL; + IPFW_DYN_LOCK_ASSERT(MA_OWNED); + if (ipfw_dyn_v == NULL) goto done; /* not found */ i = hash_packet( pkt ); @@ -878,9 +896,25 @@ return q; } +static ipfw_dyn_rule * +lookup_dyn_rule(struct ipfw_flow_id *pkt, int *match_direction, + struct tcphdr *tcp) +{ + ipfw_dyn_rule *q; + + IPFW_DYN_LOCK(); + q = lookup_dyn_rule_locked(pkt, match_direction, tcp); + if (q == NULL) + IPFW_DYN_UNLOCK(); + /* NB: return table locked when q is not NULL */ + return q; +} + static void realloc_dynamic_table(void) { + IPFW_DYN_LOCK_ASSERT(MA_OWNED); + /* * Try reallocation, make sure we have a power of 2 and do * not allow more than 64k entries. In case of overflow, @@ -921,6 +955,8 @@ ipfw_dyn_rule *r; int i; + IPFW_DYN_LOCK_ASSERT(MA_OWNED); + if (ipfw_dyn_v == NULL || (dyn_count == 0 && dyn_buckets != curr_dyn_buckets)) { realloc_dynamic_table(); @@ -974,6 +1010,8 @@ ipfw_dyn_rule *q; int i; + IPFW_DYN_LOCK_ASSERT(MA_OWNED); + if (ipfw_dyn_v) { i = hash_packet( pkt ); for (q = ipfw_dyn_v[i] ; q != NULL ; q=q->next) @@ -1011,13 +1049,16 @@ (args->f_id.src_ip), (args->f_id.src_port), (args->f_id.dst_ip), (args->f_id.dst_port) );) - q = lookup_dyn_rule(&args->f_id, NULL, NULL); + IPFW_DYN_LOCK(); + + q = lookup_dyn_rule_locked(&args->f_id, NULL, NULL); if (q != NULL) { /* should never occur */ if (last_log != time_second) { last_log = time_second; printf("ipfw: install_state: entry already present, done\n"); } + IPFW_DYN_UNLOCK(); return 0; } @@ -1032,6 +1073,7 @@ last_log = time_second; printf("ipfw: install_state: Too many dynamic rules\n"); } + IPFW_DYN_UNLOCK(); return 1; /* cannot install, notify caller */ } @@ -1077,6 +1119,7 @@ log(LOG_SECURITY | LOG_DEBUG, "drop session, too many entries\n"); } + IPFW_DYN_UNLOCK(); return 1; } } @@ -1085,9 +1128,11 @@ break; default: printf("ipfw: unknown dynamic rule type %u\n", cmd->o.opcode); + IPFW_DYN_UNLOCK(); return 1; } - lookup_dyn_rule(&args->f_id, NULL, NULL); /* XXX just set lifetime */ + lookup_dyn_rule_locked(&args->f_id, NULL, NULL); /* XXX just set lifetime */ + IPFW_DYN_UNLOCK(); return 0; } @@ -1349,6 +1394,7 @@ int pktlen; int dyn_dir = MATCH_UNKNOWN; ipfw_dyn_rule *q = NULL; + struct ip_fw_chain *chain = &layer3_chain; if (m->m_flags & M_SKIP_FIREWALL) return 0; /* accept */ @@ -1436,6 +1482,7 @@ args->f_id.dst_port = dst_port = ntohs(dst_port); after_ip_checks: + IPFW_LOCK(chain); /* XXX expensive? can we run lock free? */ if (args->rule) { /* * Packet has already been tagged. Look for the next rule @@ -1445,8 +1492,10 @@ * XXX should not happen here, but optimized out in * the caller. */ - if (fw_one_pass) + if (fw_one_pass) { + IPFW_UNLOCK(chain); /* XXX optimize */ return 0; + } f = args->rule->next_rule; if (f == NULL) @@ -1458,14 +1507,18 @@ */ int skipto = args->divert_rule; - f = layer3_chain; + f = chain->rules; if (args->eh == NULL && skipto != 0) { - if (skipto >= IPFW_DEFAULT_RULE) + if (skipto >= IPFW_DEFAULT_RULE) { + IPFW_UNLOCK(chain); return(IP_FW_PORT_DENY_FLAG); /* invalid */ + } while (f && f->rulenum <= skipto) f = f->next; - if (f == NULL) /* drop packet */ + if (f == NULL) { /* drop packet */ + IPFW_UNLOCK(chain); return(IP_FW_PORT_DENY_FLAG); + } } } args->divert_rule = 0; /* reset to avoid confusion later */ @@ -1549,6 +1602,7 @@ } else break; + /* XXX locking? */ pcb = (oif) ? in_pcblookup_hash(pi, dst_ip, htons(dst_port), @@ -1911,6 +1965,7 @@ f = q->rule; cmd = ACTION_PTR(f); l = f->cmd_len - f->act_ofs; + IPFW_DYN_UNLOCK(); goto check_body; } /* @@ -2006,6 +2061,7 @@ } /* end of outer for, scan rules */ printf("ipfw: ouch!, skip past end of rules, denying packet\n"); + IPFW_UNLOCK(chain); return(IP_FW_PORT_DENY_FLAG); done: @@ -2013,6 +2069,7 @@ f->pcnt++; f->bcnt += pktlen; f->timestamp = time_second; + IPFW_UNLOCK(chain); return retval; pullup_failed: @@ -2024,28 +2081,30 @@ /* * When a rule is added/deleted, clear the next_rule pointers in all rules. * These will be reconstructed on the fly as packets are matched. - * Must be called at splimp(). */ static void -flush_rule_ptrs(void) +flush_rule_ptrs(struct ip_fw_chain *chain) { struct ip_fw *rule; - for (rule = layer3_chain; rule; rule = rule->next) + IPFW_LOCK_ASSERT(chain, MA_OWNED); + + for (rule = chain->rules; rule; rule = rule->next) rule->next_rule = NULL; } /* * When pipes/queues are deleted, clear the "pipe_ptr" pointer to a given * pipe/queue, or to all of them (match == NULL). - * Must be called at splimp(). */ void flush_pipe_ptrs(struct dn_flow_set *match) { struct ip_fw *rule; - for (rule = layer3_chain; rule; rule = rule->next) { + IPFW_LOCK_ASSERT(&layer3_chain, MA_OWNED); + + for (rule = layer3_chain.rules; rule; rule = rule->next) { ipfw_insn_pipe *cmd = (ipfw_insn_pipe *)ACTION_PTR(rule); if (cmd->o.opcode != O_PIPE && cmd->o.opcode != O_QUEUE) @@ -2068,13 +2127,12 @@ * Update the rule_number in the input struct so the caller knows it as well. */ static int -add_rule(struct ip_fw **head, struct ip_fw *input_rule) +add_rule(struct ip_fw_chain *chain, struct ip_fw *input_rule) { struct ip_fw *rule, *f, *prev; - int s; int l = RULESIZE(input_rule); - if (*head == NULL && input_rule->rulenum != IPFW_DEFAULT_RULE) + if (chain->rules == NULL && input_rule->rulenum != IPFW_DEFAULT_RULE) return (EINVAL); rule = malloc(l, M_IPFW, M_NOWAIT | M_ZERO); @@ -2090,10 +2148,10 @@ rule->bcnt = 0; rule->timestamp = 0; - s = splimp(); + IPFW_LOCK(chain); - if (*head == NULL) { /* default rule */ - *head = rule; + if (chain->rules == NULL) { /* default rule */ + chain->rules = rule; goto done; } @@ -2109,7 +2167,7 @@ /* * locate the highest numbered rule before default */ - for (f = *head; f; f = f->next) { + for (f = chain->rules; f; f = f->next) { if (f->rulenum == IPFW_DEFAULT_RULE) break; rule->rulenum = f->rulenum; @@ -2122,23 +2180,23 @@ /* * Now insert the new rule in the right place in the sorted list. */ - for (prev = NULL, f = *head; f; prev = f, f = f->next) { + for (prev = NULL, f = chain->rules; f; prev = f, f = f->next) { if (f->rulenum > rule->rulenum) { /* found the location */ if (prev) { rule->next = f; prev->next = rule; } else { /* head insert */ - rule->next = *head; - *head = rule; + rule->next = chain->rules; + chain->rules = rule; } break; } } - flush_rule_ptrs(); + flush_rule_ptrs(chain); done: static_count++; static_len += l; - splx(s); + IPFW_UNLOCK(chain); DEB(printf("ipfw: installed rule %d, static count now %d\n", rule->rulenum, static_count);) return (0); @@ -2151,18 +2209,21 @@ * dangling pointers. * @return a pointer to the next entry. * Arguments are not checked, so they better be correct. - * Must be called at splimp(). */ static struct ip_fw * -delete_rule(struct ip_fw **head, struct ip_fw *prev, struct ip_fw *rule) +delete_rule(struct ip_fw_chain *chain, struct ip_fw *prev, struct ip_fw *rule) { struct ip_fw *n; int l = RULESIZE(rule); + IPFW_LOCK_ASSERT(chain, MA_OWNED); + n = rule->next; + IPFW_DYN_LOCK(); remove_dyn_rule(rule, NULL /* force removal */); + IPFW_DYN_UNLOCK(); if (prev == NULL) - *head = n; + chain->rules = n; else prev->next = n; static_count--; @@ -2177,15 +2238,16 @@ /* * Deletes all rules from a chain (except rules in set RESVD_SET * unless kill_default = 1). - * Must be called at splimp(). */ static void -free_chain(struct ip_fw **chain, int kill_default) +free_chain(struct ip_fw_chain *chain, int kill_default) { struct ip_fw *prev, *rule; - flush_rule_ptrs(); /* more efficient to do outside the loop */ - for (prev = NULL, rule = *chain; rule ; ) + IPFW_LOCK_ASSERT(chain, MA_OWNED); + + flush_rule_ptrs(chain); /* more efficient to do outside the loop */ + for (prev = NULL, rule = chain->rules; rule ; ) if (kill_default || rule->set != RESVD_SET) rule = delete_rule(chain, prev, rule); else { @@ -2208,10 +2270,9 @@ * 4 swap sets with given numbers */ static int -del_entry(struct ip_fw **chain, u_int32_t arg) +del_entry(struct ip_fw_chain *chain, u_int32_t arg) { - struct ip_fw *prev = NULL, *rule = *chain; - int s; + struct ip_fw *prev = NULL, *rule; u_int16_t rulenum; /* rule or old_set */ u_int8_t cmd, new_set; @@ -2231,6 +2292,8 @@ return EINVAL; } + IPFW_LOCK(chain); + rule = chain->rules; switch (cmd) { case 0: /* delete rules with given number */ /* @@ -2238,23 +2301,23 @@ */ for (; rule->rulenum < rulenum; prev = rule, rule = rule->next) ; - if (rule->rulenum != rulenum) + if (rule->rulenum != rulenum) { + IPFW_UNLOCK(chain); return EINVAL; + } - s = splimp(); /* no access to rules while removing */ /* * flush pointers outside the loop, then delete all matching * rules. prev remains the same throughout the cycle. */ - flush_rule_ptrs(); + flush_rule_ptrs(chain); while (rule->rulenum == rulenum) rule = delete_rule(chain, prev, rule); - splx(s); break; case 1: /* delete all rules with given set number */ - s = splimp(); - flush_rule_ptrs(); + flush_rule_ptrs(chain); + rule = chain->rules; while (rule->rulenum < IPFW_DEFAULT_RULE) if (rule->set == rulenum) rule = delete_rule(chain, prev, rule); @@ -2262,40 +2325,36 @@ prev = rule; rule = rule->next; } - splx(s); break; case 2: /* move rules with given number to new set */ - s = splimp(); + rule = chain->rules; for (; rule->rulenum < IPFW_DEFAULT_RULE; rule = rule->next) if (rule->rulenum == rulenum) rule->set = new_set; - splx(s); break; case 3: /* move rules with given set number to new set */ - s = splimp(); for (; rule->rulenum < IPFW_DEFAULT_RULE; rule = rule->next) if (rule->set == rulenum) rule->set = new_set; - splx(s); break; case 4: /* swap two sets */ - s = splimp(); for (; rule->rulenum < IPFW_DEFAULT_RULE; rule = rule->next) if (rule->set == rulenum) rule->set = new_set; else if (rule->set == new_set) rule->set = rulenum; - splx(s); break; } + IPFW_UNLOCK(chain); return 0; } /* * Clear counters for a specific rule. + * The enclosing "table" is assumed locked. */ static void clear_counters(struct ip_fw *rule, int log_only) @@ -2317,18 +2376,16 @@ * @arg log_only is 1 if we only want to reset logs, zero otherwise. */ static int -zero_entry(int rulenum, int log_only) +zero_entry(struct ip_fw_chain *chain, int rulenum, int log_only) { struct ip_fw *rule; - int s; char *msg; + IPFW_LOCK(chain); if (rulenum == 0) { - s = splimp(); norule_counter = 0; - for (rule = layer3_chain; rule; rule = rule->next) + for (rule = chain->rules; rule; rule = rule->next) clear_counters(rule, log_only); - splx(s); msg = log_only ? "ipfw: All logging counts reset.\n" : "ipfw: Accounting cleared.\n"; } else { @@ -2337,22 +2394,24 @@ * We can have multiple rules with the same number, so we * need to clear them all. */ - for (rule = layer3_chain; rule; rule = rule->next) + for (rule = chain->rules; rule; rule = rule->next) if (rule->rulenum == rulenum) { - s = splimp(); while (rule && rule->rulenum == rulenum) { clear_counters(rule, log_only); rule = rule->next; } - splx(s); cleared = 1; break; } - if (!cleared) /* we did not find any matching rules */ + if (!cleared) { /* we did not find any matching rules */ + IPFW_UNLOCK(chain); return (EINVAL); + } msg = log_only ? "ipfw: Entry %d logging count reset.\n" : "ipfw: Entry %d cleared.\n"; } + IPFW_UNLOCK(chain); + if (fw_verbose) log(LOG_SECURITY | LOG_NOTICE, msg, rulenum); return (0); @@ -2542,6 +2601,69 @@ return EINVAL; } +/* + * Copy the static and dynamic rules to the supplied buffer + * and return the amount of space actually used. + */ +static size_t +ipfw_getrules(struct ip_fw_chain *chain, void *buf, size_t space) +{ + char *bp = buf; + char *ep = bp + space; + struct ip_fw *rule; + int i; + + /* XXX this can take a long time and locking will block packet flow */ + IPFW_LOCK(chain); + for (rule = chain->rules; rule ; rule = rule->next) { + /* + * Verify the entry fits in the buffer in case the + * rules changed between calculating buffer space and + * now. This would be better done using a generation + * number but should suffice for now. + */ + i = RULESIZE(rule); + if (bp + i <= ep) { + bcopy(rule, bp, i); + bcopy(&set_disable, &(((struct ip_fw *)bp)->next_rule), + sizeof(set_disable)); + bp += i; + } + } + IPFW_UNLOCK(chain); + if (ipfw_dyn_v) { + ipfw_dyn_rule *p, *last = NULL; + + IPFW_DYN_LOCK(); + for (i = 0 ; i < curr_dyn_buckets; i++) + for (p = ipfw_dyn_v[i] ; p != NULL; p = p->next) { + if (bp + sizeof *p <= ep) { + ipfw_dyn_rule *dst = + (ipfw_dyn_rule *)bp; + bcopy(p, dst, sizeof *p); + bcopy(&(p->rule->rulenum), &(dst->rule), + sizeof(p->rule->rulenum)); + /* + * store a non-null value in "next". + * The userland code will interpret a + * NULL here as a marker + * for the last dynamic rule. + */ + bcopy(&dst, &dst->next, sizeof(dst)); + last = dst; + dst->expire = + TIME_LEQ(dst->expire, time_second) ? + 0 : dst->expire - time_second ; + bp += sizeof(ipfw_dyn_rule); + } + } + IPFW_DYN_UNLOCK(); + if (last != NULL) /* mark last dynamic rule */ + bzero(&last->next, sizeof(last)); + } + return (bp - (char *)buf); +} + /** * {set|get}sockopt parser. @@ -2549,12 +2671,12 @@ static int ipfw_ctl(struct sockopt *sopt) { - int error, s, rulenum; +#define RULE_MAXSIZE (256*sizeof(u_int32_t)) + int error, rule_num; size_t size; - struct ip_fw *bp , *buf, *rule; + struct ip_fw *buf, *rule; + u_int32_t rulenum[2]; - static u_int32_t rule_buf[255]; /* we copy the data here */ - /* * Disallow modifications in really-really secure mode, but still allow * the logging counters to be reset. @@ -2580,8 +2702,12 @@ * come first (the last of which has number IPFW_DEFAULT_RULE), * followed by a possibly empty list of dynamic rule. * The last dynamic rule has NULL in the "next" field. + * + * Note that the calculated size is used to bound the + * amount of data returned to the user. The rule set may + * change between calculating the size and returning the + * data in which case we'll just return what fits. */ - s = splimp(); size = static_len; /* size of static rules */ if (ipfw_dyn_v) /* add size of dyn.rules */ size += (dyn_count * sizeof(ipfw_dyn_rule)); @@ -2592,49 +2718,8 @@ * buffer, just jump to the sooptcopyout. */ buf = malloc(size, M_TEMP, M_WAITOK); - if (buf == 0) { - splx(s); - error = ENOBUFS; - break; - } - - bp = buf; - for (rule = layer3_chain; rule ; rule = rule->next) { - int i = RULESIZE(rule); - bcopy(rule, bp, i); - bcopy(&set_disable, &(bp->next_rule), - sizeof(set_disable)); - bp = (struct ip_fw *)((char *)bp + i); - } - if (ipfw_dyn_v) { - int i; - ipfw_dyn_rule *p, *dst, *last = NULL; - - dst = (ipfw_dyn_rule *)bp; - for (i = 0 ; i < curr_dyn_buckets ; i++ ) - for ( p = ipfw_dyn_v[i] ; p != NULL ; - p = p->next, dst++ ) { - bcopy(p, dst, sizeof *p); - bcopy(&(p->rule->rulenum), &(dst->rule), - sizeof(p->rule->rulenum)); - /* - * store a non-null value in "next". - * The userland code will interpret a - * NULL here as a marker - * for the last dynamic rule. - */ - bcopy(&dst, &dst->next, sizeof(dst)); - last = dst ; - dst->expire = - TIME_LEQ(dst->expire, time_second) ? - 0 : dst->expire - time_second ; - } - if (last != NULL) /* mark last dynamic rule */ - bzero(&last->next, sizeof(last)); - } - splx(s); - - error = sooptcopyout(sopt, buf, size); + error = sooptcopyout(sopt, buf, + ipfw_getrules(&layer3_chain, buf, size)); free(buf, M_TEMP); break; @@ -2652,23 +2737,24 @@ * the old list without the need for a lock. */ - s = splimp(); + IPFW_LOCK(&layer3_chain); free_chain(&layer3_chain, 0 /* keep default rule */); - splx(s); + IPFW_UNLOCK(&layer3_chain); break; case IP_FW_ADD: - rule = (struct ip_fw *)rule_buf; /* XXX do a malloc */ - error = sooptcopyin(sopt, rule, sizeof(rule_buf), + rule = malloc(RULE_MAXSIZE, M_TEMP, M_WAITOK); + error = sooptcopyin(sopt, rule, RULE_MAXSIZE, sizeof(struct ip_fw) ); - size = sopt->sopt_valsize; - if (error || (error = check_ipfw_struct(rule, size))) - break; - - error = add_rule(&layer3_chain, rule); - size = RULESIZE(rule); - if (!error && sopt->sopt_dir == SOPT_GET) - error = sooptcopyout(sopt, rule, size); + if (error == 0) + error = check_ipfw_struct(rule, sopt->sopt_valsize); + if (error == 0) { + error = add_rule(&layer3_chain, rule); + size = RULESIZE(rule); + if (!error && sopt->sopt_dir == SOPT_GET) + error = sooptcopyout(sopt, rule, size); + } + free(rule, M_TEMP); break; case IP_FW_DEL: @@ -2684,16 +2770,16 @@ * first u_int32_t contains sets to be disabled, * second u_int32_t contains sets to be enabled. */ - error = sooptcopyin(sopt, rule_buf, + error = sooptcopyin(sopt, rulenum, 2*sizeof(u_int32_t), sizeof(u_int32_t)); if (error) break; size = sopt->sopt_valsize; if (size == sizeof(u_int32_t)) /* delete or reassign */ - error = del_entry(&layer3_chain, rule_buf[0]); + error = del_entry(&layer3_chain, rulenum[0]); else if (size == 2*sizeof(u_int32_t)) /* set enable/disable */ set_disable = - (set_disable | rule_buf[0]) & ~rule_buf[1] & + (set_disable | rulenum[0]) & ~rulenum[1] & ~(1<sopt_val != 0) { - error = sooptcopyin(sopt, &rulenum, + error = sooptcopyin(sopt, &rule_num, sizeof(int), sizeof(int)); if (error) break; } - error = zero_entry(rulenum, sopt->sopt_name == IP_FW_RESETLOG); + error = zero_entry(&layer3_chain, rule_num, + sopt->sopt_name == IP_FW_RESETLOG); break; default: @@ -2718,6 +2804,7 @@ } return (error); +#undef RULE_MAXSIZE } /** @@ -2737,13 +2824,12 @@ ipfw_tick(void * __unused unused) { int i; - int s; ipfw_dyn_rule *q; if (dyn_keepalive == 0 || ipfw_dyn_v == NULL || dyn_count == 0) goto done; - s = splimp(); + IPFW_DYN_LOCK(); for (i = 0 ; i < curr_dyn_buckets ; i++) { for (q = ipfw_dyn_v[i] ; q ; q = q->next ) { if (q->dyn_type == O_LIMIT_PARENT) @@ -2762,19 +2848,21 @@ send_pkt(&(q->id), q->ack_fwd - 1, q->ack_rev, 0); } } - splx(s); + IPFW_DYN_UNLOCK(); done: - ipfw_timeout_h = timeout(ipfw_tick, NULL, dyn_keepalive_period*hz); + callout_reset(&ipfw_timeout, dyn_keepalive_period*hz, ipfw_tick, NULL); } -static void +static int ipfw_init(void) { struct ip_fw default_rule; + int error; - ip_fw_chk_ptr = ipfw_chk; - ip_fw_ctl_ptr = ipfw_ctl; - layer3_chain = NULL; + layer3_chain.rules = NULL; + mtx_init(&layer3_chain.mtx, "IPFW static rules", NULL, MTX_DEF); + mtx_init(&ipfw_dyn_mtx, "IPFW dynamic rules", NULL, MTX_DEF); + callout_init(&ipfw_timeout, CALLOUT_MPSAFE); bzero(&default_rule, sizeof default_rule); @@ -2790,9 +2878,16 @@ #endif O_DENY; - add_rule(&layer3_chain, &default_rule); + error = add_rule(&layer3_chain, &default_rule); + if (error != 0) { + printf("ipfw2: error %u initializing default rule " + "(support disabled)\n", error); + mtx_destroy(&ipfw_dyn_mtx); + mtx_destroy(&layer3_chain.mtx); + return (error); + } - ip_fw_default_rule = layer3_chain; + ip_fw_default_rule = layer3_chain.rules; printf("ipfw2 initialized, divert %s, " "rule-based forwarding enabled, default to %s, logging ", #ifdef IPDIVERT @@ -2815,26 +2910,26 @@ else printf("limited to %d packets/entry by default\n", verbose_limit); - bzero(&ipfw_timeout_h, sizeof(struct callout_handle)); - ipfw_timeout_h = timeout(ipfw_tick, NULL, hz); + + ip_fw_chk_ptr = ipfw_chk; + ip_fw_ctl_ptr = ipfw_ctl; + callout_reset(&ipfw_timeout, hz, ipfw_tick, NULL); + + return (0); } static int ipfw_modevent(module_t mod, int type, void *unused) { - int s; int err = 0; switch (type) { case MOD_LOAD: - s = splimp(); if (IPFW_LOADED) { - splx(s); printf("IP firewall already loaded\n"); err = EEXIST; } else { - ipfw_init(); - splx(s); + err = ipfw_init(); } break; @@ -2843,13 +2938,18 @@ printf("ipfw statically compiled, cannot unload\n"); err = EBUSY; #else - s = splimp(); - untimeout(ipfw_tick, NULL, ipfw_timeout_h); + IPFW_LOCK(&layer3_chain); + IPFW_DYN_LOCK(); + callout_stop(&ipfw_timeout); ip_fw_chk_ptr = NULL; ip_fw_ctl_ptr = NULL; free_chain(&layer3_chain, 1 /* kill default rule */); - splx(s); + IPFW_DYN_UNLOCK(); + IPFW_UNLOCK(&layer3_chain); + mtx_destroy(&ipfw_dyn_mtx); + mtx_destroy(&layer3_chain.mtx); printf("IP firewall unloaded\n"); + err = 0; #endif break; default: From owner-p4-projects@FreeBSD.ORG Tue Aug 5 16:27:41 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5E2FB37B405; Tue, 5 Aug 2003 16:27:41 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EE69F37B401 for ; Tue, 5 Aug 2003 16:27:40 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 76F4543FCB for ; Tue, 5 Aug 2003 16:27:40 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h75NRe0U074224 for ; Tue, 5 Aug 2003 16:27:40 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h75NReCR074221 for perforce@freebsd.org; Tue, 5 Aug 2003 16:27:40 -0700 (PDT) Date: Tue, 5 Aug 2003 16:27:40 -0700 (PDT) Message-Id: <200308052327.h75NReCR074221@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35575 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 23:27:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=35575 Change 35575 by sam@sam_ebb on 2003/08/05 16:27:04 add comment about this stuff needing locking Affected files ... .. //depot/projects/netperf/sys/netinet/ip_id.c#2 edit Differences ... ==== //depot/projects/netperf/sys/netinet/ip_id.c#2 (text+ko) ==== @@ -186,6 +186,7 @@ int i, n; struct timeval time; + /* XXX not reentrant */ getmicrotime(&time); if (ru_counter >= RU_MAX || time.tv_sec > ru_reseed) ip_initid(); From owner-p4-projects@FreeBSD.ORG Tue Aug 5 16:33:52 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1CEDC37B404; Tue, 5 Aug 2003 16:33:52 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A483437B405 for ; Tue, 5 Aug 2003 16:33:51 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6D2B143FB1 for ; Tue, 5 Aug 2003 16:33:50 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h75NXo0U074574 for ; Tue, 5 Aug 2003 16:33:50 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h75NXnGf074571 for perforce@freebsd.org; Tue, 5 Aug 2003 16:33:49 -0700 (PDT) Date: Tue, 5 Aug 2003 16:33:49 -0700 (PDT) Message-Id: <200308052333.h75NXnGf074571@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35578 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Aug 2003 23:33:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=35578 Change 35578 by sam@sam_ebb on 2003/08/05 16:33:45 Checkpoint routing table locking: each rtentry has a lock that is used to synchronize updates. This happens independently of locking the radix tree. Fallout is everywhere as rtalloc1 now must return a locked entry to insure consistency. This work is incomplete; there's still work to do in the multicast code and probable elsewhere. Also some areas such as ATM are hard for me to test (and grok in some cases). Also need to revisit some of the macros to decide, for example, if RTFREE and RTFREE_LOCKED should be reversed. Needs another pass over all code that touches rtentry's to make sure the locking is consistent. Mostly untested; checkpoint now before some of this stuff gets lost. Note these changes also introduce LOR's with ifnet locking (e.g. in the bridge code). To be resolved. Affected files ... .. //depot/projects/netperf/sys/net/if.c#2 edit .. //depot/projects/netperf/sys/net/if_disc.c#2 edit .. //depot/projects/netperf/sys/net/if_faith.c#2 edit .. //depot/projects/netperf/sys/net/if_loop.c#2 edit .. //depot/projects/netperf/sys/net/route.c#4 edit .. //depot/projects/netperf/sys/net/route.h#2 edit .. //depot/projects/netperf/sys/net/rtsock.c#2 edit .. //depot/projects/netperf/sys/netinet/if_atm.c#2 edit .. //depot/projects/netperf/sys/netinet/if_ether.c#2 edit .. //depot/projects/netperf/sys/netinet/in_pcb.c#3 edit .. //depot/projects/netperf/sys/netinet/in_rmx.c#2 edit .. //depot/projects/netperf/sys/netinet/ip_icmp.c#2 edit .. //depot/projects/netperf/sys/netinet6/icmp6.c#2 edit .. //depot/projects/netperf/sys/netinet6/in6.c#2 edit .. //depot/projects/netperf/sys/netinet6/in6_pcb.c#2 edit .. //depot/projects/netperf/sys/netinet6/in6_rmx.c#2 edit .. //depot/projects/netperf/sys/netinet6/ip6_output.c#2 edit .. //depot/projects/netperf/sys/netinet6/nd6.c#2 edit .. //depot/projects/netperf/sys/netinet6/nd6_rtr.c#2 edit Differences ... ==== //depot/projects/netperf/sys/net/if.c#2 (text+ko) ==== @@ -831,8 +831,7 @@ return (error); } -#define equal(a1, a2) \ - (bcmp((caddr_t)(a1), (caddr_t)(a2), ((struct sockaddr *)(a1))->sa_len) == 0) +#define equal(a1, a2) (bcmp((a1), (a2), ((a1))->sa_len) == 0) /* * Locate an interface based on a complete address. @@ -912,7 +911,7 @@ * so do that if we can. */ if (af == AF_LINK) { - register struct sockaddr_dl *sdl = (struct sockaddr_dl *)addr; + struct sockaddr_dl *sdl = (struct sockaddr_dl *)addr; if (sdl->sdl_index && sdl->sdl_index <= if_index) return (ifaddr_byindex(sdl->sdl_index)); } @@ -1049,18 +1048,21 @@ register struct rtentry *rt; struct rt_addrinfo *info; { - register struct ifaddr *ifa; + register struct ifaddr *ifa, *oifa; struct sockaddr *dst; struct ifnet *ifp; + RT_LOCK_ASSERT(rt, MA_OWNED); + if (cmd != RTM_ADD || ((ifa = rt->rt_ifa) == 0) || ((ifp = ifa->ifa_ifp) == 0) || ((dst = rt_key(rt)) == 0)) return; ifa = ifaof_ifpforaddr(dst, ifp); if (ifa) { - IFAFREE(rt->rt_ifa); IFAREF(ifa); /* XXX */ + oifa = rt->rt_ifa; rt->rt_ifa = ifa; + IFAFREE(oifa); if (ifa->ifa_rtrequest && ifa->ifa_rtrequest != link_rtrequest) ifa->ifa_rtrequest(cmd, rt, info); } ==== //depot/projects/netperf/sys/net/if_disc.c#2 (text+ko) ==== @@ -194,6 +194,8 @@ static void discrtrequest(int cmd, struct rtentry *rt, struct rt_addrinfo *info) { + RT_LOCK_ASSERT(rt, MA_OWNED); + if (rt) rt->rt_rmx.rmx_mtu = DSMTU; } ==== //depot/projects/netperf/sys/net/if_faith.c#2 (text+ko) ==== @@ -270,6 +270,8 @@ struct rtentry *rt; struct rt_addrinfo *info; { + RT_LOCK_ASSERT(rt, MA_OWNED); + if (rt) { rt->rt_rmx.rmx_mtu = rt->rt_ifp->if_mtu; /* for ISO */ /* @@ -371,7 +373,7 @@ else ret = 0; if (rt) - RTFREE(rt); + RTFREE_LOCKED(rt); return ret; } #endif ==== //depot/projects/netperf/sys/net/if_loop.c#2 (text+ko) ==== @@ -351,6 +351,8 @@ struct rtentry *rt; struct rt_addrinfo *info; { + RT_LOCK_ASSERT(rt, MA_OWNED); + if (rt) { rt->rt_rmx.rmx_mtu = rt->rt_ifp->if_mtu; /* for ISO */ /* ==== //depot/projects/netperf/sys/net/route.c#4 (text+ko) ==== @@ -95,35 +95,36 @@ rtalloc_ign(struct route *ro, u_long ignore) { struct rtentry *rt; - int s; if ((rt = ro->ro_rt) != NULL) { if (rt->rt_ifp != NULL && rt->rt_flags & RTF_UP) return; - /* XXX - We are probably always at splnet here already. */ - s = splnet(); RTFREE(rt); ro->ro_rt = NULL; - splx(s); } ro->ro_rt = rtalloc1(&ro->ro_dst, 1, ignore); + if (ro->ro_rt) + RT_UNLOCK(ro->ro_rt); } /* * Look up the route that matches the address given * Or, at least try.. Create a cloned route if needed. + * + * The returned route, if any, is locked. */ struct rtentry * rtalloc1(struct sockaddr *dst, int report, u_long ignflags) { - register struct radix_node_head *rnh = rt_tables[dst->sa_family]; - register struct rtentry *rt; - register struct radix_node *rn; - struct rtentry *newrt = 0; + struct radix_node_head *rnh = rt_tables[dst->sa_family]; + struct rtentry *rt; + struct radix_node *rn; + struct rtentry *newrt; struct rt_addrinfo info; u_long nflags; - int s = splnet(), err = 0, msgtype = RTM_MISS; + int err = 0, msgtype = RTM_MISS; + newrt = 0; /* * Look up the address in the table for that Address Family */ @@ -131,9 +132,10 @@ rtstat.rts_unreach++; goto miss2; } + bzero(&info, sizeof(info)); RADIX_NODE_HEAD_LOCK(rnh); - if ((rn = rnh->rnh_matchaddr((caddr_t)dst, rnh)) && - ((rn->rn_flags & RNF_ROOT) == 0)) { + if ((rn = rnh->rnh_matchaddr(dst, rnh)) && + (rn->rn_flags & RNF_ROOT) == 0) { /* * If we find it and it's not the root node, then * get a refernce on the rtentry associated. @@ -153,11 +155,14 @@ * If the cloning didn't succeed, maybe * what we have will do. Return that. */ - newrt = rt; - rt->rt_refcnt++; + newrt = rt; /* existing route */ + RT_LOCK(newrt); + newrt->rt_refcnt++; goto miss; } - if ((rt = newrt) && (rt->rt_flags & RTF_XRESOLVE)) { + KASSERT(newrt, ("no route and no error")); + RT_LOCK(newrt); + if (newrt->rt_flags & RTF_XRESOLVE) { /* * If the new route specifies it be * externally resolved, then go do that. @@ -166,18 +171,20 @@ goto miss; } /* Inform listeners of the new route. */ - bzero(&info, sizeof(info)); - info.rti_info[RTAX_DST] = rt_key(rt); - info.rti_info[RTAX_NETMASK] = rt_mask(rt); - info.rti_info[RTAX_GATEWAY] = rt->rt_gateway; - if (rt->rt_ifp != NULL) { + info.rti_info[RTAX_DST] = rt_key(newrt); + info.rti_info[RTAX_NETMASK] = rt_mask(newrt); + info.rti_info[RTAX_GATEWAY] = newrt->rt_gateway; + if (newrt->rt_ifp != NULL) { info.rti_info[RTAX_IFP] = - TAILQ_FIRST(&rt->rt_ifp->if_addrhead)->ifa_addr; - info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr; + TAILQ_FIRST(&newrt->rt_ifp->if_addrhead)->ifa_addr; + info.rti_info[RTAX_IFA] = newrt->rt_ifa->ifa_addr; } - rt_missmsg(RTM_ADD, &info, rt->rt_flags, 0); - } else - rt->rt_refcnt++; + rt_missmsg(RTM_ADD, &info, newrt->rt_flags, 0); + } else { + KASSERT(rt == newrt, ("locking wrong route")); + RT_LOCK(newrt); + newrt->rt_refcnt++; + } RADIX_NODE_HEAD_UNLOCK(rnh); } else { /* @@ -194,12 +201,12 @@ * Authorities. * For a delete, this is not an error. (report == 0) */ - bzero((caddr_t)&info, sizeof(info)); info.rti_info[RTAX_DST] = dst; rt_missmsg(msgtype, &info, 0, err); } } - splx(s); + if (newrt) + RT_LOCK_ASSERT(newrt, MA_OWNED); return (newrt); } @@ -218,21 +225,24 @@ if (rt == 0 || rnh == 0) panic("rtfree"); + RT_LOCK_ASSERT(rt, MA_OWNED); + /* * decrement the reference count by one and if it reaches 0, * and there is a close function defined, call the close function */ - rt->rt_refcnt--; - if (rnh->rnh_close && rt->rt_refcnt == 0) { + if (--rt->rt_refcnt > 0) + goto done; + /* XXX refcount==0? */ + if (rt->rt_refcnt == 0 && rnh->rnh_close) rnh->rnh_close((struct radix_node *)rt, rnh); - } /* * If we are no longer "up" (and ref == 0) * then we can free the resources associated * with the route. */ - if (rt->rt_refcnt <= 0 && (rt->rt_flags & RTF_UP) == 0) { + if ((rt->rt_flags & RTF_UP) == 0) { if (rt->rt_nodes->rn_flags & (RNF_ACTIVE | RNF_ROOT)) panic ("rtfree 2"); /* @@ -240,14 +250,12 @@ * so it is represented in rttrash.. remove that now. */ rttrash--; - #ifdef DIAGNOSTIC if (rt->rt_refcnt < 0) { printf("rtfree: %p not freed (neg refs)\n", rt); - return; + goto done; } #endif - /* * release references on items we hold them on.. * e.g other routes and ifaddrs. @@ -267,8 +275,12 @@ /* * and the rtentry itself of course */ + RT_LOCK_DESTROY(rt); Free(rt); + return; } +done: + RT_UNLOCK(rt); } /* compare two sockaddr structures */ @@ -279,17 +291,13 @@ * destination to go through the given gateway. * Normally called as a result of a routing redirect * message from the network layer. - * - * N.B.: must be called at splnet - * */ void rtredirect(struct sockaddr *dst, struct sockaddr *gateway, struct sockaddr *netmask, int flags, - struct sockaddr *src, - struct rtentry **rtp) + struct sockaddr *src) { struct rtentry *rt; int error = 0; @@ -302,7 +310,7 @@ error = ENETUNREACH; goto out; } - rt = rtalloc1(dst, 0, 0UL); + rt = rtalloc1(dst, 0, 0UL); /* NB: rt is locked */ /* * If the redirect isn't from our current router for this dst, * it's either old or wrong. If it redirects us to ourselves, @@ -322,7 +330,7 @@ * which use routing redirects generated by smart gateways * to dynamically build the routing tables. */ - if ((rt == 0) || (rt_mask(rt) && rt_mask(rt)->sa_len < 2)) + if (rt == 0 || (rt_mask(rt) && rt_mask(rt)->sa_len < 2)) goto create; /* * Don't listen to the redirect if it's @@ -346,8 +354,10 @@ info.rti_flags = flags; rt = NULL; error = rtrequest1(RTM_ADD, &info, &rt); - if (rt != NULL) + if (rt != NULL) { + RT_UNLOCK(rt); flags = rt->rt_flags; + } stat = &rtstat.rts_dynamic; } else { /* @@ -365,12 +375,8 @@ } else error = EHOSTUNREACH; done: - if (rt) { - if (rtp && !error) - *rtp = rt; - else - rtfree(rt); - } + if (rt) + rtfree(rt); out: if (error) rtstat.rts_badredirect++; @@ -402,6 +408,7 @@ ifa_ifwithroute(int flags, struct sockaddr *dst, struct sockaddr *gateway) { register struct ifaddr *ifa; + if ((flags & RTF_GATEWAY) == 0) { /* * If we are adding a route to an interface, @@ -431,6 +438,7 @@ if (rt == 0) return (0); --rt->rt_refcnt; + RT_UNLOCK(rt); if ((ifa = rt->rt_ifa) == 0) return (0); } @@ -523,7 +531,7 @@ int rtrequest1(int req, struct rt_addrinfo *info, struct rtentry **ret_nrt) { - int s = splnet(); int error = 0; + int error = 0; register struct rtentry *rt; register struct radix_node *rn; register struct radix_node_head *rnh; @@ -534,10 +542,9 @@ /* * Find the correct routing tree to use for this Address Family */ - if ((rnh = rt_tables[dst->sa_family]) == 0) { - splx(s); + rnh = rt_tables[dst->sa_family]; + if (rnh == 0) return (EAFNOSUPPORT); - } RADIX_NODE_HEAD_LOCK(rnh); /* * If we are adding a host route then we don't want to put @@ -553,11 +560,13 @@ * Remove the item from the tree and return it. * Complain if it is not there and do no more processing. */ - if ((rn = rnh->rnh_deladdr(dst, netmask, rnh)) == 0) + rn = rnh->rnh_deladdr(dst, netmask, rnh); + if (rn == 0) senderr(ESRCH); if (rn->rn_flags & (RNF_ACTIVE | RNF_ROOT)) panic ("rtrequest delete"); rt = (struct rtentry *)rn; + RT_LOCK(rt); rt->rt_refcnt++; rt->rt_flags &= ~RTF_UP; @@ -577,9 +586,9 @@ * we held its last reference. */ if (rt->rt_gwroute) { - rt = rt->rt_gwroute; - RTFREE(rt); - (rt = (struct rtentry *)rn)->rt_gwroute = 0; + struct rtentry *gwrt = rt->rt_gwroute; + RTFREE(gwrt); + rt->rt_gwroute = 0; } /* @@ -599,16 +608,18 @@ * but it's up to it to free the rtentry as we won't be * doing it. */ - if (ret_nrt) + if (ret_nrt) { *ret_nrt = rt; - else - RTFREE(rt); + RT_UNLOCK(rt); + } else + RTFREE_LOCKED(rt); break; case RTM_RESOLVE: if (ret_nrt == 0 || (rt = *ret_nrt) == 0) senderr(EINVAL); ifa = rt->rt_ifa; + /* XXX locking? */ flags = rt->rt_flags & ~(RTF_CLONING | RTF_PRCLONING | RTF_STATIC); flags |= RTF_WASCLONED; @@ -626,16 +637,18 @@ ifa = info->rti_ifa; makeroute: - R_Malloc(rt, struct rtentry *, sizeof(*rt)); + R_Zalloc(rt, struct rtentry *, sizeof(*rt)); if (rt == 0) senderr(ENOBUFS); - Bzero(rt, sizeof(*rt)); + RT_LOCK_INIT(rt); rt->rt_flags = RTF_UP | flags; /* * Add the gateway. Possibly re-malloc-ing the storage for it * also add the rt_gwroute if possible. */ + RT_LOCK(rt); if ((error = rt_setgate(rt, dst, gateway)) != 0) { + RT_LOCK_DESTROY(rt); Free(rt); senderr(error); } @@ -643,7 +656,7 @@ /* * point to the (possibly newly malloc'd) dest address. */ - ndst = rt_key(rt); + ndst = (struct sockaddr *)rt_key(rt); /* * make sure it contains the value we want (masked if needed). @@ -661,10 +674,9 @@ IFAREF(ifa); rt->rt_ifa = ifa; rt->rt_ifp = ifa->ifa_ifp; + /* XXX mtu manipulation will be done in rnh_addaddr -- itojun */ - - rn = rnh->rnh_addaddr((caddr_t)ndst, (caddr_t)netmask, - rnh, rt->rt_nodes); + rn = rnh->rnh_addaddr(ndst, netmask, rnh, rt->rt_nodes); if (rn == 0) { struct rtentry *rt2; /* @@ -677,16 +689,15 @@ rt2 = rtalloc1(dst, 0, RTF_PRCLONING); if (rt2 && rt2->rt_parent) { rtrequest(RTM_DELETE, - (struct sockaddr *)rt_key(rt2), + rt_key(rt2), rt2->rt_gateway, rt_mask(rt2), rt2->rt_flags, 0); - RTFREE(rt2); - rn = rnh->rnh_addaddr((caddr_t)ndst, - (caddr_t)netmask, + RTFREE_LOCKED(rt2); + rn = rnh->rnh_addaddr(ndst, netmask, rnh, rt->rt_nodes); } else if (rt2) { /* undo the extra ref we got */ - RTFREE(rt2); + RTFREE_LOCKED(rt2); } } @@ -697,10 +708,11 @@ if (rn == 0) { if (rt->rt_gwroute) rtfree(rt->rt_gwroute); - if (rt->rt_ifa) { + if (rt->rt_ifa) IFAFREE(rt->rt_ifa); - } Free(rt_key(rt)); + /* XXX still locked */ + RT_LOCK_DESTROY(rt); Free(rt); senderr(EEXIST); } @@ -713,10 +725,13 @@ * are a clone (and increment the parent's references) */ if (req == RTM_RESOLVE) { + KASSERT(ret_nrt && *ret_nrt, + ("no route to clone from")); rt->rt_rmx = (*ret_nrt)->rt_rmx; /* copy metrics */ rt->rt_rmx.rmx_pksent = 0; /* reset packet counter */ if ((*ret_nrt)->rt_flags & (RTF_CLONING | RTF_PRCLONING)) { - rt->rt_parent = (*ret_nrt); + rt->rt_parent = *ret_nrt; + /* XXX locking */ (*ret_nrt)->rt_refcnt++; } } @@ -750,21 +765,23 @@ *ret_nrt = rt; rt->rt_refcnt++; } + RT_UNLOCK(rt); break; default: error = EOPNOTSUPP; } bad: RADIX_NODE_HEAD_UNLOCK(rnh); - splx(s); return (error); +#undef senderr +} + #undef dst #undef gateway #undef netmask #undef ifaaddr #undef ifpaddr #undef flags -} /* * Called from rtrequest(RTM_DELETE, ...) to fix up the route's ``family'' @@ -841,8 +858,7 @@ * There probably is a function somewhere which does this... * if not, there should be. */ - len = imin(((struct sockaddr *)rt_key(rt0))->sa_len, - ((struct sockaddr *)rt_key(rt))->sa_len); + len = imin(rt_key(rt0)->sa_len, rt_key(rt)->sa_len); xk1 = (u_char *)rt_key(rt0); xm1 = (u_char *)rt_mask(rt0); @@ -850,8 +866,8 @@ /* avoid applying a less specific route */ xmp = (u_char *)rt_mask(rt->rt_parent); - mlen = ((struct sockaddr *)rt_key(rt->rt_parent))->sa_len; - if (mlen > ((struct sockaddr *)rt_key(rt0))->sa_len) { + mlen = rt_key(rt->rt_parent)->sa_len; + if (mlen > rt_key(rt0)->sa_len) { #ifdef DEBUG if (rtfcdebug) printf("rt_fixchange: inserting a less " @@ -893,29 +909,31 @@ #define ROUNDUP(a) (a>0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) int -rt_setgate(struct rtentry *rt0, struct sockaddr *dst, struct sockaddr *gate) +rt_setgate(struct rtentry *rt, struct sockaddr *dst, struct sockaddr *gate) { + /* XXX dst may be overwritten, can we move this to below */ + struct radix_node_head *rnh = rt_tables[dst->sa_family]; caddr_t new, old; int dlen = ROUNDUP(dst->sa_len), glen = ROUNDUP(gate->sa_len); - register struct rtentry *rt = rt0; - struct radix_node_head *rnh = rt_tables[dst->sa_family]; + + RT_LOCK_ASSERT(rt, MA_OWNED); /* * A host route with the destination equal to the gateway * will interfere with keeping LLINFO in the routing * table, so disallow it. */ - if (((rt0->rt_flags & (RTF_HOST|RTF_GATEWAY|RTF_LLINFO)) == + if (((rt->rt_flags & (RTF_HOST|RTF_GATEWAY|RTF_LLINFO)) == (RTF_HOST|RTF_GATEWAY)) && - (dst->sa_len == gate->sa_len) && - (bcmp(dst, gate, dst->sa_len) == 0)) { + dst->sa_len == gate->sa_len && + bcmp(dst, gate, dst->sa_len) == 0) { /* * The route might already exist if this is an RTM_CHANGE * or a routing redirect, so try to delete it. */ - if (rt_key(rt0)) - rtrequest(RTM_DELETE, (struct sockaddr *)rt_key(rt0), - rt0->rt_gateway, rt_mask(rt0), rt0->rt_flags, 0); + if (rt_key(rt)) + rtrequest(RTM_DELETE, rt_key(rt), + rt->rt_gateway, rt_mask(rt), rt->rt_flags, 0); return EADDRNOTAVAIL; } @@ -930,12 +948,12 @@ R_Malloc(new, caddr_t, dlen + glen); if (new == 0) return ENOBUFS; - rt->rt_nodes->rn_key = new; + rt_key(rt) = new; } else { /* * otherwise just overwrite the old one */ - new = rt->rt_nodes->rn_key; + new = (caddr_t)rt_key(rt); old = 0; } @@ -951,6 +969,7 @@ if (old) { Bcopy(dst, new, dlen); Free(old); + dst = gate = 0; /* XXX??? */ } /* @@ -974,10 +993,11 @@ if (rt->rt_flags & RTF_GATEWAY) { rt->rt_gwroute = rtalloc1(gate, 1, RTF_PRCLONING); if (rt->rt_gwroute == rt) { - RTFREE(rt->rt_gwroute); + RTFREE_LOCKED(rt->rt_gwroute); rt->rt_gwroute = 0; return EDQUOT; /* failure */ } + RT_UNLOCK(rt->rt_gwroute); } /* @@ -987,6 +1007,7 @@ */ if (!(rt->rt_flags & RTF_HOST) && rt_mask(rt) != 0) { struct rtfc_arg arg; + arg.rnh = rnh; arg.rt0 = rt; RADIX_NODE_HEAD_LOCK(rnh); @@ -1094,19 +1115,23 @@ /* * notify any listening routing agents of the change */ + RT_LOCK(rt); rt_newaddrmsg(cmd, ifa, error, rt); if (cmd == RTM_DELETE) { /* * If we are deleting, and we found an entry, then * it's been removed from the tree.. now throw it away. */ - RTFREE(rt); - } else if (cmd == RTM_ADD) { - /* - * We just wanted to add it.. we don't actually - * need a reference. - */ - rt->rt_refcnt--; + RTFREE_LOCKED(rt); + } else { + if (cmd == RTM_ADD) { + /* + * We just wanted to add it.. we don't actually + * need a reference. + */ + rt->rt_refcnt--; + } + RT_UNLOCK(rt); } } if (m) @@ -1114,52 +1139,78 @@ return (error); } +/* + * Validate the route rt0 to the specified destination. If the + * route is marked down try to find a new route. If the route + * to the gateway is gone, try to setup a new route. Otherwise, + * if the route is marked for packets to be rejected, enforce that. + * + * On return lrt contains the route to the destination and lrt0 + * contains the route to the next hop. Their values are meaningul + * ONLY if no error is returned. + * + * This routine is invoked on each layer 2 output path, prior to + * encapsulating outbound packets. + */ int rt_check(struct rtentry **lrt, struct rtentry **lrt0, struct sockaddr *dst) { +#define senderr(x) { error = x ; goto bad; } struct rtentry *rt; struct rtentry *rt0; int error; - rt = *lrt; rt0 = *lrt0; - error = 0; - rt = rt0; - - if (rt != NULL) { + if (rt) { + /* NB: the locking here is tortuous... */ + RT_LOCK(rt); if ((rt->rt_flags & RTF_UP) == 0) { - rt0 = rt = rtalloc1(dst, 1, 0UL); - if (rt0 != NULL) + RT_UNLOCK(rt); + rt = rtalloc1(dst, 1, 0UL); + if (rt != NULL) { rt->rt_refcnt--; - else + RT_UNLOCK(rt); + } else senderr(EHOSTUNREACH); + rt0 = rt; } + /* XXX BSD/OS checks dst->sa_family != AF_NS */ if (rt->rt_flags & RTF_GATEWAY) { - if (rt->rt_gwroute == NULL) + if (rt->rt_gwroute == 0) goto lookup; - rt = rt->rt_gwroute; + RT_LOCK(rt); /* NB: gwroute */ if ((rt->rt_flags & RTF_UP) == 0) { - rtfree(rt); + rtfree(rt); /* unlock gwroute */ rt = rt0; lookup: - rt->rt_gwroute = rtalloc1(rt->rt_gateway, 1, 0UL); - rt = rt->rt_gwroute; - if (rt == NULL) + RT_UNLOCK(rt0); + rt = rtalloc1(rt->rt_gateway, 1, 0UL); + RT_LOCK(rt0); + rt0->rt_gwroute = rt; + if (rt == 0) { + RT_UNLOCK(rt0); senderr(EHOSTUNREACH); + } } + RT_UNLOCK(rt0); } - if (rt->rt_flags & RTF_REJECT) - if (rt->rt_rmx.rmx_expire == 0 || - time_second < rt->rt_rmx.rmx_expire) - senderr(rt == rt0 ? EHOSTDOWN : EHOSTUNREACH); + /* XXX why are we inspecting rmx_expire? */ + error = (rt->rt_flags & RTF_REJECT) && + (rt->rt_rmx.rmx_expire == 0 || + time_second < rt->rt_rmx.rmx_expire); + RT_UNLOCK(rt); + if (error) + senderr(rt == rt0 ? EHOSTDOWN : EHOSTUNREACH); } - + *lrt = rt; /* NB: return unlocked */ + *lrt0 = rt0; + return (0); bad: - *lrt = rt; - *lrt0 = rt0; + /* NB: lrt and lrt0 should not be interpreted if error is non-zero */ return (error); +#undef senderr } /* This must be before ip6_init2(), which is now SI_ORDER_MIDDLE */ ==== //depot/projects/netperf/sys/net/route.h#2 (text+ko) ==== @@ -113,7 +113,7 @@ struct rtentry *); /* output routine for this (rt,if) */ struct rtentry *rt_parent; /* cloning parent of this route */ - struct mtx *rt_mtx; /* mutex for routing entry */ + struct mtx rt_mtx; /* mutex for routing entry */ }; /* @@ -263,18 +263,26 @@ #ifdef _KERNEL -#define RT_LOCK_INIT(rt) \ - mtx_init((rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK) -#define RT_LOCK(rt) mtx_lock((rt)->rt_mtx) -#define RT_UNLOCK(rt) mtx_unlock((rt)->rt_mtx) -#define RT_LOCK_DESTROY(rt) mtx_destroy((rt)->rt_mtx) +#define RT_LOCK_INIT(_rt) \ + mtx_init(&(_rt)->rt_mtx, "rtentry", NULL, MTX_DEF | MTX_DUPOK) +#define RT_LOCK(_rt) mtx_lock(&(_rt)->rt_mtx) +#define RT_UNLOCK(_rt) mtx_unlock(&(_rt)->rt_mtx) +#define RT_LOCK_DESTROY(_rt) mtx_destroy(&(_rt)->rt_mtx) +#define RT_LOCK_ASSERT(_rt, _what) mtx_assert(&(_rt)->rt_mtx, _what) -#define RTFREE(rt) \ - do { \ - if ((rt)->rt_refcnt <= 1) \ - rtfree(rt); \ - else \ - (rt)->rt_refcnt--; \ +#define RTFREE_LOCKED(_rt) do { \ + if ((_rt)->rt_refcnt <= 1) \ + rtfree(_rt); \ + else { \ + (_rt)->rt_refcnt--; \ + RT_UNLOCK(_rt); \ + } \ + /* guard against invalid refs */ \ + _rt = 0; \ + } while (0) +#define RTFREE(_rt) do { \ + RT_LOCK(_rt); \ + RTFREE_LOCKED(_rt); \ } while (0) extern struct route_cb route_cb; @@ -289,16 +297,16 @@ void rt_missmsg(int, struct rt_addrinfo *, int, int); void rt_newaddrmsg(int, struct ifaddr *, int, struct rtentry *); void rt_newmaddrmsg(int, struct ifmultiaddr *); +void rtalloc(struct route *); int rt_setgate(struct rtentry *, struct sockaddr *, struct sockaddr *); -void rtalloc(struct route *); void rtalloc_ign(struct route *, u_long); -struct rtentry * - rtalloc1(struct sockaddr *, int, u_long); +/* NB: the rtentry is returned locked */ +struct rtentry *rtalloc1(struct sockaddr *, int, u_long); void rtfree(struct rtentry *); int rtinit(struct ifaddr *, int, int); int rtioctl(u_long, caddr_t); void rtredirect(struct sockaddr *, struct sockaddr *, - struct sockaddr *, int, struct sockaddr *, struct rtentry **); + struct sockaddr *, int, struct sockaddr *); int rtrequest(int, struct sockaddr *, struct sockaddr *, struct sockaddr *, int, struct rtentry **); int rtrequest1(int, struct rt_addrinfo *, struct rtentry **); ==== //depot/projects/netperf/sys/net/rtsock.c#2 (text+ko) ==== @@ -337,6 +337,7 @@ senderr(EINVAL); error = rtrequest1(RTM_ADD, &info, &saved_nrt); if (error == 0 && saved_nrt) { + RT_LOCK(saved_nrt); rt_setmetrics(rtm->rtm_inits, &rtm->rtm_rmx, &saved_nrt->rt_rmx); saved_nrt->rt_rmx.rmx_locks &= ~(rtm->rtm_inits); @@ -344,12 +345,14 @@ (rtm->rtm_inits & rtm->rtm_rmx.rmx_locks); saved_nrt->rt_refcnt--; saved_nrt->rt_genmask = genmask; + RT_UNLOCK(saved_nrt); } break; case RTM_DELETE: error = rtrequest1(RTM_DELETE, &info, &saved_nrt); if (error == 0) { + RT_LOCK(saved_nrt); rt = saved_nrt; goto report; } @@ -358,15 +361,15 @@ case RTM_GET: case RTM_CHANGE: case RTM_LOCK: - if ((rnh = rt_tables[dst->sa_family]) == 0) { + if ((rnh = rt_tables[dst->sa_family]) == 0) senderr(EAFNOSUPPORT); - } RADIX_NODE_HEAD_LOCK(rnh); rt = (struct rtentry *) rnh->rnh_lookup(dst, netmask, rnh); RADIX_NODE_HEAD_UNLOCK(rnh); - if (rt != NULL) + if (rt != NULL) { /* XXX looks bogus */ + RT_LOCK(rt); rt->rt_refcnt++; - else + } else senderr(ESRCH); switch(rtm->rtm_type) { @@ -395,8 +398,10 @@ if (len > rtm->rtm_msglen) { struct rt_msghdr *new_rtm; R_Malloc(new_rtm, struct rt_msghdr *, len); - if (new_rtm == 0) + if (new_rtm == 0) { + RT_UNLOCK(rt); senderr(ENOBUFS); + } Bcopy(rtm, new_rtm, rtm->rtm_msglen); Free(rtm); rtm = new_rtm; } @@ -413,28 +418,33 @@ by ll sockaddr when protocol address is ambiguous */ /* compare two sockaddr structures */ #define sa_equal(a1, a2) (bcmp((a1), (a2), (a1)->sa_len) == 0) - if ((rt->rt_flags & RTF_GATEWAY && gate != NULL) || + if (((rt->rt_flags & RTF_GATEWAY) && gate != NULL) || ifpaddr != NULL || (ifaaddr != NULL && !sa_equal(ifaaddr, rt->rt_ifa->ifa_addr))) { - if ((error = rt_getifa(&info)) != 0) + if ((error = rt_getifa(&info)) != 0) { + RT_UNLOCK(rt); senderr(error); + } } if (gate != NULL && - (error = rt_setgate(rt, rt_key(rt), gate)) != 0) + (error = rt_setgate(rt, rt_key(rt), gate)) != 0) { + RT_UNLOCK(rt); senderr(error); + } if ((ifa = info.rti_ifa) != NULL) { - register struct ifaddr *oifa = rt->rt_ifa; + struct ifaddr *oifa = rt->rt_ifa; if (oifa != ifa) { - if (oifa) { - if (oifa->ifa_rtrequest) - oifa->ifa_rtrequest(RTM_DELETE, rt, - &info); - IFAFREE(oifa); - } - IFAREF(ifa); - rt->rt_ifa = ifa; - rt->rt_ifp = info.rti_ifp; + if (oifa) { + if (oifa->ifa_rtrequest) + oifa->ifa_rtrequest( + RTM_DELETE, rt, + &info); + IFAFREE(oifa); + } + IFAREF(ifa); + rt->rt_ifa = ifa; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 5 20:15:24 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 44B3A37B404; Tue, 5 Aug 2003 20:15:24 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ECBAD37B401 for ; Tue, 5 Aug 2003 20:15:23 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4F67C43FAF for ; Tue, 5 Aug 2003 20:15:22 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h763FM0U091244 for ; Tue, 5 Aug 2003 20:15:22 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h763FKfl091233 for perforce@freebsd.org; Tue, 5 Aug 2003 20:15:20 -0700 (PDT) Date: Tue, 5 Aug 2003 20:15:20 -0700 (PDT) Message-Id: <200308060315.h763FKfl091233@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 35584 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 03:15:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=35584 Change 35584 by marcel@marcel_nfs on 2003/08/05 20:14:38 IFC @35582 Affected files ... .. //depot/projects/ia64/bin/ps/ps.1#17 integrate .. //depot/projects/ia64/etc/mtree/BSD.local.dist#16 integrate .. //depot/projects/ia64/etc/mtree/BSD.usr.dist#24 integrate .. //depot/projects/ia64/etc/rc.d/Makefile#20 integrate .. //depot/projects/ia64/etc/rc.d/localdaemons#3 integrate .. //depot/projects/ia64/etc/rc.d/localpkg#1 branch .. //depot/projects/ia64/etc/rc.d/netoptions#3 integrate .. //depot/projects/ia64/games/fortune/datfiles/Makefile#5 integrate .. //depot/projects/ia64/gnu/usr.bin/groff/Makefile.inc#4 integrate .. //depot/projects/ia64/gnu/usr.bin/groff/tmac/mdoc.local#16 integrate .. //depot/projects/ia64/gnu/usr.bin/groff/tmac/ru.KOI8-R#2 integrate .. //depot/projects/ia64/lib/libc/i386/sys/i386_get_ldt.2#6 integrate .. //depot/projects/ia64/lib/libc/sys/kqueue.2#7 integrate .. //depot/projects/ia64/lib/libedit/makelist#3 integrate .. //depot/projects/ia64/lib/libpthread/arch/amd64/Makefile.inc#2 integrate .. //depot/projects/ia64/lib/libpthread/arch/amd64/amd64/pthread_md.c#1 branch .. //depot/projects/ia64/lib/libpthread/arch/amd64/include/ksd.h#3 delete .. //depot/projects/ia64/lib/libpthread/arch/amd64/include/pthread_md.h#3 integrate .. //depot/projects/ia64/lib/libpthread/arch/i386/Makefile.inc#3 integrate .. //depot/projects/ia64/lib/libpthread/arch/i386/i386/ksd.c#4 delete .. //depot/projects/ia64/lib/libpthread/arch/i386/i386/pthread_md.c#1 branch .. //depot/projects/ia64/lib/libpthread/arch/i386/i386/thr_getcontext.S#3 integrate .. //depot/projects/ia64/lib/libpthread/arch/i386/include/ksd.h#5 delete .. //depot/projects/ia64/lib/libpthread/arch/i386/include/pthread_md.h#5 integrate .. //depot/projects/ia64/lib/libpthread/arch/ia64/Makefile.inc#4 integrate .. //depot/projects/ia64/lib/libpthread/arch/ia64/ia64/context.S#2 integrate .. //depot/projects/ia64/lib/libpthread/arch/ia64/ia64/pthread_md.c#1 branch .. //depot/projects/ia64/lib/libpthread/arch/ia64/include/ksd.h#2 delete .. //depot/projects/ia64/lib/libpthread/arch/ia64/include/pthread_md.h#4 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_cancel.c#12 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_concurrency.c#6 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_create.c#13 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_init.c#14 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#27 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_private.h#19 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_sig.c#20 integrate .. //depot/projects/ia64/release/Makefile#65 integrate .. //depot/projects/ia64/release/Makefile.inc.docports#11 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/errata/article.sgml#23 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/hardware/alpha/proc-alpha.sgml#25 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#114 integrate .. //depot/projects/ia64/release/doc/ja_JP.eucJP/errata/article.sgml#15 integrate .. //depot/projects/ia64/sbin/camcontrol/Makefile#7 integrate .. //depot/projects/ia64/sbin/camcontrol/camcontrol.c#11 integrate .. //depot/projects/ia64/sbin/camcontrol/modeedit.c#7 integrate .. //depot/projects/ia64/sbin/camcontrol/util.c#4 integrate .. //depot/projects/ia64/sbin/mdmfs/mdmfs.8#10 integrate .. //depot/projects/ia64/sbin/mdmfs/mdmfs.c#9 integrate .. //depot/projects/ia64/sbin/newfs/mkfs.c#30 integrate .. //depot/projects/ia64/sbin/route/Makefile#4 integrate .. //depot/projects/ia64/share/colldef/Makefile#15 integrate .. //depot/projects/ia64/share/man/man4/firewire.4#8 integrate .. //depot/projects/ia64/share/man/man7/release.7#24 integrate .. //depot/projects/ia64/share/mklocale/Makefile#13 integrate .. //depot/projects/ia64/share/mklocale/am_ET.UTF-8.src#1 branch .. //depot/projects/ia64/share/monetdef/Makefile#12 integrate .. //depot/projects/ia64/share/monetdef/am_ET.UTF-8.src#1 branch .. //depot/projects/ia64/share/msgdef/Makefile#12 integrate .. //depot/projects/ia64/share/msgdef/am_ET.UTF-8.src#1 branch .. //depot/projects/ia64/share/numericdef/Makefile#12 integrate .. //depot/projects/ia64/share/numericdef/am_ET.UTF-8.src#1 branch .. //depot/projects/ia64/share/termcap/termcap.src#16 integrate .. //depot/projects/ia64/share/timedef/Makefile#12 integrate .. //depot/projects/ia64/share/timedef/am_ET.UTF-8.src#1 branch .. //depot/projects/ia64/sys/alpha/alpha/critical.c#3 integrate .. //depot/projects/ia64/sys/alpha/include/critical.h#2 integrate .. //depot/projects/ia64/sys/amd64/amd64/busdma_machdep.c#7 integrate .. //depot/projects/ia64/sys/amd64/amd64/critical.c#3 integrate .. //depot/projects/ia64/sys/amd64/include/critical.h#2 integrate .. //depot/projects/ia64/sys/boot/powerpc/loader/start.c#2 integrate .. //depot/projects/ia64/sys/compat/linprocfs/linprocfs.c#20 integrate .. //depot/projects/ia64/sys/dev/bge/if_bge.c#36 integrate .. //depot/projects/ia64/sys/dev/digi/digi.h#5 integrate .. //depot/projects/ia64/sys/dev/en/if_en_pci.c#3 integrate .. //depot/projects/ia64/sys/dev/en/midway.c#20 integrate .. //depot/projects/ia64/sys/dev/en/midwayvar.h#7 integrate .. //depot/projects/ia64/sys/dev/firewire/firewire.c#35 integrate .. //depot/projects/ia64/sys/dev/firewire/firewire.h#11 integrate .. //depot/projects/ia64/sys/dev/firewire/firewirereg.h#21 integrate .. //depot/projects/ia64/sys/dev/firewire/fwdev.c#19 integrate .. //depot/projects/ia64/sys/dev/firewire/fwohci.c#31 integrate .. //depot/projects/ia64/sys/dev/firewire/fwohci_pci.c#22 integrate .. //depot/projects/ia64/sys/dev/md/md.c#32 integrate .. //depot/projects/ia64/sys/dev/sound/pcm/feeder.c#12 integrate .. //depot/projects/ia64/sys/dev/sound/pcm/feeder.h#4 integrate .. //depot/projects/ia64/sys/dev/sym/sym_fw.h#3 integrate .. //depot/projects/ia64/sys/dev/twe/twe.c#6 integrate .. //depot/projects/ia64/sys/dev/twe/twe_compat.h#6 integrate .. //depot/projects/ia64/sys/dev/twe/twe_freebsd.c#17 integrate .. //depot/projects/ia64/sys/dev/twe/twe_tables.h#3 integrate .. //depot/projects/ia64/sys/dev/twe/tweio.h#2 integrate .. //depot/projects/ia64/sys/dev/twe/twereg.h#4 integrate .. //depot/projects/ia64/sys/dev/twe/twevar.h#4 integrate .. //depot/projects/ia64/sys/fs/specfs/spec_vnops.c#20 integrate .. //depot/projects/ia64/sys/i386/i386/busdma_machdep.c#25 integrate .. //depot/projects/ia64/sys/i386/i386/critical.c#8 integrate .. //depot/projects/ia64/sys/i386/i386/exception.s#10 integrate .. //depot/projects/ia64/sys/i386/i386/sys_machdep.c#21 integrate .. //depot/projects/ia64/sys/i386/include/critical.h#3 integrate .. //depot/projects/ia64/sys/i386/include/sysarch.h#5 integrate .. //depot/projects/ia64/sys/i386/isa/if_rdp.c#10 integrate .. //depot/projects/ia64/sys/i386/isa/spic.c#7 integrate .. //depot/projects/ia64/sys/i386/isa/wt.c#10 integrate .. //depot/projects/ia64/sys/ia64/ia64/critical.c#2 integrate .. //depot/projects/ia64/sys/ia64/ia64/exception.S#4 integrate .. //depot/projects/ia64/sys/ia64/ia64/machdep.c#86 integrate .. //depot/projects/ia64/sys/ia64/include/critical.h#2 integrate .. //depot/projects/ia64/sys/kern/kern_descrip.c#63 integrate .. //depot/projects/ia64/sys/kern/kern_fork.c#43 integrate .. //depot/projects/ia64/sys/kern/kern_proc.c#45 integrate .. //depot/projects/ia64/sys/kern/kern_thread.c#61 integrate .. //depot/projects/ia64/sys/kern/subr_trap.c#35 integrate .. //depot/projects/ia64/sys/kern/subr_witness.c#38 integrate .. //depot/projects/ia64/sys/kern/uipc_socket.c#34 integrate .. //depot/projects/ia64/sys/kern/uipc_syscalls.c#36 integrate .. //depot/projects/ia64/sys/kern/vfs_syscalls.c#51 integrate .. //depot/projects/ia64/sys/net/bpf.c#21 integrate .. //depot/projects/ia64/sys/net/bpfdesc.h#6 integrate .. //depot/projects/ia64/sys/net/if_atm.h#10 integrate .. //depot/projects/ia64/sys/netinet/if_atm.c#3 integrate .. //depot/projects/ia64/sys/netinet/ip_mroute.c#20 integrate .. //depot/projects/ia64/sys/netinet6/nd6.c#11 integrate .. //depot/projects/ia64/sys/netinet6/nd6.h#3 integrate .. //depot/projects/ia64/sys/netinet6/nd6_rtr.c#8 integrate .. //depot/projects/ia64/sys/pci/if_ti.c#25 integrate .. //depot/projects/ia64/sys/powerpc/include/critical.h#3 integrate .. //depot/projects/ia64/sys/powerpc/powerpc/critical.c#2 integrate .. //depot/projects/ia64/sys/sparc64/include/critical.h#2 integrate .. //depot/projects/ia64/sys/sparc64/sparc64/critical.c#3 integrate .. //depot/projects/ia64/sys/sys/buf.h#23 integrate .. //depot/projects/ia64/sys/sys/kse.h#14 integrate .. //depot/projects/ia64/sys/sys/param.h#39 integrate .. //depot/projects/ia64/sys/sys/proc.h#72 integrate .. //depot/projects/ia64/sys/sys/socketvar.h#30 integrate .. //depot/projects/ia64/sys/vm/default_pager.c#6 integrate .. //depot/projects/ia64/sys/vm/device_pager.c#14 integrate .. //depot/projects/ia64/sys/vm/phys_pager.c#10 integrate .. //depot/projects/ia64/sys/vm/swap_pager.c#37 integrate .. //depot/projects/ia64/sys/vm/vm_pager.c#15 integrate .. //depot/projects/ia64/sys/vm/vm_pager.h#9 integrate .. //depot/projects/ia64/sys/vm/vnode_pager.c#35 integrate .. //depot/projects/ia64/tools/tools/README#11 integrate .. //depot/projects/ia64/tools/tools/hcomp/Makefile#1 branch .. //depot/projects/ia64/tools/tools/hcomp/hcomp.pl#1 branch .. //depot/projects/ia64/tools/tools/tinderbox/www/index.cgi#6 integrate .. //depot/projects/ia64/usr.bin/netstat/mroute.c#3 integrate .. //depot/projects/ia64/usr.bin/quota/quota.c#7 integrate .. //depot/projects/ia64/usr.bin/tr/extern.h#5 integrate .. //depot/projects/ia64/usr.bin/tr/str.c#7 integrate .. //depot/projects/ia64/usr.bin/tr/tr.1#7 integrate .. //depot/projects/ia64/usr.bin/truss/syscalls.c#10 integrate .. //depot/projects/ia64/usr.sbin/amd/include/newvers.sh#2 integrate .. //depot/projects/ia64/usr.sbin/fwcontrol/fwcontrol.8#8 integrate .. //depot/projects/ia64/usr.sbin/fwcontrol/fwcontrol.c#11 integrate .. //depot/projects/ia64/usr.sbin/mergemaster/mergemaster.sh#15 integrate .. //depot/projects/ia64/usr.sbin/named/Makefile.maninc#3 integrate .. //depot/projects/ia64/usr.sbin/ndp/ndp.8#4 integrate .. //depot/projects/ia64/usr.sbin/ndp/ndp.c#3 integrate Differences ... ==== //depot/projects/ia64/bin/ps/ps.1#17 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 -.\" $FreeBSD: src/bin/ps/ps.1,v 1.63 2003/06/12 16:53:55 scottl Exp $ +.\" $FreeBSD: src/bin/ps/ps.1,v 1.64 2003/08/05 10:31:28 brueffer Exp $ .\" .Dd April 18, 1994 .Dt PS 1 @@ -262,9 +262,9 @@ displayed using the ``%a6.15p'' format. Otherwise, the start time is displayed using the ``%e%b%y'' format. .It state -The state is given by a sequence of letters, for example, +The state is given by a sequence of characters, for example, .Dq Tn RWNA . -The first letter indicates the run state of the process: +The first character indicates the run state of the process: .Pp .Bl -tag -width indent -compact .It D ==== //depot/projects/ia64/etc/mtree/BSD.local.dist#16 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.99 2003/07/29 08:02:26 ache Exp $ +# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.100 2003/08/05 05:42:07 mtm Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -277,6 +277,8 @@ .. af_ZA.ISO8859-15 .. + am_ET.UTF-8 + .. bg_BG.CP1251 .. ca_ES.ISO8859-1 ==== //depot/projects/ia64/etc/mtree/BSD.usr.dist#24 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.277 2003/07/29 08:02:26 ache Exp $ +# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.278 2003/08/05 05:42:07 mtm Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -337,6 +337,8 @@ .. af_ZA.ISO8859-15 .. + am_ET.UTF-8 + .. bg_BG.CP1251 .. ca_ES.ISO8859-1 @@ -667,6 +669,8 @@ .. af_ZA.ISO8859-15 .. + am_ET.UTF-8 + .. bg_BG.CP1251 .. ca_ES.ISO8859-1 ==== //depot/projects/ia64/etc/rc.d/Makefile#20 (text+ko) ==== @@ -1,5 +1,5 @@ # $NetBSD: Makefile,v 1.16 2001/01/14 15:37:22 minoura Exp $ -# $FreeBSD: src/etc/rc.d/Makefile,v 1.23 2003/07/30 20:05:20 mtm Exp $ +# $FreeBSD: src/etc/rc.d/Makefile,v 1.24 2003/08/06 00:35:13 mtm Exp $ .include @@ -19,7 +19,7 @@ ipnat ipsec ipxrouted isdnd \ jail \ kadmind kerberos keyserv kldxref kpasswdd \ - ldconfig local localdaemons lomac lpd \ + ldconfig local localdaemons localpkg lomac lpd \ motd mountcritlocal mountcritremote \ mountd moused mroute6d mrouted msgs \ named netif netoptions \ ==== //depot/projects/ia64/etc/rc.d/localdaemons#3 (text+ko) ==== @@ -1,12 +1,12 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/localdaemons,v 1.2 2003/05/05 15:38:41 mtm Exp $ +# $FreeBSD: src/etc/rc.d/localdaemons,v 1.3 2003/08/06 00:35:13 mtm Exp $ # # PROVIDE: localdaemons # REQUIRE: abi # BEFORE: securelevel -# KEYWORD: FreeBSD shutdown +# KEYWORD: FreeBSD nostart . /etc/rc.subr ==== //depot/projects/ia64/etc/rc.d/netoptions#3 (text+ko) ==== @@ -1,10 +1,10 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/netoptions,v 1.138 2003/06/29 05:09:48 mtm Exp $ +# $FreeBSD: src/etc/rc.d/netoptions,v 1.139 2003/08/06 00:35:13 mtm Exp $ # # PROVIDE: netoptions -# REQUIRE: localdaemons +# REQUIRE: localpkg # BEFORE: securelevel # KEYWORD: FreeBSD ==== //depot/projects/ia64/games/fortune/datfiles/Makefile#5 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 4/19/94 -# $FreeBSD: src/games/fortune/datfiles/Makefile,v 1.30 2003/06/19 07:02:00 murray Exp $ +# $FreeBSD: src/games/fortune/datfiles/Makefile,v 1.32 2003/08/04 21:31:53 ache Exp $ FILES= fortunes fortunes2 freebsd-tips murphy startrek zippy BLDS= fortunes.dat fortunes2.dat murphy.dat startrek.dat zippy.dat \ @@ -37,6 +37,6 @@ strfile -Csx ${.ALLSRC} ${.TARGET} fortunes-o: fortunes-o.${TYPE} - tr a-zA-Z n-za-mN-ZA-M < ${.ALLSRC} > ${.TARGET} + LC_ALL=C tr a-zA-Z n-za-mN-ZA-M < ${.ALLSRC} > ${.TARGET} .include ==== //depot/projects/ia64/gnu/usr.bin/groff/Makefile.inc#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/groff/Makefile.inc,v 2.7 2003/05/01 13:22:18 ru Exp $ +# $FreeBSD: src/gnu/usr.bin/groff/Makefile.inc,v 2.9 2003/08/04 21:31:52 ache Exp $ BINDIR?= /usr/bin SHELL= /bin/sh @@ -125,7 +125,7 @@ -e "s;@VERSION@;$(version)$(revision);g" \ -e "s;@MDATE@;`$(SHELL) ${GROFF_DIST}/mdate.sh $<`;g" \ -e "s;@g@;$(g);g" \ - -e "s;@G@;`echo $(g) | tr [a-z] [A-Z]`;g" \ + -e "s;@G@;`echo $(g) | LC_ALL=C tr a-z A-Z`;g" \ $< >$@ .SUFFIXES: .sh .pl ==== //depot/projects/ia64/gnu/usr.bin/groff/tmac/mdoc.local#16 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.27 2003/06/09 10:40:17 ru Exp $ +.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/mdoc.local,v 1.28 2003/08/05 10:29:50 ru Exp $ .\" .\" %beginstrip% . @@ -49,6 +49,7 @@ .ds doc-str-Lb-librpcsvc RPC Service Library (librpcsvc, \-lrpcsvc) .ds doc-str-Lb-libugidfw File System Firewall Interface Library (libugidfw, \-lugidfw) .ds doc-str-Lb-libusbhid USB HID access routines library (libusbhid, \-lusbhid) +.ds doc-str-Lb-libufs UFS File System Access Library (libufs, \-lufs) .ds doc-str-Lb-libvgl Video Graphics Library (libvgl, \-lvgl) . .\" Default .Os value ==== //depot/projects/ia64/gnu/usr.bin/groff/tmac/ru.KOI8-R#2 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/ru.KOI8-R,v 1.9 2002/10/09 08:51:52 ru Exp $ +.\" $FreeBSD: src/gnu/usr.bin/groff/tmac/ru.KOI8-R,v 1.10 2003/08/05 10:29:50 ru Exp $ .\" .\" %beginstrip% . @@ -96,6 +96,7 @@ .ds doc-str-Lb-librpcsvc âÉÂÌÉÏÔÅËÁ ÓÌÕÖ RPC (librpcsvc, \-lrpcsvc) .ds doc-str-Lb-libskey S/Key Password Control Table Access Library (libskey, \-lskey) .ds doc-str-Lb-libtermcap âÉÂÌÉÏÔÅËÁ ÄÏÓÔÕÐÁ Ë termcap (libtermcap, \-ltermcap) +.ds doc-str-Lb-libufs âÉÂÌÉÏÔÅËÁ ÄÏÓÔÕÐÁ Ë ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ UFS (libufs, \-lufs) .ds doc-str-Lb-libusbhid âÉÂÌÉÏÔÅËÁ ÆÕÎËÃÉÊ ÄÏÓÔÕÐÁ Ë USB HID (libusbhid, \-lusbhid) .ds doc-str-Lb-libutil âÉÂÌÉÏÔÅËÁ ÓÉÓÔÅÍÎÙÈ ÕÔÉÌÉÔ (libutil, \-lutil) .ds doc-str-Lb-libvgl âÉÂÌÉÏÔÅËÁ ×ÉÄÅÏ-ÇÒÁÆÉËÉ (libvgl, \-lvgl) ==== //depot/projects/ia64/lib/libc/i386/sys/i386_get_ldt.2#6 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" from: @(#)fork.2 6.5 (Berkeley) 3/10/91 -.\" $FreeBSD: src/lib/libc/i386/sys/i386_get_ldt.2,v 1.18 2003/07/31 02:13:48 davidxu Exp $ +.\" $FreeBSD: src/lib/libc/i386/sys/i386_get_ldt.2,v 1.19 2003/08/04 19:11:56 julian Exp $ .\" .Dd September 20, 1993 .Dt I386_GET_LDT 2 @@ -76,7 +76,8 @@ .Pp If .Fa start_sel -is 0, +is +.Em LDT_AUTO_ALLOC , .Fa num_sels is 1 and the descriptor pointed to by .Fa descs ==== //depot/projects/ia64/lib/libc/sys/kqueue.2#7 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/sys/kqueue.2,v 1.32 2002/12/19 09:40:25 ru Exp $ +.\" $FreeBSD: src/lib/libc/sys/kqueue.2,v 1.33 2003/08/05 07:12:49 jmg Exp $ .\" .Dd April 14, 2000 .Dt KQUEUE 2 @@ -265,6 +265,13 @@ This may be cleared by passing in EV_CLEAR, at which point the filter will resume waiting for data to become available before returning. +.It "BPF devices" +Returns when the BPF buffer is full, the BPF timeout has expired, or +when the BPF has +.Dq immediate mode +enabled and there is any data to read; +.Va data +contains the number of bytes available. .El .It EVFILT_WRITE Takes a descriptor as the identifier, and returns whenever @@ -274,7 +281,7 @@ will contain the amount of space remaining in the write buffer. The filter will set EV_EOF when the reader disconnects, and for the fifo case, this may be cleared by use of EV_CLEAR. -Note that this filter is not supported for vnodes. +Note that this filter is not supported for vnodes or BPF devices. .Pp For sockets, the low water mark and socket error handling is identical to the EVFILT_READ case. ==== //depot/projects/ia64/lib/libedit/makelist#3 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh - # $NetBSD: makelist,v 1.6 2000/09/04 23:45:18 lukem Exp $ -# $FreeBSD: src/lib/libedit/makelist,v 1.5 2002/04/22 13:44:24 des Exp $ +# $FreeBSD: src/lib/libedit/makelist,v 1.8 2003/08/04 21:31:51 ache Exp $ # # Copyright (c) 1992, 1993 # The Regents of the University of California. All rights reserved. @@ -146,7 +146,7 @@ # -fh) cat $FILES | $AWK '/el_action_t/ { print $3 }' | \ - sort | tr '[a-z]' '[A-Z]' | $AWK ' + sort | LC_ALL=C tr 'a-z' 'A-Z' | $AWK ' BEGIN { printf("/* Automatically generated file, do not edit */\n"); printf("#ifndef _h_fcns_c\n#define _h_fcns_c\n"); ==== //depot/projects/ia64/lib/libpthread/arch/amd64/Makefile.inc#2 (text+ko) ==== @@ -1,5 +1,5 @@ -# $FreeBSD: src/lib/libpthread/arch/amd64/Makefile.inc,v 1.1 2003/07/19 04:44:21 deischen Exp $ +# $FreeBSD: src/lib/libpthread/arch/amd64/Makefile.inc,v 1.2 2003/08/05 22:45:59 deischen Exp $ .PATH: ${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH} -SRCS+= context.S enter_uts.S +SRCS+= context.S enter_uts.S pthread_md.c ==== //depot/projects/ia64/lib/libpthread/arch/amd64/include/pthread_md.h#3 (text+ko) ==== @@ -1,29 +1,30 @@ -/* - * Copyright (c) 2003 Marcel Moolenaar +/*- + * Copyright (C) 2003 David Xu + * Copyright (c) 2001 Daniel Eischen * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. + * 2. Neither the name of the author nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/arch/amd64/include/pthread_md.h,v 1.2 2003/07/20 12:41:38 deischen Exp $ + * $FreeBSD: src/lib/libpthread/arch/amd64/include/pthread_md.h,v 1.3 2003/08/05 22:45:59 deischen Exp $ */ /* * Machine-dependent thread prototypes/definitions for the thread kernel. @@ -31,52 +32,224 @@ #ifndef _PTHREAD_MD_H_ #define _PTHREAD_MD_H_ +#include +#include +#include #include +/* should define this, but doesn't. */ +extern int sysarch(int, void *); + #define THR_GETCONTEXT(ucp) \ (void)_amd64_save_context(&(ucp)->uc_mcontext) #define THR_SETCONTEXT(ucp) \ - (void)_amd64_restore_context(&(ucp)->uc_mcontext, NULL, NULL) + (void)_amd64_restore_context(&(ucp)->uc_mcontext, 0, NULL) + + +#define PER_KSE +#undef PER_THREAD -#define THR_ALIGNBYTES 15 -#define THR_ALIGN(td) (((uintptr_t)(td) + THR_ALIGNBYTES) & ~THR_ALIGNBYTES) +struct kse; +struct pthread; +struct tdv; /* - * KSE Specific Data. + * %fs points to a struct kcb. */ -struct ksd { - void *base; - long size; +struct kcb { + struct tcb *kcb_curtcb; + struct kcb *kcb_self; /* self reference */ + struct kse *kcb_kse; + struct kse_mailbox kcb_kmbx; +}; + +struct tcb { + struct tdv *tcb_tdv; + struct pthread *tcb_thread; + void *tcb_spare[2]; /* align tcb_tmbx to 16 bytes */ + struct kse_thr_mailbox tcb_tmbx; }; +/* + * Evaluates to the byte offset of the per-kse variable name. + */ +#define __kcb_offset(name) __offsetof(struct kcb, name) + +/* + * Evaluates to the type of the per-kse variable name. + */ +#define __kcb_type(name) __typeof(((struct kcb *)0)->name) + +/* + * Evaluates to the value of the per-kse variable name. + */ +#define KCB_GET64(name) ({ \ + __kcb_type(name) __result; \ + \ + u_long __i; \ + __asm __volatile("movq %%fs:%1, %0" \ + : "=r" (__i) \ + : "m" (*(u_long *)(__kcb_offset(name)))); \ + __result = *(__kcb_type(name) *)&__i; \ + \ + __result; \ +}) + +/* + * Sets the value of the per-kse variable name to value val. + */ +#define KCB_SET64(name, val) ({ \ + __kcb_type(name) __val = (val); \ + \ + u_long __i; \ + __i = *(u_long *)&__val; \ + __asm __volatile("movq %1,%%fs:%0" \ + : "=m" (*(u_long *)(__kcb_offset(name))) \ + : "r" (__i)); \ +}) + +static __inline u_long +__kcb_readandclear64(volatile u_long *addr) +{ + u_long result; + + __asm __volatile ( + " xorq %0, %0;" + " xchgq %%fs:%1, %0;" + "# __kcb_readandclear64" + : "=&r" (result) + : "m" (*addr)); + return (result); +} + +#define KCB_READANDCLEAR64(name) ({ \ + __kcb_type(name) __result; \ + \ + __result = (__kcb_type(name)) \ + __kcb_readandclear64((u_long *)__kcb_offset(name)); \ + __result; \ +}) + + +#define _kcb_curkcb() KCB_GET64(kcb_self) +#define _kcb_curtcb() KCB_GET64(kcb_curtcb) +#define _kcb_curkse() ((struct kse *)KCB_GET64(kcb_kmbx.km_udata)) +#define _kcb_get_tmbx() KCB_GET64(kcb_kmbx.km_curthread) +#define _kcb_set_tmbx(value) KCB_SET64(kcb_kmbx.km_curthread, (void *)value) +#define _kcb_readandclear_tmbx() KCB_READANDCLEAR64(kcb_kmbx.km_curthread) + +/* + * The constructors. + */ +struct tcb *_tcb_ctor(struct pthread *); +void _tcb_dtor(struct tcb *tcb); +struct kcb *_kcb_ctor(struct kse *); +void _kcb_dtor(struct kcb *); + +/* Called from the KSE to set its private data. */ +static __inline void +_kcb_set(struct kcb *kcb) +{ + void *addr = kcb; + + sysarch(AMD64_SET_FSBASE, &addr); +} + +/* Get the current kcb. */ +static __inline struct kcb * +_kcb_get(void) +{ + return (_kcb_curkcb()); +} + +static __inline struct kse_thr_mailbox * +_kcb_critical_enter(void) +{ + struct kse_thr_mailbox *crit; + + crit = _kcb_readandclear_tmbx(); + return (crit); +} + +static __inline void +_kcb_critical_leave(struct kse_thr_mailbox *crit) +{ + _kcb_set_tmbx(crit); +} + +static __inline int +_kcb_in_critical(void) +{ + return (_kcb_get_tmbx() == NULL); +} + +static __inline void +_tcb_set(struct kcb *kcb, struct tcb *tcb) +{ + kcb->kcb_curtcb = tcb; +} + +static __inline struct tcb * +_tcb_get(void) +{ + return (_kcb_curtcb()); +} + +static __inline struct pthread * +_get_curthread(void) +{ + struct tcb *tcb; + + tcb = _kcb_curtcb(); + if (tcb != NULL) + return (tcb->tcb_thread); + else + return (NULL); +} + +static __inline struct kse * +_get_curkse(void) +{ + return ((struct kse *)_kcb_curkse()); +} + void _amd64_enter_uts(struct kse_mailbox *km, kse_func_t uts, void *stack, size_t stacksz); int _amd64_restore_context(mcontext_t *mc, intptr_t val, intptr_t *loc); int _amd64_save_context(mcontext_t *mc); static __inline int -_thread_enter_uts(struct kse_thr_mailbox *tm, struct kse_mailbox *km) +_thread_enter_uts(struct tcb *tcb, struct kcb *kcb) { - if (tm == NULL) - return (-1); - if (!_amd64_save_context(&tm->tm_context.uc_mcontext)) { - _amd64_enter_uts(km, km->km_func, km->km_stack.ss_sp, - km->km_stack.ss_size); + int ret; + + ret = _amd64_save_context(&tcb->tcb_tmbx.tm_context.uc_mcontext); + if (ret == 0) { + _amd64_enter_uts(&kcb->kcb_kmbx, kcb->kcb_kmbx.km_func, + kcb->kcb_kmbx.km_stack.ss_sp, + kcb->kcb_kmbx.km_stack.ss_size); /* We should not reach here. */ return (-1); } + else if (ret < 0) + return (-1); return (0); } static __inline int -_thread_switch(struct kse_thr_mailbox *tm, struct kse_thr_mailbox **thrp) +_thread_switch(struct kcb *kcb, struct tcb *tcb, int setmbox) { - if (tm == NULL) + if ((kcb == NULL) || (tcb == NULL)) return (-1); - _amd64_restore_context(&tm->tm_context.uc_mcontext, (intptr_t)tm, - (intptr_t*)thrp); + kcb->kcb_curtcb = tcb; + if (setmbox != 0) + _amd64_restore_context(&tcb->tcb_tmbx.tm_context.uc_mcontext, + (intptr_t)&tcb->tcb_tmbx, + (intptr_t *)&kcb->kcb_kmbx.km_curthread); + else + _amd64_restore_context(&tcb->tcb_tmbx.tm_context.uc_mcontext, + 0, NULL); /* We should not reach here. */ return (-1); } - #endif ==== //depot/projects/ia64/lib/libpthread/arch/i386/Makefile.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ -# $FreeBSD: src/lib/libpthread/arch/i386/Makefile.inc,v 1.2 2003/07/31 21:09:10 deischen Exp $ +# $FreeBSD: src/lib/libpthread/arch/i386/Makefile.inc,v 1.3 2003/08/05 22:45:59 deischen Exp $ .PATH: ${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH} -SRCS+= ksd.c thr_enter_uts.S thr_getcontext.S +SRCS+= thr_enter_uts.S thr_getcontext.S pthread_md.c ==== //depot/projects/ia64/lib/libpthread/arch/i386/i386/thr_getcontext.S#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libpthread/arch/i386/i386/thr_getcontext.S,v 1.3 2003/07/31 21:09:10 deischen Exp $"); +__FBSDID("$FreeBSD: src/lib/libpthread/arch/i386/i386/thr_getcontext.S,v 1.4 2003/08/05 22:45:59 deischen Exp $"); /* * Where do we define these? @@ -74,7 +74,7 @@ movl 72(%edx), %esp /* switch to context defined stack */ pushl 60(%edx) /* push return address on stack */ pushl 44(%edx) /* push ecx on stack */ - push 48(%edx) /* push eax on stack */ + pushl 48(%edx) /* push eax on stack */ /* * if (mc_fpowned == MC_OWNEDFP_FPU || mc_fpowned == MC_OWNEDFP_PCB) { * if (mc_fpformat == MC_FPFMT_387) ==== //depot/projects/ia64/lib/libpthread/arch/i386/include/pthread_md.h#5 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/arch/i386/include/pthread_md.h,v 1.5 2003/07/31 21:09:11 deischen Exp $ + * $FreeBSD: src/lib/libpthread/arch/i386/include/pthread_md.h,v 1.6 2003/08/05 22:45:59 deischen Exp $ */ /* * Machine-dependent thread prototypes/definitions for the thread kernel. @@ -37,34 +37,193 @@ extern int _thr_setcontext(mcontext_t *, intptr_t, intptr_t *); extern int _thr_getcontext(mcontext_t *); -#define THR_GETCONTEXT(ucp) _thr_getcontext(&(ucp)->uc_mcontext); -#define THR_SETCONTEXT(ucp) _thr_setcontext(&(ucp)->uc_mcontext, NULL, NULL); +#define THR_GETCONTEXT(ucp) _thr_getcontext(&(ucp)->uc_mcontext) +#define THR_SETCONTEXT(ucp) _thr_setcontext(&(ucp)->uc_mcontext, 0, NULL) + +#define PER_KSE +#undef PER_THREAD -#define THR_ALIGNBYTES 15 -#define THR_ALIGN(td) (((unsigned)(td) + THR_ALIGNBYTES) & ~THR_ALIGNBYTES) +struct kse; +struct pthread; +struct tdv; /* - * KSE Specific Data. + * %gs points to a struct kcb. */ -struct ksd { - int ldt; -#define KSDF_INITIALIZED 0x01 - long flags; - void *base; - long size; +struct kcb { + struct tcb *kcb_curtcb; + struct kcb *kcb_self; /* self reference */ + int kcb_ldt; + struct kse *kcb_kse; + struct kse_mailbox kcb_kmbx; +}; + +struct tcb { + struct tdv *tcb_tdv; + struct pthread *tcb_thread; + void *tcb_addr; /* allocated tcb address */ + void *tcb_spare; /* align tcb_tmbx to 16 bytes */ + struct kse_thr_mailbox tcb_tmbx; }; -extern void _i386_enter_uts(struct kse_mailbox *, kse_func_t, void *, long); +/* + * Evaluates to the byte offset of the per-kse variable name. + */ +#define __kcb_offset(name) __offsetof(struct kcb, name) + +/* + * Evaluates to the type of the per-kse variable name. + */ +#define __kcb_type(name) __typeof(((struct kcb *)0)->name) + +/* + * Evaluates to the value of the per-kse variable name. + */ +#define KCB_GET32(name) ({ \ + __kcb_type(name) __result; \ + \ + u_int __i; \ + __asm __volatile("movl %%gs:%1, %0" \ + : "=r" (__i) \ + : "m" (*(u_int *)(__kcb_offset(name)))); \ + __result = *(__kcb_type(name) *)&__i; \ + \ + __result; \ +}) + +/* + * Sets the value of the per-kse variable name to value val. + */ +#define KCB_SET32(name, val) ({ \ + __kcb_type(name) __val = (val); \ + \ + u_int __i; \ + __i = *(u_int *)&__val; \ + __asm __volatile("movl %1,%%gs:%0" \ + : "=m" (*(u_int *)(__kcb_offset(name))) \ + : "r" (__i)); \ +}) + +static __inline u_long +__kcb_readandclear32(volatile u_long *addr) +{ + u_long result; + + __asm __volatile ( + " xorl %0, %0;" + " xchgl %%gs:%1, %0;" + "# __kcb_readandclear32" + : "=&r" (result) + : "m" (*addr)); + return (result); +} + +#define KCB_READANDCLEAR32(name) ({ \ + __kcb_type(name) __result; \ + \ + __result = (__kcb_type(name)) \ + __kcb_readandclear32((u_long *)__kcb_offset(name)); \ + __result; \ +}) + + +#define _kcb_curkcb() KCB_GET32(kcb_self) +#define _kcb_curtcb() KCB_GET32(kcb_curtcb) +#define _kcb_curkse() ((struct kse *)KCB_GET32(kcb_kmbx.km_udata)) +#define _kcb_get_tmbx() KCB_GET32(kcb_kmbx.km_curthread) +#define _kcb_set_tmbx(value) KCB_SET32(kcb_kmbx.km_curthread, (void *)value) +#define _kcb_readandclear_tmbx() KCB_READANDCLEAR32(kcb_kmbx.km_curthread) + + +/* + * The constructors. + */ +struct tcb *_tcb_ctor(struct pthread *); +void _tcb_dtor(struct tcb *tcb); +struct kcb *_kcb_ctor(struct kse *); +void _kcb_dtor(struct kcb *); + +/* Called from the KSE to set its private data. */ +static __inline void +_kcb_set(struct kcb *kcb) +{ + int val; + + val = (kcb->kcb_ldt << 3) | 7; + __asm __volatile("movl %0, %%gs" : : "r" (val)); +} + +/* Get the current kcb. */ +static __inline struct kcb * +_kcb_get(void) +{ + return (_kcb_curkcb()); +} + +static __inline struct kse_thr_mailbox * +_kcb_critical_enter(void) +{ + struct kse_thr_mailbox *crit; + + crit = _kcb_readandclear_tmbx(); + return (crit); +} + +static __inline void +_kcb_critical_leave(struct kse_thr_mailbox *crit) +{ + _kcb_set_tmbx(crit); +} + +static __inline int +_kcb_in_critical(void) +{ + return (_kcb_get_tmbx() == NULL); +} + +static __inline void +_tcb_set(struct kcb *kcb, struct tcb *tcb) +{ + kcb->kcb_curtcb = tcb; +} + +static __inline struct tcb * +_tcb_get(void) +{ + return (_kcb_curtcb()); +} + +static __inline struct pthread * +_get_curthread(void) +{ + struct tcb *tcb; + + tcb = _kcb_curtcb(); + if (tcb != NULL) + return (tcb->tcb_thread); + else + return (NULL); +} + +static __inline struct kse * +_get_curkse(void) +{ + return ((struct kse *)_kcb_curkse()); +} + +void _i386_enter_uts(struct kse_mailbox *km, kse_func_t uts, void *stack, + size_t stacksz); static __inline int -_thread_enter_uts(struct kse_thr_mailbox *tmbx, struct kse_mailbox *kmbx) +_thread_enter_uts(struct tcb *tcb, struct kcb *kcb) { int ret; - ret = _thr_getcontext(&tmbx->tm_context.uc_mcontext); + ret = _thr_getcontext(&tcb->tcb_tmbx.tm_context.uc_mcontext); if (ret == 0) { - _i386_enter_uts(kmbx, kmbx->km_func, - kmbx->km_stack.ss_sp, kmbx->km_stack.ss_size); + _i386_enter_uts(&kcb->kcb_kmbx, kcb->kcb_kmbx.km_func, + kcb->kcb_kmbx.km_stack.ss_sp, + kcb->kcb_kmbx.km_stack.ss_size); /* We should not reach here. */ return (-1); } >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 6 09:36:21 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CDB0637B404; Wed, 6 Aug 2003 09:36:20 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6AC5A37B401 for ; Wed, 6 Aug 2003 09:36:20 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3AE1B43F85 for ; Wed, 6 Aug 2003 09:36:19 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h76GaJ0U058315 for ; Wed, 6 Aug 2003 09:36:19 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h76GaFpQ058312 for perforce@freebsd.org; Wed, 6 Aug 2003 09:36:15 -0700 (PDT) Date: Wed, 6 Aug 2003 09:36:15 -0700 (PDT) Message-Id: <200308061636.h76GaFpQ058312@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35631 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 16:36:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=35631 Change 35631 by sam@sam_ebb on 2003/08/06 09:35:16 IFC Affected files ... .. //depot/projects/netperf/sys/alpha/alpha/critical.c#2 integrate .. //depot/projects/netperf/sys/alpha/alpha/machdep.c#4 integrate .. //depot/projects/netperf/sys/alpha/alpha/mp_machdep.c#3 integrate .. //depot/projects/netperf/sys/alpha/alpha/pmap.c#3 integrate .. //depot/projects/netperf/sys/alpha/alpha/vm_machdep.c#3 integrate .. //depot/projects/netperf/sys/alpha/include/critical.h#2 integrate .. //depot/projects/netperf/sys/alpha/include/endian.h#2 integrate .. //depot/projects/netperf/sys/alpha/include/param.h#2 integrate .. //depot/projects/netperf/sys/amd64/amd64/amd64_mem.c#1 branch .. //depot/projects/netperf/sys/amd64/amd64/busdma_machdep.c#3 integrate .. //depot/projects/netperf/sys/amd64/amd64/critical.c#3 integrate .. //depot/projects/netperf/sys/amd64/amd64/machdep.c#3 integrate .. //depot/projects/netperf/sys/amd64/amd64/pmap.c#3 integrate .. //depot/projects/netperf/sys/amd64/include/critical.h#2 integrate .. //depot/projects/netperf/sys/amd64/include/ieeefp.h#2 integrate .. //depot/projects/netperf/sys/amd64/include/param.h#2 integrate .. //depot/projects/netperf/sys/arm/include/endian.h#2 integrate .. //depot/projects/netperf/sys/boot/efi/libefi/efiboot.h#2 integrate .. //depot/projects/netperf/sys/boot/efi/libefi/efifs.c#2 integrate .. //depot/projects/netperf/sys/boot/efi/loader/main.c#2 integrate .. //depot/projects/netperf/sys/boot/powerpc/loader/start.c#2 integrate .. //depot/projects/netperf/sys/cam/scsi/scsi_da.c#4 integrate .. //depot/projects/netperf/sys/compat/linprocfs/linprocfs.c#2 integrate .. //depot/projects/netperf/sys/conf/NOTES#3 integrate .. //depot/projects/netperf/sys/conf/files.alpha#2 integrate .. //depot/projects/netperf/sys/conf/files.amd64#2 integrate .. //depot/projects/netperf/sys/conf/files.i386#2 integrate .. //depot/projects/netperf/sys/conf/files.ia64#2 integrate .. //depot/projects/netperf/sys/conf/files.pc98#2 integrate .. //depot/projects/netperf/sys/conf/kern.pre.mk#3 integrate .. //depot/projects/netperf/sys/conf/options#3 integrate .. //depot/projects/netperf/sys/contrib/dev/ath/README#2 integrate .. //depot/projects/netperf/sys/contrib/dev/ath/ah.h#3 integrate .. //depot/projects/netperf/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 integrate .. //depot/projects/netperf/sys/contrib/dev/ath/freebsd/ah_osdep.h#2 integrate .. //depot/projects/netperf/sys/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#3 integrate .. //depot/projects/netperf/sys/contrib/dev/ath/version.h#3 integrate .. //depot/projects/netperf/sys/contrib/dev/oltr/if_oltr.c#2 integrate .. //depot/projects/netperf/sys/ddb/db_command.c#2 integrate .. //depot/projects/netperf/sys/ddb/db_output.c#2 integrate .. //depot/projects/netperf/sys/ddb/db_ps.c#2 integrate .. //depot/projects/netperf/sys/ddb/ddb.h#2 integrate .. //depot/projects/netperf/sys/dev/ahb/ahb.c#2 integrate .. //depot/projects/netperf/sys/dev/amd/amd.c#2 integrate .. //depot/projects/netperf/sys/dev/ath/if_ath.c#3 integrate .. //depot/projects/netperf/sys/dev/bge/if_bge.c#3 integrate .. //depot/projects/netperf/sys/dev/digi/digi.h#2 integrate .. //depot/projects/netperf/sys/dev/em/if_em.c#3 integrate .. //depot/projects/netperf/sys/dev/em/if_em.h#3 integrate .. //depot/projects/netperf/sys/dev/em/if_em_osdep.h#2 integrate .. //depot/projects/netperf/sys/dev/en/if_en_pci.c#2 integrate .. //depot/projects/netperf/sys/dev/en/midway.c#2 integrate .. //depot/projects/netperf/sys/dev/en/midwayvar.h#2 integrate .. //depot/projects/netperf/sys/dev/fatm/if_fatm.c#3 integrate .. //depot/projects/netperf/sys/dev/firewire/firewire.c#2 integrate .. //depot/projects/netperf/sys/dev/firewire/firewire.h#2 integrate .. //depot/projects/netperf/sys/dev/firewire/firewirereg.h#2 integrate .. //depot/projects/netperf/sys/dev/firewire/fwdev.c#2 integrate .. //depot/projects/netperf/sys/dev/firewire/fwohci.c#2 integrate .. //depot/projects/netperf/sys/dev/firewire/fwohci_pci.c#2 integrate .. //depot/projects/netperf/sys/dev/firewire/if_fwe.c#2 integrate .. //depot/projects/netperf/sys/dev/firewire/sbp.c#3 integrate .. //depot/projects/netperf/sys/dev/fxp/if_fxp.c#4 integrate .. //depot/projects/netperf/sys/dev/hatm/if_hatm_ioctl.c#3 integrate .. //depot/projects/netperf/sys/dev/hatm/if_hatm_rx.c#2 integrate .. //depot/projects/netperf/sys/dev/hatm/if_hatm_tx.c#3 integrate .. //depot/projects/netperf/sys/dev/hatm/if_hatmvar.h#3 integrate .. //depot/projects/netperf/sys/dev/hfa/fore_aali.h#2 integrate .. //depot/projects/netperf/sys/dev/hfa/fore_command.c#2 integrate .. //depot/projects/netperf/sys/dev/hfa/fore_init.c#2 integrate .. //depot/projects/netperf/sys/dev/hfa/fore_intr.c#2 integrate .. //depot/projects/netperf/sys/dev/hfa/fore_output.c#2 integrate .. //depot/projects/netperf/sys/dev/hfa/fore_var.h#2 integrate .. //depot/projects/netperf/sys/dev/hfa/fore_vcm.c#2 integrate .. //depot/projects/netperf/sys/dev/hfa/hfa_freebsd.c#2 integrate .. //depot/projects/netperf/sys/dev/hfa/hfa_freebsd.h#2 integrate .. //depot/projects/netperf/sys/dev/md/md.c#3 integrate .. //depot/projects/netperf/sys/dev/patm/if_patm_ioctl.c#3 integrate .. //depot/projects/netperf/sys/dev/patm/if_patm_rx.c#3 integrate .. //depot/projects/netperf/sys/dev/patm/if_patm_tx.c#3 integrate .. //depot/projects/netperf/sys/dev/patm/if_patmvar.h#2 integrate .. //depot/projects/netperf/sys/dev/pci/pci.c#2 integrate .. //depot/projects/netperf/sys/dev/pci/pcireg.h#2 integrate .. //depot/projects/netperf/sys/dev/pdq/if_fea.c#2 integrate .. //depot/projects/netperf/sys/dev/ppc/ppc.c#2 integrate .. //depot/projects/netperf/sys/dev/ppc/ppc_puc.c#1 branch .. //depot/projects/netperf/sys/dev/ppc/ppcvar.h#1 branch .. //depot/projects/netperf/sys/dev/puc/puc.c#2 integrate .. //depot/projects/netperf/sys/dev/puc/pucdata.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/feeder.c#2 integrate .. //depot/projects/netperf/sys/dev/sound/pcm/feeder.h#2 integrate .. //depot/projects/netperf/sys/dev/sym/sym_fw.h#2 integrate .. //depot/projects/netperf/sys/dev/twe/twe.c#2 integrate .. //depot/projects/netperf/sys/dev/twe/twe_compat.h#2 integrate .. //depot/projects/netperf/sys/dev/twe/twe_freebsd.c#2 integrate .. //depot/projects/netperf/sys/dev/twe/twe_tables.h#2 integrate .. //depot/projects/netperf/sys/dev/twe/tweio.h#2 integrate .. //depot/projects/netperf/sys/dev/twe/twereg.h#2 integrate .. //depot/projects/netperf/sys/dev/twe/twevar.h#2 integrate .. //depot/projects/netperf/sys/fs/specfs/spec_vnops.c#2 integrate .. //depot/projects/netperf/sys/geom/geom_dev.c#2 integrate .. //depot/projects/netperf/sys/i386/i386/busdma_machdep.c#3 integrate .. //depot/projects/netperf/sys/i386/i386/critical.c#2 integrate .. //depot/projects/netperf/sys/i386/i386/exception.s#2 integrate .. //depot/projects/netperf/sys/i386/i386/identcpu.c#2 integrate .. //depot/projects/netperf/sys/i386/i386/machdep.c#2 integrate .. //depot/projects/netperf/sys/i386/i386/pmap.c#3 integrate .. //depot/projects/netperf/sys/i386/i386/sys_machdep.c#2 integrate .. //depot/projects/netperf/sys/i386/i386/tsc.c#2 integrate .. //depot/projects/netperf/sys/i386/include/clock.h#2 integrate .. //depot/projects/netperf/sys/i386/include/critical.h#2 integrate .. //depot/projects/netperf/sys/i386/include/endian.h#2 integrate .. //depot/projects/netperf/sys/i386/include/sysarch.h#2 integrate .. //depot/projects/netperf/sys/i386/isa/clock.c#2 integrate .. //depot/projects/netperf/sys/i386/isa/cxreg.h#2 integrate .. //depot/projects/netperf/sys/i386/isa/if_rdp.c#2 integrate .. //depot/projects/netperf/sys/i386/isa/spic.c#2 integrate .. //depot/projects/netperf/sys/i386/isa/wt.c#2 integrate .. //depot/projects/netperf/sys/i386/pci/pci_bus.c#2 edit .. //depot/projects/netperf/sys/i386/pci/pci_cfgreg.c#2 integrate .. //depot/projects/netperf/sys/ia64/ia64/clock.c#2 integrate .. //depot/projects/netperf/sys/ia64/ia64/critical.c#2 integrate .. //depot/projects/netperf/sys/ia64/ia64/exception.S#2 integrate .. //depot/projects/netperf/sys/ia64/ia64/genassym.c#2 integrate .. //depot/projects/netperf/sys/ia64/ia64/interrupt.c#2 integrate .. //depot/projects/netperf/sys/ia64/ia64/machdep.c#3 integrate .. //depot/projects/netperf/sys/ia64/ia64/mp_machdep.c#2 integrate .. //depot/projects/netperf/sys/ia64/ia64/pmap.c#3 integrate .. //depot/projects/netperf/sys/ia64/ia64/timerreg.h#2 delete .. //depot/projects/netperf/sys/ia64/ia64/vm_machdep.c#2 integrate .. //depot/projects/netperf/sys/ia64/include/clock.h#2 integrate .. //depot/projects/netperf/sys/ia64/include/cpu.h#3 integrate .. //depot/projects/netperf/sys/ia64/include/critical.h#2 integrate .. //depot/projects/netperf/sys/ia64/include/endian.h#2 integrate .. //depot/projects/netperf/sys/ia64/include/param.h#2 integrate .. //depot/projects/netperf/sys/ia64/include/pcpu.h#2 integrate .. //depot/projects/netperf/sys/ia64/include/ucontext.h#2 integrate .. //depot/projects/netperf/sys/isa/ppc.c#2 delete .. //depot/projects/netperf/sys/isa/ppcreg.h#2 delete .. //depot/projects/netperf/sys/kern/kern_acl.c#2 integrate .. //depot/projects/netperf/sys/kern/kern_descrip.c#4 integrate .. //depot/projects/netperf/sys/kern/kern_fork.c#2 integrate .. //depot/projects/netperf/sys/kern/kern_ktr.c#2 integrate .. //depot/projects/netperf/sys/kern/kern_mac.c#2 integrate .. //depot/projects/netperf/sys/kern/kern_mutex.c#2 integrate .. //depot/projects/netperf/sys/kern/kern_physio.c#2 integrate .. //depot/projects/netperf/sys/kern/kern_proc.c#2 integrate .. //depot/projects/netperf/sys/kern/kern_sig.c#3 integrate .. //depot/projects/netperf/sys/kern/kern_thread.c#2 integrate .. //depot/projects/netperf/sys/kern/subr_trap.c#2 integrate .. //depot/projects/netperf/sys/kern/subr_witness.c#2 integrate .. //depot/projects/netperf/sys/kern/sys_generic.c#2 integrate .. //depot/projects/netperf/sys/kern/sys_pipe.c#2 integrate .. //depot/projects/netperf/sys/kern/sys_process.c#2 integrate .. //depot/projects/netperf/sys/kern/uipc_socket.c#2 integrate .. //depot/projects/netperf/sys/kern/uipc_syscalls.c#3 integrate .. //depot/projects/netperf/sys/kern/vfs_bio.c#2 integrate .. //depot/projects/netperf/sys/kern/vfs_syscalls.c#4 integrate .. //depot/projects/netperf/sys/modules/en/Makefile#2 integrate .. //depot/projects/netperf/sys/modules/ep/Makefile#2 integrate .. //depot/projects/netperf/sys/net/bpf.c#2 integrate .. //depot/projects/netperf/sys/net/bpfdesc.h#2 integrate .. //depot/projects/netperf/sys/net/if_atm.h#3 integrate .. //depot/projects/netperf/sys/netinet/if_atm.c#3 integrate .. //depot/projects/netperf/sys/netinet/ip_dummynet.c#3 integrate .. //depot/projects/netperf/sys/netinet/ip_mroute.c#2 integrate .. //depot/projects/netperf/sys/netinet6/nd6.c#3 integrate .. //depot/projects/netperf/sys/netinet6/nd6.h#2 integrate .. //depot/projects/netperf/sys/netinet6/nd6_rtr.c#3 integrate .. //depot/projects/netperf/sys/netnatm/natm.c#2 integrate .. //depot/projects/netperf/sys/netnatm/natm.h#2 integrate .. //depot/projects/netperf/sys/netnatm/natm_pcb.c#2 integrate .. //depot/projects/netperf/sys/netnatm/natm_proto.c#2 integrate .. //depot/projects/netperf/sys/pc98/i386/machdep.c#2 integrate .. //depot/projects/netperf/sys/pc98/pc98/ppc.c#2 integrate .. //depot/projects/netperf/sys/pc98/pc98/sio.c#2 integrate .. //depot/projects/netperf/sys/pccard/pcic_pci.c#2 integrate .. //depot/projects/netperf/sys/pci/if_ti.c#2 integrate .. //depot/projects/netperf/sys/powerpc/include/critical.h#2 integrate .. //depot/projects/netperf/sys/powerpc/include/endian.h#2 integrate .. //depot/projects/netperf/sys/powerpc/include/param.h#2 integrate .. //depot/projects/netperf/sys/powerpc/powerpc/critical.c#2 integrate .. //depot/projects/netperf/sys/powerpc/powerpc/machdep.c#2 integrate .. //depot/projects/netperf/sys/powerpc/powerpc/pmap.c#3 integrate .. //depot/projects/netperf/sys/powerpc/powerpc/vm_machdep.c#2 integrate .. //depot/projects/netperf/sys/security/mac_biba/mac_biba.c#2 integrate .. //depot/projects/netperf/sys/security/mac_mls/mac_mls.c#2 integrate .. //depot/projects/netperf/sys/sparc64/include/critical.h#2 integrate .. //depot/projects/netperf/sys/sparc64/include/param.h#2 integrate .. //depot/projects/netperf/sys/sparc64/sparc64/critical.c#2 integrate .. //depot/projects/netperf/sys/sparc64/sparc64/genassym.c#2 integrate .. //depot/projects/netperf/sys/sparc64/sparc64/machdep.c#2 integrate .. //depot/projects/netperf/sys/sparc64/sparc64/pmap.c#3 integrate .. //depot/projects/netperf/sys/sparc64/sparc64/vm_machdep.c#2 integrate .. //depot/projects/netperf/sys/sys/acl.h#2 integrate .. //depot/projects/netperf/sys/sys/buf.h#2 integrate .. //depot/projects/netperf/sys/sys/kse.h#2 integrate .. //depot/projects/netperf/sys/sys/lock.h#2 integrate .. //depot/projects/netperf/sys/sys/param.h#2 integrate .. //depot/projects/netperf/sys/sys/proc.h#2 integrate .. //depot/projects/netperf/sys/sys/socketvar.h#2 integrate .. //depot/projects/netperf/sys/ufs/ufs/acl.h#2 integrate .. //depot/projects/netperf/sys/ufs/ufs/ufs_acl.c#2 integrate .. //depot/projects/netperf/sys/ufs/ufs/ufs_vnops.c#3 integrate .. //depot/projects/netperf/sys/vm/default_pager.c#2 integrate .. //depot/projects/netperf/sys/vm/device_pager.c#2 integrate .. //depot/projects/netperf/sys/vm/phys_pager.c#2 integrate .. //depot/projects/netperf/sys/vm/swap_pager.c#3 integrate .. //depot/projects/netperf/sys/vm/swap_pager.h#2 integrate .. //depot/projects/netperf/sys/vm/uma_core.c#4 integrate .. //depot/projects/netperf/sys/vm/vm_glue.c#2 integrate .. //depot/projects/netperf/sys/vm/vm_kern.c#3 integrate .. //depot/projects/netperf/sys/vm/vm_object.c#3 integrate .. //depot/projects/netperf/sys/vm/vm_pageout.c#2 integrate .. //depot/projects/netperf/sys/vm/vm_pageout.h#2 integrate .. //depot/projects/netperf/sys/vm/vm_pager.c#2 integrate .. //depot/projects/netperf/sys/vm/vm_pager.h#2 integrate .. //depot/projects/netperf/sys/vm/vnode_pager.c#2 integrate Differences ... ==== //depot/projects/netperf/sys/alpha/alpha/critical.c#2 (text+ko) ==== @@ -4,7 +4,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/critical.c,v 1.4 2003/06/10 16:50:43 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/critical.c,v 1.5 2003/08/04 20:32:44 jhb Exp $"); #include #include @@ -31,17 +31,5 @@ struct thread *td; td = curthread; - td->td_critnest = 1; td->td_md.md_savecrit = ALPHA_PSL_IPL_0; } - -/* - * cpu_thread_link() - thread linkup, initialize machine-dependant fields - */ -void -cpu_thread_link(struct thread *td) -{ - - td->td_md.md_savecrit = 0; -} - ==== //depot/projects/netperf/sys/alpha/alpha/machdep.c#4 (text+ko) ==== @@ -88,10 +88,11 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.209 2003/07/30 06:38:35 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.211 2003/07/31 05:27:00 marcel Exp $"); #include "opt_compat.h" #include "opt_ddb.h" +#include "opt_kstack_pages.h" #include "opt_msgbuf.h" #include "opt_maxmem.h" @@ -2073,6 +2074,9 @@ if (td == curthread) { alpha_pal_wrusp(mcp->mc_regs[FRAME_SP]); alpha_pal_wrunique(mcp->mc_thrptr); + } else { + td->td_pcb->pcb_hw.apcb_usp = mcp->mc_regs[FRAME_SP]; + td->td_pcb->pcb_hw.apcb_unique = mcp->mc_thrptr; } /* ==== //depot/projects/netperf/sys/alpha/alpha/mp_machdep.c#3 (text+ko) ==== @@ -25,7 +25,9 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.45 2003/07/27 23:45:48 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.46 2003/07/31 01:31:31 peter Exp $"); + +#include "opt_kstack_pages.h" #include #include ==== //depot/projects/netperf/sys/alpha/alpha/pmap.c#3 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.131 2003/07/25 18:58:39 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.132 2003/07/31 03:39:50 bmilekic Exp $"); #include #include @@ -642,7 +642,7 @@ if (initial_pvs < MINPV) initial_pvs = MINPV; pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, - NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM); + NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); uma_prealloc(pvzone, initial_pvs); /* ==== //depot/projects/netperf/sys/alpha/alpha/vm_machdep.c#3 (text+ko) ==== @@ -67,7 +67,9 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.89 2003/07/27 23:45:48 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.91 2003/07/31 01:31:31 peter Exp $"); + +#include "opt_kstack_pages.h" #include #include @@ -260,7 +262,8 @@ { td->td_pcb = - (struct pcb *)(td->td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; + (struct pcb *)(td->td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; + td->td_md.md_pcbpaddr = (void*)vtophys((vm_offset_t)td->td_pcb); td->td_frame = (struct trapframe *)((caddr_t)td->td_pcb) - 1; } ==== //depot/projects/netperf/sys/alpha/include/critical.h#2 (text+ko) ==== @@ -8,11 +8,10 @@ * cpu_critical_enter() - inlined * cpu_critical_exit() - inlined * cpu_critical_fork_exit() - prototyped - * cpu_thread_link() - prototyped * related support functions residing * in //critical.c - prototyped * - * $FreeBSD: src/sys/alpha/include/critical.h,v 1.1 2002/04/01 23:51:22 dillon Exp $ + * $FreeBSD: src/sys/alpha/include/critical.h,v 1.2 2003/08/04 20:32:44 jhb Exp $ */ #ifndef _MACHINE_CRITICAL_H_ @@ -24,7 +23,6 @@ * Prototypes - see //critical.c */ void cpu_critical_fork_exit(void); -void cpu_thread_link(struct thread *td); #ifdef __GNUC__ ==== //depot/projects/netperf/sys/alpha/include/endian.h#2 (text+ko) ==== @@ -32,7 +32,7 @@ * * @(#)endian.h 8.1 (Berkeley) 6/10/93 * $NetBSD: endian.h,v 1.5 1997/10/09 15:42:19 bouyer Exp $ - * $FreeBSD: src/sys/alpha/include/endian.h,v 1.13 2002/09/23 04:32:16 mike Exp $ + * $FreeBSD: src/sys/alpha/include/endian.h,v 1.14 2003/08/03 07:50:18 obrien Exp $ */ #ifndef _MACHINE_ENDIAN_H_ @@ -44,8 +44,8 @@ /* * Define the order of 32-bit words in 64-bit words. */ -#define _QUAD_HIGHWORD 1 -#define _QUAD_LOWWORD 0 +#define _QUAD_HIGHWORD 1 +#define _QUAD_LOWWORD 0 /* * Definitions for byte order, according to byte significance from low @@ -81,7 +81,7 @@ } static __inline __uint32_t -__bswap32(__uint32_t __x) +__bswap32(__uint32_t _x) { __uint32_t __r; @@ -95,12 +95,12 @@ "or $4, $1, %0\n\t" "or $2, $3, $2\n\t" "or $2, %0, %0" - : "=r" (__r) : "r" (__x) : "$1", "$2", "$3", "$4"); + : "=r" (__r) : "r" (_x) : "$1", "$2", "$3", "$4"); return (__r); } -static __inline __uint16_t -__bswap16(__uint16_t __x) +static __inline __uint16_t +__bswap16(__uint16_t _x) { __uint16_t __r; @@ -108,7 +108,7 @@ "insbl %1, 1, $1\n\t" "extbl %1, 1, $2\n\t" "or $1, $2, %0" - : "=r" (__r) : "r" (__x) : "$1", "$2"); + : "=r" (__r) : "r" (_x) : "$1", "$2"); return (__r); } ==== //depot/projects/netperf/sys/alpha/include/param.h#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/param.h,v 1.31 2003/06/14 23:23:52 alc Exp $ */ +/* $FreeBSD: src/sys/alpha/include/param.h,v 1.32 2003/07/31 01:31:31 peter Exp $ */ /* From: NetBSD: param.h,v 1.20 1997/09/19 13:52:53 leo Exp */ /* @@ -117,7 +117,9 @@ #define SSIZE 1 /* initial stack size/NBPG */ #define SINCR 1 /* increment of stack/NBPG */ +#ifndef KSTACK_PAGES #define KSTACK_PAGES 2 /* pages of kstack (with pcb) */ +#endif #define KSTACK_GUARD_PAGES 1 /* pages of kstack guard; 0 disables */ #define UAREA_PAGES 1 /* pages of u-area */ ==== //depot/projects/netperf/sys/amd64/amd64/busdma_machdep.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.50 2003/07/27 13:52:08 mux Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.51 2003/08/04 23:40:35 scottl Exp $"); #include #include @@ -476,7 +476,8 @@ else pmap = NULL; - if (dmat->lowaddr < ptoa((vm_paddr_t)Maxmem)) { + if (dmat->lowaddr < ptoa((vm_paddr_t)Maxmem) && + map->pagesneeded == 0) { vm_offset_t vendaddr; /* ==== //depot/projects/netperf/sys/amd64/amd64/critical.c#3 (text+ko) ==== @@ -4,7 +4,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/critical.c,v 1.10 2003/07/25 21:15:44 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/critical.c,v 1.11 2003/08/04 20:32:44 jhb Exp $"); #include #include @@ -28,16 +28,5 @@ struct thread *td; td = curthread; - td->td_critnest = 1; td->td_md.md_savecrit = read_rflags() | PSL_I; } - -/* - * cpu_thread_link() - thread linkup, initialize machine-dependant fields - */ -void -cpu_thread_link(struct thread *td) -{ - - td->td_md.md_savecrit = 0; -} ==== //depot/projects/netperf/sys/amd64/amd64/machdep.c#3 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.587 2003/07/25 21:15:44 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.588 2003/07/31 01:26:39 peter Exp $"); #include "opt_atalk.h" #include "opt_compat.h" @@ -47,10 +47,10 @@ #include "opt_inet.h" #include "opt_ipx.h" #include "opt_isa.h" +#include "opt_kstack_pages.h" #include "opt_maxmem.h" #include "opt_msgbuf.h" #include "opt_perfmon.h" -#include "opt_kstack_pages.h" #include #include ==== //depot/projects/netperf/sys/amd64/amd64/pmap.c#3 (text+ko) ==== @@ -73,7 +73,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.426 2003/07/25 21:15:44 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.428 2003/08/02 19:26:08 alc Exp $"); /* * Manages physical address maps. @@ -610,7 +610,7 @@ if (initial_pvs < MINPV) initial_pvs = MINPV; pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, - NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM); + NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); uma_zone_set_allocf(pvzone, pmap_pv_allocf); uma_prealloc(pvzone, initial_pvs); @@ -2820,7 +2820,7 @@ return ((void *)PHYS_TO_DMAP(pa)); offset = pa & PAGE_MASK; size = roundup(offset + size, PAGE_SIZE); - va = kmem_alloc_pageable(kernel_map, size); + va = kmem_alloc_nofault(kernel_map, size); if (!va) panic("pmap_mapdev: Couldn't alloc kernel virtual memory"); pa = pa & PG_FRAME; ==== //depot/projects/netperf/sys/amd64/include/critical.h#2 (text+ko) ==== @@ -8,11 +8,10 @@ * cpu_critical_enter() - inlined * cpu_critical_exit() - inlined * cpu_critical_fork_exit() - prototyped - * cpu_thread_link() - prototyped * related support functions residing * in //critical.c - prototyped * - * $FreeBSD: src/sys/amd64/include/critical.h,v 1.3 2003/05/01 01:05:23 peter Exp $ + * $FreeBSD: src/sys/amd64/include/critical.h,v 1.4 2003/08/04 20:32:45 jhb Exp $ */ #ifndef _MACHINE_CRITICAL_H_ @@ -24,7 +23,6 @@ * Prototypes - see //critical.c */ void cpu_critical_fork_exit(void); -void cpu_thread_link(struct thread *td); #ifdef __GNUC__ ==== //depot/projects/netperf/sys/amd64/include/ieeefp.h#2 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#) ieeefp.h 1.0 (Berkeley) 9/23/93 - * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.9 2003/07/22 06:44:54 peter Exp $ + * $FreeBSD: src/sys/amd64/include/ieeefp.h,v 1.10 2003/08/02 00:26:30 peter Exp $ */ /* @@ -266,8 +266,8 @@ #if !defined(__IEEEFP_NOINLINES__) && !defined(__cplusplus) && defined(__GNUC__) -#define fpsetround() __fpsetround() -#define fpgetround(_m) __fpgetround(_m) +#define fpgetround() __fpgetround() +#define fpsetround(_m) __fpsetround(_m) #define fpgetprec() __fpgetprec() #define fpsetprec(_m) __fpsetprec(_m) #define fpgetmask() __fpgetmask() ==== //depot/projects/netperf/sys/amd64/include/param.h#2 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)param.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/amd64/include/param.h,v 1.7 2003/06/14 23:23:53 alc Exp $ + * $FreeBSD: src/sys/amd64/include/param.h,v 1.8 2003/07/31 01:27:18 peter Exp $ */ /* @@ -117,7 +117,9 @@ #define IOPAGES 2 /* pages of i/o permission bitmap */ +#ifndef KSTACK_PAGES #define KSTACK_PAGES 4 /* pages of kstack (with pcb) */ +#endif #define KSTACK_GUARD_PAGES 1 /* pages of kstack guard; 0 disables */ #define UAREA_PAGES 1 /* holds struct user WITHOUT PCB (see def.) */ ==== //depot/projects/netperf/sys/arm/include/endian.h#2 (text+ko) ==== @@ -27,12 +27,12 @@ * * @(#)endian.h 8.1 (Berkeley) 6/10/93 * $NetBSD: endian.h,v 1.7 1999/08/21 05:53:51 simonb Exp $ - * $FreeBSD: src/sys/arm/include/endian.h,v 1.1 2001/01/04 05:23:06 obrien Exp $ + * $FreeBSD: src/sys/arm/include/endian.h,v 1.2 2003/08/03 07:50:19 obrien Exp $ */ #ifndef _ENDIAN_H_ #define _ENDIAN_H_ -#define BYTE_ORDER LITTLE_ENDIAN +#define BYTE_ORDER _LITTLE_ENDIAN #endif /* !_ENDIAN_H_ */ ==== //depot/projects/netperf/sys/boot/efi/libefi/efiboot.h#2 (text+ko) ==== @@ -28,7 +28,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/efi/libefi/efiboot.h,v 1.7 2002/10/24 07:53:12 marcel Exp $ + * $FreeBSD: src/sys/boot/efi/libefi/efiboot.h,v 1.8 2003/08/02 08:22:03 marcel Exp $ */ /* @@ -69,6 +69,9 @@ /* Find EFI network resources */ extern void efinet_init_driver(void); +/* Map handles to units */ +int efifs_get_unit(EFI_HANDLE); + /* Wrapper over EFI filesystems. */ extern struct fs_ops efi_fsops; ==== //depot/projects/netperf/sys/boot/efi/libefi/efifs.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/efi/libefi/efifs.c,v 1.7 2003/02/26 09:13:05 marcel Exp $ + * $FreeBSD: src/sys/boot/efi/libefi/efifs.c,v 1.8 2003/08/02 08:22:03 marcel Exp $ */ #include @@ -291,7 +291,18 @@ }; static EFI_HANDLE *fs_handles; -UINTN fs_handle_count;; +UINTN fs_handle_count; + +int +efifs_get_unit(EFI_HANDLE h) +{ + UINTN u; + + u = 0; + while (u < fs_handle_count && fs_handles[u] != h) + u++; + return ((u < fs_handle_count) ? u : -1); +} static int efifs_dev_init(void) ==== //depot/projects/netperf/sys/boot/efi/loader/main.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/efi/loader/main.c,v 1.19 2003/04/03 21:36:29 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/efi/loader/main.c,v 1.20 2003/08/02 08:22:03 marcel Exp $"); #include #include @@ -54,6 +54,7 @@ EFI_GUID acpi = ACPI_TABLE_GUID; EFI_GUID acpi20 = ACPI_20_TABLE_GUID; +EFI_GUID devid = DEVICE_PATH_PROTOCOL; EFI_GUID hcdp = HCDP_TABLE_GUID; EFI_GUID imgid = LOADED_IMAGE_PROTOCOL; EFI_GUID mps = MPS_TABLE_GUID; @@ -101,8 +102,6 @@ main(int argc, CHAR16 *argv[]) { EFI_LOADED_IMAGE *img; - EFI_SIMPLE_NETWORK *net; - EFI_STATUS status; int i; /* @@ -129,7 +128,6 @@ efinet_init_driver(); - /* Get our loaded image protocol interface structure. */ BS->HandleProtocol(IH, &imgid, (VOID**)&img); @@ -139,23 +137,16 @@ printf("%s, Revision %s\n", bootprog_name, bootprog_rev); printf("(%s, %s)\n", bootprog_maker, bootprog_date); - /* - * XXX quick and dirty check to see if we're loaded from the - * network. If so, we set the default device to 'net'. In all - * other cases we set the default device to 'disk'. We presume - * fixed positions in devsw for both net and disk. - */ - status = BS->HandleProtocol(img->DeviceHandle, &netid, (VOID**)&net); - if (status == EFI_SUCCESS && net != NULL) { - currdev.d_dev = devsw[1]; /* XXX net */ - currdev.d_kind.netif.unit = 0; - } else { - currdev.d_dev = devsw[0]; /* XXX disk */ - currdev.d_kind.efidisk.unit = 0; + i = efifs_get_unit(img->DeviceHandle); + if (i >= 0) { + currdev.d_dev = devsw[0]; /* XXX disk */ + currdev.d_kind.efidisk.unit = i; /* XXX should be able to detect this, default to autoprobe */ currdev.d_kind.efidisk.slice = -1; - /* default to 'a' */ currdev.d_kind.efidisk.partition = 0; + } else { + currdev.d_dev = devsw[1]; /* XXX net */ + currdev.d_kind.netif.unit = 0; /* XXX */ } currdev.d_type = currdev.d_dev->dv_type; ==== //depot/projects/netperf/sys/boot/powerpc/loader/start.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/boot/powerpc/loader/start.c,v 1.2 2001/10/07 13:22:25 benno Exp $ */ +/* $FreeBSD: src/sys/boot/powerpc/loader/start.c,v 1.3 2003/08/05 11:30:18 grehan Exp $ */ /* $NetBSD: Locore.c,v 1.7 2000/08/20 07:04:59 tsubai Exp $ */ /* @@ -38,63 +38,63 @@ void startup(void *, int, int (*)(void *), char *, int); #ifdef XCOFF_GLUE -asm(" - .text - .globl _entry -_entry: - .long _start,0,0 +asm(" \n\ + .text \n\ + .globl _entry \n\ +_entry: \n\ + .long _start,0,0 \n\ "); #endif -__asm(" - .data -stack: - .space 16388 - - .text - .globl _start -_start: - li 8,0 - li 9,0x100 - mtctr 9 -1: - dcbf 0,8 - icbi 0,8 - addi 8,8,0x20 - bdnz 1b - sync - isync - - lis 1,stack@ha - addi 1,1,stack@l - addi 1,1,8192 - - mfmsr 8 - li 0,0 - mtmsr 0 - isync - - mtibatu 0,0 - mtibatu 1,0 - mtibatu 2,0 - mtibatu 3,0 - mtdbatu 0,0 - mtdbatu 1,0 - mtdbatu 2,0 - mtdbatu 3,0 - - li 9,0x12 /* BATL(0, BAT_M, BAT_PP_RW) */ - mtibatl 0,9 - mtdbatl 0,9 - li 9,0x1ffe /* BATU(0, BAT_BL_256M, BAT_Vs) */ - mtibatu 0,9 - mtdbatu 0,9 - isync - - mtmsr 8 - isync - - b startup +__asm(" \n\ + .data \n\ +stack: \n\ + .space 16388 \n\ + \n\ + .text \n\ + .globl _start \n\ +_start: \n\ + li %r8,0 \n\ + li %r9,0x100 \n\ + mtctr %r9 \n\ +1: \n\ + dcbf %r0,%r8 \n\ + icbi %r0,%r8 \n\ + addi %r8,%r8,0x20 \n\ + bdnz 1b \n\ + sync \n\ + isync \n\ + \n\ + lis %r1,stack@ha \n\ + addi %r1,%r1,stack@l \n\ + addi %r1,%r1,8192 \n\ + \n\ + mfmsr %r8 \n\ + li %r0,0 \n\ + mtmsr %r0 \n\ + isync \n\ + \n\ + mtibatu 0,%r0 \n\ + mtibatu 1,%r0 \n\ + mtibatu 2,%r0 \n\ + mtibatu 3,%r0 \n\ + mtdbatu 0,%r0 \n\ + mtdbatu 1,%r0 \n\ + mtdbatu 2,%r0 \n\ + mtdbatu 3,%r0 \n\ + \n\ + li %r9,0x12 /* BATL(0, BAT_M, BAT_PP_RW) */ \n\ + mtibatl 0,%r9 \n\ + mtdbatl 0,%r9 \n\ + li %r9,0x1ffe /* BATU(0, BAT_BL_256M, BAT_Vs) */ \n\ + mtibatu 0,%r9 \n\ + mtdbatu 0,%r9 \n\ + isync \n\ + \n\ + mtmsr %r8 \n\ + isync \n\ + \n\ + b startup \n\ "); void ==== //depot/projects/netperf/sys/cam/scsi/scsi_da.c#4 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.149 2003/07/29 18:08:16 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.150 2003/08/06 14:24:16 njl Exp $"); #ifdef _KERNEL #include "opt_da.h" @@ -1499,15 +1499,8 @@ } else { bp->bio_resid = csio->resid; bp->bio_error = 0; - if (bp->bio_resid != 0) { - /* Short transfer ??? */ -#if 0 - if (cmd6workaround(done_ccb) - == ERESTART) - return; -#endif + if (bp->bio_resid != 0) bp->bio_flags |= BIO_ERROR; - } } if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) cam_release_devq(done_ccb->ccb_h.path, @@ -1519,14 +1512,8 @@ if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) panic("REQ_CMP with QFRZN"); bp->bio_resid = csio->resid; - if (csio->resid > 0) { - /* Short transfer ??? */ -#if 0 /* XXX most of the broken umass devices need this ad-hoc work around */ - if (cmd6workaround(done_ccb) == ERESTART) - return; -#endif + if (csio->resid > 0) bp->bio_flags |= BIO_ERROR; - } } /* ==== //depot/projects/netperf/sys/compat/linprocfs/linprocfs.c#2 (text+ko) ==== @@ -40,7 +40,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.67 2003/07/18 10:26:08 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.68 2003/08/04 10:55:22 des Exp $"); #include #include @@ -253,7 +253,14 @@ static int linprocfs_docpuinfo(PFS_FILL_ARGS) { - int class, i, fqmhz, fqkhz; + int class, fqmhz, fqkhz, ncpu; + int name[2], olen, plen; + int i; + + name[0] = CTL_HW; + name[1] = HW_NCPU; + if (kernel_sysctl(td, name, 2, &ncpu, &olen, NULL, 0, &plen) != 0) + ncpu = 1; /* * We default the flags to include all non-conflicting flags, @@ -290,13 +297,16 @@ break; } - sbuf_printf(sb, - "processor\t: %d\n" - "vendor_id\t: %.20s\n" - "cpu family\t: %d\n" - "model\t\t: %d\n" - "stepping\t: %d\n", - 0, cpu_vendor, class, cpu, cpu_id & 0xf); + for (i = 0; i < ncpu; ++i) { + sbuf_printf(sb, + "processor\t: %d\n" + "vendor_id\t: %.20s\n" + "cpu family\t: %d\n" + "model\t\t: %d\n" + "stepping\t: %d\n", + i, cpu_vendor, class, cpu, cpu_id & 0xf); + /* XXX per-cpu vendor / class / id? */ + } sbuf_cat(sb, "flags\t\t:"); ==== //depot/projects/netperf/sys/conf/NOTES#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1165 2003/07/29 04:32:32 njl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1166 2003/08/03 13:39:59 phk Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -726,14 +726,6 @@ # images of type mfs_root or md_root. options MD_ROOT -# Allow this many swap-devices. -# -# In order to manage swap, the system must reserve bitmap space that -# scales with the largest mounted swap device multiplied by NSWAPDEV, -# irrespective of whether other swap devices exist. So it is not a -# good idea to make this value too large. -options NSWAPDEV=5 - >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 6 10:36:35 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D44F937B404; Wed, 6 Aug 2003 10:36:34 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 705C437B401 for ; Wed, 6 Aug 2003 10:36:34 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 18BBA43FAF for ; Wed, 6 Aug 2003 10:36:34 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h76HaX0U061554 for ; Wed, 6 Aug 2003 10:36:33 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h76HaXcZ061551 for perforce@freebsd.org; Wed, 6 Aug 2003 10:36:33 -0700 (PDT) Date: Wed, 6 Aug 2003 10:36:33 -0700 (PDT) Message-Id: <200308061736.h76HaXcZ061551@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35634 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 17:36:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=35634 Change 35634 by sam@sam_ebb on 2003/08/06 10:35:48 must do lateattach work before media status is run; otherwise it'll find ic_bss null and crash Affected files ... .. //depot/projects/netperf/sys/net80211/ieee80211.c#3 edit Differences ... ==== //depot/projects/netperf/sys/net80211/ieee80211.c#3 (text+ko) ==== @@ -252,6 +252,12 @@ struct ieee80211_rateset allrates; /* + * Do late attach work that must wait for any subclass + * (i.e. driver) work such as overriding methods. + */ + ieee80211_node_lateattach(ifp); + + /* * Fill in media characteristics. */ ifmedia_init(&ic->ic_media, 0, media_change, media_stat); @@ -337,7 +343,6 @@ if (maxrate) ifp->if_baudrate = IF_Mbps(maxrate); - ieee80211_node_lateattach(ifp); /* XXX */ #undef ADD } From owner-p4-projects@FreeBSD.ORG Wed Aug 6 10:37:38 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1EC6137B405; Wed, 6 Aug 2003 10:37:38 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B1E2337B401 for ; Wed, 6 Aug 2003 10:37:36 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3EEF143F93 for ; Wed, 6 Aug 2003 10:37:36 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h76Hba0U061571 for ; Wed, 6 Aug 2003 10:37:36 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h76HbZvf061568 for perforce@freebsd.org; Wed, 6 Aug 2003 10:37:35 -0700 (PDT) Date: Wed, 6 Aug 2003 10:37:35 -0700 (PDT) Message-Id: <200308061737.h76HbZvf061568@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35635 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 17:37:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=35635 Change 35635 by sam@sam_ebb on 2003/08/06 10:37:15 Close a race where ath_intr is installed and may be called before the HAL is setup: use sc_invalid to discard such entries into ath_intr. This can easily happen if the device is assigned a shared IRQ. Affected files ... .. //depot/projects/netperf/sys/dev/ath/if_ath.c#4 edit .. //depot/projects/netperf/sys/dev/ath/if_ath_pci.c#2 edit Differences ... ==== //depot/projects/netperf/sys/dev/ath/if_ath.c#4 (text+ko) ==== @@ -199,6 +199,7 @@ goto bad; } sc->sc_ah = ah; + sc->sc_invalid = 0; /* ready to go, enable interrupt handling */ /* * Collect the channel list using the default country @@ -372,8 +373,8 @@ if (sc->sc_invalid) { /* - * The hardware is gone, don't touch anything. - * XXX can this happen? + * The hardware is not ready/present, don't touch anything. + * Note this can happen early on if the IRQ is shared. */ DPRINTF(("ath_intr: invalid; ignored\n")); return; ==== //depot/projects/netperf/sys/dev/ath/if_ath_pci.c#2 (text+ko) ==== @@ -152,6 +152,11 @@ } sc->sc_st = rman_get_bustag(psc->sc_sr); sc->sc_sh = rman_get_bushandle(psc->sc_sr); + /* + * Mark device invalid so any interrupts (shared or otherwise) + * that arrive before the HAL is setup are discarded. + */ + sc->sc_invalid = 1; /* * Arrange interrupt line. From owner-p4-projects@FreeBSD.ORG Wed Aug 6 10:40:42 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AE03C37B404; Wed, 6 Aug 2003 10:40:41 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4DF9C37B401 for ; Wed, 6 Aug 2003 10:40:41 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id B0C8E43FB1 for ; Wed, 6 Aug 2003 10:40:40 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h76Hee0U061748 for ; Wed, 6 Aug 2003 10:40:40 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h76HeeEK061745 for perforce@freebsd.org; Wed, 6 Aug 2003 10:40:40 -0700 (PDT) Date: Wed, 6 Aug 2003 10:40:40 -0700 (PDT) Message-Id: <200308061740.h76HeeEK061745@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35636 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 17:40:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=35636 Change 35636 by sam@sam_ebb on 2003/08/06 10:40:15 correct typo Affected files ... .. //depot/projects/netperf/sys/netinet6/in6.c#3 edit Differences ... ==== //depot/projects/netperf/sys/netinet6/in6.c#3 (text+ko) ==== @@ -203,7 +203,7 @@ } else { /* the cmd must be RTM_ADD here */ nrt->rt_refcnt--; - RT_UNLOCK(rt); + RT_UNLOCK(nrt); } } } From owner-p4-projects@FreeBSD.ORG Wed Aug 6 10:48:52 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1CE337B401; Wed, 6 Aug 2003 10:48:51 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9D56E37B404 for ; Wed, 6 Aug 2003 10:48:51 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2B98743F85 for ; Wed, 6 Aug 2003 10:48:51 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h76Hmp0U061997 for ; Wed, 6 Aug 2003 10:48:51 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h76Hmo6J061994 for perforce@freebsd.org; Wed, 6 Aug 2003 10:48:50 -0700 (PDT) Date: Wed, 6 Aug 2003 10:48:50 -0700 (PDT) Message-Id: <200308061748.h76Hmo6J061994@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35637 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 17:48:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=35637 Change 35637 by sam@sam_ebb on 2003/08/06 10:48:15 collect "lost" routing table locking changes Affected files ... .. //depot/projects/netperf/sys/net/if_stf.c#2 edit .. //depot/projects/netperf/sys/netinet/in_pcb.h#2 edit .. //depot/projects/netperf/sys/netinet6/in6_ifattach.c#2 edit Differences ... ==== //depot/projects/netperf/sys/net/if_stf.c#2 (text+ko) ==== @@ -718,6 +718,7 @@ struct rtentry *rt; struct rt_addrinfo *info; { + RT_LOCK_ASSERT(rt, MA_OWNED); if (rt) rt->rt_rmx.rmx_mtu = IPV6_MMTU; ==== //depot/projects/netperf/sys/netinet/in_pcb.h#2 (text+ko) ==== @@ -260,6 +260,9 @@ #define INP_INFO_RUNLOCK(ipi) mtx_unlock(&(ipi)->ipi_mtx) #define INP_INFO_WUNLOCK(ipi) mtx_unlock(&(ipi)->ipi_mtx) +#define INP_INFO_RLOCK_ASSERT(ipi) mtx_assert(&(ipi)->ipi_mtx, MA_OWNED) +#define INP_INFO_WLOCK_ASSERT(ipi) mtx_assert(&(ipi)->ipi_mtx, MA_OWNED) + #define INP_PCBHASH(faddr, lport, fport, mask) \ (((faddr) ^ ((faddr) >> 16) ^ ntohs((lport) ^ (fport))) & (mask)) #define INP_PCBPORTHASH(lport, mask) \ ==== //depot/projects/netperf/sys/netinet6/in6_ifattach.c#2 (text+ko) ==== @@ -985,9 +985,10 @@ sin6.sin6_addr = in6addr_linklocal_allnodes; sin6.sin6_addr.s6_addr16[1] = htons(ifp->if_index); rt = rtalloc1((struct sockaddr *)&sin6, 0, 0UL); - if (rt && rt->rt_ifp == ifp) { - rtrequest(RTM_DELETE, (struct sockaddr *)rt_key(rt), - rt->rt_gateway, rt_mask(rt), rt->rt_flags, 0); + if (rt) { + if (rt->rt_ifp == ifp) + rtrequest(RTM_DELETE, (struct sockaddr *)rt_key(rt), + rt->rt_gateway, rt_mask(rt), rt->rt_flags, 0); rtfree(rt); } } From owner-p4-projects@FreeBSD.ORG Wed Aug 6 11:32:51 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0BACA37B404; Wed, 6 Aug 2003 11:32:51 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B21A437B401 for ; Wed, 6 Aug 2003 11:32:50 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3991843FA3 for ; Wed, 6 Aug 2003 11:32:49 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h76IWn0U065218 for ; Wed, 6 Aug 2003 11:32:49 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h76IWj7s065179 for perforce@freebsd.org; Wed, 6 Aug 2003 11:32:45 -0700 (PDT) Date: Wed, 6 Aug 2003 11:32:45 -0700 (PDT) Message-Id: <200308061832.h76IWj7s065179@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 35640 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 18:32:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=35640 Change 35640 by rwatson@rwatson_paprika on 2003/08/06 11:31:48 IFC the TrustedBSD base branch: bring in various fixes, including some VM/swap bits, further removal of the bogus swap pager vnode. Also bring in the ACL-related structural cleanups. Affected files ... .. //depot/projects/trustedbsd/base/MAINTAINERS#21 integrate .. //depot/projects/trustedbsd/base/Makefile#26 integrate .. //depot/projects/trustedbsd/base/bin/ps/ps.1#15 integrate .. //depot/projects/trustedbsd/base/bin/sh/expand.c#12 integrate .. //depot/projects/trustedbsd/base/contrib/isc-dhcp/client/dhclient.c#8 integrate .. //depot/projects/trustedbsd/base/contrib/isc-dhcp/includes/dhcpd.h#7 integrate .. //depot/projects/trustedbsd/base/etc/mtree/BSD.local.dist#18 integrate .. //depot/projects/trustedbsd/base/etc/mtree/BSD.usr.dist#28 integrate .. //depot/projects/trustedbsd/base/etc/rc.d/Makefile#13 integrate .. //depot/projects/trustedbsd/base/etc/rc.d/localdaemons#3 integrate .. //depot/projects/trustedbsd/base/etc/rc.d/localpkg#1 branch .. //depot/projects/trustedbsd/base/etc/rc.d/netoptions#2 integrate .. //depot/projects/trustedbsd/base/games/fortune/datfiles/Makefile#5 integrate .. //depot/projects/trustedbsd/base/games/fortune/datfiles/freebsd-tips#13 integrate .. //depot/projects/trustedbsd/base/games/fortune/strfile/strfile.c#5 integrate .. //depot/projects/trustedbsd/base/gnu/lib/libregex/regex.c#2 integrate .. //depot/projects/trustedbsd/base/gnu/usr.bin/groff/Makefile.inc#4 integrate .. //depot/projects/trustedbsd/base/gnu/usr.bin/groff/tmac/mdoc.local#15 integrate .. //depot/projects/trustedbsd/base/gnu/usr.bin/groff/tmac/ru.KOI8-R#2 integrate .. //depot/projects/trustedbsd/base/gnu/usr.bin/man/man/glob.c#2 integrate .. //depot/projects/trustedbsd/base/lib/libc/i386/sys/i386_get_ldt.2#5 integrate .. //depot/projects/trustedbsd/base/lib/libc/ia64/sys/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/base/lib/libc/ia64/sys/Ovfork.S#3 integrate .. //depot/projects/trustedbsd/base/lib/libc/ia64/sys/fork.S#3 integrate .. //depot/projects/trustedbsd/base/lib/libc/ia64/sys/getcontext.S#1 branch .. //depot/projects/trustedbsd/base/lib/libc/ia64/sys/setlogin.S#3 integrate .. //depot/projects/trustedbsd/base/lib/libc/ia64/sys/swapcontext.S#1 branch .. //depot/projects/trustedbsd/base/lib/libc/locale/collcmp.c#3 integrate .. //depot/projects/trustedbsd/base/lib/libc/sys/connect.2#5 integrate .. //depot/projects/trustedbsd/base/lib/libc/sys/kqueue.2#6 integrate .. //depot/projects/trustedbsd/base/lib/libedit/makelist#3 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/arch/amd64/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/arch/amd64/amd64/enter_uts.S#3 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/arch/amd64/amd64/pthread_md.c#1 branch .. //depot/projects/trustedbsd/base/lib/libpthread/arch/amd64/include/ksd.h#3 delete .. //depot/projects/trustedbsd/base/lib/libpthread/arch/amd64/include/pthread_md.h#2 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/arch/i386/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/arch/i386/i386/ksd.c#4 delete .. //depot/projects/trustedbsd/base/lib/libpthread/arch/i386/i386/pthread_md.c#1 branch .. //depot/projects/trustedbsd/base/lib/libpthread/arch/i386/i386/thr_getcontext.S#3 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/arch/i386/include/ksd.h#4 delete .. //depot/projects/trustedbsd/base/lib/libpthread/arch/i386/include/pthread_md.h#4 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/arch/ia64/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/arch/ia64/ia64/context.S#2 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/arch/ia64/ia64/pthread_md.c#1 branch .. //depot/projects/trustedbsd/base/lib/libpthread/arch/ia64/include/ksd.h#2 delete .. //depot/projects/trustedbsd/base/lib/libpthread/arch/ia64/include/pthread_md.h#3 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/thread/thr_cancel.c#8 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/thread/thr_concurrency.c#5 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/thread/thr_create.c#9 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/thread/thr_init.c#10 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/thread/thr_kern.c#14 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/thread/thr_private.h#12 integrate .. //depot/projects/trustedbsd/base/lib/libpthread/thread/thr_sig.c#11 integrate .. //depot/projects/trustedbsd/base/release/Makefile#48 integrate .. //depot/projects/trustedbsd/base/release/Makefile.inc.docports#9 integrate .. //depot/projects/trustedbsd/base/release/doc/en_US.ISO8859-1/errata/article.sgml#10 integrate .. //depot/projects/trustedbsd/base/release/doc/en_US.ISO8859-1/hardware/alpha/proc-alpha.sgml#19 integrate .. //depot/projects/trustedbsd/base/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#71 integrate .. //depot/projects/trustedbsd/base/release/doc/ja_JP.eucJP/errata/article.sgml#11 integrate .. //depot/projects/trustedbsd/base/release/ia64/doFS.sh#6 delete .. //depot/projects/trustedbsd/base/release/ia64/mkisoimages.sh#4 integrate .. //depot/projects/trustedbsd/base/release/pc98/dokern.sh#13 integrate .. //depot/projects/trustedbsd/base/sbin/atm/Makefile#2 integrate .. //depot/projects/trustedbsd/base/sbin/atm/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/base/sbin/atm/atm/Makefile#4 integrate .. //depot/projects/trustedbsd/base/sbin/atm/fore_dnld/Makefile#4 integrate .. //depot/projects/trustedbsd/base/sbin/atm/ilmid/Makefile#5 integrate .. //depot/projects/trustedbsd/base/sbin/camcontrol/Makefile#8 integrate .. //depot/projects/trustedbsd/base/sbin/camcontrol/camcontrol.c#12 integrate .. //depot/projects/trustedbsd/base/sbin/camcontrol/modeedit.c#7 integrate .. //depot/projects/trustedbsd/base/sbin/camcontrol/util.c#4 integrate .. //depot/projects/trustedbsd/base/sbin/mdmfs/mdmfs.8#10 integrate .. //depot/projects/trustedbsd/base/sbin/mdmfs/mdmfs.c#8 integrate .. //depot/projects/trustedbsd/base/sbin/newfs/mkfs.c#17 integrate .. //depot/projects/trustedbsd/base/sbin/restore/interactive.c#5 integrate .. //depot/projects/trustedbsd/base/sbin/restore/main.c#8 integrate .. //depot/projects/trustedbsd/base/sbin/route/Makefile#4 integrate .. //depot/projects/trustedbsd/base/share/colldef/Makefile#15 integrate .. //depot/projects/trustedbsd/base/share/examples/kld/cdev/module/Makefile#2 integrate .. //depot/projects/trustedbsd/base/share/examples/kld/cdev/module/cdevmod.c#2 integrate .. //depot/projects/trustedbsd/base/share/examples/kld/cdev/test/Makefile#2 integrate .. //depot/projects/trustedbsd/base/share/examples/kld/cdev/test/testcdev.c#2 integrate .. //depot/projects/trustedbsd/base/share/man/man4/ath.4#4 integrate .. //depot/projects/trustedbsd/base/share/man/man4/firewire.4#6 integrate .. //depot/projects/trustedbsd/base/share/man/man7/release.7#15 integrate .. //depot/projects/trustedbsd/base/share/mklocale/Makefile#14 integrate .. //depot/projects/trustedbsd/base/share/mklocale/am_ET.UTF-8.src#1 branch .. //depot/projects/trustedbsd/base/share/monetdef/Makefile#14 integrate .. //depot/projects/trustedbsd/base/share/monetdef/am_ET.UTF-8.src#1 branch .. //depot/projects/trustedbsd/base/share/msgdef/Makefile#14 integrate .. //depot/projects/trustedbsd/base/share/msgdef/am_ET.UTF-8.src#1 branch .. //depot/projects/trustedbsd/base/share/numericdef/Makefile#14 integrate .. //depot/projects/trustedbsd/base/share/numericdef/am_ET.UTF-8.src#1 branch .. //depot/projects/trustedbsd/base/share/termcap/termcap.src#15 integrate .. //depot/projects/trustedbsd/base/share/timedef/Makefile#13 integrate .. //depot/projects/trustedbsd/base/share/timedef/am_ET.UTF-8.src#1 branch .. //depot/projects/trustedbsd/base/sys/alpha/alpha/critical.c#3 integrate .. //depot/projects/trustedbsd/base/sys/alpha/include/critical.h#2 integrate .. //depot/projects/trustedbsd/base/sys/alpha/include/endian.h#7 integrate .. //depot/projects/trustedbsd/base/sys/amd64/amd64/busdma_machdep.c#5 integrate .. //depot/projects/trustedbsd/base/sys/amd64/amd64/critical.c#3 integrate .. //depot/projects/trustedbsd/base/sys/amd64/amd64/pmap.c#7 integrate .. //depot/projects/trustedbsd/base/sys/amd64/include/critical.h#2 integrate .. //depot/projects/trustedbsd/base/sys/amd64/include/ieeefp.h#3 integrate .. //depot/projects/trustedbsd/base/sys/arm/include/endian.h#2 integrate .. //depot/projects/trustedbsd/base/sys/boot/efi/libefi/efiboot.h#4 integrate .. //depot/projects/trustedbsd/base/sys/boot/efi/libefi/efifs.c#5 integrate .. //depot/projects/trustedbsd/base/sys/boot/efi/loader/main.c#9 integrate .. //depot/projects/trustedbsd/base/sys/boot/powerpc/loader/start.c#2 integrate .. //depot/projects/trustedbsd/base/sys/cam/scsi/scsi_da.c#36 integrate .. //depot/projects/trustedbsd/base/sys/compat/linprocfs/linprocfs.c#19 integrate .. //depot/projects/trustedbsd/base/sys/conf/NOTES#40 integrate .. //depot/projects/trustedbsd/base/sys/conf/files.alpha#18 integrate .. //depot/projects/trustedbsd/base/sys/conf/files.amd64#5 integrate .. //depot/projects/trustedbsd/base/sys/conf/files.i386#34 integrate .. //depot/projects/trustedbsd/base/sys/conf/files.pc98#31 integrate .. //depot/projects/trustedbsd/base/sys/conf/options#40 integrate .. //depot/projects/trustedbsd/base/sys/contrib/dev/ath/README#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/dev/ath/ah.h#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/dev/ath/freebsd/ah_osdep.c#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/dev/ath/freebsd/ah_osdep.h#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/dev/ath/version.h#2 integrate .. //depot/projects/trustedbsd/base/sys/contrib/dev/oltr/if_oltr.c#5 integrate .. //depot/projects/trustedbsd/base/sys/dev/ath/if_ath.c#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/bge/if_bge.c#26 integrate .. //depot/projects/trustedbsd/base/sys/dev/digi/digi.h#5 integrate .. //depot/projects/trustedbsd/base/sys/dev/ed/if_ed_cbus.c#7 integrate .. //depot/projects/trustedbsd/base/sys/dev/em/if_em.c#23 integrate .. //depot/projects/trustedbsd/base/sys/dev/em/if_em.h#16 integrate .. //depot/projects/trustedbsd/base/sys/dev/em/if_em_osdep.h#12 integrate .. //depot/projects/trustedbsd/base/sys/dev/en/if_en_pci.c#2 integrate .. //depot/projects/trustedbsd/base/sys/dev/en/midway.c#16 integrate .. //depot/projects/trustedbsd/base/sys/dev/en/midwayvar.h#7 integrate .. //depot/projects/trustedbsd/base/sys/dev/fatm/if_fatm.c#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/firewire/firewire.c#19 integrate .. //depot/projects/trustedbsd/base/sys/dev/firewire/firewire.h#8 integrate .. //depot/projects/trustedbsd/base/sys/dev/firewire/firewirereg.h#12 integrate .. //depot/projects/trustedbsd/base/sys/dev/firewire/fwdev.c#9 integrate .. //depot/projects/trustedbsd/base/sys/dev/firewire/fwohci.c#17 integrate .. //depot/projects/trustedbsd/base/sys/dev/firewire/fwohci_pci.c#14 integrate .. //depot/projects/trustedbsd/base/sys/dev/firewire/if_fwe.c#13 integrate .. //depot/projects/trustedbsd/base/sys/dev/fxp/if_fxp.c#30 integrate .. //depot/projects/trustedbsd/base/sys/dev/hatm/if_hatm_ioctl.c#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/hatm/if_hatm_rx.c#3 integrate .. //depot/projects/trustedbsd/base/sys/dev/hatm/if_hatm_tx.c#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/hatm/if_hatmvar.h#3 integrate .. //depot/projects/trustedbsd/base/sys/dev/ie/if_ievar.h#2 integrate .. //depot/projects/trustedbsd/base/sys/dev/md/md.c#29 integrate .. //depot/projects/trustedbsd/base/sys/dev/patm/if_patm_ioctl.c#3 integrate .. //depot/projects/trustedbsd/base/sys/dev/patm/if_patm_rx.c#3 integrate .. //depot/projects/trustedbsd/base/sys/dev/patm/if_patm_tx.c#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/patm/if_patmvar.h#2 integrate .. //depot/projects/trustedbsd/base/sys/dev/pci/pci.c#25 integrate .. //depot/projects/trustedbsd/base/sys/dev/pci/pcireg.h#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/puc/pucdata.c#13 integrate .. //depot/projects/trustedbsd/base/sys/dev/sound/pcm/feeder.c#8 integrate .. //depot/projects/trustedbsd/base/sys/dev/sound/pcm/feeder.h#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/sym/sym_fw.h#3 integrate .. //depot/projects/trustedbsd/base/sys/dev/twe/twe.c#6 integrate .. //depot/projects/trustedbsd/base/sys/dev/twe/twe_compat.h#5 integrate .. //depot/projects/trustedbsd/base/sys/dev/twe/twe_freebsd.c#14 integrate .. //depot/projects/trustedbsd/base/sys/dev/twe/twe_tables.h#3 integrate .. //depot/projects/trustedbsd/base/sys/dev/twe/tweio.h#2 integrate .. //depot/projects/trustedbsd/base/sys/dev/twe/twereg.h#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/twe/twevar.h#4 integrate .. //depot/projects/trustedbsd/base/sys/dev/usb/umass.c#28 integrate .. //depot/projects/trustedbsd/base/sys/fs/specfs/spec_vnops.c#22 integrate .. //depot/projects/trustedbsd/base/sys/geom/geom_dev.c#30 integrate .. //depot/projects/trustedbsd/base/sys/i386/i386/busdma_machdep.c#15 integrate .. //depot/projects/trustedbsd/base/sys/i386/i386/critical.c#6 integrate .. //depot/projects/trustedbsd/base/sys/i386/i386/exception.s#8 integrate .. //depot/projects/trustedbsd/base/sys/i386/i386/identcpu.c#20 integrate .. //depot/projects/trustedbsd/base/sys/i386/i386/pmap.c#40 integrate .. //depot/projects/trustedbsd/base/sys/i386/i386/sys_machdep.c#16 integrate .. //depot/projects/trustedbsd/base/sys/i386/i386/tsc.c#5 integrate .. //depot/projects/trustedbsd/base/sys/i386/include/clock.h#4 integrate .. //depot/projects/trustedbsd/base/sys/i386/include/critical.h#3 integrate .. //depot/projects/trustedbsd/base/sys/i386/include/endian.h#9 integrate .. //depot/projects/trustedbsd/base/sys/i386/include/sysarch.h#5 integrate .. //depot/projects/trustedbsd/base/sys/i386/isa/clock.c#18 integrate .. //depot/projects/trustedbsd/base/sys/i386/isa/cxreg.h#2 integrate .. //depot/projects/trustedbsd/base/sys/i386/isa/if_rdp.c#10 integrate .. //depot/projects/trustedbsd/base/sys/i386/isa/spic.c#6 integrate .. //depot/projects/trustedbsd/base/sys/i386/isa/wt.c#7 integrate .. //depot/projects/trustedbsd/base/sys/i386/pci/pci_bus.c#18 integrate .. //depot/projects/trustedbsd/base/sys/i386/pci/pci_cfgreg.c#16 integrate .. //depot/projects/trustedbsd/base/sys/ia64/ia64/clock.c#10 integrate .. //depot/projects/trustedbsd/base/sys/ia64/ia64/critical.c#2 integrate .. //depot/projects/trustedbsd/base/sys/ia64/ia64/exception.S#2 integrate .. //depot/projects/trustedbsd/base/sys/ia64/ia64/genassym.c#13 integrate .. //depot/projects/trustedbsd/base/sys/ia64/ia64/interrupt.c#15 integrate .. //depot/projects/trustedbsd/base/sys/ia64/ia64/machdep.c#39 integrate .. //depot/projects/trustedbsd/base/sys/ia64/ia64/mp_machdep.c#19 integrate .. //depot/projects/trustedbsd/base/sys/ia64/ia64/timerreg.h#2 delete .. //depot/projects/trustedbsd/base/sys/ia64/include/clock.h#5 integrate .. //depot/projects/trustedbsd/base/sys/ia64/include/cpu.h#9 integrate .. //depot/projects/trustedbsd/base/sys/ia64/include/critical.h#2 integrate .. //depot/projects/trustedbsd/base/sys/ia64/include/endian.h#7 integrate .. //depot/projects/trustedbsd/base/sys/ia64/include/pcpu.h#4 integrate .. //depot/projects/trustedbsd/base/sys/ia64/include/ucontext.h#3 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_acl.c#15 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_descrip.c#43 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_fork.c#35 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_ktr.c#14 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_physio.c#9 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_proc.c#37 integrate .. //depot/projects/trustedbsd/base/sys/kern/kern_thread.c#31 integrate .. //depot/projects/trustedbsd/base/sys/kern/subr_trap.c#26 integrate .. //depot/projects/trustedbsd/base/sys/kern/subr_witness.c#38 integrate .. //depot/projects/trustedbsd/base/sys/kern/sys_process.c#15 integrate .. //depot/projects/trustedbsd/base/sys/kern/uipc_socket.c#34 integrate .. //depot/projects/trustedbsd/base/sys/kern/uipc_syscalls.c#32 integrate .. //depot/projects/trustedbsd/base/sys/kern/vfs_bio.c#34 integrate .. //depot/projects/trustedbsd/base/sys/kern/vfs_syscalls.c#47 integrate .. //depot/projects/trustedbsd/base/sys/modules/en/Makefile#3 integrate .. //depot/projects/trustedbsd/base/sys/modules/ep/Makefile#3 integrate .. //depot/projects/trustedbsd/base/sys/net/bpf.c#20 integrate .. //depot/projects/trustedbsd/base/sys/net/bpfdesc.h#6 integrate .. //depot/projects/trustedbsd/base/sys/net/if_atm.h#10 integrate .. //depot/projects/trustedbsd/base/sys/netinet/if_atm.c#3 integrate .. //depot/projects/trustedbsd/base/sys/netinet/ip_mroute.c#17 integrate .. //depot/projects/trustedbsd/base/sys/netinet6/nd6.c#9 integrate .. //depot/projects/trustedbsd/base/sys/netinet6/nd6.h#3 integrate .. //depot/projects/trustedbsd/base/sys/netinet6/nd6_rtr.c#7 integrate .. //depot/projects/trustedbsd/base/sys/netnatm/natm.c#12 integrate .. //depot/projects/trustedbsd/base/sys/netnatm/natm.h#4 integrate .. //depot/projects/trustedbsd/base/sys/netnatm/natm_pcb.c#5 integrate .. //depot/projects/trustedbsd/base/sys/netnatm/natm_proto.c#8 integrate .. //depot/projects/trustedbsd/base/sys/pc98/pc98/ppc.c#5 integrate .. //depot/projects/trustedbsd/base/sys/pc98/pc98/sio.c#23 integrate .. //depot/projects/trustedbsd/base/sys/pci/if_ti.c#21 integrate .. //depot/projects/trustedbsd/base/sys/powerpc/include/critical.h#3 integrate .. //depot/projects/trustedbsd/base/sys/powerpc/include/endian.h#7 integrate .. //depot/projects/trustedbsd/base/sys/powerpc/powerpc/critical.c#2 integrate .. //depot/projects/trustedbsd/base/sys/powerpc/powerpc/pmap.c#22 integrate .. //depot/projects/trustedbsd/base/sys/sparc64/include/critical.h#2 integrate .. //depot/projects/trustedbsd/base/sys/sparc64/sparc64/critical.c#3 integrate .. //depot/projects/trustedbsd/base/sys/sys/acl.h#6 integrate .. //depot/projects/trustedbsd/base/sys/sys/buf.h#16 integrate .. //depot/projects/trustedbsd/base/sys/sys/kse.h#15 integrate .. //depot/projects/trustedbsd/base/sys/sys/param.h#29 integrate .. //depot/projects/trustedbsd/base/sys/sys/proc.h#45 integrate .. //depot/projects/trustedbsd/base/sys/sys/socketvar.h#28 integrate .. //depot/projects/trustedbsd/base/sys/ufs/ufs/acl.h#4 integrate .. //depot/projects/trustedbsd/base/sys/ufs/ufs/ufs_acl.c#8 integrate .. //depot/projects/trustedbsd/base/sys/ufs/ufs/ufs_vnops.c#31 integrate .. //depot/projects/trustedbsd/base/sys/vm/default_pager.c#5 integrate .. //depot/projects/trustedbsd/base/sys/vm/device_pager.c#11 integrate .. //depot/projects/trustedbsd/base/sys/vm/phys_pager.c#10 integrate .. //depot/projects/trustedbsd/base/sys/vm/swap_pager.c#23 integrate .. //depot/projects/trustedbsd/base/sys/vm/swap_pager.h#12 integrate .. //depot/projects/trustedbsd/base/sys/vm/uma_core.c#25 integrate .. //depot/projects/trustedbsd/base/sys/vm/vm_glue.c#30 integrate .. //depot/projects/trustedbsd/base/sys/vm/vm_kern.c#19 integrate .. //depot/projects/trustedbsd/base/sys/vm/vm_object.c#39 integrate .. //depot/projects/trustedbsd/base/sys/vm/vm_pageout.c#26 integrate .. //depot/projects/trustedbsd/base/sys/vm/vm_pageout.h#9 integrate .. //depot/projects/trustedbsd/base/sys/vm/vm_pager.c#13 integrate .. //depot/projects/trustedbsd/base/sys/vm/vm_pager.h#7 integrate .. //depot/projects/trustedbsd/base/sys/vm/vnode_pager.c#26 integrate .. //depot/projects/trustedbsd/base/tools/tools/README#10 integrate .. //depot/projects/trustedbsd/base/tools/tools/hcomp/Makefile#1 branch .. //depot/projects/trustedbsd/base/tools/tools/hcomp/hcomp.pl#1 branch .. //depot/projects/trustedbsd/base/tools/tools/tinderbox/etc/experimental.rc#2 integrate .. //depot/projects/trustedbsd/base/tools/tools/tinderbox/powerpc.diff#1 branch .. //depot/projects/trustedbsd/base/tools/tools/tinderbox/tbmaster.1#4 integrate .. //depot/projects/trustedbsd/base/tools/tools/tinderbox/tbmaster.pl#12 integrate .. //depot/projects/trustedbsd/base/tools/tools/tinderbox/www/index.cgi#4 integrate .. //depot/projects/trustedbsd/base/usr.bin/calendar/calendars/calendar.birthday#9 integrate .. //depot/projects/trustedbsd/base/usr.bin/jot/jot.c#6 integrate .. //depot/projects/trustedbsd/base/usr.bin/netstat/mroute.c#3 integrate .. //depot/projects/trustedbsd/base/usr.bin/quota/quota.c#7 integrate .. //depot/projects/trustedbsd/base/usr.bin/systat/Makefile#5 integrate .. //depot/projects/trustedbsd/base/usr.bin/systat/cmdtab.c#4 integrate .. //depot/projects/trustedbsd/base/usr.bin/systat/extern.h#5 integrate .. //depot/projects/trustedbsd/base/usr.bin/systat/icmp6.c#1 branch .. //depot/projects/trustedbsd/base/usr.bin/systat/ip6.c#1 branch .. //depot/projects/trustedbsd/base/usr.bin/systat/netstat.c#5 integrate .. //depot/projects/trustedbsd/base/usr.bin/systat/systat.1#8 integrate .. //depot/projects/trustedbsd/base/usr.bin/tr/extern.h#4 integrate .. //depot/projects/trustedbsd/base/usr.bin/tr/str.c#7 integrate .. //depot/projects/trustedbsd/base/usr.bin/tr/tr.1#6 integrate .. //depot/projects/trustedbsd/base/usr.bin/tr/tr.c#9 integrate .. //depot/projects/trustedbsd/base/usr.bin/truss/ia64-fbsd.c#4 integrate .. //depot/projects/trustedbsd/base/usr.bin/truss/syscalls.c#11 integrate .. //depot/projects/trustedbsd/base/usr.sbin/acpi/acpidump/acpi.c#5 integrate .. //depot/projects/trustedbsd/base/usr.sbin/acpi/acpidump/acpidump.h#6 integrate .. //depot/projects/trustedbsd/base/usr.sbin/amd/include/newvers.sh#2 integrate .. //depot/projects/trustedbsd/base/usr.sbin/fwcontrol/fwcontrol.8#7 integrate .. //depot/projects/trustedbsd/base/usr.sbin/fwcontrol/fwcontrol.c#7 integrate .. //depot/projects/trustedbsd/base/usr.sbin/mergemaster/mergemaster.sh#12 integrate .. //depot/projects/trustedbsd/base/usr.sbin/named/Makefile.maninc#3 integrate .. //depot/projects/trustedbsd/base/usr.sbin/ndp/ndp.8#4 integrate .. //depot/projects/trustedbsd/base/usr.sbin/ndp/ndp.c#3 integrate .. //depot/projects/trustedbsd/base/usr.sbin/newsyslog/newsyslog.c#16 integrate .. //depot/projects/trustedbsd/base/usr.sbin/pccard/pccardd/cardd.h#5 integrate .. //depot/projects/trustedbsd/base/usr.sbin/pkg_install/lib/match.c#5 integrate .. //depot/projects/trustedbsd/base/usr.sbin/sysinstall/config.c#14 integrate Differences ... ==== //depot/projects/trustedbsd/base/MAINTAINERS#21 (text+ko) ==== @@ -1,4 +1,4 @@ -$FreeBSD: src/MAINTAINERS,v 1.76 2003/07/30 10:43:13 bp Exp $ +$FreeBSD: src/MAINTAINERS,v 1.77 2003/08/01 17:54:11 mbr Exp $ subsystem login notes ----------------------------- @@ -44,7 +44,7 @@ Keep in sync with -STABLE. etc/sendmail gshapiro Pre-commit review requested. Keep in sync with -STABLE. -dhcp murray Needs to pre-approve commits to contrib/isc-dhcp, so +dhcp mbr Needs to pre-approve commits to contrib/isc-dhcp, so changes can be made to the isc.org CVS repository. RELENG_4_* security-officer Requires Security Officer approval. libfetch des Advance notification requested. ==== //depot/projects/trustedbsd/base/Makefile#26 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile,v 1.286 2003/07/20 12:38:29 ru Exp $ +# $FreeBSD: src/Makefile,v 1.287 2003/08/06 11:06:38 ru Exp $ # # The user-driven targets are: # @@ -105,7 +105,7 @@ # world: upgrade_checks @echo "--------------------------------------------------------------" - @echo ">>> elf make world started on ${STARTTIME}" + @echo ">>> make world started on ${STARTTIME}" @echo "--------------------------------------------------------------" .if target(pre-world) @echo @@ -125,7 +125,8 @@ .endif @echo @echo "--------------------------------------------------------------" - @printf ">>> elf make world completed on `LC_ALL=C date`\n (started ${STARTTIME})\n" + @echo ">>> make world completed on `LC_ALL=C date`" + @echo " (started ${STARTTIME})" @echo "--------------------------------------------------------------" # @@ -198,7 +199,8 @@ .endfor .endfor @echo "--------------------------------------------------------------" - @printf ">>> make universe completed on `LC_ALL=C date`\n (started ${STARTTIME})\n" + @echo ">>> make universe completed on `LC_ALL=C date`" + @echo " (started ${STARTTIME})" @echo "--------------------------------------------------------------" KERNCONFS!= cd ${.CURDIR}/sys/${TARGET}/conf && \ ==== //depot/projects/trustedbsd/base/bin/ps/ps.1#15 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 -.\" $FreeBSD: src/bin/ps/ps.1,v 1.63 2003/06/12 16:53:55 scottl Exp $ +.\" $FreeBSD: src/bin/ps/ps.1,v 1.64 2003/08/05 10:31:28 brueffer Exp $ .\" .Dd April 18, 1994 .Dt PS 1 @@ -262,9 +262,9 @@ displayed using the ``%a6.15p'' format. Otherwise, the start time is displayed using the ``%e%b%y'' format. .It state -The state is given by a sequence of letters, for example, +The state is given by a sequence of characters, for example, .Dq Tn RWNA . -The first letter indicates the run state of the process: +The first character indicates the run state of the process: .Pp .Bl -tag -width indent -compact .It D ==== //depot/projects/trustedbsd/base/bin/sh/expand.c#12 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.44 2003/07/05 15:18:44 dds Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.45 2003/08/03 04:28:10 ache Exp $"); #include #include @@ -116,20 +116,13 @@ STATIC int collate_range_cmp(int, int); STATIC int -collate_range_cmp (int c1, int c2) +collate_range_cmp(int c1, int c2) { static char s1[2], s2[2]; - int ret; - c1 &= UCHAR_MAX; - c2 &= UCHAR_MAX; - if (c1 == c2) - return (0); s1[0] = c1; s2[0] = c2; - if ((ret = strcoll(s1, s2)) != 0) - return (ret); - return (c1 - c2); + return (strcoll(s1, s2)); } /* ==== //depot/projects/trustedbsd/base/contrib/isc-dhcp/client/dhclient.c#8 (text+ko) ==== @@ -42,7 +42,7 @@ #ifndef lint static char ocopyright[] = "$Id: dhclient.c,v 1.129.2.12 2002/11/07 23:26:38 dhankins Exp $ Copyright (c) 1995-2002 Internet Software Consortium. All rights reserved.\n" -"$FreeBSD: src/contrib/isc-dhcp/client/dhclient.c,v 1.27 2003/07/28 13:25:04 mbr Exp $\n"; +"$FreeBSD: src/contrib/isc-dhcp/client/dhclient.c,v 1.28 2003/08/06 15:19:52 mbr Exp $\n"; #endif /* not lint */ #include "dhcpd.h" @@ -217,7 +217,7 @@ } else if (!strcmp (argv [i], "-i")) { if (++i == argc) usage (); - polling_interval = (int)strtol(argv [i], + polling_interval = (int)strtol (argv [i], (char **)NULL, 10); if (polling_interval <= 0) { log_info ("Incorrect polling interval %d", @@ -257,8 +257,8 @@ log_fatal ("%s: interface name too long (max %ld)", argv [i], (long)strlen (argv [i])); strlcpy (tmp -> name, argv [i], IFNAMSIZ); - set_ieee802(tmp); - tmp->linkstatus = interface_active(tmp); + set_ieee80211 (tmp); + tmp -> linkstatus = interface_active (tmp); if (interfaces) { interface_reference (&tmp -> next, interfaces, MDL); @@ -286,16 +286,16 @@ /* first kill of any currently running client */ if (release_mode) { - if ((pidfd = fopen(path_dhclient_pid, "r")) != NULL) { - e = fscanf(pidfd, "%d", &oldpid); + if ((pidfd = fopen (path_dhclient_pid, "r")) != NULL) { + e = fscanf (pidfd, "%d", &oldpid); if (e != 0 && e != EOF) { if (oldpid) { - if (kill(oldpid, SIGKILL) == 0) - unlink(path_dhclient_pid); + if (kill (oldpid, SIGKILL) == 0) + unlink (path_dhclient_pid); } } - fclose(pidfd); + fclose (pidfd); } } @@ -412,7 +412,7 @@ INTERFACE_AUTOMATIC)) != INTERFACE_REQUESTED)) continue; - set_ieee802(ip); + set_ieee80211 (ip); script_init (ip -> client, "PREINIT", (struct string_list *)0); if (ip -> client -> alias) @@ -459,7 +459,7 @@ add_timeout (cur_time + random () % 5, state_link, client, 0, 0); #else - add_timeout(cur_time + random () % 5, + add_timeout (cur_time + random () % 5, state_reboot, client, 0, 0); #endif } @@ -1385,7 +1385,7 @@ int interval; int increase = 1; - if (interface_active(client -> interface) == 0) + if (interface_active (client -> interface) == 0) return; /* Figure out how long it's been since we started transmitting. */ @@ -1493,7 +1493,7 @@ struct client_lease *loop; struct client_lease *lp; - if (interface_active(client -> interface) == 0) + if (interface_active (client -> interface) == 0) return; loop = lp = client -> active; @@ -2809,8 +2809,8 @@ break; } client -> state = S_INIT; - if (interface_active(ip)) - state_reboot(client); + if (interface_active (ip)) + state_reboot (client); } } } @@ -2971,8 +2971,8 @@ client -> state = S_INIT; /* Set up a timeout to start the initialization process. */ - if (interface_active(ip)) { - add_timeout(cur_time + random () % 5, + if (interface_active (ip)) { + add_timeout (cur_time + random () % 5, state_reboot, client, 0, 0); } } @@ -3038,8 +3038,8 @@ break; case server_awaken: - if (interface_active(ip)) - state_reboot(client); + if (interface_active (ip)) + state_reboot (client); break; } } @@ -3188,32 +3188,32 @@ ifname = ip -> name; - if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) - log_fatal("Can't create interface_active socket"); + if ((sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) + log_fatal ("Can't create interface_active socket"); - (void) memset(&ifmr, 0, sizeof(ifmr)); - (void) strncpy(ifmr.ifm_name, ifname, sizeof(ifmr.ifm_name)); + (void) memset (&ifmr, 0, sizeof (ifmr)); + (void) strncpy (ifmr.ifm_name, ifname, sizeof (ifmr.ifm_name)); - if (ioctl(sock, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) { + if (ioctl (sock, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) { /* * Interface doesn't support SIOCGIFMEDIA, presume okay */ - close(sock); + close (sock); return (1); } - close(sock); + close (sock); if (ifmr.ifm_count == 0) { /* * this is unexpected (to me), but we'll just assume * that this means interface does not support SIOCGIFMEDIA */ - log_fatal("%s: no media types?", ifname); + log_fatal ("%s: no media types?", ifname); return (1); } if (ifmr.ifm_status & IFM_AVALID) { - if (ip->ieee802) { + if (ip -> ieee80211) { if ((IFM_TYPE(ifmr.ifm_active) == IFM_IEEE80211) && (ifmr.ifm_status & IFM_ACTIVE)) return (1); @@ -3231,7 +3231,7 @@ } #ifdef __FreeBSD__ -set_ieee802 (struct interface_info *ip) { +set_ieee80211 (struct interface_info *ip) { struct ieee80211req ireq; u_int8_t data[32]; @@ -3242,11 +3242,11 @@ ifname = ip -> name; - if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) - log_fatal("Can't create interface_active socket"); + if ((sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) + log_fatal ("Can't create interface_active socket"); - (void) memset(&ireq, 0, sizeof(ireq)); - (void) strncpy(ireq.i_name, ifname, sizeof(ireq.i_name)); + (void) memset (&ireq, 0, sizeof (ireq)); + (void) strncpy (ireq.i_name, ifname, sizeof (ireq.i_name)); ireq.i_data = &data; ireq.i_type = IEEE80211_IOC_SSID; ireq.i_val = -1; @@ -3254,15 +3254,15 @@ * If we can't get the SSID, * this isn't an 802.11 device. */ - if (ioctl(sock, SIOCG80211, &ireq) < 0) - ip->ieee802 = 0; + if (ioctl (sock, SIOCG80211, &ireq) < 0) + ip -> ieee80211 = 0; else { #ifdef DEBUG - printf("Device %s has 802.11\n", ifname); + printf ("Device %s has 802.11\n", ifname); #endif - ip->ieee802 = 1; + ip -> ieee80211 = 1; } - close(sock); + close (sock); } #endif /* __FreeBSD__ */ @@ -3275,29 +3275,29 @@ struct client_state *client; #ifdef DEBUG - printf("Polling interface status\n"); + printf ("Polling interface status\n"); #endif for (ip = interfaces; ip; ip = ip -> next) { - if (ip->linkstatus == 0 || doinitcheck == 0) { - if (interface_active(ip)) { + if (ip -> linkstatus == 0 || doinitcheck == 0) { + if (interface_active (ip)) { #ifdef DEBUG - printf("%s: Found Link on interface\n", ip->name); + printf ("%s: Found Link on interface\n", ip -> name); #endif for (client = ip -> client; client; client = client -> next) { - add_timeout(cur_time + random () % 5, + add_timeout (cur_time + random () % 5, state_reboot, client, 0, 0); } - ip->linkstatus = 1; + ip -> linkstatus = 1; } else { #ifdef DEBUG - printf("%s: No Link on interface\n", ip->name); + printf ("%s: No Link on interface\n", ip -> name); #endif for (client = ip -> client; client; client = client -> next) { - cancel_timeout(state_init, client); - cancel_timeout(send_discover, client); - cancel_timeout(send_request, client); + cancel_timeout (state_init, client); + cancel_timeout (send_discover, client); + cancel_timeout (send_request, client); /* * XXX without this, dhclient does * not poll on a interface if there @@ -3305,18 +3305,18 @@ * time */ if (client -> state == S_INIT) { - add_timeout(cur_time + polling_interval, + add_timeout (cur_time + polling_interval, state_link, client, 0, 0); } } - ip->linkstatus = 0; + ip -> linkstatus = 0; } } else { - if (interface_active(ip) == 0) { + if (interface_active (ip) == 0) { #ifdef DEBUG - printf("%s: Lost Link on interface\n", ip->name); + printf ("%s: Lost Link on interface\n", ip -> name); #endif - ip->linkstatus = 0; + ip -> linkstatus = 0; } } } ==== //depot/projects/trustedbsd/base/contrib/isc-dhcp/includes/dhcpd.h#7 (text+ko) ==== @@ -40,7 +40,7 @@ * see ``http://www.vix.com''. To learn more about Nominum, Inc., see * ``http://www.nominum.com''. * - * $FreeBSD: src/contrib/isc-dhcp/includes/dhcpd.h,v 1.3 2003/07/28 11:49:07 mbr Exp $ + * $FreeBSD: src/contrib/isc-dhcp/includes/dhcpd.h,v 1.4 2003/08/06 15:19:52 mbr Exp $ */ #ifndef __CYGWIN32__ @@ -781,7 +781,7 @@ char name [IFNAMSIZ]; /* Its name... */ int linkstatus; /* Link status */ - int ieee802; /* True if media is ieee802 */ + int ieee80211; /* True if media is ieee80211 */ int index; /* Its index. */ int rfdesc; /* Its read file descriptor. */ int wfdesc; /* Its write file descriptor, if ==== //depot/projects/trustedbsd/base/etc/mtree/BSD.local.dist#18 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.99 2003/07/29 08:02:26 ache Exp $ +# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.100 2003/08/05 05:42:07 mtm Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -277,6 +277,8 @@ .. af_ZA.ISO8859-15 .. + am_ET.UTF-8 + .. bg_BG.CP1251 .. ca_ES.ISO8859-1 ==== //depot/projects/trustedbsd/base/etc/mtree/BSD.usr.dist#28 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.277 2003/07/29 08:02:26 ache Exp $ +# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.278 2003/08/05 05:42:07 mtm Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -337,6 +337,8 @@ .. af_ZA.ISO8859-15 .. + am_ET.UTF-8 + .. bg_BG.CP1251 .. ca_ES.ISO8859-1 @@ -667,6 +669,8 @@ .. af_ZA.ISO8859-15 .. + am_ET.UTF-8 + .. bg_BG.CP1251 .. ca_ES.ISO8859-1 ==== //depot/projects/trustedbsd/base/etc/rc.d/Makefile#13 (text+ko) ==== @@ -1,5 +1,5 @@ # $NetBSD: Makefile,v 1.16 2001/01/14 15:37:22 minoura Exp $ -# $FreeBSD: src/etc/rc.d/Makefile,v 1.23 2003/07/30 20:05:20 mtm Exp $ +# $FreeBSD: src/etc/rc.d/Makefile,v 1.24 2003/08/06 00:35:13 mtm Exp $ .include @@ -19,7 +19,7 @@ ipnat ipsec ipxrouted isdnd \ jail \ kadmind kerberos keyserv kldxref kpasswdd \ - ldconfig local localdaemons lomac lpd \ + ldconfig local localdaemons localpkg lomac lpd \ motd mountcritlocal mountcritremote \ mountd moused mroute6d mrouted msgs \ named netif netoptions \ ==== //depot/projects/trustedbsd/base/etc/rc.d/localdaemons#3 (text+ko) ==== @@ -1,12 +1,12 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/localdaemons,v 1.2 2003/05/05 15:38:41 mtm Exp $ +# $FreeBSD: src/etc/rc.d/localdaemons,v 1.3 2003/08/06 00:35:13 mtm Exp $ # # PROVIDE: localdaemons # REQUIRE: abi # BEFORE: securelevel -# KEYWORD: FreeBSD shutdown +# KEYWORD: FreeBSD nostart . /etc/rc.subr ==== //depot/projects/trustedbsd/base/etc/rc.d/netoptions#2 (text+ko) ==== @@ -1,10 +1,10 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/netoptions,v 1.138 2003/06/29 05:09:48 mtm Exp $ +# $FreeBSD: src/etc/rc.d/netoptions,v 1.139 2003/08/06 00:35:13 mtm Exp $ # # PROVIDE: netoptions -# REQUIRE: localdaemons +# REQUIRE: localpkg # BEFORE: securelevel # KEYWORD: FreeBSD ==== //depot/projects/trustedbsd/base/games/fortune/datfiles/Makefile#5 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 4/19/94 -# $FreeBSD: src/games/fortune/datfiles/Makefile,v 1.30 2003/06/19 07:02:00 murray Exp $ +# $FreeBSD: src/games/fortune/datfiles/Makefile,v 1.32 2003/08/04 21:31:53 ache Exp $ FILES= fortunes fortunes2 freebsd-tips murphy startrek zippy BLDS= fortunes.dat fortunes2.dat murphy.dat startrek.dat zippy.dat \ @@ -37,6 +37,6 @@ strfile -Csx ${.ALLSRC} ${.TARGET} fortunes-o: fortunes-o.${TYPE} - tr a-zA-Z n-za-mN-ZA-M < ${.ALLSRC} > ${.TARGET} + LC_ALL=C tr a-zA-Z n-za-mN-ZA-M < ${.ALLSRC} > ${.TARGET} .include ==== //depot/projects/trustedbsd/base/games/fortune/datfiles/freebsd-tips#13 (text+ko) ==== @@ -1,5 +1,5 @@ This fortune brought to you by: -$FreeBSD: src/games/fortune/datfiles/freebsd-tips,v 1.30 2003/02/15 09:11:25 robert Exp $ +$FreeBSD: src/games/fortune/datfiles/freebsd-tips,v 1.31 2003/08/02 20:36:28 schweikh Exp $ % Having trouble using fetch through a firewall? Try setting the environment variable FTP_PASSIVE_MODE to yes, and see fetch(3) for more details. @@ -439,7 +439,7 @@ "sockstat -4l" for IPv4, and "sockstat -l" for IPv4 and IPv6. -- Dru % -Can't remember is you've installed a certain port or not? Try "pkg_info | +Can't remember if you've installed a certain port or not? Try "pkg_info | grep port_name". -- Dru % @@ -449,7 +449,7 @@ To repeat the last command in the C shell, type "!!". -- Dru % -Need to quickly empty a file? Use "echo > filename". +Need to quickly empty a file? Use ": > filename". -- Dru % To see all of the directories on your FreeBSD system, type @@ -466,10 +466,6 @@ ifconfig -a -- Dru % -You can save your kernel startup configuration with kget(8). The -Configuration can be edited at boot time with 'boot -c' command in loader. -See boot(8), loader(8) for details. -% You can open up a new split-screen window in (n)vi with :N or :E and then use ^w to switch between the two. % ==== //depot/projects/trustedbsd/base/games/fortune/strfile/strfile.c#5 (text+ko) ==== @@ -46,7 +46,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/games/fortune/strfile/strfile.c,v 1.22 2003/05/05 09:52:25 obrien Exp $"); +__FBSDID("$FreeBSD: src/games/fortune/strfile/strfile.c,v 1.23 2003/08/03 19:44:36 ache Exp $"); # include # include @@ -131,7 +131,7 @@ void add_offset(FILE *, long); int cmp_str(const void *, const void *); -static int collate_range_cmp(int, int); +static int stable_collate_range_cmp(int, int); void do_order(void); void getargs(int, char **); void randomize(void); @@ -367,16 +367,12 @@ Tbl.str_flags |= STR_ORDERED; } -static int collate_range_cmp (c1, c2) +static int stable_collate_range_cmp(c1, c2) int c1, c2; { static char s1[2], s2[2]; int ret; - c1 &= UCHAR_MAX; - c2 &= UCHAR_MAX; - if (c1 == c2) - return (0); s1[0] = c1; s2[0] = c2; if ((ret = strcoll(s1, s2)) != 0) @@ -404,8 +400,8 @@ c1 = (unsigned char) p1->first; c2 = (unsigned char) p2->first; - if ((r = collate_range_cmp(c1, c2)) != 0) - return r; + if ((r = stable_collate_range_cmp(c1, c2)) != 0) + return (r); (void) fseek(Sort_1, p1->pos, 0); (void) fseek(Sort_2, p2->pos, 0); @@ -424,8 +420,8 @@ if (isupper(c2)) c2 = tolower(c2); } - if ((r = collate_range_cmp(c1, c2)) != 0) - return r; + if ((r = stable_collate_range_cmp(c1, c2)) != 0) + return (r); SET_N(n1, c1); SET_N(n2, c2); c1 = getc(Sort_1); @@ -435,7 +431,7 @@ c1 = 0; if (IS_END(c2, n2)) c2 = 0; - return collate_range_cmp(c1, c2); + return (stable_collate_range_cmp(c1, c2)); } /* ==== //depot/projects/trustedbsd/base/gnu/lib/libregex/regex.c#2 (text+ko) ==== @@ -19,6 +19,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* $FreeBSD: src/gnu/lib/libregex/regex.c,v 1.10 2003/08/03 04:36:09 ache Exp $ */ + /* AIX requires this to be the first thing in the file. */ #if defined (_AIX) && !defined (REGEX_MALLOC) #pragma alloca @@ -1114,19 +1116,14 @@ regnum_t regnum)); #ifdef __FreeBSD__ -static int collate_range_cmp (a, b) +static int collate_range_cmp(a, b) int a, b; { - int r; static char s[2][2]; - if ((unsigned char)a == (unsigned char)b) - return 0; s[0][0] = a; s[1][0] = b; - if ((r = strcoll(s[0], s[1])) == 0) - r = (unsigned char)a - (unsigned char)b; - return r; + return (strcoll(s[0], s[1])); } #endif ==== //depot/projects/trustedbsd/base/gnu/usr.bin/groff/Makefile.inc#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/gnu/usr.bin/groff/Makefile.inc,v 2.7 2003/05/01 13:22:18 ru Exp $ +# $FreeBSD: src/gnu/usr.bin/groff/Makefile.inc,v 2.9 2003/08/04 21:31:52 ache Exp $ BINDIR?= /usr/bin SHELL= /bin/sh @@ -125,7 +125,7 @@ -e "s;@VERSION@;$(version)$(revision);g" \ -e "s;@MDATE@;`$(SHELL) ${GROFF_DIST}/mdate.sh $<`;g" \ -e "s;@g@;$(g);g" \ - -e "s;@G@;`echo $(g) | tr [a-z] [A-Z]`;g" \ + -e "s;@G@;`echo $(g) | LC_ALL=C tr a-z A-Z`;g" \ $< >$@ .SUFFIXES: .sh .pl >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 6 13:20:34 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3FB9137B40B; Wed, 6 Aug 2003 13:20:31 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D4AC837B408 for ; Wed, 6 Aug 2003 13:20:30 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0FDFF43FB1 for ; Wed, 6 Aug 2003 13:20:28 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h76KKR0U083194 for ; Wed, 6 Aug 2003 13:20:27 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h76KK76K082721 for perforce@freebsd.org; Wed, 6 Aug 2003 13:20:07 -0700 (PDT) Date: Wed, 6 Aug 2003 13:20:07 -0700 (PDT) Message-Id: <200308062020.h76KK76K082721@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 35651 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 20:20:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=35651 Change 35651 by rwatson@rwatson_paprika on 2003/08/06 13:19:30 Integrate the ACL development branch -- in particular, vn_open/vn_open_cred now have an additional argument. Affected files ... .. //depot/projects/trustedbsd/acl/bin/cp/cp.1#2 integrate .. //depot/projects/trustedbsd/acl/bin/cp/cp.c#2 integrate .. //depot/projects/trustedbsd/acl/bin/cp/extern.h#2 integrate .. //depot/projects/trustedbsd/acl/bin/cp/utils.c#2 integrate .. //depot/projects/trustedbsd/acl/bin/getfacl/getfacl.1#3 integrate .. //depot/projects/trustedbsd/acl/bin/getfacl/getfacl.c#6 integrate .. //depot/projects/trustedbsd/acl/bin/mv/mv.c#3 integrate .. //depot/projects/trustedbsd/acl/bin/mv/pathnames.h#2 delete .. //depot/projects/trustedbsd/acl/bin/setfacl/setfacl.1#3 integrate .. //depot/projects/trustedbsd/acl/bin/setfacl/setfacl.c#5 integrate .. //depot/projects/trustedbsd/acl/bin/setfacl/setfacl.h#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/Makefile#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/alpha/_fpmath.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/alpha/arith.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/alpha/gen/makecontext.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/amd64/Makefile.inc#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/SYS.h#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/_fpmath.h#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/arith.h#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/Makefile.inc#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/_setjmp.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/fabs.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/fpgetmask.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/fpgetprec.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/fpgetround.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/fpgetsticky.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/fpsetmask.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/fpsetprec.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/fpsetround.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/fpsetsticky.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/frexp.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/infinity.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/isinf.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/ldexp.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/makecontext.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/modf.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/setjmp.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/signalcontext.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/gen/sigsetjmp.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/net/Makefile.inc#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/net/htonl.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/net/htons.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/net/ntohl.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/net/ntohs.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/stdlib/gdtoa.mk#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/Makefile.inc#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/brk.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/cerror.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/exect.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/pipe.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/ptrace.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/reboot.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/sbrk.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/setlogin.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/sigreturn.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/amd64/sys/vfork.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/compat-43/sigpause.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/db/btree/bt_put.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gdtoa/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gdtoa/_ldtoa.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/gdtoa/glue.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gdtoa/machdep_ldisQ.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gdtoa/machdep_ldisx.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/Makefile.inc#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/arc4random.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/check_utility_compat.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/confstr.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/devname.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/devname.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/dlfcn.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/dlinfo.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/exec.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/exec.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/fmtcheck.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/fmtmsg.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/fpclassify.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/fstab.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/fts.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/getbootfile.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/getfsent.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/getgrent.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/getgrent.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/getpwent.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/getpwent.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/getusershell.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/isgreater.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/opendir.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/popen.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/raise.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/rfork_thread.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/setproctitle.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/sigsetops.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/statvfs.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/time.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/time.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/ttyname.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/tzset.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gen/wordexp.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/gmon/gmon.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/i386/_fpmath.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/i386/arith.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/i386/gen/alloca.S#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/i386/gen/ldexp.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/i386/gen/rfork_thread.S#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/i386/gen/signalcontext.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/i386/string/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/i386/string/wcschr.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/i386/sys/i386_get_ldt.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/i386/sys/i386_vm86.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/_fpmath.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/arith.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/gen/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/gen/_setjmp.S#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/gen/makecontext.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/ia64/gen/signalcontext.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/ia64/sys/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/sys/Ovfork.S#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/sys/brk.S#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/sys/fork.S#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/sys/getcontext.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/ia64/sys/pipe.S#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/sys/sbrk.S#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/sys/setlogin.S#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/ia64/sys/swapcontext.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/include/namespace.h#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/include/nss_tls.h#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/include/un-namespace.h#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/collcmp.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/fix_grouping.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/frune.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/gb18030.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/locale/gbk.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/locale/ldpart.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/ldpart.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/lmessages.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/lmonetary.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/lnumeric.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/localeconv.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/mbrune.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/nl_langinfo.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/setinvalidrune.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/setlocale.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/setlocale.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/setlocale.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/setrunelocale.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/table.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/utf2.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/wcrtomb.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/locale/wcstod.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/getaddrinfo.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/gethostbydns.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/gethostbyname.3#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/gethostnamadr.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/getnameinfo.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/getnetnamadr.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/hesiod.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/if_nametoindex.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/ip6opt.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/name6.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/nsdispatch.3#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/nsdispatch.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/nslexer.l#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/nsparser.y#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/net/nss_backends.h#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/net/nss_compat.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/nls/msgcat.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/posix1e/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/posix1e/acl_to_text.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/posix1e/mac.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/posix1e/mac.conf.5#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/posix1e/mac_prepare.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/powerpc/_fpmath.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/powerpc/arith.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/rpc/rpc_soc.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/rpc/svc_generic.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/rpc/svc_vc.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sparc64/_fpmath.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sparc64/arith.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sparc64/gen/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sparc64/gen/_ctx_start.S#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/sparc64/gen/makecontext.c#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/stdio/fflush.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/floatio.h#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/fputws.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/scanf.3#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/vfprintf.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/vfscanf.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/vfwprintf.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/vfwscanf.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/vsnprintf.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/wprintf.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdio/wscanf.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdlib/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdlib/alloca.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdlib/grantpt.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdlib/malloc.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdlib/random.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdlib/realpath.3#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdlib/realpath.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdlib/strtod.3#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdtime/strptime.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/stdtime/timelocal.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/string/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/string/index.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/string/rindex.3#3 delete .. //depot/projects/trustedbsd/acl/lib/libc/string/strchr.3#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/string/strerror.c#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/string/strlcat.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/string/strlcpy.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/string/strmode.3#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/string/strrchr.3#2 delete .. //depot/projects/trustedbsd/acl/lib/libc/sys/Makefile.inc#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/close.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/connect.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/extattr_get_file.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/getfsstat.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/getsockname.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/ioctl.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/jail.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/kldload.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/kqueue.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/kse.2#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/lio_listio.2#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/madvise.2#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/mount.2#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/ntp_adjtime.2#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/sys/ntp_gettime.2#1 branch .. //depot/projects/trustedbsd/acl/lib/libc/sys/rfork.2#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/sched_setparam.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/sched_setscheduler.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/sendfile.2#4 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/sigpending.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/sigprocmask.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/sigsuspend.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/stat.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/uuidgen.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/sys/vfork.2#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/xdr/xdr_float.c#2 integrate .. //depot/projects/trustedbsd/acl/lib/libc/xdr/xdr_rec.c#3 integrate .. //depot/projects/trustedbsd/acl/lib/libc/yp/yplib.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/alpha-gdbstub.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/api_up1000.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/autoconf.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/busdma_machdep.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/busspace.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/clock.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/cpuconf.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/critical.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/db_disasm.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/db_interface.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_1000a.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_2100_a50.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_2100_a500.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_3000_300.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_3000_500.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_axppci_33.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_eb164.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_eb64plus.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_kn20aa.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_kn300.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_kn8ae.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_st550.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dec_st6600.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/dump_machdep.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/elf_machdep.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/fp_emulate.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/genassym.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/ieee_float.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/in_cksum.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/interrupt.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/machdep.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/mem.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/mp_machdep.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/pmap.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/prom.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/promcons.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/sgmap.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/support.s#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/sys_machdep.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/trap.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/alpha/vm_machdep.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/conf/GENERIC#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/conf/NOTES#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/_limits.h#1 branch .. //depot/projects/trustedbsd/acl/sys/alpha/include/_types.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/alpha_cpu.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/bus.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/critical.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/endian.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/limits.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/param.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/pmap.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/proc.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/include/ucontext.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/isa/isa.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/isa/isa_dma.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/isa/mcclock_isa.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/linux/linux.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/linux/linux_dummy.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/linux/linux_genassym.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/linux/linux_machdep.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/linux/linux_sysvec.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/mcbus/mcbus.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/mcbus/mcmem.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/mcbus/mcpcia.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/osf1/imgact_osf1.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/osf1/osf1_ioctl.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/osf1/osf1_misc.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/osf1/osf1_mount.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/osf1/osf1_signal.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/osf1/osf1_sysvec.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/apecs.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/apecs_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/bwx.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/cia.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/cia_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/irongate.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/irongate_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/lca.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/lca_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/pcibus.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/swiz.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/t2.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/t2_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/tsunami.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/pci/tsunami_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/tlsb/dwlpx.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/tlsb/gbus.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/tlsb/kftxx.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/tlsb/mcclock_tlsb.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/tlsb/tlsb.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/tlsb/tlsbcpu.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/tlsb/tlsbmem.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/alpha/tlsb/zs_tlsb.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/amd64/Makefile#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/acpica/OsdEnvironment.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/acpica/acpi_machdep.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/acpica/acpi_wakeup.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/amd64-gdbstub.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/amd64_mem.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/atomic.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/autoconf.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/busdma_machdep.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/cpu_switch.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/critical.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/db_disasm.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/db_interface.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/db_trace.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/dump_machdep.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/elf_machdep.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/exception.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/genassym.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/identcpu.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/in_cksum.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/initcpu.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/legacy.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/locore.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/machdep.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/mem.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/nexus.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/pmap.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/sigtramp.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/support.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/sys_machdep.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/trap.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/tsc.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/amd64/vm_machdep.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/compile/.cvsignore#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/conf/GENERIC#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/conf/GENERIC.hints#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/conf/Makefile#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/conf/gethints.awk#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/Makefile#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_exception.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_genassym.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_misc.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_proto.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_signal.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_signal.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_sigtramp.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_syscall.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_syscall.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_syscalls.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_sysent.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_sysvec.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/ia32_util.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/syscalls.conf#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/ia32/syscalls.master#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/_inttypes.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/_limits.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/_stdint.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/_types.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/acpica_machdep.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/asm.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/asmacros.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/atomic.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/bus.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/bus_amd64.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/bus_dma.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/bus_memio.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/bus_pio.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/clock.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/cpu.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/cpufunc.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/cputypes.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/critical.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/db_machdep.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/elf.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/endian.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/exec.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/float.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/floatingpoint.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/frame.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/ieeefp.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/in_cksum.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/kse.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/legacyvar.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/limits.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/md_var.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/metadata.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/mutex.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/npx.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/param.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/pc/display.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/pcb.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/pcb_ext.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/pci_cfgreg.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/pcpu.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/pmap.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/proc.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/profile.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/psl.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/ptrace.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/reg.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/reloc.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/resource.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/runq.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/segments.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/setjmp.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/sigframe.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/signal.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/smp.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/specialreg.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/stdarg.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/sysarch.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/trap.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/tss.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/ucontext.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/varargs.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/include/vmparam.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/clock.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/icu.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/icu_ipl.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/icu_vector.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/intr_machdep.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/intr_machdep.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/isa.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/isa.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/isa_dma.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/isa_dma.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/ithread.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/npx.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/timerreg.h#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/isa/vector.S#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/pci/pci_bus.c#1 branch .. //depot/projects/trustedbsd/acl/sys/amd64/pci/pci_cfgreg.c#1 branch .. //depot/projects/trustedbsd/acl/sys/arm/include/_limits.h#1 branch .. //depot/projects/trustedbsd/acl/sys/arm/include/_types.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/arm/include/endian.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/arm/include/limits.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/Makefile#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/alpha/boot1/boot1.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/alpha/libalpha/bootinfo.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/alpha/libalpha/elf_freebsd.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/alpha/libalpha/srmdisk.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/arc/lib/arcdisk.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/arc/lib/bootinfo.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/arc/lib/devicename.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/arc/lib/elf_freebsd.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/common/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/common/bootstrap.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/common/commands.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/common/help.common#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/common/load_elf.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/common/load_elf32.c#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/common/load_elf64.c#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/common/loader.8#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/arch/ia64/ldscript.ia64#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/copy.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/delay.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/efi_console.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/efiboot.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/efifs.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/elf_freebsd.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/libefi.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/module.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/libefi/time.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/loader/conf.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/efi/loader/main.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ficl/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ficl/loader.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/forth/beastie.4th#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/forth/frames.4th#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/forth/loader.conf#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/forth/screen.4th#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/i386/Makefile.inc#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/boot0/boot0.s#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/boot2/Makefile#4 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/boot2/boot2.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/btx/Makefile.inc#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/i386/btx/btxldr/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/btx/lib/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/kgzldr/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/amd64_tramp.S#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/biosacpi.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/bioscd.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/biosdisk.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/biossmap.c#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/bootinfo.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/bootinfo32.c#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/bootinfo64.c#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/elf32_freebsd.c#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/elf64_freebsd.c#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/elf_freebsd.c#2 delete .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/i386_module.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/libi386.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/libi386/pxe.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/loader/Makefile#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/loader/conf.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/i386/loader/loader.rc#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/i386/loader/main.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/Makefile#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/copy.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/delay.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/elf_freebsd.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/exit.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/module.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/pal_stub.S#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/pal_stub.s#2 delete .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/skiconsole.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/libski/time.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/skiload/Makefile#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/skiload/conf.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/skiload/ldscript.ia64#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/skiload/main.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ia64/skiload/start.S#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/ofw/libofw/devicename.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ofw/libofw/elf_freebsd.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/ofw/libofw/ofw_disk.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/boot0.5/start.s#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/boot2/asm.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/boot2/disk.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/boot2/sys.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/btx/lib/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/kgzldr/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/libpc98/Makefile#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/libpc98/biosdisk.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/libpc98/i386_module.c#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/pc98/loader/Makefile#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/pc98/loader/conf.c#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/pc98/loader/help.pc98#1 branch .. //depot/projects/trustedbsd/acl/sys/boot/powerpc/loader/metadata.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/powerpc/loader/start.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/sparc64/boot1/boot1.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/boot/sparc64/loader/main.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/boot/sparc64/loader/metadata.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/cam/cam.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/cam/cam_ccb.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/cam/cam_periph.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/cam_periph.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/cam/cam_queue.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/cam_sim.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/cam_xpt.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_all.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_all.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_cd.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_ch.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_ch.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_da.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_low.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_low_pisa.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_pass.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_pt.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_sa.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_ses.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_targ_bh.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/cam/scsi/scsi_target.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/coda/cnode.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/coda/coda_fbsd.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/coda/coda_namecache.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/coda/coda_psdev.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/coda/coda_subr.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/coda/coda_venus.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/coda/coda_vfsops.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/coda/coda_vfsops.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/coda/coda_vnops.c#5 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linprocfs/linprocfs.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_file.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_getcwd.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_ioctl.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_ioctl.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_ipc.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_mib.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_mib.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_misc.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_signal.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_socket.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_stats.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_sysctl.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_uid16.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/linux/linux_util.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/pecoff/imgact_pecoff.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/imgact_svr4.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_fcntl.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_filio.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_ioctl.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_ipc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_misc.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_resource.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_signal.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_socket.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_socket.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_sockio.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_stat.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_stream.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_sysvec.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_termios.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/compat/svr4/svr4_ttold.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/conf/Makefile.alpha#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/Makefile.amd64#1 branch .. //depot/projects/trustedbsd/acl/sys/conf/Makefile.i386#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/Makefile.ia64#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/Makefile.pc98#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/Makefile.powerpc#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/Makefile.sparc64#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/Makefile.x86_64#3 delete .. //depot/projects/trustedbsd/acl/sys/conf/NOTES#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/files#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/files.alpha#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/files.amd64#1 branch .. //depot/projects/trustedbsd/acl/sys/conf/files.i386#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/files.ia64#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/files.pc98#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/files.powerpc#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/files.sparc64#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/files.x86_64#3 delete .. //depot/projects/trustedbsd/acl/sys/conf/kern.mk#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/kern.post.mk#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/kern.pre.mk#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/kmod.mk#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/ldscript.amd64#1 branch .. //depot/projects/trustedbsd/acl/sys/conf/ldscript.ia64#2 integrate .. //depot/projects/trustedbsd/acl/sys/conf/ldscript.sparc64#2 integrate .. //depot/projects/trustedbsd/acl/sys/conf/majors#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/newvers.sh#2 integrate .. //depot/projects/trustedbsd/acl/sys/conf/options#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/options.alpha#2 integrate .. //depot/projects/trustedbsd/acl/sys/conf/options.amd64#1 branch .. //depot/projects/trustedbsd/acl/sys/conf/options.i386#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/options.ia64#2 integrate .. //depot/projects/trustedbsd/acl/sys/conf/options.pc98#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/options.powerpc#3 integrate .. //depot/projects/trustedbsd/acl/sys/conf/options.sparc64#2 integrate .. //depot/projects/trustedbsd/acl/sys/conf/options.x86_64#2 delete .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/CHANGES.txt#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acapps.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acconfig.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acdebug.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acdisasm.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acdispat.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acdos16.h#2 delete .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acefi.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acenv.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acevents.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acexcep.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acfreebsd.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acgcc.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acglobal.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/achware.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acinterp.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/aclocal.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acmacros.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acnamesp.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acobject.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acoutput.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acparser.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acpi.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acpica_prep.sh#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acpiosxf.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acpixf.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acresrc.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acstruct.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/actables.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/actbl.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/actbl1.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/actbl2.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/actbl71.h#2 delete .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/actypes.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/acutils.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/amlcode.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/amlresrc.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dbcmds.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dbdisply.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dbexec.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dbfileio.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dbhistry.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dbinput.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dbstats.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dbutils.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dbxface.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dmbuffer.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dmnames.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dmobject.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dmopcode.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dmresrc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dmresrcl.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dmresrcs.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dmutils.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dmwalk.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dsfield.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dsinit.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dsmethod.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dsmthdat.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dsobject.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dsopcode.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dsutils.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dswexec.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dswload.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dswscope.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/dswstate.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evevent.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evgpe.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evgpeblk.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evmisc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evregion.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evrgnini.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evsci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evxface.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evxfevnt.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/evxfregn.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exconfig.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exconvrt.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/excreate.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exdump.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exfield.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exfldio.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exmisc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exmutex.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exnames.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exoparg1.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exoparg2.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exoparg3.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exoparg6.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exprep.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exregion.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exresnte.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exresolv.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exresop.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exstore.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exstoren.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exstorob.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exsystem.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/exutils.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/hwacpi.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/hwgpe.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/hwregs.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/hwsleep.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/hwtimer.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsaccess.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsalloc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsdump.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsdumpdv.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nseval.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsinit.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsload.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsnames.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsobject.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsparse.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nssearch.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsutils.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nswalk.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsxfeval.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsxfname.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/nsxfobj.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/psargs.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/psfind.c#2 delete .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/psopcode.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/psparse.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/psscope.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/pstree.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/psutils.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/pswalk.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/psxface.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rsaddr.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rscalc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rscreate.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rsdump.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rsio.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rsirq.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rslist.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rsmemory.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rsmisc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rsutils.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/rsxface.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/tbconvrt.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/tbget.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/tbgetall.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/tbinstal.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/tbrsdt.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/tbutils.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/tbxface.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/tbxfroot.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utalloc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utclib.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utcopy.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utdebug.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utdelete.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/uteval.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utglobal.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utinit.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utmath.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utmisc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utobject.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/acpica/utxface.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/COPYRIGHT#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/README#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/ah.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/ah_desc.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/ah_devid.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/freebsd/ah_if.m#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/freebsd/ah_osdep.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/freebsd/ah_osdep.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/freebsd/i386-elf.hal.o.uu#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/freebsd/opt_ah.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/ath/version.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/dev/fla/fla.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/dev/oltr/if_oltr.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/Makefile#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_bstream.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_bstream.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_context.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_context.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_env.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_env.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_scoreboard.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_scoreboard.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_self.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_self.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_self_context.s#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_step.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_str.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_str.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_swap.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_swap.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_trace.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_trace.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_ttrace.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_ttrace.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_uinfo.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_uinfo.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_utable.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/src/uwx_utable.h#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/test/Makefile#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/test/dump_context.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ia64/libuwx/test/dumpmyself.c#1 branch .. //depot/projects/trustedbsd/acl/sys/contrib/ipfilter/netinet/ip_state.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/blowfish/arch/i386/bf_enc_586.S#2 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/blowfish/bf_enc.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/blowfish/bf_skey.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/cast128/cast128.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/des/arch/i386/des_enc.S#2 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/md5.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/rc4/rc4.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/rijndael/rijndael-alg-fst.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/rijndael/rijndael-api-fst.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/sha1.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/crypto/sha2/sha2.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_access.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_break.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_command.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_elf.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_examine.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_expr.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_input.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_kld.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_lex.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_output.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_print.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_ps.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_run.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_sym.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_sysctl.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_trap.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_variables.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_watch.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/db_write_cmd.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/ddb/ddb.h#4 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aac/aac.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aac/aac_cam.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aac/aac_debug.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aac/aac_disk.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aac/aac_pci.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aac/aacreg.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aac/aacvar.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/Osd/OsdDebug.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/Osd/OsdHardware.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/Osd/OsdMemory.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/Osd/OsdStream.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/Osd/OsdSynch.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/Osd/OsdTable.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/acpi.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/acpi_button.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/acpi_ec.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/acpi_isab.c#1 branch .. //depot/projects/trustedbsd/acl/sys/dev/acpica/acpi_pci.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/acpi_pci_link.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/acpi_pcib.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/acpi_timer.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/acpica/acpivar.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/adlink/adlink.c#1 branch .. //depot/projects/trustedbsd/acl/sys/dev/advansys/adv_eisa.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/advansys/adv_isa.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/advansys/adv_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/advansys/adw_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/advansys/adwcam.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aha/aha.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aha/aha_isa.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aha/aha_mca.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ahb/ahb.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic/aic.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic/aic_pccard.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/ahc_eisa.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/ahc_pci.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/ahd_pci.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic7770.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic79xx.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic79xx.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic79xx.reg#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic79xx.seq#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic79xx_inline.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic79xx_osm.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic79xx_pci.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic7xxx.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic7xxx.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic7xxx.reg#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic7xxx.seq#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic7xxx_inline.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic7xxx_osm.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/aic7xxx/aic7xxx_pci.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/amd/amd.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/amr/amr.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/dev/amr/amr_cam.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/amr/amr_compat.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/amr/amr_disk.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/amr/amr_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/amr/amrvar.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/an/if_an.c#5 integrate .. //depot/projects/trustedbsd/acl/sys/dev/an/if_an_isa.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/an/if_an_pccard.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/dev/an/if_an_pci.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ar/if_ar.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ar/if_ar_isa.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ar/if_ar_pci.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ar/if_arregs.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/asr/asr.c#4 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-all.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-all.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-card.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-cbus.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-chipset.c#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-disk.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-disk.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-dma.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-isa.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-pci.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-pci.h#2 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-raid.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/ata-raid.h#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/atapi-all.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/atapi-cam.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/atapi-cd.c#3 integrate .. //depot/projects/trustedbsd/acl/sys/dev/ata/atapi-fd.c#3 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 6 14:20:46 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 18D0437B404; Wed, 6 Aug 2003 14:20:46 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C213337B401 for ; Wed, 6 Aug 2003 14:20:45 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 52B9843F75 for ; Wed, 6 Aug 2003 14:20:45 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h76LKj0U003278 for ; Wed, 6 Aug 2003 14:20:45 -0700 (PDT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h76LKi3d003275 for perforce@freebsd.org; Wed, 6 Aug 2003 14:20:44 -0700 (PDT) Date: Wed, 6 Aug 2003 14:20:44 -0700 (PDT) Message-Id: <200308062120.h76LKi3d003275@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 35655 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 21:20:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=35655 Change 35655 by rwatson@rwatson_paprika on 2003/08/06 14:20:05 Various cleanups and fixes relating to pushing the umask handling down into the file systems. Affected files ... .. //depot/projects/trustedbsd/acl/sys/coda/coda_vnops.c#6 edit .. //depot/projects/trustedbsd/acl/sys/fs/devfs/devfs_vnops.c#6 edit .. //depot/projects/trustedbsd/acl/sys/fs/msdosfs/msdosfs_vnops.c#6 edit .. //depot/projects/trustedbsd/acl/sys/kern/kern_alq.c#5 edit .. //depot/projects/trustedbsd/acl/sys/kern/kern_sig.c#6 edit .. //depot/projects/trustedbsd/acl/sys/kern/vfs_syscalls.c#5 edit .. //depot/projects/trustedbsd/acl/sys/nfsclient/nfs_vnops.c#7 edit Differences ... ==== //depot/projects/trustedbsd/acl/sys/coda/coda_vnops.c#6 (text+ko) ==== @@ -1150,7 +1150,7 @@ /* All creates are exclusive XXX */ /* I'm assuming the 'mode' argument is the file mode bits XXX */ - mode ~= cmask; + mode = mode &~ cmask; /* Check for create of control object. */ if (IS_CTL_NAME(dvp, nm, len)) { ==== //depot/projects/trustedbsd/acl/sys/fs/devfs/devfs_vnops.c#6 (text+ko) ==== @@ -743,7 +743,7 @@ (vap->va_gen != VNOVAL)) { return (EINVAL); } - mode = vap->va_mode &~ ap->a_cmask; + mode = vap->va_mode; de = vp->v_data; if (vp->v_type == VDIR) ==== //depot/projects/trustedbsd/acl/sys/fs/msdosfs/msdosfs_vnops.c#6 (text+ko) ==== @@ -141,7 +141,7 @@ struct denode *dep; struct denode *pdep = VTODE(ap->a_dvp); struct timespec ts; - u_short mode + u_short mode; int error; #ifdef MSDOSFS_DEBUG ==== //depot/projects/trustedbsd/acl/sys/kern/kern_alq.c#5 (text+ko) ==== @@ -38,8 +38,10 @@ #include #include #include +#include #include #include +#include #include /* Async. Logging Queue */ ==== //depot/projects/trustedbsd/acl/sys/kern/kern_sig.c#6 (text+ko) ==== @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -2548,7 +2549,7 @@ NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_SYSSPACE, name, td); /* XXXKSE */ flags = O_CREAT | FWRITE | O_NOFOLLOW; /* - * XXXACL: creation mask here? */ + * XXXACL: creation mask here? */ FILEDESC_LOCK(td->td_proc->p_fd); cmask = td->td_proc->p_fd->fd_cmask; ==== //depot/projects/trustedbsd/acl/sys/kern/vfs_syscalls.c#5 (text+ko) ==== @@ -1155,7 +1155,7 @@ struct mount *mp; struct vattr vattr; char *syspath; - int error; + int cmask, error; struct nameidata nd; if (segflg == UIO_SYSSPACE) { ==== //depot/projects/trustedbsd/acl/sys/nfsclient/nfs_vnops.c#7 (text+ko) ==== @@ -216,7 +216,8 @@ VNODEOP_SET(fifo_nfsv2nodeop_opv_desc); static int nfs_mknodrpc(struct vnode *dvp, struct vnode **vpp, - struct componentname *cnp, struct vattr *vap); + struct componentname *cnp, struct vattr *vap, + int cmask); static int nfs_removerpc(struct vnode *dvp, const char *name, int namelen, struct ucred *cred, struct thread *td); static int nfs_renamerpc(struct vnode *fdvp, const char *fnameptr, From owner-p4-projects@FreeBSD.ORG Thu Aug 7 01:15:08 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 811A837B404; Thu, 7 Aug 2003 01:15:08 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3090D37B401 for ; Thu, 7 Aug 2003 01:15:08 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0DA0743F93 for ; Thu, 7 Aug 2003 01:15:07 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h778F60U057190 for ; Thu, 7 Aug 2003 01:15:06 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h778F6uT057187 for perforce@freebsd.org; Thu, 7 Aug 2003 01:15:06 -0700 (PDT) Date: Thu, 7 Aug 2003 01:15:06 -0700 (PDT) Message-Id: <200308070815.h778F6uT057187@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 35675 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2003 08:15:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=35675 Change 35675 by marcel@marcel_nfs on 2003/08/07 01:14:05 IFC @35674 Affected files ... .. //depot/projects/ia64/Makefile#30 integrate .. //depot/projects/ia64/contrib/isc-dhcp/client/dhclient.c#9 integrate .. //depot/projects/ia64/contrib/isc-dhcp/includes/dhcpd.h#7 integrate .. //depot/projects/ia64/etc/defaults/pccard.conf#23 integrate .. //depot/projects/ia64/etc/services#9 integrate .. //depot/projects/ia64/lib/libc/sys/connect.2#6 integrate .. //depot/projects/ia64/lib/libpthread/arch/ia64/ia64/pthread_md.c#2 integrate .. //depot/projects/ia64/lib/libpthread/arch/ia64/include/pthread_md.h#5 integrate .. //depot/projects/ia64/release/Makefile#66 integrate .. //depot/projects/ia64/sbin/ip6fw/ip6fw.c#6 integrate .. //depot/projects/ia64/sbin/mount/mount.c#11 integrate .. //depot/projects/ia64/sbin/mount_hpfs/mount_hpfs.c#4 integrate .. //depot/projects/ia64/sbin/quotacheck/quotacheck.c#11 integrate .. //depot/projects/ia64/sbin/restore/interactive.c#5 integrate .. //depot/projects/ia64/sbin/restore/main.c#8 integrate .. //depot/projects/ia64/sbin/routed/defs.h#2 integrate .. //depot/projects/ia64/sbin/routed/trace.c#3 integrate .. //depot/projects/ia64/share/examples/ppi/ppilcd.c#2 integrate .. //depot/projects/ia64/share/man/man4/acpi.4#12 integrate .. //depot/projects/ia64/sys/cam/scsi/scsi_da.c#48 integrate .. //depot/projects/ia64/sys/compat/svr4/svr4_misc.c#21 integrate .. //depot/projects/ia64/sys/contrib/dev/acpica/acfreebsd.h#11 integrate .. //depot/projects/ia64/sys/contrib/dev/oltr/if_oltr.c#7 integrate .. //depot/projects/ia64/sys/dev/ed/if_ed_cbus.c#7 integrate .. //depot/projects/ia64/sys/dev/en/midway.c#21 integrate .. //depot/projects/ia64/sys/dev/en/midwayvar.h#8 integrate .. //depot/projects/ia64/sys/dev/fatm/if_fatm.c#6 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm_ioctl.c#5 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm_rx.c#3 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm_tx.c#4 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatmvar.h#4 integrate .. //depot/projects/ia64/sys/dev/ie/if_ievar.h#2 integrate .. //depot/projects/ia64/sys/dev/patm/if_patm_ioctl.c#3 integrate .. //depot/projects/ia64/sys/dev/patm/if_patm_rx.c#3 integrate .. //depot/projects/ia64/sys/dev/patm/if_patm_tx.c#4 integrate .. //depot/projects/ia64/sys/dev/patm/if_patmvar.h#2 integrate .. //depot/projects/ia64/sys/dev/usb/umass.c#31 integrate .. //depot/projects/ia64/sys/fs/specfs/spec_vnops.c#21 integrate .. //depot/projects/ia64/sys/i386/i386/i686_mem.c#8 integrate .. //depot/projects/ia64/sys/i386/i386/identcpu.c#23 integrate .. //depot/projects/ia64/sys/i386/i386/pmap.c#54 integrate .. //depot/projects/ia64/sys/i386/i386/tsc.c#6 integrate .. //depot/projects/ia64/sys/i386/include/clock.h#5 integrate .. //depot/projects/ia64/sys/i386/include/cpufunc.h#15 integrate .. //depot/projects/ia64/sys/i386/isa/clock.c#19 integrate .. //depot/projects/ia64/sys/i386/isa/cxreg.h#2 integrate .. //depot/projects/ia64/sys/ia64/ia64/exception.S#5 integrate .. //depot/projects/ia64/sys/ia64/ia64/machdep.c#87 integrate .. //depot/projects/ia64/sys/ia64/ia64/syscall.S#3 integrate .. //depot/projects/ia64/sys/ia64/ia64/vm_machdep.c#32 integrate .. //depot/projects/ia64/sys/ia64/include/ucontext.h#4 integrate .. //depot/projects/ia64/sys/kern/sys_pipe.c#36 integrate .. //depot/projects/ia64/sys/kern/uipc_syscalls.c#37 integrate .. //depot/projects/ia64/sys/modules/en/Makefile#3 integrate .. //depot/projects/ia64/sys/net/if_atm.h#11 integrate .. //depot/projects/ia64/sys/netinet/if_atm.c#4 integrate .. //depot/projects/ia64/sys/netnatm/natm.c#14 integrate .. //depot/projects/ia64/sys/netnatm/natm.h#4 integrate .. //depot/projects/ia64/sys/netnatm/natm_pcb.c#6 integrate .. //depot/projects/ia64/sys/netnatm/natm_proto.c#8 integrate .. //depot/projects/ia64/sys/pci/if_rl.c#39 integrate .. //depot/projects/ia64/sys/pci/if_rlreg.h#11 integrate .. //depot/projects/ia64/sys/sys/buf.h#24 integrate .. //depot/projects/ia64/sys/sys/pipe.h#6 integrate .. //depot/projects/ia64/sys/vm/default_pager.c#7 integrate .. //depot/projects/ia64/sys/vm/swap_pager.c#38 integrate .. //depot/projects/ia64/sys/vm/swap_pager.h#14 integrate .. //depot/projects/ia64/sys/vm/vm_object.c#64 integrate .. //depot/projects/ia64/sys/vm/vm_pager.h#10 integrate .. //depot/projects/ia64/usr.bin/calendar/calendars/calendar.birthday#9 integrate .. //depot/projects/ia64/usr.sbin/config/config.8#8 integrate .. //depot/projects/ia64/usr.sbin/ctm/mkCTM/mkctm.c#2 integrate Differences ... ==== //depot/projects/ia64/Makefile#30 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile,v 1.286 2003/07/20 12:38:29 ru Exp $ +# $FreeBSD: src/Makefile,v 1.287 2003/08/06 11:06:38 ru Exp $ # # The user-driven targets are: # @@ -105,7 +105,7 @@ # world: upgrade_checks @echo "--------------------------------------------------------------" - @echo ">>> elf make world started on ${STARTTIME}" + @echo ">>> make world started on ${STARTTIME}" @echo "--------------------------------------------------------------" .if target(pre-world) @echo @@ -125,7 +125,8 @@ .endif @echo @echo "--------------------------------------------------------------" - @printf ">>> elf make world completed on `LC_ALL=C date`\n (started ${STARTTIME})\n" + @echo ">>> make world completed on `LC_ALL=C date`" + @echo " (started ${STARTTIME})" @echo "--------------------------------------------------------------" # @@ -198,7 +199,8 @@ .endfor .endfor @echo "--------------------------------------------------------------" - @printf ">>> make universe completed on `LC_ALL=C date`\n (started ${STARTTIME})\n" + @echo ">>> make universe completed on `LC_ALL=C date`" + @echo " (started ${STARTTIME})" @echo "--------------------------------------------------------------" KERNCONFS!= cd ${.CURDIR}/sys/${TARGET}/conf && \ ==== //depot/projects/ia64/contrib/isc-dhcp/client/dhclient.c#9 (text+ko) ==== @@ -42,7 +42,7 @@ #ifndef lint static char ocopyright[] = "$Id: dhclient.c,v 1.129.2.12 2002/11/07 23:26:38 dhankins Exp $ Copyright (c) 1995-2002 Internet Software Consortium. All rights reserved.\n" -"$FreeBSD: src/contrib/isc-dhcp/client/dhclient.c,v 1.27 2003/07/28 13:25:04 mbr Exp $\n"; +"$FreeBSD: src/contrib/isc-dhcp/client/dhclient.c,v 1.29 2003/08/07 07:27:14 mbr Exp $\n"; #endif /* not lint */ #include "dhcpd.h" @@ -217,7 +217,7 @@ } else if (!strcmp (argv [i], "-i")) { if (++i == argc) usage (); - polling_interval = (int)strtol(argv [i], + polling_interval = (int)strtol (argv [i], (char **)NULL, 10); if (polling_interval <= 0) { log_info ("Incorrect polling interval %d", @@ -257,8 +257,11 @@ log_fatal ("%s: interface name too long (max %ld)", argv [i], (long)strlen (argv [i])); strlcpy (tmp -> name, argv [i], IFNAMSIZ); - set_ieee802(tmp); - tmp->linkstatus = interface_active(tmp); +#ifdef __FreeBSD__ + set_ieee80211 (tmp); +#endif + tmp -> forcediscover = 0; + tmp -> linkstate = 0; if (interfaces) { interface_reference (&tmp -> next, interfaces, MDL); @@ -286,16 +289,16 @@ /* first kill of any currently running client */ if (release_mode) { - if ((pidfd = fopen(path_dhclient_pid, "r")) != NULL) { - e = fscanf(pidfd, "%d", &oldpid); + if ((pidfd = fopen (path_dhclient_pid, "r")) != NULL) { + e = fscanf (pidfd, "%d", &oldpid); if (e != 0 && e != EOF) { if (oldpid) { - if (kill(oldpid, SIGKILL) == 0) - unlink(path_dhclient_pid); + if (kill (oldpid, SIGKILL) == 0) + unlink (path_dhclient_pid); } } - fclose(pidfd); + fclose (pidfd); } } @@ -412,7 +415,15 @@ INTERFACE_AUTOMATIC)) != INTERFACE_REQUESTED)) continue; - set_ieee802(ip); +#ifdef __FreeBSD__ + set_ieee80211 (ip); +#endif + ip -> forcediscover = 0; + if (ip -> client -> config -> media != NULL) + ip -> havemedia = 1; + else + ip -> havemedia = 0; + script_init (ip -> client, "PREINIT", (struct string_list *)0); if (ip -> client -> alias) @@ -459,7 +470,7 @@ add_timeout (cur_time + random () % 5, state_link, client, 0, 0); #else - add_timeout(cur_time + random () % 5, + add_timeout (cur_time + random () % 5, state_reboot, client, 0, 0); #endif } @@ -909,6 +920,15 @@ /* Write out the new lease. */ write_client_lease (client, client -> new, 0, 0); + /* + * It's now possible that state_reboot can be called + * after a interface link went down and is up again. + * To prevent tons of equal leases saved on disk, we rewrite + * them. + */ + read_client_leases (); + rewrite_client_leases (); + /* Replace the old active lease with the new one. */ if (client -> active) destroy_client_lease (client -> active); @@ -923,6 +943,10 @@ piaddr (client -> active -> address), (long)(client -> active -> renewal - cur_time)); client -> state = S_BOUND; +#ifdef ENABLE_POLLING_MODE + client -> interface -> linkstate = HAVELINK; + client -> interface -> forcediscover = 0; +#endif /* ifdef ENABLE_POLLING_MODE */ reinitialize_interfaces (); go_daemon (); if (client -> config -> do_forward_update) { @@ -1385,9 +1409,6 @@ int interval; int increase = 1; - if (interface_active(client -> interface) == 0) - return; - /* Figure out how long it's been since we started transmitting. */ interval = cur_time - client -> first_sending; @@ -1427,6 +1448,9 @@ } } + if (interface_active (client -> interface) == NOLINK) + return; + /* If we're supposed to increase the interval, do so. If it's currently zero (i.e., we haven't sent any packets yet), set it to one; otherwise, add to it a random number between @@ -1493,7 +1517,7 @@ struct client_lease *loop; struct client_lease *lp; - if (interface_active(client -> interface) == 0) + if (interface_active (client -> interface) == NOLINK) return; loop = lp = client -> active; @@ -1535,6 +1559,11 @@ log_info ("bound: immediate renewal."); state_bound (client); } + /* + * Set the link status back to nolink, even + * if we have media settings. + */ + client -> interface -> linkstate = NOLINK; reinitialize_interfaces (); go_daemon (); return; @@ -2809,8 +2838,8 @@ break; } client -> state = S_INIT; - if (interface_active(ip)) - state_reboot(client); + if (interface_active (ip) == HAVELINK) + state_reboot (client); } } } @@ -2971,8 +3000,8 @@ client -> state = S_INIT; /* Set up a timeout to start the initialization process. */ - if (interface_active(ip)) { - add_timeout(cur_time + random () % 5, + if (interface_active (ip) == HAVELINK) { + add_timeout (cur_time + random () % 5, state_reboot, client, 0, 0); } } @@ -3038,8 +3067,8 @@ break; case server_awaken: - if (interface_active(ip)) - state_reboot(client); + if (interface_active (ip) == HAVELINK) + state_reboot (client); break; } } @@ -3188,50 +3217,81 @@ ifname = ip -> name; - if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) - log_fatal("Can't create interface_active socket"); + if ((sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) + log_fatal ("Can't create interface_active socket"); - (void) memset(&ifmr, 0, sizeof(ifmr)); - (void) strncpy(ifmr.ifm_name, ifname, sizeof(ifmr.ifm_name)); + (void) memset (&ifmr, 0, sizeof (ifmr)); + (void) strncpy (ifmr.ifm_name, ifname, sizeof (ifmr.ifm_name)); - if (ioctl(sock, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) { + if (ioctl (sock, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) { /* * Interface doesn't support SIOCGIFMEDIA, presume okay */ - close(sock); - return (1); + close (sock); + return (HAVELINK); } - close(sock); + close (sock); if (ifmr.ifm_count == 0) { /* - * this is unexpected (to me), but we'll just assume - * that this means interface does not support SIOCGIFMEDIA + * Assume that this means interface + * does not support SIOCGIFMEDIA */ - log_fatal("%s: no media types?", ifname); - return (1); + log_fatal ("%s: no media types?", ifname); + return (HAVELINK); } if (ifmr.ifm_status & IFM_AVALID) { - if (ip->ieee802) { + if (ip -> ieee80211) { + /* + * Wavelan devices need to be checked if they are + * associated. + */ if ((IFM_TYPE(ifmr.ifm_active) == IFM_IEEE80211) && - (ifmr.ifm_status & IFM_ACTIVE)) - return (1); + (ifmr.ifm_status & IFM_ACTIVE)) { + if (ip -> havemedia && + ip -> client -> state != S_BOUND) + ip -> forcediscover = 1; + return (HAVELINK); + } } else { - if (ifmr.ifm_status & IFM_ACTIVE) - return (1); + /* + * Media settings can also be possible for normal + * devices. + */ + if (ifmr.ifm_status & IFM_ACTIVE) { + if (ip -> havemedia && + ip -> client -> state != S_BOUND) + ip -> forcediscover = 1; + return (HAVELINK); + } } } - return (0); + /* + * If dhclient.conf contains media settings, we cannot + * abort if the interface is not set to active mode. + */ + if (ip -> havemedia && ip -> client -> state != S_BOUND) + return (HAVELINK); + + /* + * We really have no link. + */ + return (NOLINK); #else /* ifdef __FreeBSD__ */ - return (1); + /* + * Always return a successful link if the OS + * is not supported. + */ + return (HAVELINK); #endif /* Other OSs */ } #ifdef __FreeBSD__ -set_ieee802 (struct interface_info *ip) { +void +set_ieee80211 (struct interface_info *ip) { struct ieee80211req ireq; u_int8_t data[32]; @@ -3242,11 +3302,11 @@ ifname = ip -> name; - if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) - log_fatal("Can't create interface_active socket"); + if ((sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) + log_fatal ("Can't create interface_active socket"); - (void) memset(&ireq, 0, sizeof(ireq)); - (void) strncpy(ireq.i_name, ifname, sizeof(ireq.i_name)); + (void) memset (&ireq, 0, sizeof (ireq)); + (void) strncpy (ireq.i_name, ifname, sizeof (ireq.i_name)); ireq.i_data = &data; ireq.i_type = IEEE80211_IOC_SSID; ireq.i_val = -1; @@ -3254,19 +3314,26 @@ * If we can't get the SSID, * this isn't an 802.11 device. */ - if (ioctl(sock, SIOCG80211, &ireq) < 0) - ip->ieee802 = 0; + if (ioctl (sock, SIOCG80211, &ireq) < 0) + ip -> ieee80211 = 0; else { #ifdef DEBUG - printf("Device %s has 802.11\n", ifname); + printf ("Device %s has 802.11\n", ifname); #endif - ip->ieee802 = 1; + ip -> ieee80211 = 1; } - close(sock); + close (sock); } #endif /* __FreeBSD__ */ #ifdef ENABLE_POLLING_MODE +/* Go to background after some time */ +void state_background (cpp) + void *cpp; +{ + go_daemon (); +} + /* Check the state of the NICs if we have link */ void state_link (cpp) void *cpp; @@ -3275,53 +3342,126 @@ struct client_state *client; #ifdef DEBUG - printf("Polling interface status\n"); + printf ("Polling interface status\n"); #endif for (ip = interfaces; ip; ip = ip -> next) { - if (ip->linkstatus == 0 || doinitcheck == 0) { - if (interface_active(ip)) { + +#ifdef DEBUG + for (client = ip -> client; + client; client = client -> next) { + printf ("%s: client state of %d\n", ip -> name, ip -> client -> state); + printf ("%s: link = %d\n", ip -> name, ip -> linkstate); + } +#endif + + /* + * The last status of the interface tells us + * the we've got no link ... + */ + if (ip -> linkstate == NOLINK || ! doinitcheck) { + /* + * ... but we have now link. Let's send + * requests. + */ + if (interface_active (ip) == HAVELINK) { #ifdef DEBUG - printf("%s: Found Link on interface\n", ip->name); + if (ip -> havemedia) + printf ("%s: Trying media settings on interface\n", + ip -> name); + else + printf ("%s: Found Link on interface\n", ip -> name); #endif + /* + * Set the interface to state_reboot. But of + * course we can not be sure that we really got link, + * we just assume it. + */ for (client = ip -> client; client; client = client -> next) { - add_timeout(cur_time + random () % 5, - state_reboot, client, 0, 0); + cancel_timeout (state_init, client); + cancel_timeout (state_reboot, client); + cancel_timeout (state_selecting, client); + add_timeout (cur_time + random () % 5, + state_reboot, client, 0, 0); } - ip->linkstatus = 1; + ip -> linkstate = HAVELINK; } else { #ifdef DEBUG - printf("%s: No Link on interface\n", ip->name); + printf ("%s: No Link on interface\n", ip -> name); #endif for (client = ip -> client; client; client = client -> next) { - cancel_timeout(state_init, client); - cancel_timeout(send_discover, client); - cancel_timeout(send_request, client); /* - * XXX without this, dhclient does + * Without this add_timout(), dhclient does * not poll on a interface if there * is no cable plugged in at startup - * time + * time. Because we add one additional second + * to the time of a normal timeout, we always + * skip and block a running one. This prevents + * that polling is done twice at the same time. */ if (client -> state == S_INIT) { - add_timeout(cur_time + polling_interval, + add_timeout (cur_time + (polling_interval + 1), state_link, client, 0, 0); } } - ip->linkstatus = 0; + ip -> linkstate = NOLINK; + /* + * Automatically go into the background after + * some time. Do this only if there are no + * media options available for a interface. + */ + if (! ip -> havemedia && ! doinitcheck) { + add_timeout (cur_time + (polling_interval * 2), + state_background, client, 0, 0); + } } - } else { - if (interface_active(ip) == 0) { + } + + /* + * The last status of the interface tells us + * the we previously had link. + */ + if (ip -> linkstate == HAVELINK && doinitcheck) { + if (interface_active (ip) == NOLINK) { + /* + * We lost link on the interface, or it isn't + * associated anymore. + */ #ifdef DEBUG - printf("%s: Lost Link on interface\n", ip->name); + printf ("%s: Lost Link on interface\n", ip -> name); #endif - ip->linkstatus = 0; + /* + * After we lost link, cycle again through the + * different media settings if available. Else + * set NOLINK. + */ + if (ip -> havemedia) + ip -> forcediscover = 1; + else + ip -> linkstate = NOLINK; + } + /* + * If we happen to have a real link, but no + * active lease, force the interface into + * state_reboot. Do the same if media settings + * are available. + */ + if (ip -> forcediscover) { + for (client = ip -> client; + client; client = client -> next) { + if (client -> state != S_REBOOTING && + client -> state != S_SELECTING) { + add_timeout (cur_time + random () % 5, + state_reboot, client, 0, 0); + } + } + ip -> forcediscover = 0; + ip -> linkstate = HAVELINK; } + /* We still have link, do nothing. */ } } - if (doinitcheck) - go_daemon (); doinitcheck = 1; } #endif /* ifdef ENABLE_POLLING_MODE */ ==== //depot/projects/ia64/contrib/isc-dhcp/includes/dhcpd.h#7 (text+ko) ==== @@ -40,7 +40,7 @@ * see ``http://www.vix.com''. To learn more about Nominum, Inc., see * ``http://www.nominum.com''. * - * $FreeBSD: src/contrib/isc-dhcp/includes/dhcpd.h,v 1.3 2003/07/28 11:49:07 mbr Exp $ + * $FreeBSD: src/contrib/isc-dhcp/includes/dhcpd.h,v 1.5 2003/08/07 07:27:14 mbr Exp $ */ #ifndef __CYGWIN32__ @@ -101,6 +101,9 @@ (((x) >> OPTION_HASH_EXP) & \ (OPTION_HASH_PTWO - 1))) % OPTION_HASH_SIZE; +#define NOLINK 0 +#define HAVELINK 1 + enum dhcp_shutdown_state { shutdown_listeners, shutdown_omapi_connections, @@ -780,8 +783,10 @@ unsigned remote_id_len; /* Length of Remote ID. */ char name [IFNAMSIZ]; /* Its name... */ - int linkstatus; /* Link status */ - int ieee802; /* True if media is ieee802 */ + int ieee80211; /* True if media is ieee802.11 */ + int havemedia; /* True if we have a media table */ + int linkstate; /* True if we have link */ + int forcediscover; /* True if a discover is needed */ int index; /* Its index. */ int rfdesc; /* Its read file descriptor. */ int wfdesc; /* Its write file descriptor, if @@ -1859,6 +1864,7 @@ void state_reboot PROTO ((void *)); #ifdef ENABLE_POLLING_MODE void state_link PROTO (()); +void state_background PROTO ((void *)); #endif void state_init PROTO ((void *)); void state_selecting PROTO ((void *)); @@ -1867,6 +1873,11 @@ void state_stop PROTO ((void *)); void state_panic PROTO ((void *)); +#ifdef __FreeBSD__ +void set_ieee80211 PROTO ((struct interface_info *)); +#endif +int interface_active PROTO ((struct interface_info *)); + void bind_lease PROTO ((struct client_state *)); void make_client_options PROTO ((struct client_state *, ==== //depot/projects/ia64/etc/defaults/pccard.conf#23 (text+ko) ==== @@ -1,7 +1,7 @@ # # Default PCCARD configuration file # -# $FreeBSD: src/etc/defaults/pccard.conf,v 1.262 2003/07/22 21:23:01 dds Exp $ +# $FreeBSD: src/etc/defaults/pccard.conf,v 1.263 2003/08/07 04:38:01 imp Exp $ # # Please send new entries for this file to imp@freebsd.org. He likes to # review them before they are committed to make sure they are correct for @@ -205,6 +205,10 @@ card "KODAK Picture Card" "KODAK" config default "ata" ? +# Panasonic KXL-CB10AN (CD-R/RW/DVD) +card "KME" "KXLC006" + config auto "ata" ? + # TOSHIBA Portable 24X Speed CD-ROM Drive PA2673UJ card "LOOKMEET" "/CBIDE2 */" config default "ata" ? @@ -691,6 +695,12 @@ insert /etc/pccard_ether $device start remove /etc/pccard_ether $device stop +# I/O DATA PCET10-CL +card "IO DATA" "PCET10CL" + config auto "ed0" any 0x10 + insert /etc/pccard_ether $device + remove /etc/pccard_ether_remove $device + # I-O DATA PCET/100-CL card "IO DATA" "PCET100CL" config auto "ed" ? 0x80000 @@ -2088,6 +2098,12 @@ insert /etc/pccard_ether $device start remove /etc/pccard_ether $device stop +# Netgear MA701 +card "NETGEAR" "MA701 Wireless CF Card" + config auto "wi" ? + insert /etc/pccard_ether $device start + remove /etc/pccard_ether $device stop + # Nortel eMobility card "Nortel Networks" "emobility 802.11 Wireless LAN PC Card" config auto "wi" ? ==== //depot/projects/ia64/etc/services#9 (text+ko) ==== @@ -16,7 +16,7 @@ # Kerberos services are for Kerberos v4, and are unofficial. Sites running # v5 should uncomment v5 entries and comment v4 entries. # -# $FreeBSD: src/etc/services,v 1.93 2003/05/05 22:10:14 dougb Exp $ +# $FreeBSD: src/etc/services,v 1.94 2003/08/06 18:15:10 dcs Exp $ # From: @(#)services 5.8 (Berkeley) 5/9/91 # # WELL KNOWN PORT NUMBERS @@ -1093,6 +1093,8 @@ ginad 634/udp ldaps 636/tcp sldap #ldap protocol over TLS/SSL ldaps 636/udp sldap +aodv 654/tdp #Ad-Hoc On-Demand Distance Vector Routing Protocol +aodv 654/udp #Ad-Hoc On-Demand Distance Vector Routing Protocol mdqs 666/tcp mdqs 666/udp #PROBLEMS!=============================================== ==== //depot/projects/ia64/lib/libc/sys/connect.2#6 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)connect.2 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/sys/connect.2,v 1.24 2003/07/23 22:00:08 dds Exp $ +.\" $FreeBSD: src/lib/libc/sys/connect.2,v 1.25 2003/08/06 14:21:06 yar Exp $ .\" .Dd June 4, 1993 .Dt CONNECT 2 @@ -117,10 +117,13 @@ It is possible to .Xr select 2 for completion by selecting the socket for writing. +.It Bq Er EINTR +The connection attempt was interrupted by the delivery of a signal. +The connection will be established in the background, +as in the case of +.Er EINPROGRESS . .It Bq Er EALREADY -The socket is non-blocking -and a previous connection attempt -has not yet been completed. +A previous connection attempt has not yet been completed. .It Bq Er EACCES An attempt is made to connect to a broadcast address (obtained through the .Dv INADDR_BROADCAST ==== //depot/projects/ia64/lib/libpthread/arch/ia64/ia64/pthread_md.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/arch/ia64/ia64/pthread_md.c,v 1.1 2003/08/05 22:46:00 deischen Exp $ + * $FreeBSD: src/lib/libpthread/arch/ia64/ia64/pthread_md.c,v 1.2 2003/08/06 04:17:42 marcel Exp $ */ #include @@ -41,7 +41,6 @@ if ((tcb = malloc(sizeof(struct tcb))) != NULL) { bzero(tcb, sizeof(struct tcb)); tcb->tcb_thread = thread; - tcb->tcb_tp.tp_self = tcb; /* Allocate TDV */ } return (tcb); @@ -63,7 +62,6 @@ bzero(kcb, sizeof(struct kcb)); kcb->kcb_faketcb.tcb_isfake = 1; kcb->kcb_faketcb.tcb_tmbx.tm_flags = TMF_NOUPCALL; - kcb->kcb_faketcb.tcb_tp.tp_self = &kcb->kcb_faketcb; kcb->kcb_curtcb = &kcb->kcb_faketcb; kcb->kcb_kse = kse; } ==== //depot/projects/ia64/lib/libpthread/arch/ia64/include/pthread_md.h#5 (text+ko) ==== @@ -23,13 +23,14 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/arch/ia64/include/pthread_md.h,v 1.6 2003/08/06 00:17:15 marcel Exp $ + * $FreeBSD: src/lib/libpthread/arch/ia64/include/pthread_md.h,v 1.8 2003/08/06 06:12:54 deischen Exp $ */ #ifndef _PTHREAD_MD_H_ #define _PTHREAD_MD_H_ #include +#include #include #define THR_GETCONTEXT(ucp) _ia64_save_context(&(ucp)->uc_mcontext) @@ -53,7 +54,7 @@ */ struct ia64_tp { struct tdv *tp_tdv; /* dynamic TLS */ - struct tcb *tp_self; + uint64_t _reserved_; long double tp_tls[0]; /* static TLS */ }; @@ -74,6 +75,8 @@ register struct ia64_tp *_tp __asm("%r13"); +#define _tcb ((struct tcb*)((char*)(_tp) - offsetof(struct tcb, tcb_tp))) + /* * The kcb and tcb constructors. */ @@ -99,7 +102,7 @@ static __inline struct kcb * _kcb_get(void) { - return (_tp->tp_self->tcb_curkcb); + return (_tcb->tcb_curkcb); } /* @@ -111,22 +114,20 @@ _kcb_critical_enter(void) { struct kse_thr_mailbox *crit; - struct tcb *tcb; uint32_t flags; - tcb = _tp->tp_self; - if (tcb->tcb_isfake != 0) { + if (_tcb->tcb_isfake != 0) { /* * We already are in a critical region since * there is no current thread. */ crit = NULL; } else { - flags = tcb->tcb_tmbx.tm_flags; - tcb->tcb_tmbx.tm_flags |= TMF_NOUPCALL; - crit = tcb->tcb_curkcb->kcb_kmbx.km_curthread; - tcb->tcb_curkcb->kcb_kmbx.km_curthread = NULL; - tcb->tcb_tmbx.tm_flags = flags; + flags = _tcb->tcb_tmbx.tm_flags; + _tcb->tcb_tmbx.tm_flags |= TMF_NOUPCALL; + crit = _tcb->tcb_curkcb->kcb_kmbx.km_curthread; + _tcb->tcb_curkcb->kcb_kmbx.km_curthread = NULL; + _tcb->tcb_tmbx.tm_flags = flags; } return (crit); } @@ -134,33 +135,28 @@ static __inline void _kcb_critical_leave(struct kse_thr_mailbox *crit) { - struct tcb *tcb; - - tcb = _tp->tp_self; /* No need to do anything if this is a fake tcb. */ - if (tcb->tcb_isfake == 0) - tcb->tcb_curkcb->kcb_kmbx.km_curthread = crit; + if (_tcb->tcb_isfake == 0) + _tcb->tcb_curkcb->kcb_kmbx.km_curthread = crit; } static __inline int _kcb_in_critical(void) { - struct tcb *tcb; uint32_t flags; int ret; - tcb = _tp->tp_self; - if (tcb->tcb_isfake != 0) { + if (_tcb->tcb_isfake != 0) { /* * We are in a critical region since there is no * current thread. */ ret = 1; } else { - flags = tcb->tcb_tmbx.tm_flags; - tcb->tcb_tmbx.tm_flags |= TMF_NOUPCALL; - ret = (tcb->tcb_curkcb->kcb_kmbx.km_curthread == NULL); - tcb->tcb_tmbx.tm_flags = flags; + flags = _tcb->tcb_tmbx.tm_flags; + _tcb->tcb_tmbx.tm_flags |= TMF_NOUPCALL; + ret = (_tcb->tcb_curkcb->kcb_kmbx.km_curthread == NULL); + _tcb->tcb_tmbx.tm_flags = flags; } return (ret); } @@ -168,38 +164,34 @@ static __inline void _tcb_set(struct kcb *kcb, struct tcb *tcb) { - if (tcb == NULL) { - kcb->kcb_curtcb = &kcb->kcb_faketcb; - _tp = &kcb->kcb_faketcb.tcb_tp; - } - else { - kcb->kcb_curtcb = tcb; - tcb->tcb_curkcb = kcb; - _tp = &tcb->tcb_tp; - } + if (tcb == NULL) + tcb = &kcb->kcb_faketcb; + kcb->kcb_curtcb = tcb; + tcb->tcb_curkcb = kcb; + _tp = &tcb->tcb_tp; } static __inline struct tcb * _tcb_get(void) { - return (_tp->tp_self); + return (_tcb); } static __inline struct pthread * _get_curthread(void) { - return (_tp->tp_self->tcb_thread); + return (_tcb->tcb_thread); } /* * Get the current kse. * - * Line _kcb_get(), this can only be called while in a critical region. + * Like _kcb_get(), this can only be called while in a critical region. */ static __inline struct kse * _get_curkse(void) { - return (_tp->tp_self->tcb_curkcb->kcb_kse); + return (_tcb->tcb_curkcb->kcb_kse); } void _ia64_enter_uts(kse_func_t uts, struct kse_mailbox *km, void *stack, @@ -226,9 +218,7 @@ static __inline int _thread_switch(struct kcb *kcb, struct tcb *tcb, int setmbox) { - kcb->kcb_curtcb = tcb; - tcb->tcb_curkcb = kcb; - _tp = &tcb->tcb_tp; + _tcb_set(kcb, tcb); if (setmbox != 0) _ia64_restore_context(&tcb->tcb_tmbx.tm_context.uc_mcontext, (intptr_t)&tcb->tcb_tmbx, ==== //depot/projects/ia64/release/Makefile#66 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile,v 1.813 2003/08/05 05:35:56 ache Exp $ +# $FreeBSD: src/release/Makefile,v 1.814 2003/08/06 08:09:40 ru Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ # [RELEASETAG=tag] @@ -255,18 +255,14 @@ DOFS_SH= ${.CURDIR}/scripts/doFS.sh ${DISKLABEL} "" .endif -.if ${TARGET_ARCH} == "sparc64" -CRUNCH_TARGETS= boot -.elif ${TARGET_ARCH} == "ia64" -CRUNCH_TARGETS= boot -.elif ${TARGET} == "pc98" -CRUNCH_TARGETS= boot fixit fixit-small -.elif ${TARGET_ARCH} == "amd64" -CRUNCH_TARGETS= boot +CRUNCH_TARGETS= boot +.if ${TARGET_ARCH} == "i386" +CRUNCH_TARGETS+=fixit +.if ${TARGET} == "pc98" +CRUNCH_TARGETS+=fixit-small +.endif .endif -CRUNCH_TARGETS?=boot fixit - EXTRAS= ftp.1 .if !defined(NOCDROM) EXTRAS+= cdrom.1 @@ -553,19 +549,17 @@ rm -rf ${RD}/crunch mkdir -p ${RD}/crunch .for j in ${CRUNCH_TARGETS} +.if exists(${.CURDIR}/${TARGET}/${j}_crunch.conf) rm -rf ${j}_crunch mkdir ${j}_crunch -.if exists(${.CURDIR}/${TARGET}/${j}_crunch.conf) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 7 14:33:38 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CF56137B405; Thu, 7 Aug 2003 14:33:37 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 83A2F37B401 for ; Thu, 7 Aug 2003 14:33:37 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3B67943FE5 for ; Thu, 7 Aug 2003 14:33:36 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h77LXa0U020501 for ; Thu, 7 Aug 2003 14:33:36 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h77LXZbB020498 for perforce@freebsd.org; Thu, 7 Aug 2003 14:33:35 -0700 (PDT) Date: Thu, 7 Aug 2003 14:33:35 -0700 (PDT) Message-Id: <200308072133.h77LXZbB020498@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35734 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2003 21:33:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=35734 Change 35734 by sam@sam_ebb on 2003/08/07 14:32:45 Revamp input path: o driver is now expected to find the node associated with the sender of a received frame; use ic_bss if none is located o driver passes the (referenced) node into ieee80211_input for use within the wlan module and is responsible for cleaning up on return o the antenna state is no longer passed up with each frame; this is now considered driver-private state and drivers are responsible for keeping it in the driver-private part of a node This change reduces the number of node lookups from 2-4 to 1. May want to introduce some "convenience functions" in the wlan layer for use by drivers as this introduces a fair amount of code in each driver. May want to interpret a null node pointer in ieee80211_input as an indictor that the wlan module should lookup a node as before for drivers that don't need a reference to the node to record private state. Affected files ... .. //depot/projects/netperf/sys/net80211/ieee80211_input.c#2 edit .. //depot/projects/netperf/sys/net80211/ieee80211_node.c#3 edit .. //depot/projects/netperf/sys/net80211/ieee80211_node.h#3 edit .. //depot/projects/netperf/sys/net80211/ieee80211_proto.h#2 edit .. //depot/projects/netperf/sys/net80211/ieee80211_var.h#2 edit Differences ... ==== //depot/projects/netperf/sys/net80211/ieee80211_input.c#2 (text+ko) ==== @@ -66,12 +66,21 @@ #include #endif +/* + * Process a received frame. The node associated with the sender + * should be supplied. If nothing was found in the node table then + * the caller is assumed to supply a reference to ic_bss instead. + * The RSSI and a timestamp are also supplied. The RSSI data is used + * during AP scanning to select a AP to associate with; it can have + * any units so long as values have consistent units and higher values + * mean ``better signal''. The receive timestamp is currently not used + * by the 802.11 layer. + */ void -ieee80211_input(struct ifnet *ifp, struct mbuf *m, - int rssi, u_int32_t rstamp, u_int rantenna) +ieee80211_input(struct ifnet *ifp, struct mbuf *m, struct ieee80211_node *ni, + int rssi, u_int32_t rstamp) { struct ieee80211com *ic = (void *)ifp; - struct ieee80211_node *ni = NULL; struct ieee80211_frame *wh; struct ether_header *eh; struct mbuf *m1; @@ -80,6 +89,8 @@ u_int8_t *bssid; u_int16_t rxseq; + KASSERT(ni != NULL, ("null node")); + /* trim CRC here for WEP can find its own CRC at the end of packet. */ if (m->m_flags & M_HASFCS) { m_adj(m, -IEEE80211_CRC_LEN); @@ -92,6 +103,7 @@ if (ifp->if_flags & IFF_DEBUG) if_printf(ifp, "receive packet with wrong version: %x\n", wh->i_fc[0]); + ieee80211_unref_node(&ni); goto err; } @@ -100,13 +112,11 @@ if (ic->ic_state != IEEE80211_S_SCAN) { switch (ic->ic_opmode) { case IEEE80211_M_STA: - ni = ieee80211_ref_node(ic->ic_bss); if (!IEEE80211_ADDR_EQ(wh->i_addr2, ni->ni_bssid)) { IEEE80211_DPRINTF2(("%s: discard frame from " "bss %s\n", __func__, ether_sprintf(wh->i_addr2))); /* not interested in */ - ieee80211_unref_node(&ni); goto out; } break; @@ -124,19 +134,6 @@ __func__, ether_sprintf(wh->i_addr3))); goto out; } - ni = ieee80211_find_node(ic, wh->i_addr2); - if (ni == NULL) { - IEEE80211_DPRINTF2(("%s: warning, unknown src " - "%s\n", __func__, - ether_sprintf(wh->i_addr2))); - /* - * NB: Node allocation is handled in the - * management handling routines. Just fake - * up a reference to the hosts's node to do - * the stuff below. - */ - ni = ieee80211_ref_node(ic->ic_bss); - } break; case IEEE80211_M_MONITOR: /* NB: this should collect everything */ @@ -147,7 +144,6 @@ } ni->ni_rssi = rssi; ni->ni_rstamp = rstamp; - ni->ni_rantenna = rantenna; rxseq = ni->ni_rxseq; ni->ni_rxseq = le16toh(*(u_int16_t *)wh->i_seq) >> IEEE80211_SEQ_SEQ_SHIFT; @@ -155,11 +151,9 @@ if ((wh->i_fc[1] & IEEE80211_FC1_RETRY) && rxseq == ni->ni_rxseq) { /* duplicate, silently discarded */ - ieee80211_unref_node(&ni); goto out; } ni->ni_inact = 0; - ieee80211_unref_node(&ni); } switch (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) { @@ -189,11 +183,11 @@ if (dir != IEEE80211_FC1_DIR_TODS) goto out; /* check if source STA is associated */ - ni = ieee80211_find_node(ic, wh->i_addr2); - if (ni == NULL) { + if (ni == ic->ic_bss) { IEEE80211_DPRINTF(("%s: data from unknown src " "%s\n", __func__, ether_sprintf(wh->i_addr2))); + /* NB: caller deals with reference */ ni = ieee80211_dup_bss(ic, wh->i_addr2); if (ni != NULL) { IEEE80211_SEND_MGMT(ic, ni, @@ -213,7 +207,6 @@ ieee80211_unref_node(&ni); goto err; } - ieee80211_unref_node(&ni); break; case IEEE80211_M_MONITOR: break; @@ -318,7 +311,7 @@ } if (ic->ic_rawbpf) bpf_mtap(ic->ic_rawbpf, m); - (*ic->ic_recv_mgmt)(ic, m, subtype, rssi, rstamp, rantenna); + (*ic->ic_recv_mgmt)(ic, m, ni, subtype, rssi, rstamp); m_freem(m); return; @@ -499,13 +492,13 @@ } while (0) void -ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0, int subtype, - int rssi, u_int32_t rstamp, u_int rantenna) +ieee80211_recv_mgmt(struct ieee80211com *ic, struct mbuf *m0, + struct ieee80211_node *ni, + int subtype, int rssi, u_int32_t rstamp) { #define ISPROBE(_st) ((_st) == IEEE80211_FC0_SUBTYPE_PROBE_RESP) struct ifnet *ifp = &ic->ic_if; struct ieee80211_frame *wh; - struct ieee80211_node *ni; u_int8_t *frm, *efrm; u_int8_t *ssid, *rates, *xrates; int reassoc, resp, newassoc, allocbs; @@ -672,7 +665,6 @@ IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3); ni->ni_rssi = rssi; ni->ni_rstamp = rstamp; - ni->ni_rantenna = rantenna; memcpy(ni->ni_tstamp, tstamp, sizeof(ni->ni_tstamp)); ni->ni_intval = le16toh(*(u_int16_t *)bintval); ni->ni_capinfo = le16toh(*(u_int16_t *)capinfo); @@ -731,8 +723,7 @@ return; } - ni = ieee80211_find_node(ic, wh->i_addr2); - if (ni == NULL) { + if (ni == ic->ic_bss) { ni = ieee80211_dup_bss(ic, wh->i_addr2); if (ni == NULL) return; @@ -743,7 +734,6 @@ allocbs = 0; ni->ni_rssi = rssi; ni->ni_rstamp = rstamp; - ni->ni_rantenna = rantenna; rate = ieee80211_setup_rates(ic, ni, rates, xrates, IEEE80211_F_DOSORT | IEEE80211_F_DOFRATE | IEEE80211_F_DONEGO | IEEE80211_F_DODEL); @@ -754,10 +744,12 @@ IEEE80211_SEND_MGMT(ic, ni, IEEE80211_FC0_SUBTYPE_PROBE_RESP, 0); } - if (allocbs && ic->ic_opmode == IEEE80211_M_HOSTAP) - ieee80211_free_node(ic, ni); - else - ieee80211_unref_node(&ni); + if (allocbs) { + if (ic->ic_opmode == IEEE80211_M_HOSTAP) + ieee80211_free_node(ic, ni); + else + ieee80211_unref_node(&ni); + } break; } @@ -795,25 +787,24 @@ case IEEE80211_M_HOSTAP: if (ic->ic_state != IEEE80211_S_RUN || seq != 1) return; - allocbs = 0; - ni = ieee80211_find_node(ic, wh->i_addr2); - if (ni == NULL) { + if (ni == ic->ic_bss) { ni = ieee80211_alloc_node(ic, wh->i_addr2); if (ni == NULL) return; IEEE80211_ADDR_COPY(ni->ni_bssid, ic->ic_bss->ni_bssid); ni->ni_rssi = rssi; ni->ni_rstamp = rstamp; - ni->ni_rantenna = rantenna; ni->ni_chan = ic->ic_bss->ni_chan; allocbs = 1; - } + } else + allocbs = 0; IEEE80211_SEND_MGMT(ic, ni, IEEE80211_FC0_SUBTYPE_AUTH, 2); if (ifp->if_flags & IFF_DEBUG) if_printf(ifp, "station %s %s authenticated\n", (allocbs ? "newly" : "already"), ether_sprintf(ni->ni_macaddr)); - ieee80211_unref_node(&ni); + if (allocbs) + ieee80211_unref_node(&ni); break; case IEEE80211_M_STA: @@ -824,11 +815,8 @@ "authentication failed (reason %d) for %s\n", status, ether_sprintf(wh->i_addr3)); - ni = ieee80211_find_node(ic, wh->i_addr2); - if (ni != NULL) { + if (ni != ic->ic_bss) ni->ni_fails++; - ieee80211_unref_node(&ni); - } return; } ieee80211_new_state(ic, IEEE80211_S_ASSOC, @@ -902,16 +890,16 @@ #endif return; } - ni = ieee80211_find_node(ic, wh->i_addr2); - if (ni == NULL) { + if (ni == ic->ic_bss) { IEEE80211_DPRINTF(("%s: not authenticated for %s\n", __func__, ether_sprintf(wh->i_addr2))); ni = ieee80211_dup_bss(ic, wh->i_addr2); - if (ni == NULL) - return; - IEEE80211_SEND_MGMT(ic, ni, IEEE80211_FC0_SUBTYPE_DEAUTH, - IEEE80211_REASON_ASSOC_NOT_AUTHED); - ieee80211_free_node(ic, ni); + if (ni != NULL) { + IEEE80211_SEND_MGMT(ic, ni, + IEEE80211_FC0_SUBTYPE_DEAUTH, + IEEE80211_REASON_ASSOC_NOT_AUTHED); + ieee80211_free_node(ic, ni); + } return; } /* XXX per-node cipher suite */ @@ -925,7 +913,6 @@ __func__, capinfo, ether_sprintf(wh->i_addr2))); ni->ni_associd = 0; IEEE80211_SEND_MGMT(ic, ni, resp, IEEE80211_STATUS_CAPINFO); - ieee80211_unref_node(&ni); return; } ieee80211_setup_rates(ic, ni, rates, xrates, @@ -936,12 +923,10 @@ __func__, ether_sprintf(wh->i_addr2))); ni->ni_associd = 0; IEEE80211_SEND_MGMT(ic, ni, resp, IEEE80211_STATUS_BASIC_RATE); - ieee80211_unref_node(&ni); return; } ni->ni_rssi = rssi; ni->ni_rstamp = rstamp; - ni->ni_rantenna = rantenna; ni->ni_intval = bintval; ni->ni_capinfo = capinfo; ni->ni_chan = ic->ic_bss->ni_chan; @@ -964,7 +949,6 @@ /* give driver a chance to setup state like ni_txrate */ if (ic->ic_newassoc) (*ic->ic_newassoc)(ic, ni, newassoc); - ieee80211_unref_node(&ni); break; } @@ -994,11 +978,8 @@ if (status != 0) { if_printf(ifp, "association failed (reason %d) for %s\n", status, ether_sprintf(wh->i_addr3)); - ni = ieee80211_find_node(ic, wh->i_addr2); - if (ni != NULL) { + if (ni != ic->ic_bss) ni->ni_fails++; - ieee80211_unref_node(&ni); - } return; } ni->ni_associd = le16toh(*(u_int16_t *)frm); @@ -1041,13 +1022,13 @@ wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK); break; case IEEE80211_M_HOSTAP: - ni = ieee80211_find_node(ic, wh->i_addr2); - if (ni != NULL) { + if (ni != ic->ic_bss) { if (ifp->if_flags & IFF_DEBUG) if_printf(ifp, "station %s deauthenticated" " by peer (reason %d)\n", ether_sprintf(ni->ni_macaddr), reason); - ieee80211_free_node(ic, ni); + /* node will be free'd on return */ + ieee80211_unref_node(&ni); } break; default: @@ -1070,14 +1051,13 @@ wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_MASK); break; case IEEE80211_M_HOSTAP: - ni = ieee80211_find_node(ic, wh->i_addr2); - if (ni != NULL) { + if (ni != ic->ic_bss) { if (ifp->if_flags & IFF_DEBUG) if_printf(ifp, "station %s disassociated" " by peer (reason %d)\n", ether_sprintf(ni->ni_macaddr), reason); ni->ni_associd = 0; - ieee80211_unref_node(&ni); + /* XXX node reclaimed how? */ } break; default: ==== //depot/projects/netperf/sys/net80211/ieee80211_node.c#3 (text+ko) ==== @@ -216,7 +216,6 @@ memcpy(ni->ni_essid, ic->ic_des_essid, ni->ni_esslen); ni->ni_rssi = 0; ni->ni_rstamp = 0; - ni->ni_rantenna = 0; memset(ni->ni_tstamp, 0, sizeof(ni->ni_tstamp)); ni->ni_intval = ic->ic_lintval; ni->ni_capinfo = IEEE80211_CAPINFO_IBSS; @@ -289,7 +288,7 @@ } selbs = NULL; if (ifp->if_flags & IFF_DEBUG) - if_printf(ifp, "\tmacaddr bssid chan rssi rate ant flag wep essid\n"); + if_printf(ifp, "\tmacaddr bssid chan rssi rate flag wep essid\n"); for (; ni != NULL; ni = nextbs) { ieee80211_ref_node(ni); nextbs = TAILQ_NEXT(ni, ni_list); @@ -344,7 +343,6 @@ printf(" %+4d", ni->ni_rssi); printf(" %2dM%c", (rate & IEEE80211_RATE_VAL) / 2, fail & 0x08 ? '!' : ' '); - printf(" %3d", ni->ni_rantenna); printf(" %4s%c", (ni->ni_capinfo & IEEE80211_CAPINFO_ESS) ? "ess" : (ni->ni_capinfo & IEEE80211_CAPINFO_IBSS) ? "ibss" : @@ -497,6 +495,8 @@ static void _ieee80211_free_node(struct ieee80211com *ic, struct ieee80211_node *ni) { + KASSERT(ni != ic->ic_bss, ("freeing bss node")); + TAILQ_REMOVE(&ic->ic_node, ni, ni_list); LIST_REMOVE(ni, ni_hash); if (TAILQ_EMPTY(&ic->ic_node)) ==== //depot/projects/netperf/sys/net80211/ieee80211_node.h#3 (text+ko) ==== @@ -64,9 +64,8 @@ u_int ni_refcnt; /* hardware */ + u_int32_t ni_rstamp; /* recv timestamp */ u_int8_t ni_rssi; /* recv ssi */ - u_int32_t ni_rstamp; /* recv timestamp */ - u_int8_t ni_rantenna; /* recv antenna */ /* header */ u_int8_t ni_macaddr[IEEE80211_ADDR_LEN]; ==== //depot/projects/netperf/sys/net80211/ieee80211_proto.h#2 (text+ko) ==== @@ -55,10 +55,11 @@ extern void ieee80211_proto_attach(struct ifnet *); extern void ieee80211_proto_detach(struct ifnet *); +struct ieee80211_node; extern void ieee80211_input(struct ifnet *, struct mbuf *, - int, u_int32_t, u_int); -extern void ieee80211_recv_mgmt(struct ieee80211com *, struct mbuf *, int, - int, u_int32_t, u_int); + struct ieee80211_node *, int, u_int32_t); +extern void ieee80211_recv_mgmt(struct ieee80211com *, struct mbuf *, + struct ieee80211_node *, int, int, u_int32_t); extern int ieee80211_send_mgmt(struct ieee80211com *, struct ieee80211_node *, int, int); extern int ieee80211_mgmt_output(struct ifnet *, struct ieee80211_node *, ==== //depot/projects/netperf/sys/net80211/ieee80211_var.h#2 (text+ko) ==== @@ -135,7 +135,8 @@ struct ieee80211com { struct arpcom ic_ac; void (*ic_recv_mgmt)(struct ieee80211com *, - struct mbuf *, int, int, u_int32_t, u_int); + struct mbuf *, struct ieee80211_node *, + int, int, u_int32_t); int (*ic_send_mgmt)(struct ieee80211com *, struct ieee80211_node *, int, int); int (*ic_newstate)(struct ieee80211com *, From owner-p4-projects@FreeBSD.ORG Thu Aug 7 14:34:39 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC6F437B404; Thu, 7 Aug 2003 14:34:38 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8B0FE37B401 for ; Thu, 7 Aug 2003 14:34:38 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1CE3143F93 for ; Thu, 7 Aug 2003 14:34:38 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h77LYb0U020539 for ; Thu, 7 Aug 2003 14:34:37 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h77LYb5I020536 for perforce@freebsd.org; Thu, 7 Aug 2003 14:34:37 -0700 (PDT) Date: Thu, 7 Aug 2003 14:34:37 -0700 (PDT) Message-Id: <200308072134.h77LYb5I020536@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35735 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2003 21:34:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=35735 Change 35735 by sam@sam_ebb on 2003/08/07 14:34:18 Experimental "802.11 radiotap" packet capture format from David Young. This defines a driver-independent format for passing packet data through bpf from 802.11 drivers. Affected files ... .. //depot/projects/netperf/sys/net80211/ieee80211_radiotap.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 7 14:36:43 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 84D0F37B405; Thu, 7 Aug 2003 14:36:42 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3469D37B404 for ; Thu, 7 Aug 2003 14:36:42 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9E45F43F75 for ; Thu, 7 Aug 2003 14:36:41 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h77Laf0U020662 for ; Thu, 7 Aug 2003 14:36:41 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h77LaeIm020659 for perforce@freebsd.org; Thu, 7 Aug 2003 14:36:40 -0700 (PDT) Date: Thu, 7 Aug 2003 14:36:40 -0700 (PDT) Message-Id: <200308072136.h77LaeIm020659@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35736 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2003 21:36:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=35736 Change 35736 by sam@sam_ebb on 2003/08/07 14:36:26 o revamp input path to pass reference'd node up to wlan layer o add radiotap packet capture support o add device-specific rssi conversion support for converting rssi values to dbm for recording in radiotap captured frames Affected files ... .. //depot/projects/netperf/sys/dev/wi/if_wi.c#2 edit .. //depot/projects/netperf/sys/dev/wi/if_wi_pccard.c#2 edit .. //depot/projects/netperf/sys/dev/wi/if_wi_pci.c#3 edit .. //depot/projects/netperf/sys/dev/wi/if_wireg.h#2 edit .. //depot/projects/netperf/sys/dev/wi/if_wivar.h#2 edit Differences ... ==== //depot/projects/netperf/sys/dev/wi/if_wi.c#2 (text+ko) ==== @@ -100,6 +100,7 @@ #include #include +#include #include #include @@ -110,8 +111,8 @@ #include #include +#include #include -#include #define IF_POLL(ifq, m) ((m) = (ifq)->ifq_head) #define IFQ_POLL(ifq, m) IF_POLL((ifq), (m)) @@ -372,6 +373,10 @@ ic->ic_caps |= IEEE80211_C_MONITOR; } sc->sc_ibss_port = htole16(1); + + sc->sc_min_rssi = WI_LUCENT_MIN_RSSI; + sc->sc_max_rssi = WI_LUCENT_MAX_RSSI; + sc->sc_dbm_offset = WI_LUCENT_DBM_OFFSET; break; case WI_INTERSIL: @@ -393,6 +398,10 @@ if (sc->sc_sta_firmware_ver >= 803) ic->ic_caps |= IEEE80211_C_HOSTAP; sc->sc_ibss_port = htole16(0); + + sc->sc_min_rssi = WI_PRISM_MIN_RSSI; + sc->sc_max_rssi = WI_PRISM_MAX_RSSI; + sc->sc_dbm_offset = WI_PRISM_DBM_OFFSET; break; case WI_SYMBOL: @@ -401,6 +410,10 @@ if (sc->sc_sta_firmware_ver >= 25000) ic->ic_caps |= IEEE80211_C_IBSS; sc->sc_ibss_port = htole16(4); + + sc->sc_min_rssi = WI_PRISM_MIN_RSSI; + sc->sc_max_rssi = WI_PRISM_MAX_RSSI; + sc->sc_dbm_offset = WI_PRISM_DBM_OFFSET; break; } @@ -431,9 +444,8 @@ buflen = sizeof(val); if ((sc->sc_flags & WI_FLAGS_HAS_DBMADJUST) && wi_read_rid(sc, WI_RID_DBM_ADJUST, &val, &buflen) == 0) { - sc->sc_dbm_adjust = le16toh(val); - } else - sc->sc_dbm_adjust = 100; /* default */ + sc->sc_dbm_offset = le16toh(val); + } sc->sc_max_datalen = 2304; sc->sc_system_scale = 1; @@ -460,6 +472,23 @@ ic->ic_newstate = wi_newstate; ieee80211_media_init(ifp, wi_media_change, wi_media_status); +#if NBPFILTER > 0 + bpfattach2(ifp, DLT_IEEE802_11_RADIO, + sizeof(struct ieee80211_frame) + sizeof(sc->sc_tx_th), + &sc->sc_drvbpf); + /* + * Initialize constant fields. + * + * NB: the channel is setup each time we transition to the + * RUN state to avoid filling it in for each frame. + */ + sc->sc_tx_th.wt_ihdr.it_len = sizeof(sc->sc_tx_th); + sc->sc_tx_th.wt_ihdr.it_present = WI_TX_RADIOTAP_PRESENT; + + sc->sc_rx_th.wr_ihdr.it_len = sizeof(sc->sc_rx_th); + sc->sc_rx_th.wr_ihdr.it_present = WI_RX_RADIOTAP_PRESENT0; + sc->sc_rx_th.wr_present1 = WI_RX_RADIOTAP_PRESENT1; +#endif return (0); } @@ -901,10 +930,9 @@ MGETHDR(mb, M_DONTWAIT, m0->m_type); if (mb != NULL) { - (void) m_dup_pkthdr(mb, m0, M_DONTWAIT); mb->m_next = m0; - mb->m_data = (caddr_t)&frmhdr; - mb->m_len = sizeof(frmhdr); + mb->m_data = (caddr_t)&sc->sc_tx_th; + mb->m_len = sizeof(sc->sc_tx_th); mb->m_pkthdr.len += mb->m_len; bpf_mtap(sc->sc_drvbpf, mb); m_free(mb); @@ -1355,6 +1383,7 @@ struct wi_frame frmhdr; struct mbuf *m; struct ieee80211_frame *wh; + struct ieee80211_node *ni; int fid, len, off, rssi; u_int8_t dir; u_int16_t status; @@ -1445,12 +1474,23 @@ if (sc->sc_drvbpf) { struct mbuf *mb; + /* XXX pre-allocate space when setting up recv's */ MGETHDR(mb, M_DONTWAIT, m->m_type); if (mb != NULL) { + /* XXX replace divide by table */ + sc->sc_rx_th.wr_rate = frmhdr.wi_rx_rate / 5; + sc->sc_rx_th.wr_antsignal = + WI_RSSI_TO_DBM(sc, frmhdr.wi_rx_signal); + sc->sc_rx_th.wr_antnoise = + WI_RSSI_TO_DBM(sc, frmhdr.wi_rx_silence); + sc->sc_rx_th.wr_time = + htole32((frmhdr.wi_rx_tstamp1 << 16) | + frmhdr.wi_rx_tstamp0); + (void) m_dup_pkthdr(mb, m, M_DONTWAIT); mb->m_next = m; - mb->m_data = (caddr_t)&frmhdr; - mb->m_len = sizeof(frmhdr); + mb->m_data = (caddr_t)&sc->sc_rx_th; + mb->m_len = sizeof(sc->sc_rx_th); mb->m_pkthdr.len += mb->m_len; bpf_mtap(sc->sc_drvbpf, mb); m_free(mb); @@ -1471,7 +1511,32 @@ if (ic->ic_opmode == IEEE80211_M_IBSS && dir == IEEE80211_FC1_DIR_NODS) wi_sync_bssid(sc, wh->i_addr3); - ieee80211_input(ifp, m, rssi, rstamp, 0); + /* + * Locate the node for sender, track state, and + * then pass this node (referenced) up to the 802.11 + * layer for its use. We are required to pass + * something so we fallback to ic_bss when this frame + * is from an unknown sender. + */ + if (ic->ic_opmode != IEEE80211_M_STA) { + ni = ieee80211_find_node(ic, wh->i_addr2); + if (ni == NULL) + ni = ieee80211_ref_node(ic->ic_bss); + } else + ni = ieee80211_ref_node(ic->ic_bss); + /* + * Send frame up for processing. + */ + ieee80211_input(ifp, m, ni, rssi, rstamp); + /* + * The frame may have caused the node to be marked for + * reclamation (e.g. in response to a DEAUTH message) + * so use free_node here instead of unref_node. + */ + if (ni == ic->ic_bss) + ieee80211_unref_node(&ni); + else + ieee80211_free_node(ic, ni); } static void @@ -1808,7 +1873,7 @@ &len); break; } - wreq.wi_val[0] = htole16(sc->sc_dbm_adjust); + wreq.wi_val[0] = htole16(sc->sc_dbm_offset); len = sizeof(u_int16_t); break; @@ -2579,6 +2644,12 @@ wi_read_rid(sc, WI_RID_CURRENT_CHAN, &val, &buflen); /* XXX validate channel */ ni->ni_chan = &ic->ic_channels[le16toh(val)]; +#if NBPFILTER > 0 + sc->sc_tx_th.wt_chan_freq = sc->sc_rx_th.wr_chan_freq = + htole16(ni->ni_chan->ic_freq); + sc->sc_tx_th.wt_chan_flags = sc->sc_rx_th.wr_chan_flags = + htole16(ni->ni_chan->ic_flags); +#endif if (IEEE80211_ADDR_EQ(old_bssid, ni->ni_bssid)) sc->sc_false_syns++; ==== //depot/projects/netperf/sys/dev/wi/if_wi_pccard.c#2 (text+ko) ==== @@ -62,6 +62,7 @@ #include #include +#include #include #if __FreeBSD_version >= 500000 @@ -69,8 +70,8 @@ #endif #include +#include #include -#include #ifdef WI_SYMBOL_FIRMWARE #include #endif ==== //depot/projects/netperf/sys/dev/wi/if_wi_pci.c#3 (text+ko) ==== @@ -62,10 +62,11 @@ #include #include +#include #include +#include #include -#include static int wi_pci_probe(device_t); static int wi_pci_attach(device_t); ==== //depot/projects/netperf/sys/dev/wi/if_wireg.h#2 (text+ko) ==== @@ -679,3 +679,37 @@ */ #define WI_HFA386X_CR_A_D_TEST_MODES2 0x1A #define WI_HFA386X_CR_MANUAL_TX_POWER 0x3E + +/* + * Radio capture format for Prism. + */ +#define WI_RX_RADIOTAP_PRESENT0 \ + ((1 << IEEE80211_RADIOTAP_FLAGS) | \ + (1 << IEEE80211_RADIOTAP_RATE) | \ + (1 << IEEE80211_RADIOTAP_CHANNEL) | \ + (1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL) | \ + (1 << IEEE80211_RADIOTAP_DB_ANTNOISE) | \ + (1 << IEEE80211_RADIOTAP_EXT)) + +#define WI_RX_RADIOTAP_PRESENT1 (1 << (IEEE80211_RADIOTAP_TIME - 32)) + +struct wi_rx_radiotap_header { + struct ieee80211_radiotap_header wr_ihdr; + u_int32_t wr_present1; + u_int8_t wr_flags; + u_int8_t wr_rate; + u_int16_t wr_chan_freq; + u_int16_t wr_chan_flags; + u_int8_t wr_antsignal; + u_int8_t wr_antnoise; + u_int32_t wr_time; +}; + +#define WI_TX_RADIOTAP_PRESENT \ + ((1 << IEEE80211_RADIOTAP_CHANNEL)) + +struct wi_tx_radiotap_header { + struct ieee80211_radiotap_header wt_ihdr; + u_int16_t wt_chan_freq; + u_int16_t wt_chan_flags; +}; ==== //depot/projects/netperf/sys/dev/wi/if_wivar.h#2 (text+ko) ==== @@ -106,7 +106,11 @@ u_int16_t sc_procframe; u_int16_t sc_portnum; - u_int16_t sc_dbm_adjust; + /* RSSI interpretation */ + u_int16_t sc_min_rssi; /* clamp sc_min_rssi < RSSI */ + u_int16_t sc_max_rssi; /* clamp RSSI < sc_max_rssi */ + u_int16_t sc_dbm_offset; /* dBm ~ RSSI - sc_dbm_offset */ + u_int16_t sc_max_datalen; u_int16_t sc_system_scale; u_int16_t sc_cnfauthmode; @@ -158,8 +162,19 @@ int sc_false_syns; u_int16_t sc_txbuf[IEEE80211_MAX_LEN/2]; + + union { + struct wi_tx_radiotap_header th; + u_int8_t pad[64]; + } u_tx_rt; + union { + struct wi_rx_radiotap_header th; + u_int8_t pad[64]; + } u_rx_rt; }; #define sc_if sc_ic.ic_if +#define sc_tx_th u_tx_rt.th +#define sc_rx_th u_rx_rt.th /* maximum consecutive false change-of-BSSID indications */ #define WI_MAX_FALSE_SYNS 10 @@ -184,6 +199,17 @@ u_int8_t firm_type; }; +#define WI_PRISM_MIN_RSSI 0x1b +#define WI_PRISM_MAX_RSSI 0x9a +#define WI_PRISM_DBM_OFFSET 100 /* XXX */ + +#define WI_LUCENT_MIN_RSSI 47 +#define WI_LUCENT_MAX_RSSI 138 +#define WI_LUCENT_DBM_OFFSET 149 + +#define WI_RSSI_TO_DBM(sc, rssi) (MIN((sc)->sc_max_rssi, \ + MAX((sc)->sc_min_rssi, (rssi))) - (sc)->sc_dbm_offset) + #if __FreeBSD_version < 500000 /* * Various compat hacks/kludges From owner-p4-projects@FreeBSD.ORG Thu Aug 7 14:38:47 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 42C6E37B404; Thu, 7 Aug 2003 14:38:47 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EC82937B401 for ; Thu, 7 Aug 2003 14:38:46 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 62A3F43F3F for ; Thu, 7 Aug 2003 14:38:46 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h77Lck0U020803 for ; Thu, 7 Aug 2003 14:38:46 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h77LcjK5020799 for perforce@freebsd.org; Thu, 7 Aug 2003 14:38:45 -0700 (PDT) Date: Thu, 7 Aug 2003 14:38:45 -0700 (PDT) Message-Id: <200308072138.h77LcjK5020799@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35739 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2003 21:38:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=35739 Change 35739 by sam@sam_ebb on 2003/08/07 14:38:31 o record rx antenna state in driver-private node state o revamp input path to pass (referenced) node up into the wlan layer and to capture the rx antenna state o add radiotap packet capture support o delay interrupt re-enable on channel change until all state has been changed Affected files ... .. //depot/projects/netperf/sys/dev/ath/if_ath.c#5 edit .. //depot/projects/netperf/sys/dev/ath/if_athioctl.h#2 edit .. //depot/projects/netperf/sys/dev/ath/if_athvar.h#2 edit Differences ... ==== //depot/projects/netperf/sys/dev/ath/if_ath.c#5 (text+ko) ==== @@ -70,10 +70,6 @@ #include #include -#include -#include -#include -#include #include #include @@ -302,6 +298,21 @@ /* complete initialization */ ieee80211_media_init(ifp, ath_media_change, ieee80211_media_status); + bpfattach2(ifp, DLT_IEEE802_11_RADIO, + sizeof(struct ieee80211_frame) + sizeof(sc->sc_tx_th), + &sc->sc_drvbpf); + /* + * Initialize constant fields. + * + * NB: the channel is setup each time we transition to the + * RUN state to avoid filling it in for each frame. + */ + sc->sc_tx_th.wt_ihdr.it_len = sizeof(sc->sc_tx_th); + sc->sc_tx_th.wt_ihdr.it_present = ATH_TX_RADIOTAP_PRESENT; + + sc->sc_rx_th.wr_ihdr.it_len = sizeof(sc->sc_rx_th); + sc->sc_rx_th.wr_ihdr.it_present = ATH_RX_RADIOTAP_PRESENT; + if_printf(ifp, "802.11 address: %s\n", ether_sprintf(ic->ic_myaddr)); return 0; @@ -744,6 +755,23 @@ } else ni = ic->ic_bss; + if (sc->sc_drvbpf) { + struct mbuf *mb; + + MGETHDR(mb, M_DONTWAIT, m->m_type); + if (mb != NULL) { + sc->sc_tx_th.wt_rate = + ni->ni_rates.rs_rates[ni->ni_txrate]; + + mb->m_next = m; + mb->m_data = (caddr_t)&sc->sc_tx_th; + mb->m_len = sizeof(sc->sc_tx_th); + mb->m_pkthdr.len += mb->m_len; + bpf_mtap(sc->sc_drvbpf, mb); + m_free(mb); + } + } + /* * TODO: * The duration field of 802.11 header should be filled. @@ -751,12 +779,6 @@ * doesn't know the detail of parameters such as IFS * for now.. */ - - if (IFF_DUMPPKTS(ifp)) - ieee80211_dump_pkt(mtod(m, u_int8_t *), m->m_len, - ni->ni_rates.rs_rates[ni->ni_txrate] & IEEE80211_RATE_VAL, - -1); - if (ath_tx_start(sc, ni, bf, m)) { bad: mtx_lock(&sc->sc_txbuflock); @@ -1371,7 +1393,7 @@ { struct ath_node *an = malloc(sizeof(struct ath_node), M_DEVBUF, M_NOWAIT | M_ZERO); - return an ? &an->st_node : NULL; + return an ? &an->an_node : NULL; } static void @@ -1455,11 +1477,13 @@ { struct ath_softc *sc = arg; struct ath_buf *bf; - struct ifnet *ifp = &sc->sc_ic.ic_if; + struct ieee80211com *ic = &sc->sc_ic; + struct ifnet *ifp = &ic->ic_if; struct ath_hal *ah = sc->sc_ah; struct ath_desc *ds; struct mbuf *m; struct ieee80211_frame *wh, whbuf; + struct ieee80211_node *ni; int len; u_int phyerr; HAL_STATUS status; @@ -1524,12 +1548,29 @@ bf->bf_m = NULL; m->m_pkthdr.rcvif = ifp; m->m_pkthdr.len = m->m_len = len; - if (IFF_DUMPPKTS(ifp)) { - struct ieee80211com *ic = &sc->sc_ic; - const HAL_RATE_TABLE *rt = sc->sc_rates[ic->ic_curmode]; - ieee80211_dump_pkt(mtod(m, u_int8_t *), len, - rt ? rt->info[rt->rateCodeToIndex[ds->ds_rxstat.rs_rate]].dot11Rate & IEEE80211_RATE_VAL : 0, - ds->ds_rxstat.rs_rssi); + + if (sc->sc_drvbpf) { + struct mbuf *mb; + + /* XXX pre-allocate space when setting up recv's */ + MGETHDR(mb, M_DONTWAIT, m->m_type); + if (mb != NULL) { + sc->sc_rx_th.wr_rate = + sc->sc_hwmap[ds->ds_rxstat.rs_rate]; + sc->sc_rx_th.wr_antsignal = + ds->ds_rxstat.rs_rssi; + sc->sc_rx_th.wr_antenna = + ds->ds_rxstat.rs_antenna; + /* XXX TSF */ + + (void) m_dup_pkthdr(mb, m, M_DONTWAIT); + mb->m_next = m; + mb->m_data = (caddr_t)&sc->sc_rx_th; + mb->m_len = sizeof(sc->sc_rx_th); + mb->m_pkthdr.len += mb->m_len; + bpf_mtap(sc->sc_drvbpf, mb); + m_free(mb); + } } m_adj(m, -IEEE80211_CRC_LEN); if (wh->i_fc[1] & IEEE80211_FC1_WEP) { @@ -1546,10 +1587,35 @@ */ m_adj(m, -IEEE80211_WEP_CRCLEN); } - ieee80211_input(ifp, m, - ds->ds_rxstat.rs_rssi, - ds->ds_rxstat.rs_tstamp, - ds->ds_rxstat.rs_antenna); + + /* + * Locate the node for sender, track state, and + * then pass this node (referenced) up to the 802.11 + * layer for its use. We are required to pass + * something so we fall back to ic_bss when this frame + * is from an unknown sender. + */ + if (ic->ic_opmode != IEEE80211_M_STA) { + ni = ieee80211_find_node(ic, wh->i_addr2); + if (ni == NULL) + ni = ieee80211_ref_node(ic->ic_bss); + } else + ni = ieee80211_ref_node(ic->ic_bss); + ATH_NODE(ni)->an_rx_antenna = ds->ds_rxstat.rs_antenna; + /* + * Send frame up for processing. + */ + ieee80211_input(ifp, m, ni, + ds->ds_rxstat.rs_rssi, ds->ds_rxstat.rs_tstamp); + /* + * The frame may have caused the node to be marked for + * reclamation (e.g. in response to a DEAUTH message) + * so use free_node here instead of unref_node. + */ + if (ni == ic->ic_bss) + ieee80211_unref_node(&ni); + else + ieee80211_free_node(ic, ni); rx_next: TAILQ_INSERT_TAIL(&sc->sc_rxbuf, bf, bf_list); } while (ath_rxbuf_init(sc, bf) == 0); @@ -1790,7 +1856,7 @@ if (an->an_tx_antenna) antenna = an->an_tx_antenna; else - antenna = ni->ni_rantenna; + antenna = an->an_rx_antenna; /* * Formulate first tx descriptor with tx controls. @@ -2091,9 +2157,12 @@ } /* - * Re-enable interrupts. + * Update BPF state. */ - ath_hal_intrset(ah, sc->sc_imask); + sc->sc_tx_th.wt_chan_freq = sc->sc_rx_th.wr_chan_freq = + htole16(chan->ic_freq); + sc->sc_tx_th.wt_chan_flags = sc->sc_rx_th.wr_chan_flags = + htole16(chan->ic_flags); /* * Change channels and update the h/w rate map @@ -2103,6 +2172,11 @@ mode = ieee80211_chan2mode(ic, chan); if (mode != sc->sc_curmode) ath_setcurmode(sc, mode); + + /* + * Re-enable interrupts. + */ + ath_hal_intrset(ah, sc->sc_imask); } return 0; } @@ -2397,6 +2471,9 @@ KASSERT(rt != NULL, ("no h/w rate set for phy mode %u", mode)); for (i = 0; i < rt->rateCount; i++) sc->sc_rixmap[rt->info[i].dot11Rate & IEEE80211_RATE_VAL] = i; + memset(sc->sc_hwmap, 0, sizeof(sc->sc_hwmap)); + for (i = 0; i < 32; i++) + sc->sc_hwmap[i] = rt->info[rt->rateCodeToIndex[i]].dot11Rate; sc->sc_currates = rt; sc->sc_curmode = mode; } ==== //depot/projects/netperf/sys/dev/ath/if_athioctl.h#2 (text+ko) ==== @@ -90,4 +90,39 @@ #define SIOCGATHSTATS _IOWR('i', 137, struct ifreq) +/* + * Radio capture format. + */ +#define ATH_RX_RADIOTAP_PRESENT ( \ + (1 << IEEE80211_RADIOTAP_FLAGS) | \ + (1 << IEEE80211_RADIOTAP_RATE) | \ + (1 << IEEE80211_RADIOTAP_CHANNEL) | \ + (1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL) | \ + (1 << IEEE80211_RADIOTAP_ANTENNA) | \ + 0) + +struct ath_rx_radiotap_header { + struct ieee80211_radiotap_header wr_ihdr; + u_int8_t wr_flags; /* XXX for padding */ + u_int8_t wr_rate; + u_int16_t wr_chan_freq; + u_int16_t wr_chan_flags; + u_int8_t wr_antsignal; + u_int8_t wr_antenna; +}; + +#define ATH_TX_RADIOTAP_PRESENT ( \ + (1 << IEEE80211_RADIOTAP_FLAGS) | \ + (1 << IEEE80211_RADIOTAP_RATE) | \ + (1 << IEEE80211_RADIOTAP_CHANNEL) | \ + 0) + +struct ath_tx_radiotap_header { + struct ieee80211_radiotap_header wt_ihdr; + u_int8_t wt_flags; /* XXX for padding */ + u_int8_t wt_rate; + u_int16_t wt_chan_freq; + u_int16_t wt_chan_flags; +}; + #endif /* _DEV_ATH_ATHIOCTL_H */ ==== //depot/projects/netperf/sys/dev/ath/if_athvar.h#2 (text+ko) ==== @@ -45,6 +45,7 @@ #include #include +#include #include #define ATH_TIMEOUT 1000 @@ -55,13 +56,15 @@ /* driver-specific node */ struct ath_node { - struct ieee80211_node st_node; /* base class */ + struct ieee80211_node an_node; /* base class */ u_int an_tx_ok; /* tx ok pkt */ u_int an_tx_err; /* tx !ok pkt */ u_int an_tx_retr; /* tx retry count */ int an_tx_upper; /* tx upper rate req cnt */ u_int an_tx_antenna; /* antenna for last good frame */ + u_int an_rx_antenna; /* antenna for last rcvd frame */ }; +#define ATH_NODE(_n) ((struct ath_node *)(_n)) struct ath_buf { TAILQ_ENTRY(ath_buf) bf_list; @@ -95,8 +98,19 @@ const HAL_RATE_TABLE *sc_currates; /* current rate table */ enum ieee80211_phymode sc_curmode; /* current phy mode */ u_int8_t sc_rixmap[256]; /* IEEE to h/w rate table ix */ + u_int8_t sc_hwmap[32]; /* h/w rate ix to IEEE table */ HAL_INT sc_imask; /* interrupt mask copy */ + struct bpf_if *sc_drvbpf; + union { + struct ath_tx_radiotap_header th; + u_int8_t pad[64]; + } u_tx_rt; + union { + struct ath_rx_radiotap_header th; + u_int8_t pad[64]; + } u_rx_rt; + struct ath_desc *sc_desc; /* TX/RX descriptors */ bus_dma_segment_t sc_dseg; bus_dmamap_t sc_ddmamap; /* DMA map for descriptors */ @@ -129,6 +143,8 @@ struct callout sc_scan_ch; /* callout handle for scan */ struct ath_stats sc_stats; /* interface statistics */ }; +#define sc_tx_th u_tx_rt.th +#define sc_rx_th u_rx_rt.th int ath_attach(u_int16_t, struct ath_softc *); int ath_detach(struct ath_softc *); From owner-p4-projects@FreeBSD.ORG Thu Aug 7 15:30:57 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF66E37B404; Thu, 7 Aug 2003 15:30:56 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 504AF37B401 for ; Thu, 7 Aug 2003 15:30:56 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E914143F85 for ; Thu, 7 Aug 2003 15:30:55 -0700 (PDT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h77MUt0U024121 for ; Thu, 7 Aug 2003 15:30:55 -0700 (PDT) (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h77MUtBU024118 for perforce@freebsd.org; Thu, 7 Aug 2003 15:30:55 -0700 (PDT) Date: Thu, 7 Aug 2003 15:30:55 -0700 (PDT) Message-Id: <200308072230.h77MUtBU024118@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Subject: PERFORCE change 35749 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Aug 2003 22:30:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=35749 Change 35749 by sam@sam_ebb on 2003/08/07 15:29:55 o must unlock before destroying mutex o must lock rt_gwroute before freeing when cleaning up on error Affected files ... .. //depot/projects/netperf/sys/net/route.c#5 edit Differences ... ==== //depot/projects/netperf/sys/net/route.c#5 (text+ko) ==== @@ -275,6 +275,7 @@ /* * and the rtentry itself of course */ + RT_UNLOCK(rt); RT_LOCK_DESTROY(rt); Free(rt); return; @@ -648,6 +649,7 @@ */ RT_LOCK(rt); if ((error = rt_setgate(rt, dst, gateway)) != 0) { + RT_UNLOCK(rt); RT_LOCK_DESTROY(rt); Free(rt); senderr(error); @@ -707,11 +709,11 @@ */ if (rn == 0) { if (rt->rt_gwroute) - rtfree(rt->rt_gwroute); + RTFREE(rt->rt_gwroute); if (rt->rt_ifa) IFAFREE(rt->rt_ifa); Free(rt_key(rt)); - /* XXX still locked */ + RT_UNLOCK(rt); RT_LOCK_DESTROY(rt); Free(rt); senderr(EEXIST); From owner-p4-projects@FreeBSD.ORG Thu Aug 7 17:38:41 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D2A9137B404; Thu, 7 Aug 2003 17:38:40 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6E0A037B401 for ; Thu, 7 Aug 2003 17:38:40 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 21DBD43F93 for ; Thu, 7 Aug 2003 17:38:39 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h780cd0U035602 for ; Thu, 7 Aug 2003 17:38:39 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h780ccLj035593 for perforce@freebsd.org; Thu, 7 Aug 2003 17:38:38 -0700 (PDT) Date: Thu, 7 Aug 2003 17:38:38 -0700 (PDT) Message-Id: <200308080038.h780ccLj035593@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 35755 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Aug 2003 00:38:42 -0000 http://perforce.freebsd.org/chv.cgi?CH=35755 Change 35755 by marcel@marcel_nfs on 2003/08/07 17:38:14 IFC @35753 Affected files ... .. //depot/projects/ia64/bin/setfacl/setfacl.1#4 integrate .. //depot/projects/ia64/bin/setfacl/setfacl.c#6 integrate .. //depot/projects/ia64/contrib/isc-dhcp/FREEBSD-upgrade#6 integrate .. //depot/projects/ia64/contrib/isc-dhcp/client/dhclient.c#10 integrate .. //depot/projects/ia64/contrib/isc-dhcp/includes/dhcpd.h#8 integrate .. //depot/projects/ia64/etc/newsyslog.conf#10 integrate .. //depot/projects/ia64/etc/rc.d/initdiskless#9 integrate .. //depot/projects/ia64/lib/libc/locale/btowc.c#2 integrate .. //depot/projects/ia64/lib/libc/locale/mblen.c#3 integrate .. //depot/projects/ia64/lib/libc/locale/mbstowcs.c#5 integrate .. //depot/projects/ia64/lib/libc/locale/mbtowc.c#4 integrate .. //depot/projects/ia64/lib/libc/locale/wcstombs.c#4 integrate .. //depot/projects/ia64/lib/libc/locale/wctob.c#2 integrate .. //depot/projects/ia64/lib/libc/locale/wctomb.c#3 integrate .. //depot/projects/ia64/lib/libpthread/arch/ia64/ia64/context.S#3 integrate .. //depot/projects/ia64/lib/libpthread/arch/ia64/include/pthread_md.h#6 integrate .. //depot/projects/ia64/release/Makefile#67 integrate .. //depot/projects/ia64/sbin/ccdconfig/Makefile#5 integrate .. //depot/projects/ia64/sbin/ccdconfig/ccdconfig.c#9 integrate .. //depot/projects/ia64/sys/alpha/alpha/pmap.c#38 integrate .. //depot/projects/ia64/sys/boot/i386/libi386/biosacpi.c#5 integrate .. //depot/projects/ia64/sys/boot/i386/libi386/biospnp.c#4 integrate .. //depot/projects/ia64/sys/conf/NOTES#61 integrate .. //depot/projects/ia64/sys/conf/files#91 integrate .. //depot/projects/ia64/sys/conf/kern.post.mk#36 integrate .. //depot/projects/ia64/sys/conf/options#61 integrate .. //depot/projects/ia64/sys/contrib/dev/acpica/acfreebsd.h#12 integrate .. //depot/projects/ia64/sys/contrib/dev/acpica/common/adisasm.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/common/getopt.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslanalyze.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslcodegen.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslcompile.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslcompiler.h#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslcompiler.l#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslcompiler.y#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslerror.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslfiles.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslfold.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslglobal.h#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/asllength.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/asllisting.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslload.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/asllookup.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslmain.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslmap.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslopcodes.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/asloperands.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslopt.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslresource.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslrestype1.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslrestype2.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslstubs.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/asltransform.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/asltree.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/asltypes.h#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/compiler/aslutils.c#1 branch .. //depot/projects/ia64/sys/contrib/dev/acpica/osunixxf.c#1 branch .. //depot/projects/ia64/sys/dev/aac/aacvar.h#18 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi_pcib_acpi.c#7 integrate .. //depot/projects/ia64/sys/dev/ct/ct.c#3 integrate .. //depot/projects/ia64/sys/dev/dgb/dgreg.h#2 integrate .. //depot/projects/ia64/sys/dev/digi/digi.c#15 integrate .. //depot/projects/ia64/sys/dev/digi/digi.h#6 integrate .. //depot/projects/ia64/sys/dev/digi/digireg.h#2 integrate .. //depot/projects/ia64/sys/dev/ed/if_ed.c#12 integrate .. //depot/projects/ia64/sys/dev/ed/if_ed_pccard.c#17 integrate .. //depot/projects/ia64/sys/dev/en/midwayvar.h#9 integrate .. //depot/projects/ia64/sys/dev/fatm/if_fatm.c#7 integrate .. //depot/projects/ia64/sys/dev/fatm/if_fatmvar.h#3 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm.c#6 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm_ioctl.c#6 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatm_tx.c#5 integrate .. //depot/projects/ia64/sys/dev/hatm/if_hatmvar.h#5 integrate .. //depot/projects/ia64/sys/dev/md/md.c#33 integrate .. //depot/projects/ia64/sys/dev/patm/if_patm.c#3 integrate .. //depot/projects/ia64/sys/dev/patm/if_patm_ioctl.c#4 integrate .. //depot/projects/ia64/sys/dev/patm/if_patmvar.h#3 integrate .. //depot/projects/ia64/sys/dev/pccard/pccarddevs#33 integrate .. //depot/projects/ia64/sys/dev/pccard/pccarddevs.h#33 integrate .. //depot/projects/ia64/sys/dev/pccbb/pccbb.c#31 integrate .. //depot/projects/ia64/sys/dev/ppbus/ppbconf.h#2 integrate .. //depot/projects/ia64/sys/dev/rc/rc.c#7 integrate .. //depot/projects/ia64/sys/dev/snc/dp83932.c#8 integrate .. //depot/projects/ia64/sys/fs/udf/udf_vfsops.c#13 integrate .. //depot/projects/ia64/sys/ia64/ia64/mp_machdep.c#35 integrate .. //depot/projects/ia64/sys/ia64/ia64/pmap.c#73 integrate .. //depot/projects/ia64/sys/ia64/include/cpu.h#19 integrate .. //depot/projects/ia64/sys/isofs/cd9660/cd9660_vfsops.c#20 integrate .. //depot/projects/ia64/sys/kern/kern_ktrace.c#21 integrate .. //depot/projects/ia64/sys/kern/kern_thread.c#62 integrate .. //depot/projects/ia64/sys/kern/sysv_msg.c#12 integrate .. //depot/projects/ia64/sys/kern/sysv_sem.c#15 integrate .. //depot/projects/ia64/sys/kern/sysv_shm.c#13 integrate .. //depot/projects/ia64/sys/kern/vfs_subr.c#53 integrate .. //depot/projects/ia64/sys/kern/vfs_syscalls.c#52 integrate .. //depot/projects/ia64/sys/netinet/in.h#19 integrate .. //depot/projects/ia64/sys/netinet/in_pcb.c#25 integrate .. //depot/projects/ia64/sys/netinet/in_proto.c#8 integrate .. //depot/projects/ia64/sys/netinet/ip_mroute.c#21 integrate .. //depot/projects/ia64/sys/netinet/ip_mroute.h#4 integrate .. //depot/projects/ia64/sys/netinet/ip_output.c#29 integrate .. //depot/projects/ia64/sys/netinet/ip_var.h#13 integrate .. //depot/projects/ia64/sys/netinet/pim.h#1 branch .. //depot/projects/ia64/sys/netinet/pim_var.h#1 branch .. //depot/projects/ia64/sys/netinet/raw_ip.c#24 integrate .. //depot/projects/ia64/sys/nfsclient/bootp_subr.c#15 integrate .. //depot/projects/ia64/sys/sys/namei.h#8 integrate .. //depot/projects/ia64/sys/ufs/ffs/ffs_vnops.c#31 integrate .. //depot/projects/ia64/usr.bin/netstat/inet.c#8 integrate .. //depot/projects/ia64/usr.bin/netstat/main.c#7 integrate .. //depot/projects/ia64/usr.bin/netstat/mroute.c#4 integrate .. //depot/projects/ia64/usr.bin/netstat/netstat.1#4 integrate .. //depot/projects/ia64/usr.bin/netstat/netstat.h#4 integrate .. //depot/projects/ia64/usr.sbin/acpi/Makefile.inc#3 integrate .. //depot/projects/ia64/usr.sbin/acpi/acpidb/Makefile#1 branch .. //depot/projects/ia64/usr.sbin/acpi/acpidb/acpidb.8#1 branch .. //depot/projects/ia64/usr.sbin/acpi/acpidb/acpidb.c#1 branch .. //depot/projects/ia64/usr.sbin/acpi/iasl/Makefile#1 branch .. //depot/projects/ia64/usr.sbin/acpi/iasl/iasl.8#1 branch Differences ... ==== //depot/projects/ia64/bin/setfacl/setfacl.1#4 (text+ko) ==== @@ -23,7 +23,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/bin/setfacl/setfacl.1,v 1.8 2002/12/30 15:36:29 rwatson Exp $ +.\" $FreeBSD: src/bin/setfacl/setfacl.1,v 1.9 2003/08/07 14:52:17 rwatson Exp $ .\" .Dd January 7, 2001 .Dt SETFACL 1 @@ -185,6 +185,24 @@ .Dq Li group ACL entries in the resulting ACL. .Pp +Traditional POSIX interfaces acting on file system object modes have +modified semantics in the presence of POSIX.1e extended ACLs. +When a mask entry is present on the access ACL of an object, the mask +entry is substituted for the group bits; this occurs in programs such +as +.Xr stat 1 +or +.Xr ls 1 . +When the mode is modified on an object that has a mask entry, the +changes applied to the group bits will actually be applied to the +mask entry. +These semantics provide for greater application compatibility: +applications modifying the mode instead of the ACL will see +conservative behavior, limiting the effective rights granted by all +of the additional user and group entries; this occurs in programs +such as +.Xr chmod 1 . +.Pp ACL entries applied from a file using the .Fl M or ==== //depot/projects/ia64/bin/setfacl/setfacl.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/bin/setfacl/setfacl.c,v 1.8 2003/07/18 16:00:26 rwatson Exp $"); +__FBSDID("$FreeBSD: src/bin/setfacl/setfacl.c,v 1.9 2003/08/07 14:43:43 rwatson Exp $"); #include #include @@ -96,7 +96,7 @@ usage(void) { - fprintf(stderr, "usage: setfacl [-bdhknv] [-m entries] [-M file1] " + fprintf(stderr, "usage: setfacl [-bdhkn] [-m entries] [-M file1] " "[-x entries] [-X file2] [file ...]\n"); exit(1); } ==== //depot/projects/ia64/contrib/isc-dhcp/FREEBSD-upgrade#6 (text+ko) ==== @@ -1,5 +1,5 @@ # ex:ts=8 -$FreeBSD: src/contrib/isc-dhcp/FREEBSD-upgrade,v 1.16 2003/07/28 08:30:11 mbr Exp $ +$FreeBSD: src/contrib/isc-dhcp/FREEBSD-upgrade,v 1.17 2003/08/07 15:00:55 mbr Exp $ ISC DHCP client 3.0.1rc11 originals can be found at: ftp://ftp.isc.org/isc/dhcp/ @@ -47,6 +47,9 @@ r1.6 - document -D option. - remove dhcpd from SEE ALSO section. client/dhclient.c + r1.29 - interface polling + r1.28 - interface polling + r1.27 - interface polling r1.26 - interface polling r1.25 - correct release lease option r1.19 - connect std{in,out,err}. @@ -59,9 +62,12 @@ r1.2 - note that hostname is only set if not already set. - Remove dhcpd from SEE ALSO section. common/dispatch.c - r1.2 - polling mode + r1.2 - interface polling includes/dhcpd.h - r1.2 - polling mode + r1.5 - interface polling + r1.4 - interface polling + r1.3 - interface polling + r1.2 - interface polling (see CVS logs for complete details) murray@FreeBSD.org ==== //depot/projects/ia64/contrib/isc-dhcp/client/dhclient.c#10 (text+ko) ==== @@ -42,7 +42,7 @@ #ifndef lint static char ocopyright[] = "$Id: dhclient.c,v 1.129.2.12 2002/11/07 23:26:38 dhankins Exp $ Copyright (c) 1995-2002 Internet Software Consortium. All rights reserved.\n" -"$FreeBSD: src/contrib/isc-dhcp/client/dhclient.c,v 1.29 2003/08/07 07:27:14 mbr Exp $\n"; +"$FreeBSD: src/contrib/isc-dhcp/client/dhclient.c,v 1.30 2003/08/07 14:58:46 mbr Exp $\n"; #endif /* not lint */ #include "dhcpd.h" @@ -260,8 +260,13 @@ #ifdef __FreeBSD__ set_ieee80211 (tmp); #endif + /* Init some interface vars, enable polling */ +#ifdef ENABLE_POLLING_MODE tmp -> forcediscover = 0; tmp -> linkstate = 0; + tmp -> polling = 1; +#endif /* ifdef ENABLE_POLLING_MODE */ + if (interfaces) { interface_reference (&tmp -> next, interfaces, MDL); @@ -944,8 +949,10 @@ (long)(client -> active -> renewal - cur_time)); client -> state = S_BOUND; #ifdef ENABLE_POLLING_MODE + /* Init some interface vars, enable polling */ client -> interface -> linkstate = HAVELINK; client -> interface -> forcediscover = 0; + client -> interface -> polling = 1; #endif /* ifdef ENABLE_POLLING_MODE */ reinitialize_interfaces (); go_daemon (); @@ -1409,6 +1416,11 @@ int interval; int increase = 1; +#ifdef ENABLE_POLLING_MODE + /* Disable polling for this interface */ + client -> interface -> polling = 0; +#endif + /* Figure out how long it's been since we started transmitting. */ interval = cur_time - client -> first_sending; @@ -1552,6 +1564,10 @@ log_info ("bound: renewal in %ld %s.", (long)(client -> active -> renewal - cur_time), "seconds"); +#ifdef ENABLE_POLLING_MODE + /* Enable polling for thsi interface */ + client -> interface -> polling = 1; +#endif add_timeout (client -> active -> renewal, state_bound, client, 0, 0); } else { @@ -1609,6 +1625,12 @@ } log_info ("No working leases in persistent database - sleeping."); + +#ifdef ENABLE_POLLING_MODE + /* Enable polling for this interface */ + client -> interface -> polling = 1; +#endif + script_init (client, "FAIL", (struct string_list *)0); if (client -> alias) script_write_params (client, "alias_", client -> alias); @@ -3341,12 +3363,11 @@ struct interface_info *ip; struct client_state *client; -#ifdef DEBUG - printf ("Polling interface status\n"); -#endif for (ip = interfaces; ip; ip = ip -> next) { - + if (! ip -> polling) + continue; #ifdef DEBUG + printf ("%s: Polling interface state\n", ip -> name); for (client = ip -> client; client; client = client -> next) { printf ("%s: client state of %d\n", ip -> name, ip -> client -> state); ==== //depot/projects/ia64/contrib/isc-dhcp/includes/dhcpd.h#8 (text+ko) ==== @@ -40,7 +40,7 @@ * see ``http://www.vix.com''. To learn more about Nominum, Inc., see * ``http://www.nominum.com''. * - * $FreeBSD: src/contrib/isc-dhcp/includes/dhcpd.h,v 1.5 2003/08/07 07:27:14 mbr Exp $ + * $FreeBSD: src/contrib/isc-dhcp/includes/dhcpd.h,v 1.6 2003/08/07 14:58:46 mbr Exp $ */ #ifndef __CYGWIN32__ @@ -786,6 +786,7 @@ int ieee80211; /* True if media is ieee802.11 */ int havemedia; /* True if we have a media table */ int linkstate; /* True if we have link */ + int polling; /* True if polling is enabled */ int forcediscover; /* True if a discover is needed */ int index; /* Its index. */ int rfdesc; /* Its read file descriptor. */ ==== //depot/projects/ia64/etc/newsyslog.conf#10 (text+ko) ==== @@ -1,10 +1,10 @@ # configuration file for newsyslog -# $FreeBSD: src/etc/newsyslog.conf,v 1.46 2003/05/05 19:08:33 gad Exp $ +# $FreeBSD: src/etc/newsyslog.conf,v 1.47 2003/08/07 21:04:40 fjoe Exp $ # # Entries which do not specify the '/pid_file' field will cause the # syslogd process to be signalled when that log file is rotated. This # action is only appropriate for log files which are written to by the -# syslogd process (ie, files listed in /etc/syslogd.conf). If there +# syslogd process (ie, files listed in /etc/syslog.conf). If there # is no process which needs to be signalled when a given log file is # rotated, then the entry for that file should include the 'N' flag. # ==== //depot/projects/ia64/etc/rc.d/initdiskless#9 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (c) 1999 Matt Dillion +# Copyright (c) 1999 Matt Dillon # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.d/initdiskless,v 1.24 2003/06/30 21:47:06 brooks Exp $ +# $FreeBSD: src/etc/rc.d/initdiskless,v 1.25 2003/08/07 21:06:32 fjoe Exp $ # # PROVIDE: initdiskless # KEYWORD: FreeBSD ==== //depot/projects/ia64/lib/libc/locale/btowc.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Tim J. Robbins. + * Copyright (c) 2002, 2003 Tim J. Robbins. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,21 +25,31 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/btowc.c,v 1.1 2002/08/03 13:49:55 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/btowc.c,v 1.2 2003/08/07 07:45:35 tjr Exp $"); -#include +#include +#include #include wint_t btowc(int c) { - rune_t r; char cc; + wchar_t wc; if (c == EOF) return (WEOF); cc = (char)c; - if ((r = sgetrune(&cc, 1, NULL)) == _INVALID_RUNE) + /* + * We expect mbrtowc() to return 0 or 1, hence the check for n > 1 + * which detects error return values as well as "impossible" byte + * counts. + * + * We pass NULL as the state pointer to mbrtowc() because we don't + * support state-dependent encodings and don't want to waste time + * creating a zeroed mbstate_t that will not be used. + */ + if (mbrtowc(&wc, &cc, 1, NULL) > 1) return (WEOF); - return (r); + return (wc); } ==== //depot/projects/ia64/lib/libc/locale/mblen.c#3 (text+ko) ==== @@ -1,9 +1,6 @@ /*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Paul Borman at Krystal Technologies. + * Copyright (c) 2002, 2003 Tim J. Robbins. + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -13,18 +10,11 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) @@ -35,24 +25,17 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/mblen.c,v 1.4 2002/10/28 08:24:46 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/mblen.c,v 1.5 2003/08/07 09:34:51 tjr Exp $"); -#include -#include #include -#include int mblen(const char *s, size_t n) { - const char *e; - if (s == NULL) - /* No support for state dependent encodings. */ - return (0); - if (sgetrune(s, n, &e) == _INVALID_RUNE) { - errno = EILSEQ; - return (-1); - } - return (*s == '\0' ? 0 : e - s); + /* + * Calling mbtowc() is only legal because we don't support + * state-dependent encodings. + */ + return (mbtowc(NULL, s, n)); } ==== //depot/projects/ia64/lib/libc/locale/mbstowcs.c#5 (text+ko) ==== @@ -1,10 +1,7 @@ /*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. + * Copyright (c) 2002, 2003 Tim J. Robbins. + * All rights reserved. * - * This code is derived from software contributed to Berkeley by - * Paul Borman at Krystal Technologies. - * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -13,18 +10,11 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) @@ -35,54 +25,20 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/mbstowcs.c,v 1.6 2002/11/09 04:13:26 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/mbstowcs.c,v 1.7 2003/08/07 08:04:01 tjr Exp $"); -#include #include -#include -#include -#include +#include +#include size_t mbstowcs(wchar_t * __restrict pwcs, const char * __restrict s, size_t n) { - const char *e; - int cnt; - rune_t r; - if (s == NULL) { - errno = EINVAL; - return (-1); - } - - if (pwcs == NULL) { - /* Convert and count only, do not store. */ - cnt = 0; - while ((r = sgetrune(s, MB_LEN_MAX, &e)) != _INVALID_RUNE && - r != 0) { - s = e; - cnt++; - } - if (r == _INVALID_RUNE) { - errno = EILSEQ; - return (-1); - } - return (cnt); - } - - /* Convert, store and count characters. */ - cnt = 0; - while (n-- > 0) { - *pwcs = sgetrune(s, MB_LEN_MAX, &e); - if (*pwcs == _INVALID_RUNE) { - errno = EILSEQ; - return (-1); - } - if (*pwcs++ == L'\0') - break; - s = e; - ++cnt; - } - - return (cnt); + /* + * We pass NULL as the state pointer to mbsrtowcs() because we don't + * support state-dependent encodings and don't want to waste time + * creating a zeroed mbstate_t that will not be used. + */ + return (mbsrtowcs(pwcs, &s, n, NULL)); } ==== //depot/projects/ia64/lib/libc/locale/mbtowc.c#4 (text+ko) ==== @@ -1,9 +1,6 @@ /*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Paul Borman at Krystal Technologies. + * Copyright (c) 2002, 2003 Tim J. Robbins. + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -13,18 +10,11 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) @@ -35,27 +25,33 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/mbtowc.c,v 1.6 2002/10/28 08:24:46 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/mbtowc.c,v 1.7 2003/08/07 07:59:36 tjr Exp $"); #include +#include #include -#include -#include +#include +#include int mbtowc(wchar_t * __restrict pwc, const char * __restrict s, size_t n) { - const char *e; - rune_t r; + size_t rval; if (s == NULL) /* No support for state dependent encodings. */ - return (0); - if ((r = sgetrune(s, n, &e)) == _INVALID_RUNE) { - errno = EILSEQ; + return (0); + /* + * We pass NULL as the state pointer to mbrtowc() because we don't + * support state-dependent encodings and don't want to waste time + * creating a zeroed mbstate_t that will not be used. + */ + rval = mbrtowc(pwc, s, n, NULL); + if (rval == (size_t)-1 || rval == (size_t)-2) + return (-1); + if (rval > INT_MAX) { + errno = ERANGE; return (-1); } - if (pwc != NULL) - *pwc = r; - return (r == 0 ? 0 : e - s); + return ((int)rval); } ==== //depot/projects/ia64/lib/libc/locale/wcstombs.c#4 (text+ko) ==== @@ -1,9 +1,6 @@ /*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Paul Borman at Krystal Technologies. + * Copyright (c) 2002, 2003 Tim J. Robbins. + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -13,18 +10,11 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) @@ -35,57 +25,20 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/wcstombs.c,v 1.5 2002/10/27 10:41:21 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/wcstombs.c,v 1.6 2003/08/07 08:04:01 tjr Exp $"); -#include #include -#include -#include -#include +#include +#include size_t wcstombs(char * __restrict s, const wchar_t * __restrict pwcs, size_t n) { - char buf[MB_LEN_MAX]; - char *e; - int cnt, nb; - if (pwcs == NULL || n > INT_MAX) { - errno = EINVAL; - return (-1); - } - - cnt = 0; - - if (s == NULL) { - /* Convert and count only, do not store. */ - while (*pwcs != L'\0') { - if (sputrune(*pwcs++, buf, MB_LEN_MAX, &e) == 0) { - errno = EILSEQ; - return (-1); - } - cnt += e - buf; - } - return (cnt); - } - - /* Convert, store and count characters. */ - nb = n; - while (nb > 0) { - if (*pwcs == L'\0') { - *s = '\0'; - break; - } - if (sputrune(*pwcs++, s, nb, &e) == 0) { - errno = EILSEQ; - return (-1); - } - if (e == NULL) /* too long */ - return (cnt); - cnt += e - s; - nb -= e - s; - s = e; - } - - return (cnt); + /* + * We pass NULL as the state pointer to wcsrtombs() because we don't + * support state-dependent encodings and don't want to waste time + * creating a zeroed mbstate_t that will not be used. + */ + return (wcsrtombs(s, &pwcs, n, NULL)); } ==== //depot/projects/ia64/lib/libc/locale/wctob.c#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2002 Tim J. Robbins. + * Copyright (c) 2002, 2003 Tim J. Robbins. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,17 +25,24 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/wctob.c,v 1.1 2002/08/03 13:49:55 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/wctob.c,v 1.2 2003/08/07 07:45:35 tjr Exp $"); -#include +#include +#include +#include #include int wctob(wint_t c) { - char cc; + char buf[MB_LEN_MAX]; - if (c == WEOF || sputrune(c, &cc, 1, NULL) != 1) + /* + * We pass NULL as the state pointer to wcrtomb() because we don't + * support state-dependent encodings and don't want to waste time + * creating a zeroed mbstate_t that will not be used. + */ + if (c == WEOF || wcrtomb(buf, c, NULL) != 1) return (EOF); - return ((unsigned char)cc); + return ((unsigned char)*buf); } ==== //depot/projects/ia64/lib/libc/locale/wctomb.c#3 (text+ko) ==== @@ -1,9 +1,6 @@ /*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Paul Borman at Krystal Technologies. + * Copyright (c) 2002, 2003 Tim J. Robbins. + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -13,18 +10,11 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) @@ -35,32 +25,35 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/locale/wctomb.c,v 1.3 2002/10/27 10:41:21 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/locale/wctomb.c,v 1.4 2003/08/07 07:59:36 tjr Exp $"); #include +#include #include -#include -#include -#include +#include +#include int wctomb(char *s, wchar_t wchar) { - char *e; + char buf[MB_LEN_MAX]; + size_t rval; if (s == NULL) /* No support for state dependent encodings. */ - return (0); - - if (wchar == L'\0') { - *s = '\0'; - return (1); - } - - sputrune(wchar, s, MB_CUR_MAX, &e); - if (e == NULL) { - errno = EILSEQ; + return (0); + if (s == NULL) + s = buf; + /* + * We pass NULL as the state pointer to wcrtomb() because we don't + * support state-dependent encodings and don't want to waste time + * creating a zeroed mbstate_t that will not be used. + */ + if ((rval = wcrtomb(s, wchar, NULL)) == (size_t)-1) + return (-1); + if (rval > INT_MAX) { + errno = ERANGE; return (-1); } - return (e - s); + return ((int)rval); } ==== //depot/projects/ia64/lib/libpthread/arch/ia64/ia64/context.S#3 (text+ko) ==== @@ -25,7 +25,9 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libpthread/arch/ia64/ia64/context.S,v 1.3 2003/08/05 19:33:01 marcel Exp $"); +__FBSDID("$FreeBSD: src/lib/libpthread/arch/ia64/ia64/context.S,v 1.4 2003/08/07 08:03:05 marcel Exp $"); + +#include #define SIZEOF_SPECIAL (18*8) @@ -335,3 +337,15 @@ ;; } END(_ia64_save_context) + +/* + * void _ia64_break_setcontext(ucontext_t *ucp); + */ +ENTRY(_ia64_break_setcontext, 1) +{ .mib + mov r15=SYS_setcontext + break 0x100000 + br.ret.sptk rp + ;; +} +END(_ia64_break_setcontext) ==== //depot/projects/ia64/lib/libpthread/arch/ia64/include/pthread_md.h#6 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/lib/libpthread/arch/ia64/include/pthread_md.h,v 1.8 2003/08/06 06:12:54 deischen Exp $ + * $FreeBSD: src/lib/libpthread/arch/ia64/include/pthread_md.h,v 1.9 2003/08/07 08:03:05 marcel Exp $ */ #ifndef _PTHREAD_MD_H_ @@ -34,8 +34,14 @@ #include #define THR_GETCONTEXT(ucp) _ia64_save_context(&(ucp)->uc_mcontext) -#define THR_SETCONTEXT(ucp) _ia64_restore_context(&(ucp)->uc_mcontext, \ - 0, NULL) +#define THR_SETCONTEXT(ucp) \ + do { \ + if ((ucp)->uc_mcontext.mc_flags & _MC_FLAGS_ASYNC_CONTEXT) \ + _ia64_break_setcontext(ucp); \ + else \ + _ia64_restore_context(&(ucp)->uc_mcontext, 0, \ + NULL); \ + } while (0) #define PER_THREAD @@ -194,6 +200,7 @@ return (_tcb->tcb_curkcb->kcb_kse); } +void _ia64_break_setcontext(ucontext_t *ucp); void _ia64_enter_uts(kse_func_t uts, struct kse_mailbox *km, void *stack, size_t stacksz); int _ia64_restore_context(mcontext_t *mc, intptr_t val, intptr_t *loc); @@ -218,14 +225,25 @@ static __inline int _thread_switch(struct kcb *kcb, struct tcb *tcb, int setmbox) { + mcontext_t *mc; + _tcb_set(kcb, tcb); - if (setmbox != 0) - _ia64_restore_context(&tcb->tcb_tmbx.tm_context.uc_mcontext, - (intptr_t)&tcb->tcb_tmbx, - (intptr_t *)&kcb->kcb_kmbx.km_curthread); - else - _ia64_restore_context(&tcb->tcb_tmbx.tm_context.uc_mcontext, - 0, NULL); + mc = &tcb->tcb_tmbx.tm_context.uc_mcontext; + if (mc->mc_flags & _MC_FLAGS_ASYNC_CONTEXT) { + if (setmbox) { + mc->mc_flags |= _MC_FLAGS_KSE_SET_MBOX; + mc->mc_special.ifa = + (intptr_t)&kcb->kcb_kmbx.km_curthread; + mc->mc_special.isr = (intptr_t)&tcb->tcb_tmbx; + } + _ia64_break_setcontext(&tcb->tcb_tmbx.tm_context); + } else { + if (setmbox) + _ia64_restore_context(mc, (intptr_t)&tcb->tcb_tmbx, + (intptr_t *)&kcb->kcb_kmbx.km_curthread); + else + _ia64_restore_context(mc, 0, NULL); + } /* We should not reach here. */ return (-1); } ==== //depot/projects/ia64/release/Makefile#67 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile,v 1.814 2003/08/06 08:09:40 ru Exp $ +# $FreeBSD: src/release/Makefile,v 1.815 2003/08/07 18:22:34 ru Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 7 18:16:26 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D1E0437B404; Thu, 7 Aug 2003 18:16:25 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 705E337B401 for ; Thu, 7 Aug 2003 18:16:25 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1490B43FBF for ; Thu, 7 Aug 2003 18:16:25 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h781GO0U039359 for ; Thu, 7 Aug 2003 18:16:24 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h781GOvx039356 for perforce@freebsd.org; Thu, 7 Aug 2003 18:16:24 -0700 (PDT) Date: Thu, 7 Aug 2003 18:16:24 -0700 (PDT) Message-Id: <200308080116.h781GOvx039356@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to Hrishikesh_Dandekar@NAI.com using -f From: Hrishikesh Dandekar To: Perforce Change Reviews Subject: PERFORCE change 35756 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Aug 2003 01:16:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=35756 Change 35756 by hdandeka@hdandeka_yash on 2003/08/07 18:16:00 Bug fix for nfsdserver module in the trustedbsd MAC branch. Initialize the cred ptr (nd_cr) to NULL. The check for NULL ptr would fail in nfssvc_nfsd leading to a an invalid pointer reference. Affected files ... .. //depot/projects/trustedbsd/mac/sys/nfsserver/nfs_srvsock.c#12 edit Differences ... ==== //depot/projects/trustedbsd/mac/sys/nfsserver/nfs_srvsock.c#12 (text+ko) ==== @@ -670,6 +670,7 @@ nd->nd_md = nd->nd_mrep = m; nd->nd_nam2 = nam; nd->nd_dpos = mtod(m, caddr_t); + nd->nd_cr = NULL; error = nfs_getreq(nd, nfsd, TRUE); if (error) { if (nam) { From owner-p4-projects@FreeBSD.ORG Fri Aug 8 11:29:51 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0CE3637B404; Fri, 8 Aug 2003 11:29:51 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9827C37B408 for ; Fri, 8 Aug 2003 11:29:50 -0700 (PDT) Received: from mail.speakeasy.net (mail12.speakeasy.net [216.254.0.212]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8E8CC43F3F for ; Fri, 8 Aug 2003 11:29:49 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: (qmail 9892 invoked from network); 8 Aug 2003 18:29:48 -0000 Received: from unknown (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender )encrypted SMTP for ; 8 Aug 2003 18:29:48 -0000 Received: from laptop.baldwin.cx (gw1.twc.weather.com [216.133.140.1]) by server.baldwin.cx (8.12.9/8.12.9) with ESMTP id h78ITl9s037438; Fri, 8 Aug 2003 14:29:47 -0400 (EDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.5.4 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <200308072230.h77MUtBU024118@repoman.freebsd.org> Date: Fri, 08 Aug 2003 14:28:31 -0400 (EDT) From: John Baldwin To: Sam Leffler cc: Perforce Change Reviews Subject: RE: PERFORCE change 35749 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Aug 2003 18:29:52 -0000 On 07-Aug-2003 Sam Leffler wrote: > http://perforce.freebsd.org/chv.cgi?CH=35749 > > Change 35749 by sam@sam_ebb on 2003/08/07 15:29:55 > > o must unlock before destroying mutex > o must lock rt_gwroute before freeing when cleaning up on error It's ok to own a mutex when you destroy it. It's actually fairly desirable in fact since it is a rather foolproof way of making sure someone eles doesn't own it. Of course, they could still be blocked on it.. :-/ -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ From owner-p4-projects@FreeBSD.ORG Fri Aug 8 12:26:37 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 83E2A37B404; Fri, 8 Aug 2003 12:26:36 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 359DE37B401; Fri, 8 Aug 2003 12:26:36 -0700 (PDT) Received: from ebb.errno.com (ebb.errno.com [66.127.85.87]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7B74343FCB; Fri, 8 Aug 2003 12:26:35 -0700 (PDT) (envelope-from sam@errno.com) Received: from melange.errno.com (melange.errno.com [66.127.85.82]) (authenticated bits=0) by ebb.errno.com (8.12.9/8.12.9) with ESMTP id h78JQU7N059336 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Fri, 8 Aug 2003 12:26:32 -0700 (PDT) (envelope-from sam@errno.com) Date: Fri, 08 Aug 2003 12:26:30 -0700 From: Sam Leffler To: Jon Baldwin Message-ID: <157867631.1060345590@melange.errno.com> In-Reply-To: References: X-Mailer: Mulberry/3.0.3 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline cc: Perforce Change Reviews Subject: RE: PERFORCE change 35749 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Aug 2003 19:26:37 -0000 > On 07-Aug-2003 Sam Leffler wrote: >> http://perforce.freebsd.org/chv.cgi?CH=35749 >> >> Change 35749 by sam@sam_ebb on 2003/08/07 15:29:55 >> >> o must unlock before destroying mutex >> o must lock rt_gwroute before freeing when cleaning up on error > > It's ok to own a mutex when you destroy it. It's actually fairly > desirable in fact since it is a rather foolproof way of making sure > someone else doesn't own it. Of course, they could still be blocked on > it.. :-/ That's what I thought and was counting on, but I was getting crashes in the mutex code trying to clear the sleep list. Unlocking first fixed it (and I looked around and saw some other code doing it too--I think). I'll add it to my TODO list to look at. Sam From owner-p4-projects@FreeBSD.ORG Fri Aug 8 12:50:04 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC2CA37B404; Fri, 8 Aug 2003 12:50:03 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A0A5537B401 for ; Fri, 8 Aug 2003 12:50:03 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2207043FB1 for ; Fri, 8 Aug 2003 12:50:03 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h78Jo20U034275 for ; Fri, 8 Aug 2003 12:50:02 -0700 (PDT) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h78Jo2fC034271 for perforce@freebsd.org; Fri, 8 Aug 2003 12:50:02 -0700 (PDT) Date: Fri, 8 Aug 2003 12:50:02 -0700 (PDT) Message-Id: <200308081950.h78Jo2fC034271@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 35802 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Aug 2003 19:50:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=35802 Change 35802 by jhb@jhb_laptop on 2003/08/08 12:49:28 Port alpha to the new cpu_throw/switch convention. Untested. Will have to send this to alpha@ to get it tested. Affected files ... .. //depot/projects/smpng/sys/alpha/alpha/mp_machdep.c#21 edit .. //depot/projects/smpng/sys/alpha/alpha/swtch.s#5 edit .. //depot/projects/smpng/sys/kern/kern_synch.c#55 edit .. //depot/projects/smpng/sys/kern/kern_thr.c#11 edit .. //depot/projects/smpng/sys/kern/kern_thread.c#43 edit .. //depot/projects/smpng/sys/sys/proc.h#97 edit Differences ... ==== //depot/projects/smpng/sys/alpha/alpha/mp_machdep.c#21 (text+ko) ==== @@ -208,7 +208,7 @@ /* ok, now grab sched_lock and enter the scheduler */ mtx_lock_spin(&sched_lock); - cpu_throw(); /* doesn't return */ + cpu_throw(NULL, choosethread()); /* doesn't return */ panic("scheduler returned us to %s", __func__); } ==== //depot/projects/smpng/sys/alpha/alpha/swtch.s#5 (text+ko) ==== @@ -49,7 +49,7 @@ /* * savectx: save process context, i.e. callee-saved registers * - * Note that savectx() only works for processes other than curthread, + * Note that savectx() only works for threads other than curthread, * since cpu_switch will copy over the info saved here. (It _can_ * sanely be used for curthread iff cpu_switch won't be called again, e.g. * from if called from boot().) @@ -88,58 +88,50 @@ /* * cpu_throw() - * Switch to a new task discarding our current state. + * Switch to a new thread discarding our current state. + * + * Arguments: + * a0 'struct thread *' of the old thread + * a1 'struct thread *' of the new thread */ LEAF(cpu_throw, 0) LDGP(pv) - mov zero, s0 /* ensure newproc != oldproc */ CALL(Lcs1) END(cpu_throw) /* * cpu_switch() - * Find the highest priority process and resume it. + * Switch to a new thread saving the current state in the old thread. + * + * Arguments: + * a0 'struct thread *' of the old thread + * a1 'struct thread *' of the new thread */ LEAF(cpu_switch, 1) LDGP(pv) /* do an inline savectx(), to save old context */ - ldq a0, PC_CURTHREAD(pcpup) - ldq a1, TD_PCB(a0) + ldq a2, TD_PCB(a0) /* NOTE: ksp is stored by the swpctx */ - stq s0, PCB_CONTEXT+(0 * 8)(a1) /* store s0 - s6 */ - stq s1, PCB_CONTEXT+(1 * 8)(a1) - stq s2, PCB_CONTEXT+(2 * 8)(a1) - stq s3, PCB_CONTEXT+(3 * 8)(a1) - stq s4, PCB_CONTEXT+(4 * 8)(a1) - stq s5, PCB_CONTEXT+(5 * 8)(a1) - stq s6, PCB_CONTEXT+(6 * 8)(a1) - stq ra, PCB_CONTEXT+(7 * 8)(a1) /* store ra */ + stq s0, PCB_CONTEXT+(0 * 8)(a2) /* store s0 - s6 */ + stq s1, PCB_CONTEXT+(1 * 8)(a2) + stq s2, PCB_CONTEXT+(2 * 8)(a2) + stq s3, PCB_CONTEXT+(3 * 8)(a2) + stq s4, PCB_CONTEXT+(4 * 8)(a2) + stq s5, PCB_CONTEXT+(5 * 8)(a2) + stq s6, PCB_CONTEXT+(6 * 8)(a2) + stq ra, PCB_CONTEXT+(7 * 8)(a2) /* store ra */ call_pal PAL_OSF1_rdps /* NOTE: doesn't kill a0 */ - stq v0, PCB_CONTEXT+(8 * 8)(a1) /* store ps, for ipl */ + stq v0, PCB_CONTEXT+(8 * 8)(a2) /* store ps, for ipl */ mov a0, s0 /* s0 = old curthread */ - mov a1, s1 /* s1 = old pcb */ + mov a2, s1 /* s1 = old pcb */ sw1: br pv, Lcs1 Lcs1: LDGP(pv) - CALL(choosethread) /* can't return NULL */ - mov v0, s2 /* s2 = new thread */ + mov a1, s2 /* s2 = new thread */ ldq s3, TD_MD_PCBPADDR(s2) /* s3 = new pcbpaddr */ - /* - * Check to see if we're switching to ourself. If we are, - * don't bother loading the new context. - * - * Note that even if we re-enter cpu_switch() from idle(), - * s0 will still contain the old curthread value because any - * users of that register between then and now must have - * saved it. Also note that switch_exit() ensures that - * s0 is clear before jumping here to find a new process. - */ - cmpeq s0, s2, t0 /* oldthread == newthread? */ - bne t0, Lcs7 /* Yes! Skip! */ - #ifdef SMP /* * Save fp state if we have some. @@ -152,8 +144,8 @@ /* * Deactivate the old address space before activating the * new one. We need to do this before activating the - * new process's address space in the event that new - * process is using the same vmspace as the old. If we + * new thread's address space in the event that new + * thread is using the same vmspace as the old. If we * do this after we activate, then we might end up * incorrectly marking the pmap inactive! * @@ -170,7 +162,7 @@ Lcs6: /* - * Activate the new process's address space and perform + * Activate the new thread's address space and perform * the actual context swap. */ @@ -184,14 +176,12 @@ /* * Now that the switch is done, update curthread and other - * globals. We must do this even if switching to ourselves - * because we might have re-entered cpu_switch() from idle(), - * in which case curthread would be NULL. + * globals. */ stq s2, PC_CURTHREAD(pcpup) /* curthread = p */ /* - * Now running on the new u struct. + * Now running on the new pcb. * Restore registers and return. */ ldq t0, TD_PCB(s2) ==== //depot/projects/smpng/sys/kern/kern_synch.c#55 (text+ko) ==== @@ -459,7 +459,7 @@ { struct bintime new_switchtime; struct thread *td; -#if !defined(__alpha__) && !defined(__powerpc__) +#if !defined(__powerpc__) struct thread *newtd; #endif struct proc *p; @@ -517,7 +517,7 @@ thread_switchout(td); sched_switchout(td); -#if !defined(__alpha__) && !defined(__powerpc__) +#if !defined(__powerpc__) newtd = choosethread(); if (td != newtd) cpu_switch(td, newtd); /* SHAZAM!! */ ==== //depot/projects/smpng/sys/kern/kern_thr.c#11 (text+ko) ==== @@ -111,7 +111,7 @@ sched_exit_thread(TAILQ_NEXT(td, td_kglist), td); thread_stash(td); -#if !defined(__alpha__) && !defined(__powerpc__) +#if !defined(__powerpc__) cpu_throw(td, choosethread()); #else cpu_throw(); ==== //depot/projects/smpng/sys/kern/kern_thread.c#43 (text+ko) ==== @@ -1289,7 +1289,7 @@ } /* XXX Shouldn't cpu_throw() here. */ mtx_assert(&sched_lock, MA_OWNED); -#if !defined(__alpha__) && !defined(__powerpc__) +#if !defined(__powerpc__) cpu_throw(td, choosethread()); #else cpu_throw(); ==== //depot/projects/smpng/sys/sys/proc.h#97 (text+ko) ==== @@ -865,7 +865,7 @@ void sleepinit(void); void stopevent(struct proc *, u_int, u_int); void cpu_idle(void); -#if !defined(__alpha__) && !defined(__powerpc__) +#if !defined(__powerpc__) void cpu_switch(struct thread *old, struct thread *new); void cpu_throw(struct thread *old, struct thread *new) __dead2; #else From owner-p4-projects@FreeBSD.ORG Sat Aug 9 00:27:25 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1C4CD37B404; Sat, 9 Aug 2003 00:27:25 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ACA2E37B401 for ; Sat, 9 Aug 2003 00:27:24 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 750FA43FD7 for ; Sat, 9 Aug 2003 00:27:23 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h797RN0U084085 for ; Sat, 9 Aug 2003 00:27:23 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h797RM6c084082 for perforce@freebsd.org; Sat, 9 Aug 2003 00:27:22 -0700 (PDT) Date: Sat, 9 Aug 2003 00:27:22 -0700 (PDT) Message-Id: <200308090727.h797RM6c084082@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 35831 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Aug 2003 07:27:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=35831 Change 35831 by marcel@marcel_nfs on 2003/08/09 00:27:05 IFC @35830 Affected files ... .. //depot/projects/ia64/bin/ls/ls.1#18 integrate .. //depot/projects/ia64/etc/defaults/rc.conf#37 integrate .. //depot/projects/ia64/etc/mtree/BSD.local.dist#17 integrate .. //depot/projects/ia64/etc/mtree/BSD.usr.dist#25 integrate .. //depot/projects/ia64/etc/network.subr#7 integrate .. //depot/projects/ia64/lib/Makefile#33 integrate .. //depot/projects/ia64/lib/libc/alpha/gen/Makefile.inc#7 integrate .. //depot/projects/ia64/lib/libc/alpha/gen/signalcontext.c#1 branch .. //depot/projects/ia64/lib/libc/gen/Makefile.inc#24 integrate .. //depot/projects/ia64/lib/libc/gen/pmadvise.c#3 integrate .. //depot/projects/ia64/lib/libc/sparc64/gen/Makefile.inc#7 integrate .. //depot/projects/ia64/lib/libc/sparc64/gen/signalcontext.c#1 branch .. //depot/projects/ia64/lib/libc/sys/Makefile.inc#15 integrate .. //depot/projects/ia64/lib/libc/sys/madvise.2#8 integrate .. //depot/projects/ia64/lib/libc/uuid/uuid.3#4 integrate .. //depot/projects/ia64/lib/libc/uuid/uuid_compare.c#2 integrate .. //depot/projects/ia64/lib/libc/uuid/uuid_create.c#2 integrate .. //depot/projects/ia64/lib/libc/uuid/uuid_create_nil.c#2 integrate .. //depot/projects/ia64/lib/libc/uuid/uuid_equal.c#2 integrate .. //depot/projects/ia64/lib/libc/uuid/uuid_from_string.c#2 integrate .. //depot/projects/ia64/lib/libc/uuid/uuid_hash.c#2 integrate .. //depot/projects/ia64/lib/libc/uuid/uuid_is_nil.c#2 integrate .. //depot/projects/ia64/lib/libc/uuid/uuid_to_string.c#2 integrate .. //depot/projects/ia64/lib/libpthread/arch/alpha/Makefile.inc#2 integrate .. //depot/projects/ia64/lib/libpthread/arch/alpha/alpha/context.S#1 branch .. //depot/projects/ia64/lib/libpthread/arch/alpha/alpha/enter_uts.S#1 branch .. //depot/projects/ia64/lib/libpthread/arch/alpha/alpha/pthread_md.c#1 branch .. //depot/projects/ia64/lib/libpthread/arch/alpha/include/atomic_ops.h#1 branch .. //depot/projects/ia64/lib/libpthread/arch/alpha/include/pthread_md.h#1 branch .. //depot/projects/ia64/lib/libpthread/support/Makefile.inc#4 integrate .. //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#28 integrate .. //depot/projects/ia64/release/Makefile#68 integrate .. //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#115 integrate .. //depot/projects/ia64/release/scripts/doFS.sh#18 integrate .. //depot/projects/ia64/sbin/comcontrol/Makefile#4 integrate .. //depot/projects/ia64/sbin/comcontrol/comcontrol.c#3 integrate .. //depot/projects/ia64/sbin/mount_msdosfs/mount_msdosfs.8#5 integrate .. //depot/projects/ia64/share/colldef/Makefile#16 integrate .. //depot/projects/ia64/share/man/man4/ccd.4#7 integrate .. //depot/projects/ia64/share/man/man7/hier.7#21 integrate .. //depot/projects/ia64/share/mklocale/Makefile#14 integrate .. //depot/projects/ia64/share/mklocale/ko_KR.CP949.src#1 branch .. //depot/projects/ia64/share/monetdef/Makefile#13 integrate .. //depot/projects/ia64/share/msgdef/Makefile#13 integrate .. //depot/projects/ia64/share/numericdef/Makefile#13 integrate .. //depot/projects/ia64/share/timedef/Makefile#13 integrate .. //depot/projects/ia64/sys/amd64/amd64/pmap.c#17 integrate .. //depot/projects/ia64/sys/dev/acpica/acpi.c#35 integrate .. //depot/projects/ia64/sys/dev/ida/ida_disk.c#11 integrate .. //depot/projects/ia64/sys/dev/wi/if_wi_pci.c#15 integrate .. //depot/projects/ia64/sys/kern/kern_thread.c#63 integrate .. //depot/projects/ia64/sys/kern/sys_pipe.c#37 integrate .. //depot/projects/ia64/sys/net/if_loop.c#18 integrate .. //depot/projects/ia64/sys/pc98/pc98/clock.c#17 integrate .. //depot/projects/ia64/sys/sys/mman.h#6 integrate .. //depot/projects/ia64/usr.bin/elfdump/elfdump.c#5 integrate .. //depot/projects/ia64/usr.sbin/acpi/Makefile#2 integrate .. //depot/projects/ia64/usr.sbin/crunch/crunchide/exec_elf32.c#11 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/advcap.c#2 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/config.c#8 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/dump.c#3 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/if.c#2 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/rrenum.c#2 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/rtadvd.c#6 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/rtadvd.h#4 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/timer.c#3 integrate .. //depot/projects/ia64/usr.sbin/rtadvd/timer.h#3 integrate .. //depot/projects/ia64/usr.sbin/rtsold/Makefile#4 integrate .. //depot/projects/ia64/usr.sbin/rtsold/dump.c#2 integrate .. //depot/projects/ia64/usr.sbin/rtsold/if.c#2 integrate .. //depot/projects/ia64/usr.sbin/rtsold/probe.c#2 integrate .. //depot/projects/ia64/usr.sbin/rtsold/rtsock.c#2 integrate .. //depot/projects/ia64/usr.sbin/rtsold/rtsol.c#3 integrate .. //depot/projects/ia64/usr.sbin/rtsold/rtsold.8#4 integrate .. //depot/projects/ia64/usr.sbin/rtsold/rtsold.c#3 integrate .. //depot/projects/ia64/usr.sbin/rtsold/rtsold.h#2 integrate Differences ... ==== //depot/projects/ia64/bin/ls/ls.1#18 (text+ko) ==== @@ -33,7 +33,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 -.\" $FreeBSD: src/bin/ls/ls.1,v 1.75 2003/07/10 20:53:56 brueffer Exp $ +.\" $FreeBSD: src/bin/ls/ls.1,v 1.76 2003/08/08 17:04:17 schweikh Exp $ .\" .Dd May 19, 2002 .Dt LS 1 @@ -645,7 +645,12 @@ .Xr getfmac 8 , .Xr sticky 8 .Sh STANDARDS -The +With the exception of options +.Fl g , +.Fl n +and +.Fl o , +the .Nm utility conforms to .St -p1003.1-2001 . ==== //depot/projects/ia64/etc/defaults/rc.conf#37 (text+ko) ==== @@ -13,7 +13,7 @@ # # All arguments must be in double or single quotes. # -# $FreeBSD: src/etc/defaults/rc.conf,v 1.182 2003/07/28 13:09:00 mbr Exp $ +# $FreeBSD: src/etc/defaults/rc.conf,v 1.183 2003/08/08 17:43:58 ume Exp $ ############################################################## ### Important initial Boot-time options #################### @@ -282,6 +282,7 @@ ipv6_default_interface="NO" # Default output interface for scoped addrs. # Now this works only for IPv6 link local # multicast addrs. +rtsol_flags="" # Flags to IPv6 router solicitation. rtadvd_enable="NO" # Set to YES to enable an IPv6 router # advertisement daemon. If set to YES, # this router becomes a possible candidate ==== //depot/projects/ia64/etc/mtree/BSD.local.dist#17 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.100 2003/08/05 05:42:07 mtm Exp $ +# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.101 2003/08/08 13:43:48 ache Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -383,6 +383,8 @@ .. ja_JP.eucJP .. + ko_KR.CP949 + .. ko_KR.eucKR .. la_LN.ISO8859-1 ==== //depot/projects/ia64/etc/mtree/BSD.usr.dist#25 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.278 2003/08/05 05:42:07 mtm Exp $ +# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.279 2003/08/08 13:43:48 ache Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -445,6 +445,8 @@ .. ja_JP.eucJP .. + ko_KR.CP949 + .. ko_KR.eucKR .. la_LN.ISO8859-1 @@ -775,6 +777,8 @@ .. ja_JP.eucJP .. + ko_KR.CP949 + .. ko_KR.eucKR .. la_LN.ISO8859-1 ==== //depot/projects/ia64/etc/network.subr#7 (text+ko) ==== @@ -22,7 +22,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/network.subr,v 1.151 2003/06/24 03:55:21 kuriyama Exp $ +# $FreeBSD: src/etc/network.subr,v 1.152 2003/08/08 17:43:58 ume Exp $ # # @@ -407,7 +407,7 @@ sysctl net.inet6.ip6.accept_rtadv=1 set ${rtsol_interfaces} ifconfig $1 up - rtsol $1 + rtsol ${rtsol_flags} $1 fi for i in $interfaces; do ==== //depot/projects/ia64/lib/Makefile#33 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/4/93 -# $FreeBSD: src/lib/Makefile,v 1.166 2003/07/24 18:30:24 markm Exp $ +# $FreeBSD: src/lib/Makefile,v 1.167 2003/08/08 21:16:06 deischen Exp $ # To satisfy shared library or ELF linkage when only the libraries being # built are visible: @@ -82,6 +82,9 @@ .if ${MACHINE_ARCH} == "amd64" _libncp= libncp _libsmb= libsmb +.if !defined(NOLIBPTHREAD) +_libpthread= libpthread +.endif .endif .if ${MACHINE_ARCH} != "amd64" && ${MACHINE_ARCH} != "powerpc" ==== //depot/projects/ia64/lib/libc/alpha/gen/Makefile.inc#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libc/alpha/gen/Makefile.inc,v 1.11 2002/11/18 09:50:54 ru Exp $ +# $FreeBSD: src/lib/libc/alpha/gen/Makefile.inc,v 1.12 2003/08/09 05:37:54 deischen Exp $ SRCS+= _setjmp.S fabs.S frexp.c infinity.c isinf.c ldexp.c modf.c setjmp.S SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \ @@ -8,7 +8,7 @@ SRCS+= __divqu.S __divq.S __divlu.S __divl.S SRCS+= __remqu.S __remq.S __remlu.S __reml.S SRCS+= rfork_thread.S -SRCS+= _ctx_start.S makecontext.c +SRCS+= _ctx_start.S makecontext.c signalcontext.c CLEANFILES+= __divqu.S __divq.S __divlu.S __divl.S CLEANFILES+= __remqu.S __remq.S __remlu.S __reml.S ==== //depot/projects/ia64/lib/libc/gen/Makefile.inc#24 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 -# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.106 2003/04/17 14:14:22 nectar Exp $ +# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.107 2003/08/09 03:23:24 bms Exp $ # machine-independent gen sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen @@ -19,7 +19,8 @@ initgroups.c isatty.c jrand48.c lcong48.c \ lockf.c lrand48.c mrand48.c nice.c \ nlist.c nrand48.c ntp_gettime.c opendir.c \ - pause.c popen.c posixshm.c pselect.c psignal.c pw_scan.c pwcache.c \ + pause.c pmadvise.c popen.c posixshm.c pselect.c \ + psignal.c pw_scan.c pwcache.c \ raise.c readdir.c readpassphrase.c rewinddir.c \ scandir.c seed48.c seekdir.c semctl.c \ setdomainname.c sethostname.c setjmperr.c setmode.c \ ==== //depot/projects/ia64/lib/libc/gen/pmadvise.c#3 (text+ko) ==== @@ -5,12 +5,12 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/pmadvise.c,v 1.2 2002/02/01 00:57:29 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/pmadvise.c,v 1.3 2003/08/09 03:23:24 bms Exp $"); #include int -(posix_madvise)(void *address, size_t size, int how) +posix_madvise(void *address, size_t size, int how) { - return posix_madvise(address, size, how); + return madvise(address, size, how); } ==== //depot/projects/ia64/lib/libc/sparc64/gen/Makefile.inc#7 (text+ko) ==== @@ -1,6 +1,6 @@ -# $FreeBSD: src/lib/libc/sparc64/gen/Makefile.inc,v 1.7 2003/04/01 23:28:50 jake Exp $ +# $FreeBSD: src/lib/libc/sparc64/gen/Makefile.inc,v 1.8 2003/08/08 15:40:28 jake Exp $ SRCS+= _ctx_start.S _setjmp.S fabs.S fixunsdfsi.S flt_rounds.c fpgetmask.c \ fpgetround.c fpgetsticky.c fpsetmask.c fpsetround.c fpsetsticky.c \ - frexp.c infinity.c isinf.c ldexp.c makecontext.c modf.S setjmp.S \ - sigsetjmp.S + frexp.c infinity.c isinf.c ldexp.c makecontext.c modf.S \ + signalcontext.c setjmp.S sigsetjmp.S ==== //depot/projects/ia64/lib/libc/sys/Makefile.inc#15 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.3 (Berkeley) 10/24/94 -# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.103 2003/04/17 18:39:30 trhodes Exp $ +# $FreeBSD: src/lib/libc/sys/Makefile.inc,v 1.104 2003/08/09 03:23:24 bms Exp $ # sys sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/sys ${.CURDIR}/sys @@ -119,6 +119,7 @@ MLINKS+=kqueue.2 kevent.2 MLINKS+=kse.2 kse_create.2 kse.2 kse_exit.2 kse.2 kse_release.2 \ kse.2 kse_wakeup.2 kse.2 kse_thr_interrupt.2 +MLINKS+=madvise.2 posix_madvise.2 MLINKS+=mlock.2 munlock.2 MLINKS+=modnext.2 modfnext.2 MLINKS+=mount.2 unmount.2 ==== //depot/projects/ia64/lib/libc/sys/madvise.2#8 (text+ko) ==== @@ -30,13 +30,13 @@ .\" SUCH DAMAGE. .\" .\" @(#)madvise.2 8.1 (Berkeley) 6/9/93 -.\" $FreeBSD: src/lib/libc/sys/madvise.2,v 1.29 2003/03/31 21:09:56 wes Exp $ +.\" $FreeBSD: src/lib/libc/sys/madvise.2,v 1.30 2003/08/09 03:23:24 bms Exp $ .\" .Dd July 19, 1996 .Dt MADVISE 2 .Os .Sh NAME -.Nm madvise +.Nm madvise , posix_madvise .Nd give advice about use of memory .Sh LIBRARY .Lb libc @@ -44,12 +44,17 @@ .In sys/mman.h .Ft int .Fn madvise "void *addr" "size_t len" "int behav" +.Ft int +.Fn posix_madvise "void *addr" "size_t len" "int behav" .Sh DESCRIPTION The .Fn madvise system call allows a process that has knowledge of its memory behavior to describe it to the system. +The +.Fn posix_madvise +interface is identical and is provided for standards conformance. .Pp The known behaviors are: .Bl -tag -width MADV_SEQUENTIAL @@ -124,6 +129,15 @@ This should be used judiciously in processes that must remain running for the system to properly function. .El +.Pp +Portable programs that call the +.Fn posix_madvise +interface should use the aliases +.Dv POSIX_MADV_NORMAL , POSIX_MADV_SEQUENTIAL , +.Dv POSIX_MADV_RANDOM , POSIX_MADV_WILLNEED , +and +.Dv POSIX_MADV_DONTNEED +rather than the flags described above. .Sh RETURN VALUES .Rv -std madvise .Sh ERRORS @@ -132,6 +146,10 @@ system call will fail if: .Bl -tag -width Er .It Bq Er EINVAL +The +.Fa behav +argument is not valid. +.It Bq Er ENOMEM The virtual address range specified by the .Fa addr and @@ -146,6 +164,11 @@ .Xr mprotect 2 , .Xr msync 2 , .Xr munmap 2 +.Sh STANDARDS +The +.Fn posix_madvise +interface conforms to +.St -p1003.1-2001 . .Sh HISTORY The .Fn madvise ==== //depot/projects/ia64/lib/libc/uuid/uuid.3#4 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/uuid/uuid.3,v 1.3 2002/12/19 09:40:28 ru Exp $ +.\" $FreeBSD: src/lib/libc/uuid/uuid.3,v 1.4 2003/08/08 19:12:28 marcel Exp $ .\" .Dd October 29, 2002 .Dt UUID 3 @@ -61,7 +61,8 @@ .Fn uuid_create_nil functions create UUIDs. The -.Fn uuid_compare , uuid_equal +.Fn uuid_compare , +.Fn uuid_equal and .Fn uuid_is_nil functions can be used to test UUIDs. ==== //depot/projects/ia64/lib/libc/uuid/uuid_compare.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/uuid/uuid_compare.c,v 1.1 2002/10/30 03:51:00 marcel Exp $ + * $FreeBSD: src/lib/libc/uuid/uuid_compare.c,v 1.3 2003/08/08 19:18:43 marcel Exp $ */ #include @@ -34,7 +34,6 @@ * uuid_compare() - compare two UUIDs. * See also: * http://www.opengroup.org/onlinepubs/009629399/uuid_compare.htm - * http://www.transarc.ibm.com/Library/documentation/dce/1.1/uuid_compare.html * * NOTE: Either UUID can be NULL, meaning a nil UUID. nil UUIDs are smaller * than any non-nil UUID. @@ -72,5 +71,8 @@ res = (int)a->clock_seq_low - (int)b->clock_seq_low; if (res) return ((res < 0) ? -1 : 1); - return (memcmp(a->node, b->node, sizeof(uuid_t))); + res = memcmp(a->node, b->node, sizeof(a->node)); + if (res) + return ((res < 0) ? -1 : 1); + return (0); } ==== //depot/projects/ia64/lib/libc/uuid/uuid_create.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/uuid/uuid_create.c,v 1.1 2002/10/30 03:51:00 marcel Exp $ + * $FreeBSD: src/lib/libc/uuid/uuid_create.c,v 1.2 2003/08/08 19:18:43 marcel Exp $ */ #include @@ -33,7 +33,6 @@ * uuid_create() - create an UUID. * See also: * http://www.opengroup.org/onlinepubs/009629399/uuid_create.htm - * http://www.transarc.ibm.com/Library/documentation/dce/1.1/uuid_create.html */ void uuid_create(uuid_t *u, uint32_t *status) ==== //depot/projects/ia64/lib/libc/uuid/uuid_create_nil.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/uuid/uuid_create_nil.c,v 1.1 2002/10/30 03:51:00 marcel Exp $ + * $FreeBSD: src/lib/libc/uuid/uuid_create_nil.c,v 1.2 2003/08/08 19:18:43 marcel Exp $ */ #include @@ -34,7 +34,6 @@ * uuid_create_nil() - create a nil UUID. * See also: * http://www.opengroup.org/onlinepubs/009629399/uuid_create_nil.htm - * http://www.transarc.ibm.com/Library/documentation/dce/1.1/uuid_create_nil.html */ void uuid_create_nil(uuid_t *u, uint32_t *status) ==== //depot/projects/ia64/lib/libc/uuid/uuid_equal.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/uuid/uuid_equal.c,v 1.1 2002/10/30 03:51:00 marcel Exp $ + * $FreeBSD: src/lib/libc/uuid/uuid_equal.c,v 1.2 2003/08/08 19:18:43 marcel Exp $ */ #include @@ -34,7 +34,6 @@ * uuid_equal() - compare for equality. * See also: * http://www.opengroup.org/onlinepubs/009629399/uuid_equal.htm - * http://www.transarc.ibm.com/Library/documentation/dce/1.1/uuid_equal.html */ int32_t uuid_equal(uuid_t *a, uuid_t *b, uint32_t *status) ==== //depot/projects/ia64/lib/libc/uuid/uuid_from_string.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/uuid/uuid_from_string.c,v 1.1 2002/10/30 03:51:00 marcel Exp $ + * $FreeBSD: src/lib/libc/uuid/uuid_from_string.c,v 1.2 2003/08/08 19:18:43 marcel Exp $ */ #include @@ -36,7 +36,6 @@ * a binary representation. * See also: * http://www.opengroup.org/onlinepubs/009629399/uuid_from_string.htm - * http://www.transarc.ibm.com/Library/documentation/dce/1.1/uuid_from_string.html * * NOTE: The sequence field is in big-endian, while the time fields are in * native byte order. ==== //depot/projects/ia64/lib/libc/uuid/uuid_hash.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/uuid/uuid_hash.c,v 1.1 2002/10/30 03:51:00 marcel Exp $ + * $FreeBSD: src/lib/libc/uuid/uuid_hash.c,v 1.2 2003/08/08 19:18:43 marcel Exp $ */ #include @@ -33,7 +33,6 @@ * uuid_hash() - generate a hash value. * See also: * http://www.opengroup.org/onlinepubs/009629399/uuid_hash.htm - * http://www.transarc.ibm.com/Library/documentation/dce/1.1/uuid_hash.html */ uint16_t uuid_hash(uuid_t *u, uint32_t *status) ==== //depot/projects/ia64/lib/libc/uuid/uuid_is_nil.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/uuid/uuid_is_nil.c,v 1.1 2002/10/30 03:51:00 marcel Exp $ + * $FreeBSD: src/lib/libc/uuid/uuid_is_nil.c,v 1.2 2003/08/08 19:18:43 marcel Exp $ */ #include @@ -33,7 +33,6 @@ * uuid_is_nil() - return whether the UUID is a nil UUID. * See also: * http://www.opengroup.org/onlinepubs/009629399/uuid_is_nil.htm - * http://www.transarc.ibm.com/Library/documentation/dce/1.1/uuid_is_nil.html */ int32_t uuid_is_nil(uuid_t *u, uint32_t *status) ==== //depot/projects/ia64/lib/libc/uuid/uuid_to_string.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/uuid/uuid_to_string.c,v 1.1 2002/10/30 03:51:00 marcel Exp $ + * $FreeBSD: src/lib/libc/uuid/uuid_to_string.c,v 1.2 2003/08/08 19:18:43 marcel Exp $ */ #include @@ -35,7 +35,6 @@ * uuid_to_string() - Convert a binary UUID into a string representation. * See also: * http://www.opengroup.org/onlinepubs/009629399/uuid_to_string.htm - * http://www.transarc.ibm.com/Library/documentation/dce/1.1/uuid_to_string.html * * NOTE: The references given above do not have a status code for when * the string could not be allocated. The status code has been ==== //depot/projects/ia64/lib/libpthread/arch/alpha/Makefile.inc#2 (text+ko) ==== @@ -1,5 +1,5 @@ -# $FreeBSD: src/lib/libpthread/arch/alpha/Makefile.inc,v 1.1 2003/06/23 04:28:31 marcel Exp $ +# $FreeBSD: src/lib/libpthread/arch/alpha/Makefile.inc,v 1.2 2003/08/09 05:44:27 deischen Exp $ .PATH: ${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH} -SRCS+= ksd.c thr_enter_uts.S thr_getcontext.S thr_switch.S +SRCS+= enter_uts.S context.S pthread_md.c ==== //depot/projects/ia64/lib/libpthread/support/Makefile.inc#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libpthread/support/Makefile.inc,v 1.4 2003/07/02 20:52:39 ru Exp $ +# $FreeBSD: src/lib/libpthread/support/Makefile.inc,v 1.5 2003/08/08 03:41:13 kan Exp $ .PATH: ${.CURDIR}/support @@ -6,4 +6,4 @@ CLEANFILES+= thr_support.So thr_libc.So: thr_support.So - ${CC} -nostdlib -o ${.TARGET} -Wl,-r thr_support.So -lc_pic + ${CC} -nostdlib -o ${.TARGET} -r thr_support.So -lc_pic ==== //depot/projects/ia64/lib/libpthread/thread/thr_kern.c#28 (text+ko) ==== @@ -33,7 +33,7 @@ * */ #include -__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.82 2003/08/06 00:43:28 deischen Exp $"); +__FBSDID("$FreeBSD: src/lib/libpthread/thread/thr_kern.c,v 1.83 2003/08/08 22:20:59 davidxu Exp $"); #include #include @@ -66,15 +66,22 @@ * Define a high water mark for the maximum number of threads that * will be cached. Once this level is reached, any extra threads * will be free()'d. - * - * XXX - It doesn't make sense to worry about the maximum number of - * KSEs that we can cache because the system will limit us to - * something *much* less than the maximum number of threads - * that we can have. Disregarding KSEs in their own group, - * the maximum number of KSEs is the number of processors in - * the system. */ #define MAX_CACHED_THREADS 100 +/* + * Define high water marks for the maximum number of KSEs and KSE groups + * that will be cached. Because we support 1:1 threading, there could have + * same number of KSEs and KSE groups as threads. Once these levels are + * reached, any extra KSE and KSE groups will be free()'d. + */ +#ifdef SYSTEM_SCOPE_ONLY +#define MAX_CACHED_KSES 100 +#define MAX_CACHED_KSEGS 100 +#else +#define MAX_CACHED_KSES 50 +#define MAX_CACHED_KSEGS 50 +#endif + #define KSE_STACKSIZE 16384 #define KSE_SET_MBOX(kse, thrd) \ @@ -136,9 +143,11 @@ static void kse_switchout_thread(struct kse *kse, struct pthread *thread); static void kse_wait(struct kse *kse, struct pthread *td_wait, int sigseq); static void kse_free_unlocked(struct kse *kse); +static void kse_destroy(struct kse *kse); static void kseg_free_unlocked(struct kse_group *kseg); static void kseg_init(struct kse_group *kseg); static void kseg_reinit(struct kse_group *kseg); +static void kseg_destroy(struct kse_group *kseg); static void kse_waitq_insert(struct pthread *thread); static void kse_wakeup_multi(struct kse *curkse); static struct kse_mailbox *kse_wakeup_one(struct pthread *thread); @@ -149,7 +158,9 @@ struct pthread_sigframe *psf); static int thr_timedout(struct pthread *thread, struct timespec *curtime); static void thr_unlink(struct pthread *thread); - +static void thread_gc(struct pthread *thread); +static void kse_gc(struct pthread *thread); +static void kseg_gc(struct pthread *thread); static __inline void kse_set_curthread(struct kse *kse, struct pthread *td) @@ -1248,6 +1259,14 @@ void _thr_gc(struct pthread *curthread) { + thread_gc(curthread); + kse_gc(curthread); + kseg_gc(curthread); +} + +static void +thread_gc(struct pthread *curthread) +{ struct pthread *td, *td_next; kse_critical_t crit; TAILQ_HEAD(, pthread) worklist; @@ -1317,10 +1336,61 @@ } else DBG_MSG("Initial thread won't be freed\n"); } - /* XXX free kse and ksegrp list should be looked as well */ +} + +static void +kse_gc(struct pthread *curthread) +{ + kse_critical_t crit; + TAILQ_HEAD(, kse) worklist; + struct kse *kse; + + if (free_kse_count <= MAX_CACHED_KSES) + return; + TAILQ_INIT(&worklist); + crit = _kse_critical_enter(); + KSE_LOCK_ACQUIRE(curthread->kse, &kse_lock); + while (free_kse_count > MAX_CACHED_KSES) { + kse = TAILQ_FIRST(&free_kseq); + TAILQ_REMOVE(&free_kseq, kse, k_qe); + TAILQ_INSERT_HEAD(&worklist, kse, k_qe); + free_kse_count--; + } + KSE_LOCK_RELEASE(curthread->kse, &kse_lock); + _kse_critical_leave(crit); + + while ((kse = TAILQ_FIRST(&worklist))) { + TAILQ_REMOVE(&worklist, kse, k_qe); + kse_destroy(kse); + } } +static void +kseg_gc(struct pthread *curthread) +{ + kse_critical_t crit; + TAILQ_HEAD(, kse_group) worklist; + struct kse_group *kseg; + if (free_kseg_count <= MAX_CACHED_KSEGS) + return; + crit = _kse_critical_enter(); + KSE_LOCK_ACQUIRE(curthread->kse, &kse_lock); + while (free_kseg_count > MAX_CACHED_KSEGS) { + kseg = TAILQ_FIRST(&free_kse_groupq); + TAILQ_REMOVE(&free_kse_groupq, kseg, kg_qe); + free_kseg_count--; + TAILQ_INSERT_HEAD(&worklist, kseg, kg_qe); + } + KSE_LOCK_RELEASE(curthread->kse, &kse_lock); + _kse_critical_leave(crit); + + while ((kseg = TAILQ_FIRST(&worklist))) { + TAILQ_REMOVE(&worklist, kseg, kg_qe); + kseg_destroy(kseg); + } +} + /* * Only new threads that are running or suspended may be scheduled. */ @@ -2019,6 +2089,26 @@ return (kseg); } +static void +kseg_init(struct kse_group *kseg) +{ + kseg_reinit(kseg); + _lock_init(&kseg->kg_lock, LCK_ADAPTIVE, _kse_lock_wait, + _kse_lock_wakeup); +} + +static void +kseg_reinit(struct kse_group *kseg) +{ + TAILQ_INIT(&kseg->kg_kseq); + TAILQ_INIT(&kseg->kg_threadq); + TAILQ_INIT(&kseg->kg_schedq.sq_waitq); + kseg->kg_threadcount = 0; + kseg->kg_ksecount = 0; + kseg->kg_idle_kses = 0; + kseg->kg_flags = 0; +} + /* * This must be called with the kse lock held and when there are * no more threads that reference it. @@ -2046,6 +2136,14 @@ _kse_critical_leave(crit); } +static void +kseg_destroy(struct kse_group *kseg) +{ + _lock_destroy(&kseg->kg_lock); + _pq_free(&kseg->kg_schedq.sq_runq); + free(kseg); +} + /* * Allocate a new KSE. * @@ -2193,7 +2291,6 @@ kse->k_kcb->kcb_kmbx.km_quantum = 20000; kse->k_flags = 0; TAILQ_INSERT_HEAD(&free_kseq, kse, k_qe); - _kcb_dtor(kse->k_kcb); free_kse_count++; } @@ -2214,23 +2311,17 @@ } static void -kseg_init(struct kse_group *kseg) +kse_destroy(struct kse *kse) { - kseg_reinit(kseg); - _lock_init(&kseg->kg_lock, LCK_ADAPTIVE, _kse_lock_wait, - _kse_lock_wakeup); -} + int i; -static void -kseg_reinit(struct kse_group *kseg) -{ - TAILQ_INIT(&kseg->kg_kseq); - TAILQ_INIT(&kseg->kg_threadq); - TAILQ_INIT(&kseg->kg_schedq.sq_waitq); - kseg->kg_threadcount = 0; - kseg->kg_ksecount = 0; - kseg->kg_idle_kses = 0; - kseg->kg_flags = 0; + if (kse->k_stack.ss_sp != NULL) + free(kse->k_stack.ss_sp); + _kcb_dtor(kse->k_kcb); + for (i = 0; i < MAX_KSE_LOCKLEVEL; ++i) + _lockuser_destroy(&kse->k_lockusers[i]); + _lock_destroy(&kse->k_lock); + free(kse); } struct pthread * ==== //depot/projects/ia64/release/Makefile#68 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile,v 1.815 2003/08/07 18:22:34 ru Exp $ +# $FreeBSD: src/release/Makefile,v 1.816 2003/08/08 21:00:57 ru Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ # [RELEASETAG=tag] @@ -201,12 +201,11 @@ NO_FLOPPIES= .elif ${TARGET_ARCH} == "sparc64" DISKLABEL= sunlabel -BIGBOOTSIZE= 4096 MFSSIZE= 4096 -BOOTINODE= 8192 MFSINODE= 8192 -BIGBOOTLABEL= auto MFSLABEL= auto +MINIROOT= +NO_FLOPPIES= .elif ${TARGET_ARCH} == "ia64" MFSINODE= 8192 MFSLABEL= auto @@ -249,7 +248,7 @@ # Where the bootstrap ports (see DOCPORTS) get installed. LOCALDIR= /usr/local/bin -.if ${TARGET} != ${MACHINE} +.if ${TARGET} != ${MACHINE} && ${DISKLABEL} == "bsdlabel" DOFS_SH= ${.CURDIR}/scripts/doFS.sh ${DISKLABEL} ${TARGET} .else DOFS_SH= ${.CURDIR}/scripts/doFS.sh ${DISKLABEL} "" @@ -884,6 +883,12 @@ @echo 'mfsroot_name="/boot/mfsroot"' >> ${CD_DISC2}/boot/loader.conf .if defined(CD_BOOT) @cp -Rp ${CD_DISC2}/boot ${CD_BOOT} +.if defined(MINIROOT) + @mkdir -p ${FD}/miniroot + @sh -e ${DOFS_SH} ${FD}/miniroot/miniroot.ufs \ + ${RD} ${MNT} 0 ${CD_BOOT} 8192 auto + @gzip -9v ${FD}/miniroot/miniroot.ufs +.endif .endif @cp -Rp ${CD_DISC2}/boot ${CD_DISC1} .if ${TARGET} == "i386" && defined(EMUL_BOOT) && !defined(NO_FLOPPIES) ==== //depot/projects/ia64/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#115 (text+ko) ==== @@ -3,7 +3,7 @@ The FreeBSD Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.609 2003/08/04 15:26:40 bmah Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.610 2003/08/08 15:59:34 bmah Exp $ 2000 @@ -201,6 +201,10 @@ The &man.patm.4; driver has been added to support IDT77252 based ATM interfaces. + The &man.rl.4; driver now has support for the RealTek + 8139C+ Fast Ethernet chipset and the RealTek 8169 Gigabit + Ethernet chip. + The suspend/resume support for the &man.wi.4; driver now works correctly when the device is configured down. &merged; @@ -240,6 +244,9 @@ Disks and Storage + &man.ccd.4; can now operate on raw disks and other + &man.geom.4; providers. + The &man.da.4; driver no longer tries to send 6-byte commands to USB and Firewire devices. The quirks for these devices (which hopefully are now unnecessary) have been @@ -287,6 +294,9 @@ Userland Changes + &man.acpidb.8;, an ACPI DSDT debugger, has been + added. + &man.arp.8; now supports a option to limit the scope of the current operation to the ARP entries on a particular interface. This option applies to the display @@ -306,6 +316,10 @@ polling interval can be controlled with the option. + The &man.iasl.8; utility, a compiler/decompiler for ACPI + Source Language (ASL) and ACPI Machine language (AML), has been + added. + &man.ipfw.8; list and show command now support ranges of rule numbers. &merged; ==== //depot/projects/ia64/release/scripts/doFS.sh#18 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/release/scripts/doFS.sh,v 1.52 2003/05/17 19:16:28 ru Exp $ +# $FreeBSD: src/release/scripts/doFS.sh,v 1.53 2003/08/08 18:23:00 ru Exp $ # set -ex @@ -18,6 +18,18 @@ FSLABEL=$1 ; shift # +# If we've been told to, compute the required file system size +# and average inode size automatically. +# +if [ ${FSSIZE} -eq 0 -a ${FSLABEL} = "auto" ]; then + roundup() echo $((($1+$2-1)-($1+$2-1)%$2)) + nf=$(find ${FSPROTO} |wc -l) + sk=$(du -sk ${FSPROTO} |cut -f1) + FSINODE=$(roundup $(($sk*1024/$nf)) ${FSINODE}) + FSSIZE=$(roundup $(($sk*12/10)) 1024) +fi + +# # We don't have any bootblocks on ia64. Note that -B implies -r, # so we have to specifically specify -r when we don't have -B. # bsdlabel fails otherwise. ==== //depot/projects/ia64/sbin/comcontrol/Makefile#4 (text+ko) ==== @@ -1,7 +1,8 @@ # @(#)Makefile 5.4 (Berkeley) 6/5/91 -# $FreeBSD: src/sbin/comcontrol/Makefile,v 1.6 2003/02/23 13:25:02 johan Exp $ +# $FreeBSD: src/sbin/comcontrol/Makefile,v 1.7 2003/08/08 19:51:01 johan Exp $ PROG= comcontrol MAN= comcontrol.8 +WARNS?= 6 .include ==== //depot/projects/ia64/sbin/comcontrol/comcontrol.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sbin/comcontrol/comcontrol.c,v 1.13 2003/05/03 18:41:56 obrien Exp $"); +__FBSDID("$FreeBSD: src/sbin/comcontrol/comcontrol.c,v 1.14 2003/08/08 19:51:01 johan Exp $"); #include #include @@ -40,6 +40,8 @@ #include #include +static void usage(void); + static void usage() { ==== //depot/projects/ia64/sbin/mount_msdosfs/mount_msdosfs.8#5 (text+ko) ==== @@ -28,7 +28,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/sbin/mount_msdosfs/mount_msdosfs.8,v 1.24 2002/08/21 18:11:00 trhodes Exp $ +.\" $FreeBSD: src/sbin/mount_msdosfs/mount_msdosfs.8,v 1.26 2003/08/09 04:21:18 bms Exp $ .\" .Dd April 7, 1994 .Dt MOUNT_MSDOSFS 8 >>> TRUNCATED FOR MAIL (1000 lines) <<<