From owner-svn-src-projects@FreeBSD.ORG Sun May 24 11:52:08 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A1C59106566C; Sun, 24 May 2009 11:52:08 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 907758FC0A; Sun, 24 May 2009 11:52:08 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4OBq8Yf088868; Sun, 24 May 2009 11:52:08 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4OBq8bR088867; Sun, 24 May 2009 11:52:08 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905241152.n4OBq8bR088867@svn.freebsd.org> From: Rui Paulo Date: Sun, 24 May 2009 11:52:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192680 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 May 2009 11:52:09 -0000 Author: rpaulo Date: Sun May 24 11:52:08 2009 New Revision: 192680 URL: http://svn.freebsd.org/changeset/base/192680 Log: Add a discard note and fix spacing. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_hwmp.c Sun May 24 11:37:10 2009 (r192679) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c Sun May 24 11:52:08 2009 (r192680) @@ -183,6 +183,10 @@ ieee80211_hwmp_recv_action(struct ieee80 break; case IEEE80211_ACTION_MESHPATH_ERR: break; + default: + IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_MESH, + ni->ni_macaddr, NULL, + "unknown path action 0x%x", ia->ia_action); } } @@ -206,7 +210,7 @@ ieee80211_add_meshprep(uint8_t *frm, str *frm++ = sizeof(struct ieee80211_meshprep_ie) - 2; *frm++ = prep->prep_flags; *frm++ = prep->prep_hopcount; - *frm++ = prep->prep_ttl; + *frm++ = prep->prep_ttl; IEEE80211_ADDR_COPY(frm, prep->prep_targetaddr); frm += 6; ADDWORD(frm, prep->prep_targetseq); From owner-svn-src-projects@FreeBSD.ORG Sun May 24 21:41:05 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A8D11065675; Sun, 24 May 2009 21:41:05 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 483348FC21; Sun, 24 May 2009 21:41:05 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4OLf5U3001944; Sun, 24 May 2009 21:41:05 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4OLf5WY001943; Sun, 24 May 2009 21:41:05 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905242141.n4OLf5WY001943@svn.freebsd.org> From: Robert Watson Date: Sun, 24 May 2009 21:41:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192699 - projects/pnet/sys/netipsec X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 May 2009 21:41:05 -0000 Author: rwatson Date: Sun May 24 21:41:05 2009 New Revision: 192699 URL: http://svn.freebsd.org/changeset/base/192699 Log: Fix IPSEC build with NETISR2 following KPI change for netisr2. Submitted by: bz Modified: projects/pnet/sys/netipsec/ipsec_input.c Modified: projects/pnet/sys/netipsec/ipsec_input.c ============================================================================== --- projects/pnet/sys/netipsec/ipsec_input.c Sun May 24 21:00:02 2009 (r192698) +++ projects/pnet/sys/netipsec/ipsec_input.c Sun May 24 21:41:05 2009 (r192699) @@ -488,7 +488,7 @@ ipsec4_common_input_cb(struct mbuf *m, s * XXXRW: Is this ordering sufficient? Perhaps should be * m->m_pkthdr.rcvif? */ - if ((error = netisr2_queue(NETISR_IP, (uintptr_t)sav, m))) { + if ((error = netisr2_queue_src(NETISR_IP, (uintptr_t)sav, m))) { #else if ((error = netisr_queue(NETISR_IP, m))) { #endif From owner-svn-src-projects@FreeBSD.ORG Sun May 24 22:00:21 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D16351065677; Sun, 24 May 2009 22:00:21 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BAC8B8FC13; Sun, 24 May 2009 22:00:21 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4OM0LaG002379; Sun, 24 May 2009 22:00:21 GMT (envelope-from jb@svn.freebsd.org) Received: (from jb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4OM0Li5002371; Sun, 24 May 2009 22:00:21 GMT (envelope-from jb@svn.freebsd.org) Message-Id: <200905242200.n4OM0Li5002371@svn.freebsd.org> From: John Birrell Date: Sun, 24 May 2009 22:00:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192700 - in projects/jbuild: . bin/chflags bin/cp bin/ps contrib/bind9 contrib/cpio contrib/csup contrib/gcc/config/mips contrib/gdb contrib/gdtoa contrib/less contrib/libpcap contrib/... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 May 2009 22:00:22 -0000 Author: jb Date: Sun May 24 22:00:20 2009 New Revision: 192700 URL: http://svn.freebsd.org/changeset/base/192700 Log: MFC Added: projects/jbuild/crypto/openssh/auth2-jpake.c - copied unchanged from r192698, head/crypto/openssh/auth2-jpake.c projects/jbuild/crypto/openssh/jpake.c - copied unchanged from r192698, head/crypto/openssh/jpake.c projects/jbuild/crypto/openssh/jpake.h - copied unchanged from r192698, head/crypto/openssh/jpake.h projects/jbuild/crypto/openssh/schnorr.c - copied unchanged from r192698, head/crypto/openssh/schnorr.c projects/jbuild/lib/libc/posix1e/acl_compat.c - copied unchanged from r192698, head/lib/libc/posix1e/acl_compat.c projects/jbuild/tools/tools/iso/ - copied from r192698, head/tools/tools/iso/ projects/jbuild/tools/tools/npe/ - copied from r192698, head/tools/tools/npe/ projects/jbuild/usr.sbin/nfsd/nfsv4.4 - copied unchanged from r192698, head/usr.sbin/nfsd/nfsv4.4 projects/jbuild/usr.sbin/nfsd/stablerestart.5 - copied unchanged from r192698, head/usr.sbin/nfsd/stablerestart.5 Deleted: projects/jbuild/etc/rc.d/idmapd projects/jbuild/sbin/idmapd/ projects/jbuild/sys/modules/nfs4client/ projects/jbuild/sys/nfs4client/ projects/jbuild/sys/rpc/rpcclnt.c projects/jbuild/sys/rpc/rpcclnt.h projects/jbuild/usr.sbin/zic/Arts.htm projects/jbuild/usr.sbin/zic/tz-art.htm projects/jbuild/usr.sbin/zic/tz-link.htm Modified: projects/jbuild/ (props changed) projects/jbuild/ObsoleteFiles.inc projects/jbuild/UPDATING projects/jbuild/bin/chflags/chflags.c projects/jbuild/bin/cp/Makefile projects/jbuild/bin/ps/print.c projects/jbuild/contrib/bind9/ (props changed) projects/jbuild/contrib/cpio/ (props changed) projects/jbuild/contrib/csup/rcstokenizer.l (props changed) projects/jbuild/contrib/gcc/config/mips/freebsd.h (props changed) projects/jbuild/contrib/gdb/ (props changed) projects/jbuild/contrib/gdtoa/ (props changed) projects/jbuild/contrib/less/ (props changed) projects/jbuild/contrib/libpcap/ (props changed) projects/jbuild/contrib/libpcap/FREEBSD-Xlist (props changed) projects/jbuild/contrib/ncurses/ (props changed) projects/jbuild/contrib/netcat/ (props changed) projects/jbuild/contrib/ntp/ (props changed) projects/jbuild/contrib/openbsm/ (props changed) projects/jbuild/contrib/openpam/ (props changed) projects/jbuild/contrib/pf/ (props changed) projects/jbuild/contrib/sendmail/ (props changed) projects/jbuild/contrib/tcpdump/ (props changed) projects/jbuild/contrib/tcpdump/FREEBSD-Xlist (props changed) projects/jbuild/contrib/top/ (props changed) projects/jbuild/contrib/wpa/ (props changed) projects/jbuild/crypto/openssh/ (props changed) projects/jbuild/crypto/openssh/ChangeLog projects/jbuild/crypto/openssh/PROTOCOL projects/jbuild/crypto/openssh/README projects/jbuild/crypto/openssh/addrmatch.c projects/jbuild/crypto/openssh/auth-options.c projects/jbuild/crypto/openssh/auth-pam.c (contents, props changed) projects/jbuild/crypto/openssh/auth.c projects/jbuild/crypto/openssh/auth.h projects/jbuild/crypto/openssh/auth2-chall.c projects/jbuild/crypto/openssh/auth2.c projects/jbuild/crypto/openssh/canohost.c projects/jbuild/crypto/openssh/canohost.h projects/jbuild/crypto/openssh/channels.c projects/jbuild/crypto/openssh/channels.h projects/jbuild/crypto/openssh/cipher.c projects/jbuild/crypto/openssh/cipher.h projects/jbuild/crypto/openssh/clientloop.c projects/jbuild/crypto/openssh/compat.c projects/jbuild/crypto/openssh/compat.h projects/jbuild/crypto/openssh/config.guess projects/jbuild/crypto/openssh/config.h projects/jbuild/crypto/openssh/config.h.in projects/jbuild/crypto/openssh/defines.h projects/jbuild/crypto/openssh/dispatch.c projects/jbuild/crypto/openssh/kex.c projects/jbuild/crypto/openssh/kexgexs.c projects/jbuild/crypto/openssh/key.c projects/jbuild/crypto/openssh/loginrec.c projects/jbuild/crypto/openssh/misc.c projects/jbuild/crypto/openssh/monitor.c projects/jbuild/crypto/openssh/monitor.h projects/jbuild/crypto/openssh/monitor_fdpass.c projects/jbuild/crypto/openssh/monitor_wrap.c projects/jbuild/crypto/openssh/monitor_wrap.h projects/jbuild/crypto/openssh/myproposal.h projects/jbuild/crypto/openssh/nchan.c projects/jbuild/crypto/openssh/openbsd-compat/bsd-poll.c projects/jbuild/crypto/openssh/openbsd-compat/port-uw.c projects/jbuild/crypto/openssh/openbsd-compat/xcrypt.c projects/jbuild/crypto/openssh/openbsd-compat/xmmap.c projects/jbuild/crypto/openssh/packet.c projects/jbuild/crypto/openssh/pathnames.h projects/jbuild/crypto/openssh/readconf.c projects/jbuild/crypto/openssh/readconf.h projects/jbuild/crypto/openssh/scp.c projects/jbuild/crypto/openssh/servconf.c projects/jbuild/crypto/openssh/servconf.h projects/jbuild/crypto/openssh/serverloop.c projects/jbuild/crypto/openssh/session.c projects/jbuild/crypto/openssh/sftp-server-main.c projects/jbuild/crypto/openssh/sftp.1 (contents, props changed) projects/jbuild/crypto/openssh/sftp.c projects/jbuild/crypto/openssh/ssh-keygen.1 (contents, props changed) projects/jbuild/crypto/openssh/ssh-keygen.c projects/jbuild/crypto/openssh/ssh-keyscan.1 (contents, props changed) projects/jbuild/crypto/openssh/ssh-keyscan.c projects/jbuild/crypto/openssh/ssh.1 projects/jbuild/crypto/openssh/ssh.c projects/jbuild/crypto/openssh/ssh2.h projects/jbuild/crypto/openssh/ssh_config projects/jbuild/crypto/openssh/ssh_config.5 projects/jbuild/crypto/openssh/ssh_namespace.h projects/jbuild/crypto/openssh/sshconnect.c projects/jbuild/crypto/openssh/sshconnect2.c projects/jbuild/crypto/openssh/sshd.8 projects/jbuild/crypto/openssh/sshd.c projects/jbuild/crypto/openssh/sshd_config projects/jbuild/crypto/openssh/sshd_config.5 projects/jbuild/crypto/openssh/sshpty.c projects/jbuild/crypto/openssh/ttymodes.c projects/jbuild/crypto/openssh/uidswap.c projects/jbuild/crypto/openssh/version.h projects/jbuild/crypto/openssl/ (props changed) projects/jbuild/etc/defaults/rc.conf projects/jbuild/etc/rc.d/Makefile projects/jbuild/lib/libarchive/archive_read_support_compression_gzip.c projects/jbuild/lib/libc/ (props changed) projects/jbuild/lib/libc/nls/be_BY.UTF-8.msg (props changed) projects/jbuild/lib/libc/nls/el_GR.ISO8859-7.msg (props changed) projects/jbuild/lib/libc/nls/mn_MN.UTF-8.msg (props changed) projects/jbuild/lib/libc/nls/ru_RU.KOI8-R.msg (props changed) projects/jbuild/lib/libc/nls/uk_UA.UTF-8.msg (props changed) projects/jbuild/lib/libc/posix1e/Makefile.inc projects/jbuild/lib/libc/posix1e/Symbol.map projects/jbuild/lib/libc/posix1e/acl.3 projects/jbuild/lib/libc/posix1e/acl_add_perm.3 projects/jbuild/lib/libc/posix1e/acl_delete.c projects/jbuild/lib/libc/posix1e/acl_entry.c projects/jbuild/lib/libc/posix1e/acl_get.3 projects/jbuild/lib/libc/posix1e/acl_get.c projects/jbuild/lib/libc/posix1e/acl_init.c projects/jbuild/lib/libc/posix1e/acl_set.3 projects/jbuild/lib/libc/posix1e/acl_set.c projects/jbuild/lib/libc/posix1e/acl_set_tag_type.3 projects/jbuild/lib/libc/posix1e/acl_support.c projects/jbuild/lib/libc/posix1e/acl_support.h projects/jbuild/lib/libc/posix1e/acl_valid.c projects/jbuild/lib/libc/stdtime/ (props changed) projects/jbuild/lib/libc/stdtime/asctime.c projects/jbuild/lib/libc/stdtime/difftime.c projects/jbuild/lib/libc/stdtime/localtime.c projects/jbuild/lib/libc/stdtime/private.h projects/jbuild/lib/libc/stdtime/strftime.c projects/jbuild/lib/libc/stdtime/time2posix.3 projects/jbuild/lib/libc/stdtime/tzfile.5 projects/jbuild/lib/libc/stdtime/tzfile.h projects/jbuild/lib/libc/string/ffsll.c (props changed) projects/jbuild/lib/libc/string/flsll.c (props changed) projects/jbuild/lib/libstand/stand.h projects/jbuild/lib/libusb/ (props changed) projects/jbuild/lib/libusb/libusb.3 (props changed) projects/jbuild/lib/libutil/ (props changed) projects/jbuild/rescue/rescue/Makefile projects/jbuild/sbin/Makefile projects/jbuild/sbin/ipfw/ (props changed) projects/jbuild/sbin/mount_nfs/Makefile projects/jbuild/sbin/mount_nfs/mount_nfs.8 projects/jbuild/sbin/mount_nfs/mount_nfs.c projects/jbuild/sbin/restore/Makefile projects/jbuild/secure/lib/libssh/Makefile projects/jbuild/secure/usr.sbin/sshd/Makefile projects/jbuild/share/man/man4/ipsec.4 projects/jbuild/share/man/man9/VFS_MOUNT.9 projects/jbuild/share/man/man9/VFS_QUOTACTL.9 projects/jbuild/share/man/man9/VFS_ROOT.9 projects/jbuild/share/man/man9/VFS_STATFS.9 projects/jbuild/share/man/man9/VFS_SYNC.9 projects/jbuild/share/man/man9/VFS_UNMOUNT.9 projects/jbuild/share/man/man9/acl.9 projects/jbuild/share/misc/committers-src.dot projects/jbuild/share/misc/iso639 projects/jbuild/share/zoneinfo/ (props changed) projects/jbuild/sys/ (props changed) projects/jbuild/sys/Makefile projects/jbuild/sys/amd64/include/xen/ (props changed) projects/jbuild/sys/arm/xscale/ixp425/if_npe.c projects/jbuild/sys/arm/xscale/ixp425/std.ixp435 (props changed) projects/jbuild/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c projects/jbuild/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/jbuild/sys/compat/ndis/kern_ndis.c projects/jbuild/sys/conf/NOTES projects/jbuild/sys/conf/files projects/jbuild/sys/conf/options projects/jbuild/sys/contrib/dev/acpica/ (props changed) projects/jbuild/sys/contrib/pf/ (props changed) projects/jbuild/sys/dev/cxgb/ (props changed) projects/jbuild/sys/dev/cxgb/cxgb_main.c projects/jbuild/sys/dev/xen/netfront/ (props changed) projects/jbuild/sys/dev/xen/xenpci/ (props changed) projects/jbuild/sys/fs/nfs/nfs.h projects/jbuild/sys/fs/nfs/nfs_commonkrpc.c projects/jbuild/sys/fs/nfs/nfs_commonport.c projects/jbuild/sys/fs/nfs/nfsport.h projects/jbuild/sys/fs/nfsclient/nfs_clkrpc.c projects/jbuild/sys/fs/nfsclient/nfs_clport.c projects/jbuild/sys/fs/nfsclient/nfs_clvfsops.c projects/jbuild/sys/fs/nfsclient/nfs_clvnops.c projects/jbuild/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/jbuild/sys/fs/nfsserver/nfs_nfsdport.c projects/jbuild/sys/fs/nfsserver/nfs_nfsdstate.c projects/jbuild/sys/fs/nwfs/nwfs_io.c projects/jbuild/sys/kern/kern_jail.c projects/jbuild/sys/kern/kern_lockf.c projects/jbuild/sys/kern/kern_vimage.c projects/jbuild/sys/kern/subr_acl_posix1e.c projects/jbuild/sys/kern/tty.c projects/jbuild/sys/kern/vfs_acl.c projects/jbuild/sys/kgssapi/gsstest.c projects/jbuild/sys/mips/mips/pmap.c projects/jbuild/sys/modules/dtrace/dtnfsclient/ (props changed) projects/jbuild/sys/modules/ip6_mroute_mod/ (props changed) projects/jbuild/sys/modules/ipmi/ipmi_linux/ (props changed) projects/jbuild/sys/modules/nfsclient/Makefile projects/jbuild/sys/modules/wlan/Makefile projects/jbuild/sys/net/if.c projects/jbuild/sys/net/if_clone.c projects/jbuild/sys/net/if_loop.c projects/jbuild/sys/net/if_var.h projects/jbuild/sys/net/vnet.h projects/jbuild/sys/netinet/in.c projects/jbuild/sys/netinet/ip_ipsec.c projects/jbuild/sys/netinet/tcp_subr.c projects/jbuild/sys/netinet/udp_usrreq.c projects/jbuild/sys/netinet/udp_var.h projects/jbuild/sys/netinet/vinet.h projects/jbuild/sys/netinet6/ip6_ipsec.c projects/jbuild/sys/netinet6/udp6_usrreq.c projects/jbuild/sys/netipsec/ipsec.c projects/jbuild/sys/netipsec/ipsec.h projects/jbuild/sys/netipsec/ipsec6.h projects/jbuild/sys/netipsec/vipsec.h projects/jbuild/sys/nfsclient/bootp_subr.c projects/jbuild/sys/nfsclient/krpc_subr.c projects/jbuild/sys/nfsclient/nfs.h projects/jbuild/sys/nfsclient/nfs_bio.c projects/jbuild/sys/nfsclient/nfs_diskless.c projects/jbuild/sys/nfsclient/nfs_krpc.c projects/jbuild/sys/nfsclient/nfs_lock.c projects/jbuild/sys/nfsclient/nfs_nfsiod.c projects/jbuild/sys/nfsclient/nfs_node.c projects/jbuild/sys/nfsclient/nfs_socket.c projects/jbuild/sys/nfsclient/nfs_subs.c projects/jbuild/sys/nfsclient/nfs_vfsops.c projects/jbuild/sys/nfsclient/nfs_vnops.c projects/jbuild/sys/nfsclient/nfsm_subs.h projects/jbuild/sys/nfsclient/nfsmount.h projects/jbuild/sys/nfsclient/nfsnode.h projects/jbuild/sys/nfsserver/nfs_srvkrpc.c projects/jbuild/sys/nlm/nlm_advlock.c projects/jbuild/sys/opencrypto/cryptodev.c projects/jbuild/sys/sys/acl.h projects/jbuild/sys/sys/lockf.h projects/jbuild/sys/sys/param.h projects/jbuild/sys/sys/priv.h projects/jbuild/sys/sys/vimage.h projects/jbuild/sys/ufs/ufs/ufs_acl.c projects/jbuild/sys/xen/evtchn.h (props changed) projects/jbuild/sys/xen/hypervisor.h (props changed) projects/jbuild/sys/xen/xen_intr.h (props changed) projects/jbuild/sys/xen/xenbus/init.txt (props changed) projects/jbuild/tools/regression/lib/msun/test-conj.t (props changed) projects/jbuild/tools/tools/README projects/jbuild/tools/tools/ath/common/dumpregs.h (props changed) projects/jbuild/tools/tools/ath/common/dumpregs_5210.c (props changed) projects/jbuild/tools/tools/ath/common/dumpregs_5211.c (props changed) projects/jbuild/tools/tools/ath/common/dumpregs_5212.c (props changed) projects/jbuild/tools/tools/ath/common/dumpregs_5416.c (props changed) projects/jbuild/tools/tools/nanobsd/gateworks/common projects/jbuild/usr.bin/procstat/ (props changed) projects/jbuild/usr.sbin/iostat/iostat.c projects/jbuild/usr.sbin/makefs/ffs/ffs_bswap.c (props changed) projects/jbuild/usr.sbin/makefs/ffs/ffs_subr.c (props changed) projects/jbuild/usr.sbin/makefs/ffs/ufs_bswap.h (props changed) projects/jbuild/usr.sbin/makefs/getid.c (props changed) projects/jbuild/usr.sbin/nfsd/Makefile projects/jbuild/usr.sbin/nfsd/nfsd.8 projects/jbuild/usr.sbin/nfsd/nfsd.c projects/jbuild/usr.sbin/zic/ (props changed) projects/jbuild/usr.sbin/zic/README projects/jbuild/usr.sbin/zic/Theory projects/jbuild/usr.sbin/zic/ialloc.c projects/jbuild/usr.sbin/zic/private.h projects/jbuild/usr.sbin/zic/scheck.c projects/jbuild/usr.sbin/zic/zdump.8 projects/jbuild/usr.sbin/zic/zdump.c projects/jbuild/usr.sbin/zic/zic.8 projects/jbuild/usr.sbin/zic/zic.c Modified: projects/jbuild/ObsoleteFiles.inc ============================================================================== --- projects/jbuild/ObsoleteFiles.inc Sun May 24 21:41:05 2009 (r192699) +++ projects/jbuild/ObsoleteFiles.inc Sun May 24 22:00:20 2009 (r192700) @@ -14,6 +14,15 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20090522: removal of University of Michigan NFSv4 client +OLD_FILES+=etc/rc.d/idmapd +OLD_FILES+=sbin/idmapd +OLD_FILES+=sbin/mount_nfs4 +OLD_FILES+=usr/share/man/man8/idmapd.8.gz +OLD_FILES+=usr/share/man/man8/mount_nfs4.8.gz +# 20090513: removal of legacy versions of USB network interface drivers +OLD_FILES+=usr/include/legacy/dev/usb/if_upgtvar.h +OLD_FILES+=usr/include/legacy/dev/usb/usb_ethersubr.h # 20090417: removal of legacy versions of USB network interface drivers OLD_FILES+=usr/include/legacy/dev/usb/if_auereg.h OLD_FILES+=usr/include/legacy/dev/usb/if_axereg.h Modified: projects/jbuild/UPDATING ============================================================================== --- projects/jbuild/UPDATING Sun May 24 21:41:05 2009 (r192699) +++ projects/jbuild/UPDATING Sun May 24 22:00:20 2009 (r192700) @@ -22,6 +22,16 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8. to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20090523: + The layout of struct vnet_net has changed, therefore modules + need to be rebuilt. + Bump __FreeBSD_version to 800090. + +20090523: + The newly imported zic(8) produces a new format in the + output. Please run tzsetup(8) to install the newly created + data to /etc/localtime. + 20090520: The sysctl tree for the usb stack has renamed from hw.usb2.* to hw.usb.* and is now consistent again with previous releases. @@ -274,7 +284,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8. memory segment of size > 2 GB on the 64-bit architectures. Due to a limitation of the existing ABI, the shm_segsz member of the struct shmid_ds, returned by shmctl(IPC_STAT) call is - wrong for large segments. Note that limits must be explicitely + wrong for large segments. Note that limits must be explicitly raised to allow such segments to be created. 20090301: Modified: projects/jbuild/bin/chflags/chflags.c ============================================================================== --- projects/jbuild/bin/chflags/chflags.c Sun May 24 21:41:05 2009 (r192699) +++ projects/jbuild/bin/chflags/chflags.c Sun May 24 22:00:20 2009 (r192700) @@ -115,7 +115,7 @@ main(int argc, char *argv[]) fts_options |= FTS_LOGICAL; } } else - fts_options = FTS_LOGICAL; + fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL; /* XXX: Why don't chflags and lchflags have compatible prototypes? */ if (hflag) Modified: projects/jbuild/bin/cp/Makefile ============================================================================== --- projects/jbuild/bin/cp/Makefile Sun May 24 21:41:05 2009 (r192699) +++ projects/jbuild/bin/cp/Makefile Sun May 24 22:00:20 2009 (r192700) @@ -3,6 +3,6 @@ PROG= cp SRCS= cp.c utils.c -CFLAGS+= -DVM_AND_BUFFER_CACHE_SYNCHRONIZED +CFLAGS+= -DVM_AND_BUFFER_CACHE_SYNCHRONIZED -D_ACL_PRIVATE .include Modified: projects/jbuild/bin/ps/print.c ============================================================================== --- projects/jbuild/bin/ps/print.c Sun May 24 21:41:05 2009 (r192699) +++ projects/jbuild/bin/ps/print.c Sun May 24 22:00:20 2009 (r192700) @@ -596,6 +596,10 @@ elapsed(KINFO *k, VARENT *ve) char obuff[128]; v = ve->var; + if (!k->ki_valid) { + (void)printf("%-*s", v->width, "-"); + return; + } val = now - k->ki_p->ki_start.tv_sec; days = val / (24 * 60 * 60); val %= 24 * 60 * 60; Modified: projects/jbuild/crypto/openssh/ChangeLog ============================================================================== --- projects/jbuild/crypto/openssh/ChangeLog Sun May 24 21:41:05 2009 (r192699) +++ projects/jbuild/crypto/openssh/ChangeLog Sun May 24 22:00:20 2009 (r192700) @@ -1,3 +1,497 @@ +20090223 + - (djm) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2009/02/22 23:50:57 + [ssh_config.5 sshd_config.5] + don't advertise experimental options + - djm@cvs.openbsd.org 2009/02/22 23:59:25 + [sshd_config.5] + missing period + - djm@cvs.openbsd.org 2009/02/23 00:06:15 + [version.h] + openssh-5.2 + - (djm) [README] update for 5.2 + - (djm) Release openssh-5.2p1 + +20090222 + - (djm) OpenBSD CVS Sync + - tobias@cvs.openbsd.org 2009/02/21 19:32:04 + [misc.c sftp-server-main.c ssh-keygen.c] + Added missing newlines in error messages. + ok dtucker + +20090221 + - (djm) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2009/02/17 01:28:32 + [ssh_config] + sync with revised default ciphers; pointed out by dkrause@ + - djm@cvs.openbsd.org 2009/02/18 04:31:21 + [schnorr.c] + signature should hash over the entire group, not just the generator + (this is still disabled code) + - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] + [contrib/suse/openssh.spec] Prepare for 5.2p1 + +20090216 + - (djm) [regress/conch-ciphers.sh regress/putty-ciphers.sh] + [regress/putty-kex.sh regress/putty-transfer.sh] Downgrade disabled + interop tests from FATAL error to a warning. Allows some interop + tests to proceed if others are missing necessary prerequisites. + - (djm) [configure.ac] support GNU/kFreeBSD and GNU/kOpensolaris + systems; patch from Aurelien Jarno via rmh AT aybabtu.com + +20090214 + - (djm) OpenBSD CVS Sync + - dtucker@cvs.openbsd.org 2009/02/02 11:15:14 + [sftp.c] + Initialize a few variables to prevent spurious "may be used + uninitialized" warnings from newer gcc's. ok djm@ + - djm@cvs.openbsd.org 2009/02/12 03:00:56 + [canohost.c canohost.h channels.c channels.h clientloop.c readconf.c] + [readconf.h serverloop.c ssh.c] + support remote port forwarding with a zero listen port (-R0:...) to + dyamically allocate a listen port at runtime (this is actually + specified in rfc4254); bz#1003 ok markus@ + - djm@cvs.openbsd.org 2009/02/12 03:16:01 + [serverloop.c] + tighten check for -R0:... forwarding: only allow dynamic allocation + if want_reply is set in the packet + - djm@cvs.openbsd.org 2009/02/12 03:26:22 + [monitor.c] + some paranoia: check that the serialised key is really KEY_RSA before + diddling its internals + - djm@cvs.openbsd.org 2009/02/12 03:42:09 + [ssh.1] + document -R0:... usage + - djm@cvs.openbsd.org 2009/02/12 03:44:25 + [ssh.1] + consistency: Dq => Ql + - djm@cvs.openbsd.org 2009/02/12 03:46:17 + [ssh_config.5] + document RemoteForward usage with 0 listen port + - jmc@cvs.openbsd.org 2009/02/12 07:34:20 + [ssh_config.5] + kill trailing whitespace; + - markus@cvs.openbsd.org 2009/02/13 11:50:21 + [packet.c] + check for enc !=NULL in packet_start_discard + - djm@cvs.openbsd.org 2009/02/14 06:35:49 + [PROTOCOL] + mention that eow and no-more-sessions extensions are sent only to + OpenSSH peers + +20090212 + - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically + set ownership and modes, so avoid explicitly setting them + - (djm) [configure.ac loginrec.c] bz#1421: fix lastlog support for OSX. + OSX provides a getlastlogxbyname function that automates the reading of + a lastlog file. Also, the pututxline function will update lastlog so + there is no need for loginrec.c to do it explicitly. Collapse some + overly verbose code while I'm in there. + +20090201 + - (dtucker) [defines.h sshconnect.c] INET6_ADDRSTRLEN is now needed in + channels.c too, so move the definition for non-IP6 platforms to defines.h + where it can be shared. + +20090129 + - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen. + If the CYGWIN environment variable is empty, the installer script + should not install the service with an empty CYGWIN variable, but + rather without setting CYGWNI entirely. + - (tim) [contrib/cygwin/ssh-host-config] Whitespace cleanup. No code changes. + +20090128 + - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen. + Changes to work on Cygwin 1.5.x as well as on the new Cygwin 1.7.x. + The information given for the setting of the CYGWIN environment variable + is wrong for both releases so I just removed it, together with the + unnecessary (Cygwin 1.5.x) or wrong (Cygwin 1.7.x) default setting. + +20081228 + - (djm) OpenBSD CVS Sync + - stevesk@cvs.openbsd.org 2008/12/09 03:20:42 + [channels.c servconf.c] + channel_print_adm_permitted_opens() should deal with all the printing + for that config option. suggested by markus@; ok markus@ djm@ + dtucker@ + - djm@cvs.openbsd.org 2008/12/09 04:32:22 + [auth2-chall.c] + replace by-hand string building with xasprinf(); ok deraadt@ + - sobrado@cvs.openbsd.org 2008/12/09 15:35:00 + [sftp.1 sftp.c] + update for the synopses displayed by the 'help' command, there are a + few missing flags; add 'bye' to the output of 'help'; sorting and spacing. + jmc@ suggested replacing .Oo/.Oc with a single .Op macro. + ok jmc@ + - stevesk@cvs.openbsd.org 2008/12/09 22:37:33 + [clientloop.c] + fix typo in error message + - stevesk@cvs.openbsd.org 2008/12/10 03:55:20 + [addrmatch.c] + o cannot be NULL here but use xfree() to be consistent; ok djm@ + - stevesk@cvs.openbsd.org 2008/12/29 01:12:36 + [ssh-keyscan.1] + fix example, default key type is rsa for 3+ years; from + frederic.perrin@resel.fr + - stevesk@cvs.openbsd.org 2008/12/29 02:23:26 + [pathnames.h] + no need to escape single quotes in comments + - okan@cvs.openbsd.org 2008/12/30 00:46:56 + [sshd_config.5] + add AllowAgentForwarding to available Match keywords list + ok djm + - djm@cvs.openbsd.org 2009/01/01 21:14:35 + [channels.c] + call channel destroy callbacks on receipt of open failure messages. + fixes client hangs when connecting to a server that has MaxSessions=0 + set spotted by imorgan AT nas.nasa.gov; ok markus@ + - djm@cvs.openbsd.org 2009/01/01 21:17:36 + [kexgexs.c] + fix hash calculation for KEXGEX: hash over the original client-supplied + values and not the sanity checked versions that we acutally use; + bz#1540 reported by john.smith AT arrows.demon.co.uk + ok markus@ + - djm@cvs.openbsd.org 2009/01/14 01:38:06 + [channels.c] + support SOCKS4A protocol, from dwmw2 AT infradead.org via bz#1482; + "looks ok" markus@ + - stevesk@cvs.openbsd.org 2009/01/15 17:38:43 + [readconf.c] + 1) use obsolete instead of alias for consistency + 2) oUserKnownHostsFile not obsolete but oGlobalKnownHostsFile2 is + so move the comment. + 3) reorder so like options are together + ok djm@ + - djm@cvs.openbsd.org 2009/01/22 09:46:01 + [channels.c channels.h session.c] + make Channel->path an allocated string, saving a few bytes here and + there and fixing bz#1380 in the process; ok markus@ + - djm@cvs.openbsd.org 2009/01/22 09:49:57 + [channels.c] + oops! I committed the wrong version of the Channel->path diff, + it was missing some tweaks suggested by stevesk@ + - djm@cvs.openbsd.org 2009/01/22 10:02:34 + [clientloop.c misc.c readconf.c readconf.h servconf.c servconf.h] + [serverloop.c ssh-keyscan.c ssh.c sshd.c] + make a2port() return -1 when it encounters an invalid port number + rather than 0, which it will now treat as valid (needed for future work) + adjust current consumers of a2port() to check its return value is <= 0, + which in turn required some things to be converted from u_short => int + make use of int vs. u_short consistent in some other places too + feedback & ok markus@ + - djm@cvs.openbsd.org 2009/01/22 10:09:16 + [auth-options.c] + another chunk of a2port() diff that got away. wtfdjm?? + - djm@cvs.openbsd.org 2009/01/23 07:58:11 + [myproposal.h] + prefer CTR modes and revised arcfour (i.e w/ discard) modes to CBC + modes; ok markus@ + - naddy@cvs.openbsd.org 2009/01/24 17:10:22 + [ssh_config.5 sshd_config.5] + sync list of preferred ciphers; ok djm@ + - markus@cvs.openbsd.org 2009/01/26 09:58:15 + [cipher.c cipher.h packet.c] + Work around the CPNI-957037 Plaintext Recovery Attack by always + reading 256K of data on packet size or HMAC errors (in CBC mode only). + Help, feedback and ok djm@ + Feedback from Martin Albrecht and Paterson Kenny + +20090107 + - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. + Patch based on one from vgiffin AT apple.com; ok dtucker@ + - (djm) [channels.c] bz#1419: support "on demand" X11 forwarding via + launchd on OS X; patch from vgiffin AT apple.com, slightly tweaked; + ok dtucker@ + - (djm) [contrib/ssh-copy-id.1 contrib/ssh-copy-id] bz#1492: Make + ssh-copy-id copy id_rsa.pub by default (instead of the legacy "identity" + key). Patch from cjwatson AT debian.org + +20090107 + - (tim) [configure.ac defines.h openbsd-compat/port-uw.c + openbsd-compat/xcrypt.c] Add SECUREWARE support to OpenServer 6 SVR5 ABI. + OK djm@ dtucker@ + - (tim) [configure.ac] Move check_for_libcrypt_later=1 in *-*-sysv5*) section. + OpenServer 6 doesn't need libcrypt. + +20081209 + - (djm) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2008/12/09 02:38:18 + [clientloop.c] + The ~C escape handler does not work correctly for multiplexed sessions - + it opens a commandline on the master session, instead of on the slave + that requested it. Disable it on slave sessions until such time as it + is fixed; bz#1543 report from Adrian Bridgett via Colin Watson + ok markus@ + - djm@cvs.openbsd.org 2008/12/09 02:39:59 + [sftp.c] + Deal correctly with failures in remote stat() operation in sftp, + correcting fail-on-error behaviour in batchmode. bz#1541 report and + fix from anedvedicky AT gmail.com; ok markus@ + - djm@cvs.openbsd.org 2008/12/09 02:58:16 + [readconf.c] + don't leave junk (free'd) pointers around in Forward *fwd argument on + failure; avoids double-free in ~C -L handler when given an invalid + forwarding specification; bz#1539 report from adejong AT debian.org + via Colin Watson; ok markus@ dtucker@ + - djm@cvs.openbsd.org 2008/12/09 03:02:37 + [sftp.1 sftp.c] + correct sftp(1) and corresponding usage syntax; + bz#1518 patch from imorgan AT nas.nasa.gov; ok deraadt@ improved diff jmc@ + +20081208 + - (djm) [configure.ac] bz#1538: better test for ProPolice/SSP: actually + use some stack in main(). + Report and suggested fix from vapier AT gentoo.org + - (djm) OpenBSD CVS Sync + - markus@cvs.openbsd.org 2008/12/02 19:01:07 + [clientloop.c] + we have to use the recipient's channel number (RFC 4254) for + SSH2_MSG_CHANNEL_SUCCESS/SSH2_MSG_CHANNEL_FAILURE messages, + otherwise we trigger 'Non-public channel' error messages on sshd + systems with clientkeepalive enabled; noticed by sturm; ok djm; + - markus@cvs.openbsd.org 2008/12/02 19:08:59 + [serverloop.c] + backout 1.149, since it's not necessary and openssh clients send + broken CHANNEL_FAILURE/SUCCESS messages since about 2004; ok djm@ + - markus@cvs.openbsd.org 2008/12/02 19:09:38 + [channels.c] + s/remote_id/id/ to be more consistent with other code; ok djm@ + +20081201 + - (dtucker) [contrib/cygwin/{Makefile,ssh-host-config}] Add new doc files + and tweak the is-sshd-running check in ssh-host-config. Patch from + vinschen at redhat com. + - (dtucker) OpenBSD CVS Sync + - markus@cvs.openbsd.org 2008/11/21 15:47:38 + [packet.c] + packet_disconnect() on padding error, too. should reduce the success + probability for the CPNI-957037 Plaintext Recovery Attack to 2^-18 + ok djm@ + - dtucker@cvs.openbsd.org 2008/11/30 11:59:26 + [monitor_fdpass.c] + Retry sendmsg/recvmsg on EAGAIN and EINTR; ok djm@ + +20081123 + - (dtucker) [monitor_fdpass.c] Reduce diff vs OpenBSD by moving some + declarations, removing an unnecessary union member and adding whitespace. + cmsgbuf.tmp thing spotted by des at des no, ok djm some time ago. + +20081118 + - (tim) [addrmatch.c configure.ac] Some platforms do not have sin6_scope_id + member of sockaddr_in6. Also reported in Bug 1491 by David Leonard. OK and + feedback by djm@ + +20081111 + - (dtucker) OpenBSD CVS Sync + - jmc@cvs.openbsd.org 2008/11/05 11:22:54 + [servconf.c] + passord -> password; + fixes user/5975 from Rene Maroufi + - stevesk@cvs.openbsd.org 2008/11/07 00:42:12 + [ssh-keygen.c] + spelling/typo in comment + - stevesk@cvs.openbsd.org 2008/11/07 18:50:18 + [nchan.c] + add space to some log/debug messages for readability; ok djm@ markus@ + - dtucker@cvs.openbsd.org 2008/11/07 23:34:48 + [auth2-jpake.c] + Move JPAKE define to make life easier for portable. ok djm@ + - tobias@cvs.openbsd.org 2008/11/09 12:34:47 + [session.c ssh.1] + typo fixed (overriden -> overridden) + ok espie, jmc + - stevesk@cvs.openbsd.org 2008/11/11 02:58:09 + [servconf.c] + USE_AFS not referenced so remove #ifdef. fixes sshd -T not printing + kerberosgetafstoken. ok dtucker@ + (Id sync only, we still want the ifdef in portable) + - stevesk@cvs.openbsd.org 2008/11/11 03:55:11 + [channels.c] + for sshd -T print 'permitopen any' vs. 'permitopen' for case of no + permitopen's; ok and input dtucker@ + - djm@cvs.openbsd.org 2008/11/10 02:06:35 + [regress/putty-ciphers.sh] + PuTTY supports AES CTR modes, so interop test against them too + +20081105 + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2008/11/03 08:59:41 + [servconf.c] + include MaxSessions in sshd -T output; patch from imorgan AT nas.nasa.gov + - djm@cvs.openbsd.org 2008/11/04 07:58:09 + [auth.c] + need unistd.h for close() prototype + (ID sync only) + - djm@cvs.openbsd.org 2008/11/04 08:22:13 + [auth.h auth2.c monitor.c monitor.h monitor_wrap.c monitor_wrap.h] + [readconf.c readconf.h servconf.c servconf.h ssh2.h ssh_config.5] + [sshconnect2.c sshd_config.5 jpake.c jpake.h schnorr.c auth2-jpake.c] + [Makefile.in] + Add support for an experimental zero-knowledge password authentication + method using the J-PAKE protocol described in F. Hao, P. Ryan, + "Password Authenticated Key Exchange by Juggling", 16th Workshop on + Security Protocols, Cambridge, April 2008. + + This method allows password-based authentication without exposing + the password to the server. Instead, the client and server exchange + cryptographic proofs to demonstrate of knowledge of the password while + revealing nothing useful to an attacker or compromised endpoint. + + This is experimental, work-in-progress code and is presently + compiled-time disabled (turn on -DJPAKE in Makefile.inc). + + "just commit it. It isn't too intrusive." deraadt@ + - stevesk@cvs.openbsd.org 2008/11/04 19:18:00 + [readconf.c] + because parse_forward() is now used to parse all forward types (DLR), + and it malloc's space for host variables, we don't need to malloc + here. fixes small memory leaks. + + previously dynamic forwards were not parsed in parse_forward() and + space was not malloc'd in that case. + + ok djm@ + - stevesk@cvs.openbsd.org 2008/11/05 03:23:09 + [clientloop.c ssh.1] + add dynamic forward escape command line; ok djm@ + +20081103 + - OpenBSD CVS Sync + - sthen@cvs.openbsd.org 2008/07/24 23:55:30 + [ssh-keygen.1] + Add "ssh-keygen -F -l" to synopsis (displays fingerprint from + known_hosts). ok djm@ + - grunk@cvs.openbsd.org 2008/07/25 06:56:35 + [ssh_config] + Add VisualHostKey to example file, ok djm@ + - grunk@cvs.openbsd.org 2008/07/25 07:05:16 + [key.c] + In random art visualization, make sure to use the end marker only at the + end. Initial diff by Dirk Loss, tweaks and ok djm@ + - markus@cvs.openbsd.org 2008/07/31 14:48:28 + [sshconnect2.c] + don't allocate space for empty banners; report t8m at centrum.cz; + ok deraadt + - krw@cvs.openbsd.org 2008/08/02 04:29:51 + [ssh_config.5] + whitepsace -> whitespace. From Matthew Clarke via bugs@. + - djm@cvs.openbsd.org 2008/08/21 04:09:57 + [session.c] + allow ForceCommand internal-sftp with arguments. based on patch from + michael.barabanov AT gmail.com; ok markus@ + - djm@cvs.openbsd.org 2008/09/06 12:24:13 + [kex.c] + OpenSSL 0.9.8h supplies a real EVP_sha256 so we do not need our + replacement anymore + (ID sync only for portable - we still need this) + - markus@cvs.openbsd.org 2008/09/11 14:22:37 + [compat.c compat.h nchan.c ssh.c] + only send eow and no-more-sessions requests to openssh 5 and newer; + fixes interop problems with broken ssh v2 implementations; ok djm@ + - millert@cvs.openbsd.org 2008/10/02 14:39:35 + [session.c] + Convert an unchecked strdup to xstrdup. OK deraadt@ + - jmc@cvs.openbsd.org 2008/10/03 13:08:12 + [sshd.8] + do not give an example of how to chmod files: we can presume the user + knows that. removes an ambiguity in the permission of authorized_keys; + ok deraadt + - deraadt@cvs.openbsd.org 2008/10/03 23:56:28 + [sshconnect2.c] + Repair strnvis() buffersize of 4*n+1, with termination gauranteed by the + function. + spotted by des@freebsd, who commited an incorrect fix to the freebsd tree + and (as is fairly typical) did not report the problem to us. But this fix + is correct. + ok djm + - djm@cvs.openbsd.org 2008/10/08 23:34:03 + [ssh.1 ssh.c] + Add -y option to force logging via syslog rather than stderr. + Useful for daemonised ssh connection (ssh -f). Patch originally from + and ok'd by markus@ + - djm@cvs.openbsd.org 2008/10/09 03:50:54 + [servconf.c sshd_config.5] + support setting PermitEmptyPasswords in a Match block + requested in PR3891; ok dtucker@ + - jmc@cvs.openbsd.org 2008/10/09 06:54:22 + [ssh.c] + add -y to usage(); + - stevesk@cvs.openbsd.org 2008/10/10 04:55:16 + [scp.c] + spelling in comment; ok djm@ + - stevesk@cvs.openbsd.org 2008/10/10 05:00:12 + [key.c] + typo in error message; ok djm@ + - stevesk@cvs.openbsd.org 2008/10/10 16:43:27 + [ssh_config.5] + use 'Privileged ports can be forwarded only when logging in as root on + the remote machine.' for RemoteForward just like ssh.1 -R. + ok djm@ jmc@ + - stevesk@cvs.openbsd.org 2008/10/14 18:11:33 + [sshconnect.c] + use #define ROQUIET here; no binary change. ok dtucker@ + - stevesk@cvs.openbsd.org 2008/10/17 18:36:24 + [ssh_config.5] + correct and clarify VisualHostKey; ok jmc@ + - stevesk@cvs.openbsd.org 2008/10/30 19:31:16 + [clientloop.c sshd.c] + don't need to #include "monitor_fdpass.h" + - stevesk@cvs.openbsd.org 2008/10/31 15:05:34 + [dispatch.c] + remove unused #define DISPATCH_MIN; ok markus@ + - djm@cvs.openbsd.org 2008/11/01 04:50:08 + [sshconnect2.c] + sprinkle ARGSUSED on dispatch handlers + nuke stale unusued prototype + - stevesk@cvs.openbsd.org 2008/11/01 06:43:33 + [channels.c] + fix some typos in log messages; ok djm@ + - sobrado@cvs.openbsd.org 2008/11/01 11:14:36 + [ssh-keyscan.1 ssh-keyscan.c] + the ellipsis is not an optional argument; while here, improve spacing. + - stevesk@cvs.openbsd.org 2008/11/01 17:40:33 + [clientloop.c readconf.c readconf.h ssh.c] + merge dynamic forward parsing into parse_forward(); + 'i think this is OK' djm@ + - stevesk@cvs.openbsd.org 2008/11/02 00:16:16 + [ttymodes.c] + protocol 2 tty modes support is now 7.5 years old so remove these + debug3()s; ok deraadt@ + - stevesk@cvs.openbsd.org 2008/11/03 01:07:02 + [readconf.c] + remove valueless comment + - stevesk@cvs.openbsd.org 2008/11/03 02:44:41 + [readconf.c] + fix comment + - (djm) [contrib/caldera/ssh-host-keygen contrib/suse/rc.sshd] + Make example scripts generate keys with default sizes rather than fixed, + non-default 1024 bits; patch from imorgan AT nas.nasa.gov + - (djm) [contrib/sshd.pam.generic contrib/caldera/sshd.pam] + [contrib/redhat/sshd.pam] Move pam_nologin to account group from + incorrect auth group in example files; + patch from imorgan AT nas.nasa.gov + +20080906 + - (dtucker) [config.guess config.sub] Update to latest versions from + http://git.savannah.gnu.org/gitweb/ (2008-04-14 and 2008-06-16 + respectively). + +20080830 + - (dtucker) [openbsd-compat/bsd-poll.c] correctly check for number of FDs + larger than FD_SETSIZE (OpenSSH only ever uses poll with one fd). Patch + from Nicholas Marriott. + +20080721 + - (djm) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2008/07/23 07:36:55 + [servconf.c] + do not try to print options that have been compile-time disabled + in config test mode (sshd -T); report from nix-corp AT esperi.org.uk + ok dtucker@ + - (djm) [servconf.c] Print UsePAM option in config test mode (when it + has been compiled in); report from nix-corp AT esperi.org.uk + ok dtucker@ + 20080721 - (djm) OpenBSD CVS Sync - jmc@cvs.openbsd.org 2008/07/18 22:51:01 @@ -873,3841 +1367,3 @@ [contrib/suse/openssh.spec] Crank version numbers in RPM spec files - (djm) [README] Update link to release notes - (djm) Release 5.0p1 - -20080315 - - (djm) [regress/test-exec.sh] Quote putty-related variables in case they are - empty; report and patch from Peter Stuge - - (djm) [regress/test-exec.sh] Silence noise from detection of putty - commands; report from Peter Stuge - - (djm) [session.c] Relocate incorrectly-placed closefrom() that was causing - crashes when used with ChrootDirectory - - -20080327 - - (dtucker) Cache selinux status earlier so we know if it's enabled after a - chroot. Allows ChrootDirectory to work with selinux support compiled in - but not enabled. Using it with selinux enabled will require some selinux - support inside the chroot. "looks sane" djm@ - - (djm) Fix RCS ident in sftp-server-main.c - - (djm) OpenBSD CVS sync: - - jmc@cvs.openbsd.org 2008/02/11 07:58:28 - [ssh.1 sshd.8 sshd_config.5] - bump Mdocdate for pages committed in "febuary", necessary because - of a typo in rcs.c; - - deraadt@cvs.openbsd.org 2008/03/13 01:49:53 - [monitor_fdpass.c] - Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to - an extensive discussion with otto, kettenis, millert, and hshoexer - - deraadt@cvs.openbsd.org 2008/03/15 16:19:02 - [monitor_fdpass.c] - Repair the simple cases for msg_controllen where it should just be - CMSG_SIZE(sizeof(int)), not sizeof(buffer) which may be larger because - of alignment; ok kettenis hshoexer - - djm@cvs.openbsd.org 2008/03/23 12:54:01 - [sftp-client.c] - prefer POSIX-style file renaming over filexfer rename behaviour if the - server supports the posix-rename@openssh.com extension. - Note that the old (filexfer) behaviour would refuse to clobber an - existing file. Users who depended on this should adjust their sftp(1) - usage. - ok deraadt@ markus@ - - deraadt@cvs.openbsd.org 2008/03/24 16:11:07 - [monitor_fdpass.c] - msg_controllen has to be CMSG_SPACE so that the kernel can account for - each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This - works now that kernel fd passing has been fixed to accept a bit of - sloppiness because of this ABI repair. - lots of discussion with kettenis - - djm@cvs.openbsd.org 2008/03/25 11:58:02 - [session.c sshd_config.5] - ignore ~/.ssh/rc if a sshd_config ForceCommand is specified; - from dtucker@ ok deraadt@ djm@ - - djm@cvs.openbsd.org 2008/03/25 23:01:41 - [session.c] - last patch had backwards test; spotted by termim AT gmail.com - - djm@cvs.openbsd.org 2008/03/26 21:28:14 - [auth-options.c auth-options.h session.c sshd.8] - add no-user-rc authorized_keys option to disable execution of ~/.ssh/rc - - djm@cvs.openbsd.org 2008/03/27 00:16:49 - [version.h] - openssh-4.9 - - djm@cvs.openbsd.org 2008/03/24 21:46:54 - [regress/sftp-badcmds.sh] - disable no-replace rename test now that we prefer a POSIX rename; spotted - by dkrause@ - - (djm) [configure.ac] fix alignment of --without-stackprotect description - - (djm) [configure.ac] --with-selinux too - - (djm) [regress/Makefile] cleanup PuTTY interop test droppings - - (djm) [README] Update link to release notes - - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] - [contrib/suse/openssh.spec] Crank version numbers in RPM spec files - - (djm) Release 4.9p1 - -20080315 - - (djm) [regress/test-exec.sh] Quote putty-related variables in case they are - empty; report and patch from Peter Stuge - - (djm) [regress/test-exec.sh] Silence noise from detection of putty - commands; report from Peter Stuge - - (djm) [session.c] Relocate incorrectly-placed closefrom() that was causing - crashes when used with ChrootDirectory - -20080314 - - (tim) [regress/sftp-cmds.sh] s/cd/lcd/ in lls test. Reported by - vinschen at redhat.com. Add () to put echo commands in subshell for lls test - I mistakenly left out of last commit. - - (tim) [regress/localcommand.sh] Shell portability fix. Reported by imorgan at - nas.nasa.gov - -20080313 - - (djm) [Makefile.in regress/Makefile] Fix interop-tests target (note to - self: make changes to Makefile.in next time, not the generated Makefile). - - (djm) [Makefile.in regress/test-exec.sh] Find installed plink(1) and - puttygen(1) by $PATH - - (tim) [scp.c] Use poll.h if available, fall back to sys/poll.h if not. Patch - by vinschen at redhat.com. - - (tim) [regress/sftp-cmds.sh regress/ssh2putty.sh] Shell portability fixes - from vinschen at redhat.com and imorgan at nas.nasa.gov - -20080312 - - (djm) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2007/10/29 06:57:13 - [regress/Makefile regress/localcommand.sh] - Add simple regress test for LocalCommand; ok djm@ - - jmc@cvs.openbsd.org 2007/11/25 15:35:09 - [regress/agent-getpeereid.sh regress/agent.sh] - more existant -> existent, from Martynas Venckus; - pfctl changes: ok henning - ssh changes: ok deraadt - - djm@cvs.openbsd.org 2007/12/12 05:04:03 - [regress/sftp-cmds.sh] - unbreak lls command and add a regress test that would have caught the - breakage; spotted by mouring@ - NB. sftp code change already committed. - - djm@cvs.openbsd.org 2007/12/21 04:13:53 - [regress/Makefile regress/test-exec.sh regress/putty-ciphers.sh] - [regress/putty-kex.sh regress/putty-transfer.sh regress/ssh2putty.sh] - basic (crypto, kex and transfer) interop regression tests against putty - To run these, install putty and run "make interop-tests" from the build - directory - the tests aren't run by default yet. - -20080311 - - (dtucker) [auth-pam.c monitor.c session.c sshd.c] Bug #926: Move - pam_open_session and pam_close_session into the privsep monitor, which - will ensure that pam_session_close is called as root. Patch from Tomas - Mraz. - -20080309 - - (dtucker) [configure.ac] It turns out gcc's -fstack-protector-all doesn't - always work for all platforms and versions, so test what we can and - add a configure flag to turn it of if needed. ok djm@ - - (dtucker) [openbsd-compat/port-aix.{c,h}] Remove AIX specific initgroups - implementation. It's not needed to fix bug #1081 and breaks the build - on some AIX configurations. - - (dtucker) [openbsd-compat/regress/strtonumtest.c] Bug #1347: Use platform's - equivalent of LLONG_MAX for the compat regression tests, which makes them - run on AIX and HP-UX. Patch from David Leonard. - - (dtucker) [configure.ac] Run stack-protector tests with -Werror to catch - platforms where gcc understands the option but it's not supported (and - thus generates a warning). - -20080307 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2008/02/11 07:58:28 - [ssh.1 sshd.8 sshd_config.5] - bump Mdocdate for pages committed in "febuary", necessary because - of a typo in rcs.c; - - djm@cvs.openbsd.org 2008/02/13 22:38:17 - [servconf.h session.c sshd.c] - rekey arc4random and OpenSSL RNG in postauth child - closefrom fds > 2 before shell/command execution - ok markus@ - - mbalmer@cvs.openbsd.org 2008/02/14 13:10:31 - [sshd.c] - When started in configuration test mode (-t) do not check that sshd is - being started with an absolute path. - ok djm - - markus@cvs.openbsd.org 2008/02/20 15:25:26 - [session.c] - correct boolean encoding for coredump; der Mouse via dugsong - - djm@cvs.openbsd.org 2008/02/22 05:58:56 - [session.c] - closefrom() call was too early, delay it until just before we execute - the user's rc files (if any). - - dtucker@cvs.openbsd.org 2008/02/22 20:44:02 - [clientloop.c packet.c packet.h serverloop.c] - Allow all SSH2 packet types, including UNIMPLEMENTED to reset the - keepalive timer (bz #1307). ok markus@ - - djm@cvs.openbsd.org 2008/02/27 20:21:15 - [sftp-server.c] - add an extension method "posix-rename@openssh.com" to perform POSIX atomic - rename() operations. based on patch from miklos AT szeredi.hu in bz#1400; - ok dtucker@ markus@ - - deraadt@cvs.openbsd.org 2008/03/02 18:19:35 - [monitor_fdpass.c] - use a union to ensure alignment of the cmsg (pay attention: various other - parts of the tree need this treatment too); ok djm - - deraadt@cvs.openbsd.org 2008/03/04 21:15:42 - [version.h] - crank version; from djm - - (tim) [regress/sftp-glob.sh] Shell portability fix. - -20080302 - - (dtucker) [configure.ac] FreeBSD's glob() doesn't behave the way we expect - either, so use our own. - -20080229 - - (dtucker) [openbsd-compat/bsd-poll.c] We don't check for select(2) in - configure (and there's not much point, as openssh won't work without it) - so HAVE_SELECT is not defined and the poll(2) compat code doesn't get - built in. Remove HAVE_SELECT so we can build on platforms without poll. - - (dtucker) [scp.c] Include sys/poll.h inside HAVE_SYS_POLL_H. - - (djm) [contrib/gnome-ssh-askpass2.h] Keep askpass windown on top. From - Debian patch via bernd AT openbsd.org - -20080228 - - (dtucker) [configure.ac] Add -fstack-protector to LDFLAGS too, fixes - linking problems on AIX with gcc 4.1.x. - - (dtucker) [includes.h ssh-add.c ssh-agent.c ssh-keygen.c ssh.c sshd.c - openbsd-compat/openssl-compat.{c,h}] Bug #1437 Move the OpenSSL compat - header to after OpenSSL headers, since some versions of OpenSSL have - SSLeay_add_all_algorithms as a macro already. - - (dtucker) [key.c defines.h openbsd-compat/openssl-compat.h] Move old OpenSSL - compat glue into openssl-compat.h. - - (dtucker) [configure.ac openbsd-compat/port-aix.{c,h}] Bug #1081: Implement - getgrouplist via getgrset on AIX, rather than iterating over getgrent. - This allows, eg, Match and AllowGroups directives to work with NIS and - LDAP groups. - - (dtucker) [sshd.c] Bug #1042: make log messages for tcpwrappers use the - same SyslogFacility as the rest of sshd. Patch from William Knox, - ok djm@. - -20080225 - - (dtucker) [openbsd-compat/fake-rfc2553.h] rename ssh_gai_strerror hack - since it now conflicts with the helper function in misc.c. From - vinschen AT redhat.com. - - (dtucker) [configure.ac audit-bsm.c] Bug #1420: Add a local implementation - of aug_get_machine for systems that don't have their own (eg OS X, FreeBSD). - Help and testing from csjp at FreeBSD org, vgiffin at apple com. ok djm@ - - (dtucker) [includes.h openbsd-compat/openssl-compat.c] Bug #1437: reshuffle - headers so ./configure --with-ssl-engine actually works. Patch from - Ian Lister. - -20080224 - - (tim) [contrib/cygwin/ssh-host-config] - Grammar changes on SYSCONFDIR LOCALSTATEDIR messages. - Check more thoroughly that it's possible to create the /var/empty directory. - Patch by vinschen AT redhat.com - -20080210 - - OpenBSD CVS Sync - - chl@cvs.openbsd.org 2008/01/11 07:22:28 - [sftp-client.c sftp-client.h] - disable unused functions - initially from tobias@, but disabled them by placing them in - "#ifdef notyet" which was asked by djm@ - ok djm@ tobias@ - - djm@cvs.openbsd.org 2008/01/19 19:13:28 - [ssh.1] - satisfy the pedants: -q does not suppress all diagnostic messages (e.g. - some commandline parsing warnings go unconditionally to stdout). - - djm@cvs.openbsd.org 2008/01/19 20:48:53 - [clientloop.c] - fd leak on session multiplexing error path. Report and patch from - gregory_shively AT fanniemae.com - - djm@cvs.openbsd.org 2008/01/19 20:51:26 - [ssh.c] - ignore SIGPIPE in multiplex client mode - we can receive this if the - server runs out of fds on us midway. Report and patch from - gregory_shively AT fanniemae.com - - djm@cvs.openbsd.org 2008/01/19 22:04:57 - [sftp-client.c] - fix remote handle leak in do_download() local file open error path; - report and fix from sworley AT chkno.net - - djm@cvs.openbsd.org 2008/01/19 22:22:58 - [ssh-keygen.c] - when hashing individual hosts (ssh-keygen -Hf hostname), make sure we - hash just the specified hostname and not the entire hostspec from the - keyfile. It may be of the form "hostname,ipaddr", which would lead to - a hash that never matches. report and fix from jp AT devnull.cz - - djm@cvs.openbsd.org 2008/01/19 22:37:19 - [ssh-keygen.c] - unbreak line numbering (broken in revision 1.164), fix error message - - djm@cvs.openbsd.org 2008/01/19 23:02:40 - [channels.c] - When we added support for specified bind addresses for port forwards, we - added a quirk SSH_OLD_FORWARD_ADDR. There is a bug in our handling of - this for -L port forwards that causes the client to listen on both v4 - and v6 addresses when connected to a server with this quirk, despite - having set 0.0.0.0 as a bind_address. - report and patch from Jan.Pechanec AT Sun.COM; ok dtucker@ - - djm@cvs.openbsd.org 2008/01/19 23:09:49 - [readconf.c readconf.h sshconnect2.c] - promote rekeylimit to a int64 so it can hold the maximum useful limit - of 2^32; report and patch from Jan.Pechanec AT Sun.COM, ok dtucker@ - - djm@cvs.openbsd.org 2008/01/20 00:38:30 - [sftp.c] - When uploading, correctly handle the case of an unquoted filename with - glob metacharacters that match a file exactly but not as a glob, e.g. a - file called "[abcd]". report and test cases from duncan2nd AT gmx.de - - djm@cvs.openbsd.org 2008/01/21 17:24:30 - [sftp-server.c] - Remove the fixed 100 handle limit in sftp-server and allocate as many - as we have available file descriptors. Patch from miklos AT szeredi.hu; - ok dtucker@ markus@ - - djm@cvs.openbsd.org 2008/01/21 19:20:17 - [sftp-client.c] - when a remote write error occurs during an upload, ensure that ACKs for - all issued requests are properly drained. patch from t8m AT centrum.cz - - dtucker@cvs.openbsd.org 2008/01/23 01:56:54 - [clientloop.c packet.c serverloop.c] - Revert the change for bz #1307 as it causes connection aborts if an IGNORE - packet arrives while we're waiting in packet_read_expect (and possibly - elsewhere). - - jmc@cvs.openbsd.org 2008/01/31 20:06:50 - [scp.1] - explain how to handle local file names containing colons; - requested by Tamas TEVESZ - ok dtucker - - markus@cvs.openbsd.org 2008/02/04 21:53:00 - [session.c sftp-server.c sftp.h] - link sftp-server into sshd; feedback and ok djm@ - - mcbride@cvs.openbsd.org 2008/02/09 12:15:43 - [ssh.1 sshd.8] - Document the correct permissions for the ~/.ssh/ directory. - ok jmc - - djm@cvs.openbsd.org 2008/02/10 09:55:37 - [sshd_config.5] - mantion that "internal-sftp" is useful with ForceCommand too - - djm@cvs.openbsd.org 2008/02/10 10:54:29 - [servconf.c session.c] - delay ~ expansion for ChrootDirectory so it expands to the logged-in user's - home, rather than the user who starts sshd (probably root) - -20080119 - - (djm) Silence noice from expr in ssh-copy-id; patch from - mikel AT mikelward.com - - (djm) Only listen for IPv6 connections on AF_INET6 sockets; patch from - tsr2600 AT gmail.com - -20080102 - - (dtucker) [configure.ac] Fix message for -fstack-protector-all test. - -20080101 - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2007/12/31 10:41:31 - [readconf.c servconf.c] - Prevent strict-aliasing warnings on newer gcc versions. bz #1355, patch - from Dmitry V. Levin, ok djm@ - - dtucker@cvs.openbsd.org 2007/12/31 15:27:04 - [sshd.c] - When in inetd mode, have sshd generate a Protocol 1 ephemeral server - key only for connections where the client chooses Protocol 1 as opposed - to when it's enabled in the server's config. Speeds up Protocol 2 - connections to inetd-mode servers that also allow Protocol 1. bz #440, - based on a patch from bruno at wolff.to, ok markus@ - - dtucker@cvs.openbsd.org 2008/01/01 08:47:04 - [misc.c] - spaces -> tabs from my previous commit - - dtucker@cvs.openbsd.org 2008/01/01 09:06:39 - [scp.c] - If scp -p encounters a pre-epoch timestamp, use the epoch which is - as close as we can get given that it's used unsigned. Add a little - debugging while there. bz #828, ok djm@ - - dtucker@cvs.openbsd.org 2008/01/01 09:27:33 - [sshd_config.5 servconf.c] - Allow PermitRootLogin in a Match block. Allows for, eg, permitting root - only from the local network. ok markus@, man page bit ok jmc@ - - dtucker@cvs.openbsd.org 2008/01/01 08:51:20 - [moduli] - Updated moduli file; ok djm@ - -20071231 - - (dtucker) [configure.ac openbsd-compat/glob.{c,h}] Bug #1407: force use of - builtin glob implementation on Mac OS X. Based on a patch from - vgiffin at apple. - -20071229 - - (dtucker) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2007/12/12 05:04:03 - [sftp.c] - unbreak lls command and add a regress test that would have caught the - breakage; spotted by mouring@ - - dtucker@cvs.openbsd.org 2007/12/27 14:22:08 - [servconf.c canohost.c misc.c channels.c sshconnect.c misc.h ssh-keyscan.c - sshd.c] - Add a small helper function to consistently handle the EAI_SYSTEM error - code of getaddrinfo. Prompted by vgiffin at apple com via bz #1417. - ok markus@ stevesk@ - - dtucker@cvs.openbsd.org 2007/12/28 15:32:24 - [clientloop.c serverloop.c packet.c] - Make SSH2_MSG_UNIMPLEMENTED and SSH2_MSG_IGNORE messages reset the - ServerAlive and ClientAlive timers. Prevents dropping a connection - when these are enabled but the peer does not support our keepalives. - bz #1307, ok djm@. - - dtucker@cvs.openbsd.org 2007/12/28 22:34:47 - [clientloop.c] - Use the correct packet maximum sizes for remote port and agent forwarding. - Prevents the server from killing the connection if too much data is queued - and an excessively large packet gets sent. bz #1360, ok djm@. - -20071202 - - (dtucker) [configure.ac] Enable -fstack-protector-all on systems where - gcc supports it. ok djm@ - - (dtucker) [scp.c] Update $OpenBSD tag missing from rev 1.175 and remove - leftover debug code. - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2007/10/29 00:52:45 - [auth2-gss.c] - Allow build without -DGSSAPI; ok deraadt@ - (Id sync only, Portable already has the ifdefs) - - dtucker@cvs.openbsd.org 2007/10/29 01:55:04 - [ssh.c] - Plug tiny mem leaks in ControlPath and ProxyCommand option processing; - ok djm@ - - dtucker@cvs.openbsd.org 2007/10/29 04:08:08 - [monitor_wrap.c monitor.c] - Send config block back to slave for invalid users too so options - set by a Match block (eg Banner) behave the same for non-existent - users. Found by and ok djm@ - - dtucker@cvs.openbsd.org 2007/10/29 06:51:59 - [ssh_config.5] - ProxyCommand and LocalCommand use the user's shell, not /bin/sh; ok djm@ - - dtucker@cvs.openbsd.org 2007/10/29 06:54:50 - [ssh.c] - Make LocalCommand work for Protocol 1 too; ok djm@ - - jmc@cvs.openbsd.org 2007/10/29 07:48:19 - [ssh_config.5] - clean up after previous macro removal; - - djm@cvs.openbsd.org 2007/11/03 00:36:14 - [clientloop.c] - fix memory leak in process_cmdline(), patch from Jan.Pechanec AT Sun.COM; - ok dtucker@ - - deraadt@cvs.openbsd.org 2007/11/03 01:24:06 - [ssh.c] - bz #1377: getpwuid results were being clobbered by another getpw* call - inside tilde_expand_filename(); save the data we need carefully - ok djm - - dtucker@cvs.openbsd.org 2007/11/03 02:00:32 - [ssh.c] *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sun May 24 22:07:23 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 93FE0106566B; Sun, 24 May 2009 22:07:23 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 810828FC12; Sun, 24 May 2009 22:07:23 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4OM7N2L002565; Sun, 24 May 2009 22:07:23 GMT (envelope-from jb@svn.freebsd.org) Received: (from jb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4OM7N82002557; Sun, 24 May 2009 22:07:23 GMT (envelope-from jb@svn.freebsd.org) Message-Id: <200905242207.n4OM7N82002557@svn.freebsd.org> From: John Birrell Date: Sun, 24 May 2009 22:07:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192701 - projects/jbuild/usr.bin/make X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 May 2009 22:07:24 -0000 Author: jb Date: Sun May 24 22:07:23 2009 New Revision: 192701 URL: http://svn.freebsd.org/changeset/base/192701 Log: Merge build/jbuild changes from p4 Modified: projects/jbuild/usr.bin/make/cond.c projects/jbuild/usr.bin/make/dir.c projects/jbuild/usr.bin/make/dir.h projects/jbuild/usr.bin/make/globals.h projects/jbuild/usr.bin/make/job.c projects/jbuild/usr.bin/make/job.h projects/jbuild/usr.bin/make/main.c projects/jbuild/usr.bin/make/make.c projects/jbuild/usr.bin/make/parse.c projects/jbuild/usr.bin/make/pathnames.h projects/jbuild/usr.bin/make/proc.c projects/jbuild/usr.bin/make/proc.h projects/jbuild/usr.bin/make/util.c projects/jbuild/usr.bin/make/var.c Modified: projects/jbuild/usr.bin/make/cond.c ============================================================================== --- projects/jbuild/usr.bin/make/cond.c Sun May 24 22:00:20 2009 (r192700) +++ projects/jbuild/usr.bin/make/cond.c Sun May 24 22:07:23 2009 (r192701) @@ -148,7 +148,7 @@ static CondProc *condDefProc; /* default static char *condExpr; /* The expression to parse */ static Token condPushBack = None; /* Single push-back token in parsing */ -#define MAXIF 30 /* greatest depth of #if'ing */ +#define MAXIF 1024 /* greatest depth of #if'ing */ static Boolean condStack[MAXIF]; /* Stack of conditionals's values */ static int condLineno[MAXIF]; /* Line numbers of the opening .if */ Modified: projects/jbuild/usr.bin/make/dir.c ============================================================================== --- projects/jbuild/usr.bin/make/dir.c Sun May 24 22:00:20 2009 (r192700) +++ projects/jbuild/usr.bin/make/dir.c Sun May 24 22:07:23 2009 (r192701) @@ -1152,3 +1152,15 @@ Path_Print(const struct Path *path) TAILQ_FOREACH(p, path, link) printf("%s ", p->dir->name); } + +#ifdef MAKE_IS_BUILD +void +Path_List(const struct Path *path, path_listcb_t *cbfunc, char *srctop, + size_t ssrctop) +{ + const struct PathElement *p; + + TAILQ_FOREACH(p, path, link) + cbfunc(srctop, ssrctop, p->dir->name); +} +#endif Modified: projects/jbuild/usr.bin/make/dir.h ============================================================================== --- projects/jbuild/usr.bin/make/dir.h Sun May 24 22:00:20 2009 (r192700) +++ projects/jbuild/usr.bin/make/dir.h Sun May 24 22:07:23 2009 (r192701) @@ -68,4 +68,9 @@ char *Path_FindFile(char *, struct Path char *Path_MakeFlags(const char *, const struct Path *); void Path_Print(const struct Path *); +#ifdef MAKE_IS_BUILD +typedef void path_listcb_t(char *, size_t, const char *); +void Path_List(const struct Path *, path_listcb_t *, char *, size_t); +#endif + #endif /* dir_h_6002e3b8 */ Modified: projects/jbuild/usr.bin/make/globals.h ============================================================================== --- projects/jbuild/usr.bin/make/globals.h Sun May 24 22:00:20 2009 (r192700) +++ projects/jbuild/usr.bin/make/globals.h Sun May 24 22:07:23 2009 (r192701) @@ -69,6 +69,9 @@ extern struct Path parseIncPath; /* The system include path. */ extern struct Path sysIncPath; +/* The build include path. */ +extern struct Path bldIncPath; + extern int jobLimit; /* -j argument: maximum number of jobs */ extern int makeErrors; /* Number of targets not remade due to errors */ extern Boolean jobsRunning; /* True if jobs are running */ @@ -95,6 +98,9 @@ extern Boolean touchFlag; * when the shell exits */ extern Boolean usePipes; +/* Gather meta data. */ +extern Boolean use_meta; + /* TRUE if we aren't supposed to really make anything, just see if the * targets are out-of-date */ extern Boolean queryFlag; Modified: projects/jbuild/usr.bin/make/job.c ============================================================================== --- projects/jbuild/usr.bin/make/job.c Sun May 24 22:00:20 2009 (r192700) +++ projects/jbuild/usr.bin/make/job.c Sun May 24 22:07:23 2009 (r192701) @@ -101,8 +101,10 @@ __FBSDID("$FreeBSD$"); * thems as need creatin' */ +#include #include #include +#include #include #include #ifdef USE_KQUEUE @@ -114,6 +116,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -136,9 +139,17 @@ __FBSDID("$FreeBSD$"); #include "targ.h" #include "util.h" #include "var.h" +#ifdef MAKE_IS_BUILD +#include "jdirdep.h" +#ifndef BUILDMON +#include "filemon.h" +#endif +#endif #define TMPPAT "/tmp/makeXXXXXXXXXX" +extern char **environ; + #ifndef USE_KQUEUE /* * The SEL_ constants determine the maximum amount of time spent in select @@ -165,6 +176,16 @@ typedef struct Job { pid_t pid; /* The child's process ID */ struct GNode *node; /* The target the child is making */ + char cwd[MAXPATHLEN]; + +#ifdef MAKE_IS_BUILD + char mon_fname[MAXPATHLEN]; +#ifndef BUILDMON + int filemon_fd; + int mon_fd; +#endif + FILE *mfp; +#endif /* * A LstNode for the first command to be saved after the job completes. @@ -264,6 +285,13 @@ TAILQ_HEAD(JobList, Job); * error handling variables */ static int aborting = 0; /* why is the make aborting? */ +#ifdef MAKE_IS_BUILD +static char mon_fname[MAXPATHLEN]; +#ifndef BUILDMON +static int filemon_fd = -1; +static int mon_fd = -1; +#endif +#endif #define ABORT_ERROR 1 /* Because of an error */ #define ABORT_INTERRUPT 2 /* Because it was interrupted */ #define ABORT_WAIT 3 /* Waiting for jobs to finish */ @@ -379,11 +407,283 @@ static int JobStart(GNode *, int, Job *) static void JobDoOutput(Job *, Boolean); static void JobInterrupt(int, int); static void JobRestartJobs(void); -static int Compat_RunCommand(char *, struct GNode *); +static int Compat_RunCommand(char *, struct GNode *, FILE *); static GNode *curTarg = NULL; static GNode *ENDNode; +#ifdef MAKE_IS_BUILD +static int n_meta_created = 0; /* Number of meta data files created. */ + +void +meta_exit(void) +{ + Boolean f = 0; + char *result; + char sharedobj[MAXPATHLEN]; + const char *curdir; + const char *filedep_name; + const char *objdir; + const char *objroot; + const char *p_incmk; + const char *p_machine; + const char *p_machine_arch; + const char *srcrel; + const char *srctop; + size_t len = 0; + + /* + * If no meta data files were created, then there can be no change + * to the dependencies. + */ + if (n_meta_created == 0) + return; + + /* + * If there is no include makefile list variable defined, then + * we can't update dependencies. + */ + if ((p_incmk = Var_Value("INCMK", VAR_GLOBAL)) != NULL) { + /* Initialise the include makefile name list. */ + jdirdep_incmk(Var_Value("INCMK", VAR_GLOBAL)); + + p_machine = Var_Value("MACHINE", VAR_GLOBAL); + p_machine_arch = Var_Value("MACHINE_ARCH", VAR_GLOBAL); + + if ((result = Var_Parse(p_machine_arch, VAR_GLOBAL, TRUE, &len, &f)) != var_Error) + p_machine_arch = result; + else + p_machine_arch = NULL; + + /* + * Initialise the current machine and architecture. + * Using this method, we only do one machine type at + * a time. + */ + jdirdep_supmac_add(p_machine, p_machine_arch); + + srctop = Var_Value(".SRCTOP", VAR_GLOBAL); + curdir = Var_Value(".CURDIR", VAR_GLOBAL); + srcrel = Var_Value(".SRCREL", VAR_GLOBAL); + objroot = Var_Value(".OBJROOT", VAR_GLOBAL); + objdir = Var_Value(".OBJDIR", VAR_GLOBAL); + filedep_name = Var_Value(".FILEDEP_NAME", VAR_GLOBAL); + + snprintf(sharedobj, sizeof(sharedobj), "%s/../shared", objroot); + + /* Add any new directory and/or source dependencies. */ + jdirdep(srctop, curdir, srcrel, objroot, objdir, sharedobj, filedep_name, + JDIRDEP_OPT_ADD | JDIRDEP_OPT_SOURCE | JDIRDEP_OPT_UPDATE); + } +} + +/* + * Read the build monitor output file and write records to the target's + * metadata file. + */ +static void +buildmon_read(FILE *mfp, const char *fname) +{ + FILE *fp; + char bufr[1024]; + int done = 0; + + /* Check if we're not writing to a meta data file.*/ + if (mfp == NULL) { + /* + * Delete the build monitor file since we have no need + * for it. + */ + unlink(fname); + return; + } + + if ((fp = fopen(fname, "r")) == NULL) + err(1, "Could not read build monitor file '%s'", fname); + + fprintf(mfp, "-- buildmon acquired metadata --\n"); + + do { + if (fgets(bufr, sizeof(bufr), fp) != NULL) { + if (strncmp(bufr, "# Session completed", 19) == 0) + done = 1; + + fprintf(mfp, "%s", bufr); + } else +#ifdef BUILDMON + usleep(1000); +#else + done = 1; +#endif + + clearerr(fp); + } while (!done); + + fclose(fp); + + /* Delete the build monitor file now we're done with it. */ + unlink(fname); +} + +#ifndef BUILDMON +/* + * Open the filemon device. + */ +static void +filemon_open(Job *job) +{ + int retry = 5; + + strcpy(mon_fname, "filemon.XXXXXX"); + + while (retry > 0) { + if ((filemon_fd = open("/dev/filemon", O_RDWR)) >= 0) + break; + + retry--; + } + + if (filemon_fd < 0) + err(1, "Could not open filemon device!"); + if ((mon_fd = mkstemp(mon_fname)) < 0) + err(1, "Could not create temporary file!"); + else if (ioctl(filemon_fd, FILEMON_SET_FD, &mon_fd) < 0) + err(1, "Could not set filemon file descriptor!"); + + if (job != NULL) { + job->filemon_fd = filemon_fd; + job->mon_fd = mon_fd; + strlcpy(job->mon_fname, mon_fname, sizeof(job->mon_fname)); + } +} +#endif + +char * +meta_name(struct GNode *gn, char *mname, size_t mnamelen) +{ + char bufr[PATH_MAX]; + char *p; + const char *dname = Var_Value(".OBJDIR", gn); + const char *tname = Var_Value(TARGET, gn); + + /* Weed out relative paths from the target file name. */ + tname = realpath(tname, bufr); + + if (strcmp(dname, dirname(tname)) == 0) + snprintf(mname, mnamelen, "%s.meta", tname); + else { + snprintf(mname, mnamelen, "%s/%s.meta", dname, tname); + + /* + * Replace path separators in the file name after the + * current object directory path. + */ + p = mname + strlen(dname) + 1; + + while (*p != '\0') { + if (*p == '/') + *p = '_'; + p++; + } + } + + return (mname); +} + +static FILE * +meta_create(GNode *gn) +{ + FILE *fp; + LstNode *ln; + char bufr[PATH_MAX]; + char fname[MAXPATHLEN]; + char **ptr; + const char *cname = Var_Value(".CURDIR", gn); + const char *dname = Var_Value(".OBJDIR", gn); + const char *p; + const char *tname = Var_Value(TARGET, gn); + int f_make = 0; + struct stat fs; + + /* This may be a phony node which we don't want meta data for... */ + if ((gn->type & OP_PHONY) != 0) + return (NULL); + + /* The object directory may not exist. Check it.. */ + if (stat(dname, &fs) != 0) + return (NULL); + + /* Check if there are no commands to execute. */ + if (gn->commands.firstPtr == NULL) + return (NULL); + + /* If we aren't in the object directory, don't create a meta file. */ + if (strcmp(cname, dname) == 0) + return (NULL); + + LST_FOREACH(ln, &gn->commands) { + char *cp; + for (cp = Lst_Datum(ln); !f_make && *cp != '\0'; cp++) { + if (*cp == '$') { + Boolean f = 0; + size_t len = 0; + char *result; + + if ((result = Var_Parse(cp, gn, TRUE, + &len, &f)) != var_Error) { + if (len == 7 && strncmp(cp, "${MAKE}", 7) == 0) + f_make = 1; + if (f) + free(result); + cp += len - 1; + } + } + } + } + + /* Check if a recusive 'make' reference was found. */ + if (f_make) + /* Don't create meta data for recursive make commands. */ + return (NULL); + + /* Check if the target is in the current object directory. */ + if ((p = strrchr(tname, '/')) == NULL) { + p = tname; + fprintf(stderr, "Building %s/%s\n", dname, p); + } else { + p++; + fprintf(stderr, "Building %s\n", realpath(tname, bufr)); + } + + fflush(stdout); + + if (!use_meta) + /* Don't create meta data. */ + return (NULL); + + meta_name(gn, fname, sizeof(fname)); + + if ((fp = fopen(fname, "w")) == NULL) + err(1, "Could not open meta file '%s'", fname); + + fprintf(fp, "# Meta data file %s\n", fname); + + LST_FOREACH(ln, &gn->commands) + fprintf(fp, "CMD %s\n", Buf_Peel(Var_Subst(Lst_Datum(ln), gn, FALSE))); + + fprintf(fp, "CWD %s\n", getcwd(bufr, sizeof(bufr))); + + for (ptr = environ; *ptr != NULL; ptr++) + fprintf(fp, "ENV %s\n", *ptr); + + fprintf(fp, "-- command output --\n"); + + n_meta_created++; + + return (fp); +} +#endif + /** * Create a fifo file with a uniq filename, and returns a file * descriptor to that fifo. @@ -713,7 +1013,7 @@ JobPrintCommand(char *cmd, Job *job) * but this one needs to be - use compat mode * just for it. */ - Compat_RunCommand(cmd, job->node); + Compat_RunCommand(cmd, job->node, NULL); return (0); } break; @@ -959,6 +1259,15 @@ JobFinish(Job *job, int *status) MESSAGE(out, job->node); lastNode = job->node; } +#ifdef MAKE_IS_BUILD + if (job->mfp != NULL) + fprintf(job->mfp, "*** Error code %d%s\n", + WEXITSTATUS(*status), + (job->flags & JOB_IGNERR) ? + "(ignored)" : ""); +#endif + fprintf(out, "Error building '%s'\nin directory %s\n", + job->node->path, job->cwd); fprintf(out, "*** Error code %d%s\n", WEXITSTATUS(*status), (job->flags & JOB_IGNERR) ? @@ -1118,6 +1427,23 @@ JobFinish(Job *job, int *status) Buf_Peel( Var_Subst(Lst_Datum(ln), job->node, FALSE))); } +#ifdef MAKE_IS_BUILD + if (job->mfp != NULL) { +#ifndef BUILDMON + close(job->filemon_fd); + close(job->mon_fd); +#endif + + /* Process the build monitor file. */ + buildmon_read(job->mfp, job->mon_fname); + + /* + * Close the meta file now that the target has been + * made. + */ + fclose(job->mfp); + } +#endif job->node->made = MADE; Make_Update(job->node); @@ -1299,6 +1625,11 @@ static void JobExec(Job *job, char **argv) { ProcStuff ps; +#ifdef MAKE_IS_BUILD +#ifdef BUILDMON + ssize_t num; +#endif +#endif if (DEBUG(JOB)) { int i; @@ -1347,6 +1678,19 @@ JobExec(Job *job, char **argv) ps.argv = argv; ps.argv_free = 0; +#ifdef MAKE_IS_BUILD + ps.mfp = job->mfp; + +#ifdef BUILDMON + if (job->mfp != NULL && pipe(ps.pipe_fds) < 0) + errx(1, "Could not create pipe for child/parent comms"); +#else + if (job->mfp != NULL) + /* Open the filemon device. */ + filemon_open(job); +#endif +#endif + /* * Fork. Warning since we are doing vfork() instead of fork(), * do not allocate memory in the child process! @@ -1362,6 +1706,14 @@ JobExec(Job *job, char **argv) if (fifoFd >= 0) close(fifoFd); +#ifdef MAKE_IS_BUILD +#ifdef BUILDMON + if (job->mfp != NULL) + /* Close the read end of the pipe. */ + close(ps.pipe_fds[0]); +#endif +#endif + Proc_Exec(&ps); /* NOTREACHED */ } @@ -1371,6 +1723,29 @@ JobExec(Job *job, char **argv) */ job->pid = ps.child_pid; +#ifdef MAKE_IS_BUILD + if (job->mfp != NULL) { +#ifdef BUILDMON + /* Close the write end of the pipe. */ + close(ps.pipe_fds[1]); + + if ((num = read(ps.pipe_fds[0], job->mon_fname, + sizeof(job->mon_fname))) <= 0) + err(1, "Error reading buildmon file name from pipe"); + + /* Close the read end of the pipe. */ + close(ps.pipe_fds[0]); +#else + /* + * Now that the child's pid is known update the filemon to + * monitor just it. + */ + if (ioctl(job->filemon_fd, FILEMON_SET_PID, &ps.child_pid) < 0) + err(1, "Could not set filemon pid!"); +#endif + } +#endif + if (usePipes && (job->flags & JOB_FIRST)) { /* * The first time a job is run for a node, we set the @@ -1593,6 +1968,7 @@ JobStart(GNode *gn, int flags, Job *prev job->node = gn; job->tailCmds = NULL; + getcwd(job->cwd, sizeof(job->cwd)); /* * Set the initial value of the flags for this job based on the global @@ -1693,6 +2069,9 @@ JobStart(GNode *gn, int flags, Job *prev * We can do all the commands at once. hooray for sanity */ numCommands = 0; +#ifdef MAKE_IS_BUILD + job->mfp = meta_create(gn); +#endif LST_FOREACH(ln, &gn->commands) { if (JobPrintCommand(Lst_Datum(ln), job)) break; @@ -2022,6 +2401,12 @@ JobDoOutput(Job *job, Boolean finish) MESSAGE(stdout, job->node); lastNode = job->node; } +#ifdef MAKE_IS_BUILD + if (job->mfp != NULL && + strncmp(cp, "Building", 8) != 0) + fprintf(job->mfp, "%s%s", cp, + gotNL ? "\n" : ""); +#endif fprintf(stdout, "%s%s", cp, gotNL ? "\n" : ""); fflush(stdout); @@ -2706,6 +3091,10 @@ Cmd_Exec(const char *cmd, const char **e ps.argv[3] = NULL; ps.argv_free = 1; +#ifdef MAKE_IS_BUILD + ps.mfp = NULL; +#endif + /* * Fork. Warning since we are doing vfork() instead of fork(), * do not allocate memory in the child process! @@ -2718,6 +3107,16 @@ Cmd_Exec(const char *cmd, const char **e /* * Child */ +#ifdef MAKE_IS_BUILD +#ifdef BUILDMON + /* Close the read end of the pipe. */ + close(ps.pipe_fds[0]); +#else + /* Close the write end of the pipe. */ + close(ps.pipe_fds[1]); +#endif +#endif + Proc_Exec(&ps); /* NOTREACHED */ } @@ -2813,7 +3212,7 @@ CompatInterrupt(int signo) gn = Targ_FindNode(".INTERRUPT", TARG_NOCREATE); if (gn != NULL) { LST_FOREACH(ln, &gn->commands) { - if (Compat_RunCommand(Lst_Datum(ln), gn)) + if (Compat_RunCommand(Lst_Datum(ln), gn, NULL)) break; } } @@ -2888,7 +3287,7 @@ shellneed(ArgArray *aa, char *cmd) * The node's 'made' field may be set to ERROR. */ static int -Compat_RunCommand(char *cmd, GNode *gn) +Compat_RunCommand(char *cmd, GNode *gn, FILE *mfp) { ArgArray aa; char *cmdStart; /* Start of expanded command */ @@ -2995,21 +3394,67 @@ Compat_RunCommand(char *cmd, GNode *gn) } ps.errCheck = errCheck; +#ifdef MAKE_IS_BUILD + ps.mfp = mfp; + +#ifdef BUILDMON + if (mfp != NULL && pipe(ps.pipe_fds) < 0) + errx(1, "Could not create pipe for child/parent comms"); +#else + if (mfp != NULL) + /* Open the filemon device. */ + filemon_open(NULL); +#endif +#endif + /* * Warning since we are doing vfork() instead of fork(), * do not allocate memory in the child process! */ if ((ps.child_pid = vfork()) == -1) { - Fatal("Could not fork"); + Fatal("Cannot fork"); } else if (ps.child_pid == 0) { /* * Child */ +#ifdef MAKE_IS_BUILD +#ifdef BUILDMON + /* Close the read end of the pipe. */ + close(ps.pipe_fds[0]); +#endif +#endif + Proc_Exec(&ps); - /* NOTREACHED */ + _exit(1); } else { +#ifdef MAKE_IS_BUILD +#ifdef BUILDMON + char bufr[MAXPATHLEN]; + if (mfp != NULL) { + ssize_t num; + + /* Close the write end of the pipe. */ + close(ps.pipe_fds[1]); + + if ((num = read(ps.pipe_fds[0], bufr, sizeof(bufr))) <= 0) + err(1, "Error reading buildmon file name from pipe"); + + /* Close the read end of the pipe. */ + close(ps.pipe_fds[0]); + } +#else + if (mfp != NULL) + /* + * Now that the child's pid is known update the + * filemon to monitor just it. + */ + if (ioctl(filemon_fd, FILEMON_SET_PID, &ps.child_pid) < 0) + err(1, "Could not set filemon pid!"); +#endif +#endif + if (ps.argv_free) { free(ps.argv[2]); free(ps.argv[1]); @@ -3034,6 +3479,17 @@ Compat_RunCommand(char *cmd, GNode *gn) */ reason = ProcWait(&ps); +#ifdef MAKE_IS_BUILD + if (mfp != NULL) { +#ifndef BUILDMON + close(filemon_fd); + close(mon_fd); +#endif + /* Process the build monitor file. */ + buildmon_read(mfp, mon_fname); + } +#endif + if (interrupted) CompatInterrupt(interrupted); @@ -3047,12 +3503,20 @@ Compat_RunCommand(char *cmd, GNode *gn) return (0); } else { printf("*** Error code %d", status); +#ifdef MAKE_IS_BUILD + if (mfp != NULL) + fprintf(mfp, "*** Error code %d", status); +#endif } } else if (WIFSTOPPED(reason)) { status = WSTOPSIG(reason); } else { status = WTERMSIG(reason); printf("*** Signal %d", status); +#ifdef MAKE_IS_BUILD + if (mfp != NULL) + fprintf(mfp, "*** Signal %d", status); +#endif } if (ps.errCheck) { @@ -3064,6 +3528,10 @@ Compat_RunCommand(char *cmd, GNode *gn) * others continue. */ printf(" (continuing)\n"); +#ifdef MAKE_IS_BUILD + if (mfp != NULL) + fprintf(mfp, " (continuing)\n"); +#endif } return (status); } else { @@ -3074,6 +3542,10 @@ Compat_RunCommand(char *cmd, GNode *gn) * happen... */ printf(" (ignored)\n"); +#ifdef MAKE_IS_BUILD + if (mfp != NULL) + fprintf(mfp, " (ignored)\n"); +#endif return (0); } } @@ -3117,10 +3589,27 @@ Compat_Make(GNode *gn, GNode *pgn) return (0); } +#ifdef MAKE_IS_BUILD + if (strcmp(gn->name, ".depend") == 0) { + gn->made = UPTODATE; + return (0); + } +#endif + if (Lst_Member(&gn->iParents, pgn) != NULL) { Var_Set(IMPSRC, Var_Value(TARGET, gn), pgn); } +#ifdef MAKE_IS_BUILD + /* + * We need to check if the target is out-of-date. This includes + * checking if the expanded command has changed. This in turn + * requires that all variables are set in the same way that they + * would be if the target needs to be re-built. + */ + Make_DoAllVar(gn); +#endif + /* * All the children were made ok. Now cmtime contains the * modification time of the newest child, we need to find out @@ -3144,12 +3633,14 @@ Compat_Make(GNode *gn, GNode *pgn) exit(1); } +#ifndef MAKE_IS_BUILD /* * We need to be re-made. We also have to make sure we've got * a $? variable. To be nice, we also define the $> variable * using Make_DoAllVar(). */ Make_DoAllVar(gn); +#endif /* * Alter our type to tell if errors should be ignored or things @@ -3171,7 +3662,7 @@ Compat_Make(GNode *gn, GNode *pgn) curTarg = gn; LST_FOREACH(ln, &gn->commands) { if (Compat_RunCommand(Lst_Datum(ln), - gn)) + gn, NULL)) break; } curTarg = NULL; @@ -3348,8 +3839,13 @@ Compat_Run(Lst *targs) if (!queryFlag) { gn = Targ_FindNode(".BEGIN", TARG_NOCREATE); if (gn != NULL) { +#ifdef MAKE_IS_BUILD + fprintf(stderr, "Building %s/%s\n", Var_Value(".OBJDIR", gn), + Var_Value(TARGET, gn)); + fflush(stdout); +#endif LST_FOREACH(ln, &gn->commands) { - if (Compat_RunCommand(Lst_Datum(ln), gn)) + if (Compat_RunCommand(Lst_Datum(ln), gn, NULL)) break; } if (gn->made == ERROR) { @@ -3387,9 +3883,14 @@ Compat_Run(Lst *targs) * If the user has defined a .END target, run its commands. */ if (makeErrors == 0) { +#ifdef MAKE_IS_BUILD + fprintf(stderr, "Building %s/%s\n", Var_Value(".OBJDIR", gn), + Var_Value(TARGET, gn)); +#endif LST_FOREACH(ln, &ENDNode->commands) { - if (Compat_RunCommand(Lst_Datum(ln), ENDNode)) + if (Compat_RunCommand(Lst_Datum(ln), ENDNode, NULL)) break; } } } + Modified: projects/jbuild/usr.bin/make/job.h ============================================================================== --- projects/jbuild/usr.bin/make/job.h Sun May 24 22:00:20 2009 (r192700) +++ projects/jbuild/usr.bin/make/job.h Sun May 24 22:07:23 2009 (r192701) @@ -77,4 +77,9 @@ int Compat_Make(struct GNode *gn, struct void Compat_InstallSignalHandlers(void); void Compat_Run(struct Lst *); +#ifdef MAKE_IS_BUILD +char *meta_name(struct GNode *, char *, size_t); +void meta_exit(void); +#endif + #endif /* job_h_4678dfd1 */ Modified: projects/jbuild/usr.bin/make/main.c ============================================================================== --- projects/jbuild/usr.bin/make/main.c Sun May 24 22:00:20 2009 (r192700) +++ projects/jbuild/usr.bin/make/main.c Sun May 24 22:07:23 2009 (r192701) @@ -114,6 +114,13 @@ static char *curdir; /* startup director static char *objdir; /* where we chdir'ed to */ static char **save_argv; /* saved argv */ static char *save_makeflags;/* saved MAKEFLAGS */ +#ifdef MAKE_IS_BUILD +static char *save_mklvl; /* saved __MKLVL__ */ +static char *save_path; /* saved PATH */ +static char *clean_environ[2]; +static char *default_machine = NULL; +#endif +static struct utsname utsname; /* (-E) vars to override from env */ Lst envFirstVars = Lst_Initializer(envFirstVars); @@ -140,6 +147,9 @@ Boolean printGraphOnly; /* -p flag */ Boolean queryFlag; /* -q flag */ Boolean touchFlag; /* -t flag */ Boolean usePipes; /* !-P flag */ +#ifdef MAKE_IS_BUILD +Boolean use_meta; /* !-Q flag */ +#endif uint32_t warn_cmd; /* command line warning flags */ uint32_t warn_flags; /* actual warning flags */ uint32_t warn_nocmd; /* command line no-warning flags */ @@ -154,7 +164,8 @@ static void usage(void) { fprintf(stderr, - "usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]\n" + "usage: make [-BPQSXeiknpqrstv] [-C directory] [-D variable]\n" + "\t[-b directory]\n" "\t[-d flags] [-E variable] [-f makefile] [-I directory]\n" "\t[-j max_jobs] [-m directory] [-V variable]\n" "\t[variable=value] [target ...]\n"); @@ -459,6 +470,10 @@ rearg: Lst_AtEnd(&envFirstVars, estrdup(optarg)); MFLAGS_append("-E", optarg); break; + case 'b': + Path_AddDir(&bldIncPath, optarg); + MFLAGS_append("-b", optarg); + break; case 'e': checkEnvFirst = TRUE; MFLAGS_append("-e", NULL); @@ -510,6 +525,9 @@ rearg: case 'Q': beQuiet = TRUE; beVerbose = FALSE; +#ifdef MAKE_IS_BUILD + use_meta = FALSE; +#endif MFLAGS_append("-Q", NULL); break; case 'q': @@ -526,7 +544,11 @@ rearg: MFLAGS_append("-S", NULL); break; case 's': +#ifdef MAKE_IS_BUILD + beSilent = FALSE; +#else beSilent = TRUE; +#endif MFLAGS_append("-s", NULL); break; case 't': @@ -572,6 +594,11 @@ rearg: char *ptr = MAKEFLAGS_quote(*argv); char *v = estrdup(*argv); +#ifdef MAKE_IS_BUILD + if (strncmp(v, "MACHINE=", 8) == 0) + default_machine = utsname.machine; +#endif + Var_Append(".MAKEFLAGS", ptr, VAR_GLOBAL); Parse_DoVar(v, VAR_CMD); free(ptr); @@ -671,7 +698,11 @@ static void check_make_level(void) { #ifdef WANT_ENV_MKLVL +#ifdef MAKE_IS_BUILD + char *value = save_mklvl; +#else char *value = getenv(MKLVL_ENVVAR); +#endif int level = (value == NULL) ? 0 : atoi(value); if (level < 0) { @@ -685,6 +716,15 @@ check_make_level(void) sprintf(new_value, "%d", level + 1); setenv(MKLVL_ENVVAR, new_value, 1); } + +#ifdef MAKE_IS_BUILD + /* + * Register a function to call on exit for child build processes so + * that dependency hooks can be activated. + */ + if (level > 0) + atexit(meta_exit); +#endif #endif /* WANT_ENV_MKLVL */ } @@ -833,6 +873,57 @@ Remake_Makefiles(void) } } +#ifdef MAKE_IS_BUILD +static void +make_objdir(char *path) +{ + struct stat fs; + + while (stat(path, &fs) != 0) { + char bufr[MAXPATHLEN]; + char *p; + + strcpy(bufr, path); + + if ((p = strrchr(bufr, '/')) == NULL) + err(1, "Missing '/' in directory path"); + else { + *p = '\0'; + + make_objdir(bufr); + } + + if (mkdir(path, 0775) != 0 && errno != EEXIST) + err(1, "Could not make directory '%s'", path); + } +} + +static void +mk_path_init(char *srctop, size_t ssrctop, const char *p) +{ + char path[MAXPATHLEN]; + const char *mk_path_rel = "/bld"; + size_t len; + size_t len1 = strlen(mk_path_rel); + + if (*srctop != '\0' || ssrctop == 0) + return; + + if (realpath(p, path) == NULL) + return; + + if ((len = strlen(path)) < len1) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sun May 24 22:16:14 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B546A106566B; Sun, 24 May 2009 22:16:14 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A21028FC18; Sun, 24 May 2009 22:16:14 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4OMGEsc002821; Sun, 24 May 2009 22:16:14 GMT (envelope-from jb@svn.freebsd.org) Received: (from jb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4OMGERa002815; Sun, 24 May 2009 22:16:14 GMT (envelope-from jb@svn.freebsd.org) Message-Id: <200905242216.n4OMGERa002815@svn.freebsd.org> From: John Birrell Date: Sun, 24 May 2009 22:16:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192702 - in projects/jbuild/usr.bin/jbuild: . filemon X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 May 2009 22:16:15 -0000 Author: jb Date: Sun May 24 22:16:14 2009 New Revision: 192702 URL: http://svn.freebsd.org/changeset/base/192702 Log: Add jbuild, a modified version of FreeBSD's 'make' with automated dependency handling. filemon is a kernel module that provides a device interface for jbuild to read info that it saves in the meta data file for each target built. Added: projects/jbuild/usr.bin/jbuild/ projects/jbuild/usr.bin/jbuild/Makefile projects/jbuild/usr.bin/jbuild/filemon/ projects/jbuild/usr.bin/jbuild/filemon/Makefile projects/jbuild/usr.bin/jbuild/filemon/filemon.c projects/jbuild/usr.bin/jbuild/filemon/filemon.h projects/jbuild/usr.bin/jbuild/filemon/filemon_lock.c projects/jbuild/usr.bin/jbuild/filemon/filemon_wrapper.c Added: projects/jbuild/usr.bin/jbuild/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/Makefile Sun May 24 22:16:14 2009 (r192702) @@ -0,0 +1,125 @@ +# $FreeBSD$ + +.PATH : ${.CURDIR}/../make ${.CURDIR}/../jdirdep + +PROG= jbuild +CFLAGS+= -I${.CURDIR}/../make +SRCS= arch.c buf.c cond.c dir.c for.c hash.c hash_tables.c job.c \ + lst.c main.c make.c \ + parse.c proc.c shell.c str.c suff.c targ.c \ + util.c var.c + +BINDIR?= /usr/local/bin +WARNS?= 6 +NO_SHARED?= YES +NO_MAN= +IGNORE_PRAGMA= YES +DEBUG_FLAGS+= -g + +CFLAGS+= -DMAKE_VERSION=\"8000000000\" + +# We're building 'build', not 'make' so the behaviour is different in +# some areas like defaulting to silent. +CFLAGS+= -DMAKE_IS_BUILD -DJBUILD + +.ifdef BUILDMON +SRCS += buildmonreq.c +CFLAGS += -DBUILDMON -I${.CURDIR}/buildmon +.else +CFLAGS += -I${.CURDIR}/filemon +.endif + +.include "${.CURDIR}/../jdirdep/Makefile.common" + +# Make object files which depend on preprocessor symbols defined in +# the Makefile which are not compilation options but rather configuration +# options dependend on the Makefile. main.c needs MAKE_VERSION while +# shell.c uses DEFSHELLNAME. This will cause recompilation in the case +# the definition is changed in the makefile. It will of course not cause +# recompilation if one does 'make MAKE_SHELL=csh'. +main.o shell.o: ${MAKEFILE} + +# Directive and keyword tables. We use hash tables. These hash tables have been +# generated with mph (ports/devel/mph) +# If you change the directives or keywords (adding, deleting, reordering) you +# need to create new tables and hash functions (directive_hash, keyword_hash). +# +# The following changes have been made to the generated code: +# +# o prefix the names of the g, T0 and T1 arrays with 'directive_' +# resp. 'keyword_'. +# +# o make the type of the tables 'const [un]signed char' (if you change +# anything make sure that the numbers fit into a char). +# +# o make the hash function use the length for termination, +# not the trailing '\0', via the -l flag in emitc and some editing +# (only for directive_hash). + +LOCALBASE ?= /usr/local +MPH ?= ${LOCALBASE}/bin/mph +EMITC ?= ${LOCALBASE}/bin/emitc + +.PRECIOUS: hash + +hash: + ( echo '/*' ; \ + echo ' * DO NOT EDIT' ; \ + echo ' * $$''FreeBSD$$' ; \ + echo -n ' * auto-generated from ' ; \ + sed -nEe '/\$$FreeBSD/s/^.*\$$(.*)\$$.*$$/\1/p' \ + ${.CURDIR}/parse.c ; \ + echo ' * DO NOT EDIT' ; \ + echo ' */' ; \ + echo '#include ' ; \ + echo ; \ + echo '#include "hash_tables.h"' ; \ + echo ; \ + cat ${.CURDIR}/parse.c | sed \ + -e '1,/DIRECTIVES-START-TAG/d' \ + -e '/DIRECTIVES-END-TAG/,$$d' \ + -e 's/^[^"]*"\([^"]*\)".*$$/\1/' | \ + ${MPH} -d2 -m1 | ${EMITC} -l -s | \ + sed \ + -e 's/^static int g\[\]/static const signed char directive_g[]/' \ + -e 's/^static int T0\[\]/static const u_char directive_T0[]/' \ + -e 's/^static int T1\[\]/static const u_char directive_T1[]/' \ + -e '/^#define uchar unsigned char/d' \ + -e 's/uchar/u_char/g' \ + -e 's/^hash(/directive_hash(/' \ + -e 's/; \*kp;/; kp < key + len;/' \ + -e 's/int len)/size_t len)/' \ + -e 's/= T0\[/= directive_T0\[/' \ + -e 's/= T1\[/= directive_T1\[/' \ + -e 's/g\[f/directive_g[f/g' ; \ + cat ${.CURDIR}/parse.c | sed \ + -e '1,/KEYWORD-START-TAG/d' \ + -e '/KEYWORD-END-TAG/,$$d' \ + -e 's/^[^"]*"\([^"]*\)".*$$/\1/' | \ + ${MPH} -d2 -m1 | ${EMITC} -l -s | \ + sed \ + -e 's/^static int g\[\]/static const signed char keyword_g[]/' \ + -e 's/^static int T0\[\]/static const u_char keyword_T0[]/' \ + -e 's/^static int T1\[\]/static const u_char keyword_T1[]/' \ + -e '/^#define uchar unsigned char/d' \ + -e 's/uchar/u_char/g' \ + -e 's/^hash(/keyword_hash(/' \ + -e 's/int len)/size_t len)/' \ + -e 's/= T0\[/= keyword_T0\[/' \ + -e 's/= T1\[/= keyword_T1\[/' \ + -e 's/g\[f/keyword_g[f/g' \ + ) > ${.CURDIR}/hash_tables.c + +# Set the shell which make(1) uses. Bourne is the default, but a decent +# Korn shell works fine, and much faster. Using the C shell for this +# will almost certainly break everything, but it's Unix tradition to +# allow you to shoot yourself in the foot if you want to :-) + +MAKE_SHELL?= sh +.if ${MAKE_SHELL} == "csh" || ${MAKE_SHELL} == "sh" || ${MAKE_SHELL} == "ksh" +CFLAGS+= -DDEFSHELLNAME=\"${MAKE_SHELL}\" +.else +.error "MAKE_SHELL must be set to one of \"csh\", \"sh\" or \"ksh\"." +.endif + +.include Added: projects/jbuild/usr.bin/jbuild/filemon/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/filemon/Makefile Sun May 24 22:16:14 2009 (r192702) @@ -0,0 +1,7 @@ +# $FreeBSD$ + +KMOD = filemon +SRCS = filemon.c +SRCS += vnode_if.h + +.include Added: projects/jbuild/usr.bin/jbuild/filemon/filemon.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/filemon/filemon.c Sun May 24 22:16:14 2009 (r192702) @@ -0,0 +1,310 @@ +/* $FreeBSD$ */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "filemon.h" + +extern struct sysentvec elf32_freebsd_sysvec; + +static d_close_t filemon_close; +static d_ioctl_t filemon_ioctl; +static d_open_t filemon_open; +static int filemon_unload(void); +static void filemon_load(void *); + +static struct cdevsw filemon_cdevsw = { + .d_version = D_VERSION, + .d_close = filemon_close, + .d_ioctl = filemon_ioctl, + .d_open = filemon_open, + .d_name = "filemon", +}; + +MALLOC_DECLARE(M_FILEMON); +MALLOC_DEFINE(M_FILEMON, "filemon", "File access monitor"); + +struct filemon { + pid_t pid; /* The process ID being monitored. */ + char fname1[MAXPATHLEN]; /* Temporary filename buffer. */ + char fname2[MAXPATHLEN]; /* Temporary filename buffer. */ + char msgbufr[1024]; /* Output message buffer. */ + struct file + *fp; /* Output file pointer. */ + struct thread + *locker; /* Ptr to the thread locking this */ + /* filemon.*/ + struct mtx + mtx; /* Lock mutex for this filemon. */ + struct cv + cv; /* Lock condition variable for this */ + /* filemon. */ + TAILQ_ENTRY(filemon) link; /* Link into the in-use list. */ +}; + +static TAILQ_HEAD(, filemon) filemons_inuse = TAILQ_HEAD_INITIALIZER(filemons_inuse); +static int n_readers = 0; +static struct mtx access_mtx; +static struct cv access_cv; +static struct thread *access_owner = NULL; +static struct thread *access_requester = NULL; + +#if __FreeBSD_version < 701000 +static struct clonedevs *filemon_clones; +static eventhandler_tag eh_tag; +#else +static struct cdev *filemon_dev; +#endif + +#include "filemon_lock.c" +#include "filemon_wrapper.c" + +#if __FreeBSD_version < 701000 +static void +filemon_clone(void *arg, struct ucred *cred, char *name, int namelen, + struct cdev **dev) +{ + int u = -1; + size_t len; + + if (*dev != NULL) + return; + + len = strlen(name); + + if (len != 7) + return; + + if (bcmp(name,"filemon",7) != 0) + return; + + /* Clone the device to the new minor number. */ + if (clone_create(&filemon_clones, &filemon_cdevsw, &u, dev, 0) != 0) + /* Create the /dev/filemonNN entry. */ + *dev = make_dev_cred(&filemon_cdevsw, u, cred, UID_ROOT, + GID_WHEEL, 0666, "filemon%d", u); + if (*dev != NULL) { + dev_ref(*dev); + (*dev)->si_flags |= SI_CHEAPCLONE; + } +} +#endif + +static void +filemon_dtr(void *data) +{ + struct filemon *filemon = data; + + if (filemon != NULL) { + /* Get exclusive write access. */ + filemon_lock_write(); + + /* Remove from the in-use list. */ + TAILQ_REMOVE(&filemons_inuse, filemon, link); + + /* Give up write access. */ + filemon_unlock_write(); + + if (filemon->fp != NULL) + fdrop(filemon->fp, curthread); + + mtx_destroy(&filemon->mtx); + cv_destroy(&filemon->cv); + + free(filemon, M_FILEMON); + } +} + +static int +filemon_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag __unused, struct thread *td) +{ + int error = 0; + struct filemon *filemon; + +#if __FreeBSD_version < 701000 + filemon = dev->si_drv1; +#else + devfs_get_cdevpriv((void **) &filemon); +#endif + + switch (cmd) { + /* Set the output file descriptor. */ + case FILEMON_SET_FD: + if ((error = fget_write(td, *((int *) data), + &filemon->fp)) == 0) + /* Write the file header. */ + filemon_comment(filemon); + break; + + /* Set the monitored process ID. */ + case FILEMON_SET_PID: + filemon->pid = *((pid_t *) data); + break; + + default: + error = EINVAL; + break; + } + + return(error); +} + +static int +filemon_open(struct cdev *dev, int oflags __unused, int devtype __unused, + struct thread *td __unused) +{ + struct filemon *filemon; + + filemon = malloc(sizeof(struct filemon), M_FILEMON, M_WAITOK | M_ZERO); + + filemon->pid = curproc->p_pid; + filemon->fp = NULL; + + mtx_init(&filemon->mtx, "filemon", "filemon", MTX_DEF); + cv_init(&filemon->cv, "filemon"); + +#if __FreeBSD_version < 701000 + dev->si_drv1 = filemon; +#else + devfs_set_cdevpriv(filemon, filemon_dtr); +#endif + + /* Get exclusive write access. */ + filemon_lock_write(); + + /* Add to the in-use list. */ + TAILQ_INSERT_TAIL(&filemons_inuse, filemon, link); + + /* Give up write access. */ + filemon_unlock_write(); + + return (0); +} + +static int +filemon_close(struct cdev *dev __unused, int flag __unused, int fmt __unused, + struct thread *td __unused) +{ +#if __FreeBSD_version < 701000 + filemon_dtr(dev->si_drv1); + + dev->si_drv1 = NULL; + + /* Schedule this cloned device to be destroyed. */ + destroy_dev_sched(dev); +#endif + + return (0); +} + +static void +filemon_load(void *dummy __unused) +{ + mtx_init(&access_mtx, "filemon", "filemon", MTX_DEF); + cv_init(&access_cv, "filemon"); + + /* Install the syscall wrappers. */ + filemon_wrapper_install(); + +#if __FreeBSD_version < 701000 + /* Enable device cloning. */ + clone_setup(&filemon_clones); + + /* Setup device cloning events. */ + eh_tag = EVENTHANDLER_REGISTER(dev_clone, filemon_clone, 0, 1000); +#else + filemon_dev = make_dev(&filemon_cdevsw, 0, UID_ROOT, GID_WHEEL, 0666, + "filemon"); +#endif +} + + +static int +filemon_unload(void) +{ + int error = 0; + + /* Get exclusive write access. */ + filemon_lock_write(); + + if (TAILQ_FIRST(&filemons_inuse) != NULL) + error = EBUSY; + else { +#if __FreeBSD_version >= 701000 + destroy_dev(filemon_dev); +#endif + + /* Deinstall the syscall wrappers. */ + filemon_wrapper_deinstall(); + } + + /* Give up write access. */ + filemon_unlock_write(); + + if (error == 0) { +#if __FreeBSD_version < 701000 + /* + * Check if there is still an event handler callback registered. + */ + if (eh_tag != 0) { + /* De-register the device cloning event handler. */ + EVENTHANDLER_DEREGISTER(dev_clone, eh_tag); + eh_tag = 0; + + /* Stop device cloning. */ + clone_cleanup(&filemon_clones); + } +#endif + + mtx_destroy(&access_mtx); + cv_destroy(&access_cv); + } + + return (error); +} + +static int +filemon_modevent(module_t mod __unused, int type, void *data) +{ + int error = 0; + + switch (type) { + case MOD_LOAD: + filemon_load(data); + break; + + case MOD_UNLOAD: + error = filemon_unload(); + break; + + case MOD_SHUTDOWN: + break; + + default: + error = EOPNOTSUPP; + break; + + } + + return (error); +} + +DEV_MODULE(filemon, filemon_modevent, NULL); +MODULE_VERSION(filemon, 1); Added: projects/jbuild/usr.bin/jbuild/filemon/filemon.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/filemon/filemon.h Sun May 24 22:16:14 2009 (r192702) @@ -0,0 +1,4 @@ +/* $FreeBSD$ */ + +#define FILEMON_SET_FD _IOWR('S', 1, int) +#define FILEMON_SET_PID _IOWR('S', 2, pid_t) Added: projects/jbuild/usr.bin/jbuild/filemon/filemon_lock.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/filemon/filemon_lock.c Sun May 24 22:16:14 2009 (r192702) @@ -0,0 +1,94 @@ +/* $FreeBSD$ */ + +static void +filemon_filemon_lock(struct filemon *filemon) +{ + mtx_lock(&filemon->mtx); + + while (filemon->locker != NULL && filemon->locker != curthread) + cv_wait(&filemon->cv, &filemon->mtx); + + filemon->locker = curthread; + + mtx_unlock(&filemon->mtx); +} + +static void +filemon_filemon_unlock(struct filemon *filemon) +{ + mtx_lock(&filemon->mtx); + + if (filemon->locker == curthread) + filemon->locker = NULL; + + /* Wake up threads waiting. */ + cv_broadcast(&filemon->cv); + + mtx_unlock(&filemon->mtx); +} + +static void +filemon_lock_read(void) +{ + mtx_lock(&access_mtx); + + while (access_owner != NULL || access_requester != NULL) + cv_wait(&access_cv, &access_mtx); + + n_readers++; + + /* Wake up threads waiting. */ + cv_broadcast(&access_cv); + + mtx_unlock(&access_mtx); +} + +static void +filemon_unlock_read(void) +{ + mtx_lock(&access_mtx); + + if (n_readers > 0) + n_readers--; + + /* Wake up a thread waiting. */ + cv_broadcast(&access_cv); + + mtx_unlock(&access_mtx); +} + +static void +filemon_lock_write(void) +{ + mtx_lock(&access_mtx); + + while (access_owner != curthread) { + if (access_owner == NULL && + (access_requester == NULL || access_requester == curthread)) { + access_owner = curthread; + access_requester = NULL; + } else { + if (access_requester == NULL) + access_requester = curthread; + + cv_wait(&access_cv, &access_mtx); + } + } + + mtx_unlock(&access_mtx); +} + +static void +filemon_unlock_write(void) +{ + mtx_lock(&access_mtx); + + /* Sanity check that the current thread actually has the write lock. */ + if (access_owner == curthread) + access_owner = NULL; + + /* Wake up a thread waiting. */ + cv_broadcast(&access_cv); + + mtx_unlock(&access_mtx); +} Added: projects/jbuild/usr.bin/jbuild/filemon/filemon_wrapper.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/filemon/filemon_wrapper.c Sun May 24 22:16:14 2009 (r192702) @@ -0,0 +1,410 @@ +/* $FreeBSD$ */ + +static void +filemon_output(struct filemon *filemon, char *msg, size_t len) +{ + struct uio auio; + struct iovec aiov; + + if (filemon->fp == NULL) + return; + + aiov.iov_base = msg; + aiov.iov_len = len; + auio.uio_iov = &aiov; + auio.uio_iovcnt = 1; + auio.uio_resid = len; + auio.uio_segflg = UIO_SYSSPACE; + auio.uio_rw = UIO_WRITE; + auio.uio_td = curthread; + auio.uio_offset = (off_t) -1; + + bwillwrite(); + + fo_write(filemon->fp, &auio, curthread->td_ucred, 0, curthread); +} + +static struct filemon * +filemon_pid_check(struct proc *p) +{ + struct filemon *filemon; + + TAILQ_FOREACH(filemon, &filemons_inuse, link) { + if (p->p_pid == filemon->pid) + return(filemon); + } + + if (p->p_pptr == NULL) + return(NULL); + + return (filemon_pid_check(p->p_pptr)); +} + +static void +filemon_comment(struct filemon *filemon) +{ + int len; + + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), + "# buildmon version 2\n# Target pid %d\nV 2\n", curproc->p_pid); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + + /* Release the read lock. */ + filemon_unlock_read(); +} + +static int +filemon_wrapper_chdir(struct thread *td, struct chdir_args *uap) +{ + int ret; + size_t done; + size_t len; + struct filemon *filemon; + + if ((ret = chdir(td, uap)) == 0) { + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + if ((filemon = filemon_pid_check(curproc)) != NULL) { + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + copyinstr(uap->path, filemon->fname1, sizeof(filemon->fname1), &done); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "C %d %s\n", + curproc->p_pid, filemon->fname1); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + } + + /* Release the read lock. */ + filemon_unlock_read(); + } + + return(ret); +} + +static int +filemon_wrapper_execve(struct thread *td, struct execve_args *uap) +{ + char fname[MAXPATHLEN]; + int ret; + size_t done; + size_t len; + struct filemon *filemon; + + copyinstr(uap->fname, fname, sizeof(fname), &done); + + if ((ret = execve(td, uap)) == 0) { + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + if ((filemon = filemon_pid_check(curproc)) != NULL) { + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "E %d %s\n", + curproc->p_pid, fname); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + } + + /* Release the read lock. */ + filemon_unlock_read(); + } + + return(ret); +} + +static int +filemon_wrapper_fork(struct thread *td, struct fork_args *uap) +{ + int ret; + size_t len; + struct filemon *filemon; + + if ((ret = fork(td, uap)) == 0) { + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + if ((filemon = filemon_pid_check(curproc)) != NULL) { + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "F %d %d\n", + curproc->p_pid, curthread->td_retval[0]); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + } + + /* Release the read lock. */ + filemon_unlock_read(); + } + + return(ret); +} + +static int +filemon_wrapper_open(struct thread *td, struct open_args *uap) +{ + int ret; + size_t done; + size_t len; + struct filemon *filemon; + + if ((ret = open(td, uap)) == 0) { + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + if ((filemon = filemon_pid_check(curproc)) != NULL) { + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + copyinstr(uap->path, filemon->fname1, sizeof(filemon->fname1), &done); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "%c %d %s\n", + (uap->flags & O_ACCMODE) ? 'W':'R', curproc->p_pid, filemon->fname1); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + } + + /* Release the read lock. */ + filemon_unlock_read(); + } + + return(ret); +} + +static int +filemon_wrapper_rename(struct thread *td, struct rename_args *uap) +{ + int ret; + size_t done; + size_t len; + struct filemon *filemon; + + if ((ret = rename(td, uap)) == 0) { + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + if ((filemon = filemon_pid_check(curproc)) != NULL) { + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + copyinstr(uap->from, filemon->fname1, sizeof(filemon->fname1), &done); + copyinstr(uap->to, filemon->fname2, sizeof(filemon->fname2), &done); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "M %d '%s' '%s'\n", + curproc->p_pid, filemon->fname1, filemon->fname2); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + } + + /* Release the read lock. */ + filemon_unlock_read(); + } + + return(ret); +} + +static int +filemon_wrapper_stat(struct thread *td, struct stat_args *uap) +{ + int ret; + size_t done; + size_t len; + struct filemon *filemon; + + if ((ret = stat(td, uap)) == 0) { + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + if ((filemon = filemon_pid_check(curproc)) != NULL) { + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + copyinstr(uap->path, filemon->fname1, sizeof(filemon->fname1), &done); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "S %d %s\n", + curproc->p_pid, filemon->fname1); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + } + + /* Release the read lock. */ + filemon_unlock_read(); + } + + return(ret); +} + +static void +filemon_wrapper_sys_exit(struct thread *td, struct sys_exit_args *uap) +{ + size_t len; + struct filemon *filemon; + + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + if ((filemon = filemon_pid_check(curproc)) != NULL) { + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "X %d\n", curproc->p_pid); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Check if the monitored process is about to exit. */ + if (filemon->pid == curproc->p_pid) { + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "# Bye bye\n"); + + filemon_output(filemon, filemon->msgbufr, len); + } + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + } + + /* Release the read lock. */ + filemon_unlock_read(); + + sys_exit(td, uap); +} + +static int +filemon_wrapper_unlink(struct thread *td, struct unlink_args *uap) +{ + int ret; + size_t done; + size_t len; + struct filemon *filemon; + + if ((ret = unlink(td, uap)) == 0) { + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + if ((filemon = filemon_pid_check(curproc)) != NULL) { + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + copyinstr(uap->path, filemon->fname1, sizeof(filemon->fname1), &done); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "D %d %s\n", + curproc->p_pid, filemon->fname1); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + } + + /* Release the read lock. */ + filemon_unlock_read(); + } + + return(ret); +} + +static int +filemon_wrapper_vfork(struct thread *td, struct vfork_args *uap) +{ + int ret; + size_t len; + struct filemon *filemon; + + if ((ret = vfork(td, uap)) == 0) { + /* Grab a read lock on the filemon inuse list. */ + filemon_lock_read(); + + if ((filemon = filemon_pid_check(curproc)) != NULL) { + /* Lock the found filemon structure. */ + filemon_filemon_lock(filemon); + + len = snprintf(filemon->msgbufr, sizeof(filemon->msgbufr), "F %d %d\n", + curproc->p_pid, curthread->td_retval[0]); + + filemon_output(filemon, filemon->msgbufr, len); + + /* Unlock the found filemon structure. */ + filemon_filemon_unlock(filemon); + } + + /* Release the read lock. */ + filemon_unlock_read(); + } + + return(ret); +} + +static void +filemon_wrapper_install(void) +{ +#if defined(__i386__) + struct sysent *sv_table = elf32_freebsd_sysvec.sv_table; +#elif defined(__amd64__) + struct sysent *sv_table = elf64_freebsd_sysvec.sv_table; +#else +#error Machine type not supported +#endif + + sv_table[SYS_chdir].sy_call = (sy_call_t *) filemon_wrapper_chdir; + sv_table[SYS_exit].sy_call = (sy_call_t *) filemon_wrapper_sys_exit; + sv_table[SYS_execve].sy_call = (sy_call_t *) filemon_wrapper_execve; + sv_table[SYS_fork].sy_call = (sy_call_t *) filemon_wrapper_fork; + sv_table[SYS_open].sy_call = (sy_call_t *) filemon_wrapper_open; + sv_table[SYS_rename].sy_call = (sy_call_t *) filemon_wrapper_rename; + sv_table[SYS_stat].sy_call = (sy_call_t *) filemon_wrapper_stat; + sv_table[SYS_unlink].sy_call = (sy_call_t *) filemon_wrapper_unlink; + sv_table[SYS_vfork].sy_call = (sy_call_t *) filemon_wrapper_vfork; +} + +static void +filemon_wrapper_deinstall(void) +{ +#if defined(__i386__) + struct sysent *sv_table = elf32_freebsd_sysvec.sv_table; +#elif defined(__amd64__) + struct sysent *sv_table = elf64_freebsd_sysvec.sv_table; +#else +#error Machine type not supported +#endif + + sv_table[SYS_chdir].sy_call = (sy_call_t *) chdir; + sv_table[SYS_exit].sy_call = (sy_call_t *) sys_exit; + sv_table[SYS_execve].sy_call = (sy_call_t *) execve; + sv_table[SYS_fork].sy_call = (sy_call_t *) fork; + sv_table[SYS_open].sy_call = (sy_call_t *) open; + sv_table[SYS_rename].sy_call = (sy_call_t *) rename; + sv_table[SYS_stat].sy_call = (sy_call_t *) stat; + sv_table[SYS_unlink].sy_call = (sy_call_t *) unlink; + sv_table[SYS_vfork].sy_call = (sy_call_t *) vfork; +} From owner-svn-src-projects@FreeBSD.ORG Sun May 24 22:18:00 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21E01106566B; Sun, 24 May 2009 22:18:00 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0C76A8FC16; Sun, 24 May 2009 22:18:00 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4OMHxcR002890; Sun, 24 May 2009 22:17:59 GMT (envelope-from jb@svn.freebsd.org) Received: (from jb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4OMHxQ2002886; Sun, 24 May 2009 22:17:59 GMT (envelope-from jb@svn.freebsd.org) Message-Id: <200905242217.n4OMHxQ2002886@svn.freebsd.org> From: John Birrell Date: Sun, 24 May 2009 22:17:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192703 - projects/jbuild/usr.bin/jdirdep X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 May 2009 22:18:01 -0000 Author: jb Date: Sun May 24 22:17:59 2009 New Revision: 192703 URL: http://svn.freebsd.org/changeset/base/192703 Log: Add jdirdep, a program to parse the directory dependencies from the meta data files that jbuild creates. Part of jdirdep is built into jbuild itself so that directory dependencies update automatically when you build. Added: projects/jbuild/usr.bin/jdirdep/ projects/jbuild/usr.bin/jdirdep/Makefile projects/jbuild/usr.bin/jdirdep/Makefile.common projects/jbuild/usr.bin/jdirdep/jdirdep.c projects/jbuild/usr.bin/jdirdep/jdirdep.h projects/jbuild/usr.bin/jdirdep/jdirdep_mysql.c projects/jbuild/usr.bin/jdirdep/jdirdep_sqlite3.c projects/jbuild/usr.bin/jdirdep/jgetsrc Added: projects/jbuild/usr.bin/jdirdep/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jdirdep/Makefile Sun May 24 22:17:59 2009 (r192703) @@ -0,0 +1,16 @@ +# $FreeBSD$ + +PROG = jdirdep + +.include "Makefile.common" + +BINDIR?= /usr/local/bin +WARNS= 6 +NO_MAN= +CFLAGS+= -DJDIRDEP_MAIN +CFLAGS+= -DDEBUG +CFLAGS+= -g +STRIP= + + +.include Added: projects/jbuild/usr.bin/jdirdep/Makefile.common ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jdirdep/Makefile.common Sun May 24 22:17:59 2009 (r192703) @@ -0,0 +1,18 @@ +# $FreeBSD$ + +SRCS += jdirdep.c + +CFLAGS += -I${.CURDIR}/../jdirdep -DJDIRDEP + +.if defined(USE_SQLITE3) +CFLAGS += -DUSE_SQLITE3 -pthread +CFLAGS += -I/usr/local/include +SRCS += jdirdep_sqlite3.c +LDADD += /usr/local/lib/libsqlite3.a +.else +SRCS += jdirdep_mysql.c +MYSQL_CFLAGS != mysql_config --cflags +MYSQL_LIBS != mysql_config --libs +CFLAGS += -DUSE_MYSQL ${MYSQL_CFLAGS} +LDADD += ${MYSQL_LIBS} +.endif Added: projects/jbuild/usr.bin/jdirdep/jdirdep.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jdirdep/jdirdep.c Sun May 24 22:17:59 2009 (r192703) @@ -0,0 +1,1378 @@ +/* $FreeBSD$ */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "jdirdep.h" + +#ifdef JDIRDEP +#define MAKEFILE "Buildfile" +#define MAKEFILED "Buildfile.dirdep" +#define MAKEFILEDEP "Buildfile.dep" +#else +#define MAKEFILE "Makefile" +#define MAKEFILED "Makefile.dirdep" +#define MAKEFILEDEP "Makefile.dep" +#endif + +struct dirdep { + char *srcrel; + int subcnt; + TAILQ_ENTRY(dirdep) link; +}; + +struct march { + char *machine; + char *machine_arch; + TAILQ_ENTRY(march) link; +}; + +struct incmk { + char *s; + size_t l; + TAILQ_ENTRY(incmk) link; +}; + +struct file_track { + int64_t *filids; + int max_idx; + int next_idx; +}; + +static TAILQ_HEAD(, dirdep) dirdeps = TAILQ_HEAD_INITIALIZER(dirdeps); +static TAILQ_HEAD(, dirdep) srcdirdeps = TAILQ_HEAD_INITIALIZER(srcdirdeps); +static TAILQ_HEAD(, incmk) incmks = TAILQ_HEAD_INITIALIZER(incmks); +static TAILQ_HEAD(, march) marchs = TAILQ_HEAD_INITIALIZER(marchs); +static int f_db = 0; +static int f_quiet = 1; +static struct file_track read_filids = { NULL, 0, 0 }; +static struct file_track write_filids = { NULL, 0, 0 }; + +static void +file_track_add(struct file_track *ft, int64_t filid) +{ + int i; + + for (i = 0; i < ft->max_idx; i++) + if (ft->filids[i] == filid) + return;; + + if (ft->next_idx == ft->max_idx) { + int max_idx = ft->max_idx + 256; + int64_t *filids; + + if ((filids = realloc(ft->filids, sizeof(int64_t) * max_idx)) == NULL) + errx(1, "Error reallocating memory"); + + ft->filids = filids; + ft->max_idx = max_idx; + } + + ft->filids[ft->next_idx++] = filid; +} + +static void +file_track_reset(void) +{ + read_filids.next_idx = 0; + write_filids.next_idx = 0; +} + +/* + * Clean the directory dependency list ready to process another file. + */ +static void +clean_subdep(void) +{ + struct dirdep *dd; + struct dirdep *dt; + + TAILQ_FOREACH_SAFE(dd, &dirdeps, link, dt) { + TAILQ_REMOVE(&dirdeps, dd, link); + if (dd->srcrel != NULL) + free(dd->srcrel); + free(dd); + } + + TAILQ_FOREACH_SAFE(dd, &srcdirdeps, link, dt) { + TAILQ_REMOVE(&srcdirdeps, dd, link); + if (dd->srcrel != NULL) + free(dd->srcrel); + free(dd); + } +} + +/* + * Check if a source relative directory path is in the list and add it + * if not. Keep the list sorted. + */ +static void +srcdirdep_add(const char *srcrel) +{ + int v = 0; + struct dirdep *dd; + struct dirdep *dn = NULL; + + TAILQ_FOREACH(dd, &srcdirdeps, link) { + if ((v = strcmp(srcrel, dd->srcrel)) == 0) + return; + + if (v < 0 && dn == NULL) { + dn = dd; + break; + } + } + + if ((dd = malloc(sizeof(struct dirdep))) == NULL) + err(1, "Could not allocate memory for struct dirdep"); + + if ((dd->srcrel = strdup(srcrel)) == NULL) + err(1, "Could not duplicate srcrel string"); + + dd->subcnt = 0; + + if (dn == NULL) + TAILQ_INSERT_TAIL(&srcdirdeps, dd, link); + else + TAILQ_INSERT_BEFORE(dn, dd, link); +} + +/* + * Check if a source relative directory path is in the list and add it + * if not. Keep the list sorted. + */ +static void +dirdep_add(const char *srcrel, const char *from __unused, struct march *march) +{ + char *p2; + char s[MAXPATHLEN]; + const char *p1; + int v = 0; + size_t len = 0; + struct dirdep *dd; + struct dirdep *dn = NULL; + + if (march != NULL) + len = strlen(march->machine_arch); + + for (p1 = srcrel, p2 = s; *p1 != '\0'; ) { + if (march != NULL && + strcmp(march->machine_arch, "common") != 0 && + strncmp(p1, march->machine_arch, len) == 0) { + strcpy(p2, "MACHINE_ARCH"); + p1 += len; + p2 += 12; + } else + *p2++ = *p1++; + } + *p2 = '\0'; + + TAILQ_FOREACH(dd, &dirdeps, link) { + if ((v = strcmp(s, dd->srcrel)) == 0) + return; + + if (v < 0 && dn == NULL) { + dn = dd; + break; + } + } + +#ifdef DEBUG + if (!f_quiet) { + printf("%s from %s\n", s, from); + fflush(stdout); + } +#endif + + if ((dd = malloc(sizeof(struct dirdep))) == NULL) + err(1, "Could not allocate memory for struct dirdep"); + + if ((dd->srcrel = strdup(s)) == NULL) + err(1, "Could not duplicate srcrel string"); + + dd->subcnt = 0; + + if (dn == NULL) + TAILQ_INSERT_TAIL(&dirdeps, dd, link); + else + TAILQ_INSERT_BEFORE(dn, dd, link); +} + +static int +recid_lookup(void *thing, int argc __unused, char **argv __unused, char **colname __unused) +{ + int64_t *recid = thing; + + *recid = strtoimax(argv[0], NULL, 10); + + return(0); +} + +static int64_t +reldir_table_add(const char *reldir) +{ + int64_t relid = 0; + + jdirdep_db_command(recid_lookup, &relid, "SELECT relid FROM reldir WHERE name='%s';", reldir); + + if (relid == 0) { + jdirdep_db_command(NULL, NULL, "INSERT INTO reldir ( name ) VALUES ('%s');", reldir); + + relid = jdirdep_db_rowid(); + } + + return(relid); +} + +static int64_t +file_table_add(const char *relname, const char *reldir) +{ + int64_t filid = 0; + int64_t relid = 0; + + if (reldir != NULL && f_db) + relid = reldir_table_add(reldir); + + jdirdep_db_command(recid_lookup, &filid, "SELECT filid FROM file WHERE name='%s';", relname); + + if (filid == 0) { + jdirdep_db_command(NULL, NULL, "INSERT INTO file VALUES (0, '%s', %jd);", relname, relid); + + filid = jdirdep_db_rowid(); + } else if (relid != 0) { + jdirdep_db_command(NULL, NULL, "UPDATE file SET relid=%jd WHERE filid=%jd;", relid, filid); + +#ifdef DOODAD + /* Delete the files_using tuples for this file. */ + jdirdep_db_command(NULL, NULL, "DELETE FROM files_using WHERE filid_used=%jd;", filid); + + /* Now delete the files_used by this file. */ + jdirdep_db_command(NULL, NULL, "DELETE FROM files_used WHERE filid=%jd;", filid); +#endif + } + + return(filid); +} + +static void +file_dep_add(int64_t filid_using, int64_t filid_used) +{ + int64_t filid = 0; + + if (!f_db) + return; + + if (filid_using == filid_used) + return; + + jdirdep_db_command(recid_lookup, &filid, "SELECT filid_used FROM files_using WHERE filid=%jd AND filid_used=%jd;", filid_using, filid_used); + + if (filid == 0) + jdirdep_db_command(NULL, NULL, "INSERT INTO files_using VALUES (%jd, %jd);", filid_using, filid_used); + + filid = 0; + + jdirdep_db_command(recid_lookup, &filid, "SELECT filid_using FROM files_used WHERE filid=%jd AND filid_using=%jd;", filid_used, filid_using); + + if (filid == 0) + jdirdep_db_command(NULL, NULL, "INSERT INTO files_used VALUES (%jd, %jd);", filid_used, filid_using); +} + +static void +meta_dep_add(void) +{ + int i; + int j; + + if (!f_db) + return; + + for (i = 0; i < write_filids.next_idx; i++) { + for (j = 0; j < read_filids.next_idx; j++) { + file_dep_add(write_filids.filids[i], read_filids.filids[j]); + } + } +} + +static void +delete_dep(const char *relname __unused) +{ + /* Don't need this info (yet). */ +} + +static void +move_dep(const char *srcname, const char *dstname, const char *reldir) +{ + int64_t filid_used; + int64_t filid_using; + + if (!f_db) + return; + + filid_using = file_table_add(dstname, reldir); + filid_used = file_table_add(srcname, NULL); + + file_dep_add(filid_using, filid_used); +} + +static void +read_dep(const char *relname) +{ + int64_t filid; + + if (!f_db) + return; + + filid = file_table_add(relname, NULL); + + file_track_add(&read_filids, filid); +} + +static void +write_dep(const char *relname, const char *reldir) +{ + int64_t filid; + + if (!f_db) + return; + + filid = file_table_add(relname, reldir); + + file_track_add(&write_filids, filid); +} + +/* + * Read a meta data file looking for referenced files. For each referenced + * file, open the associated source relative directory file (.srcrel) if + * it exists and read the source relative directory from which the file + * was released. + */ +static void +parse_meta(const char *srctop, const char *thissrcrel, const char *objtop, const char *objroot, + const char *sharedobj, const char *mname, struct march *march) +{ + FILE *fp; + FILE *fp1; + char fname[MAXPATHLEN]; + char srcrel[MAXPATHLEN]; + char tname[MAXPATHLEN]; + char tname1[MAXPATHLEN]; + char tname2[MAXPATHLEN]; + size_t l_objroot; + size_t l_objtop; + size_t l_sharedobj; + size_t l_srctop; + struct stat fs; + + l_objroot = strlen(objroot); + l_objtop = strlen(objtop); + l_sharedobj = strlen(sharedobj); + l_srctop = strlen(srctop); + + if ((fp = fopen(mname, "r")) != NULL) { + char *bufr; + char *p; + char *p1; + char *p2; + int f = 0; + size_t len; + size_t s_bufr = 128 * 1024; + + if ((bufr = malloc(s_bufr)) == NULL) + err(1, "Cannot allocate memory for a read buffer"); + + while (fgets(bufr, s_bufr, fp) != NULL) { + /* Whack the trailing newline. */ + bufr[strlen(bufr) - 1] = '\0'; + + /* Find the start of the build monitor section. */ + if (strncmp(bufr, "-- buildmon", 11) == 0) { + f = 1; + continue; + } + + /* Check for the end of the build monitor section. */ + if (strncmp(bufr, "# Session completed", 19) == 0) { + f = 0; + continue; + } + + /* Delimit the record type. */ + p = bufr; + strsep(&p, " "); + + if (f) { + /* Process according to record type. */ + switch (bufr[0]) { + case 'D': + case 'E': + case 'R': + case 'S': + case 'W': + /* Skip the pid. */ + if (strsep(&p, " ") == NULL) + break; + + if (*p != '/') + snprintf(tname1, sizeof(tname1), "%s/%s/%s", + objtop, thissrcrel, p); + else + strlcpy(tname1, p, sizeof(tname1)); + + if (realpath(tname1, tname) == NULL) + break; + + /* Deleted file: */ + if (bufr[0] == 'D') { + if ((len = strlen(tname)) < l_objroot) + break; + + if (strncmp(tname, objroot, l_objroot) != 0) + break; + + delete_dep(tname + l_objroot - 3); + break; + + /* Written file: */ + } else if (bufr[0] == 'W') { + len = strlen(tname); + + if (strcmp(tname + len - 7, ".srcrel") == 0) + break; + + if ((len = strlen(tname)) < l_objroot) + break; + + if (strncmp(tname, objroot, l_objroot) != 0) + break; + + write_dep(tname + l_objroot - 3, thissrcrel); + break; + } + + if (stat(tname, &fs) == 0 && !S_ISREG(fs.st_mode)) + break; + + /* + * If there is a source relative directory file + * for the referenced file, then read it. + */ + snprintf(fname, sizeof(fname), "%s.srcrel", tname); + + if ((fp1 = fopen(fname, "r")) != NULL) { + if (l_sharedobj > 0 && strncmp(tname, sharedobj, l_sharedobj) == 0) + read_dep(tname + l_sharedobj - 3); + else if (l_objroot > 0 && strncmp(tname, objroot, l_objroot) == 0) + read_dep(tname + l_objroot - 3); + + if (fgets(srcrel, sizeof(srcrel), fp1) != NULL) { + char *sp; + + /* Whack the trailing newline. */ + srcrel[strlen(srcrel) - 1] = '\0'; + + /* Avoid bogus additional slashes. */ + sp = srcrel; + while (*sp == '/' || *sp == '#' || isspace(*sp)) + sp++; + + /* + * Watch out for the current directory + * because that can confuse things! + */ + if (strcmp(sp, thissrcrel) != 0) + dirdep_add(sp, p, march); + } + fclose(fp1); + + /* Check if the file is in the object tree. */ + } else if (strncmp(tname, objtop, l_objtop) == 0) { + char *sp; + + read_dep(tname + l_objroot - 3); + + /* Get the parent directory path. */ + strlcpy(srcrel, dirname(tname), sizeof(srcrel)); + + /* Avoid bogus additional slashes. */ + sp = srcrel + l_objtop + 1; + while (*sp == '/') + sp++; + + /* + * Watch out for the current directory + * because that can confuse things! + */ + if (strcmp(sp, thissrcrel) != 0) + dirdep_add(sp, p, march); + + /* + * Check if the file is in the source tree, but not + * in the current source directory. + */ + } else if (strncmp(tname, srctop, l_srctop) == 0) { + read_dep(tname + l_srctop - 3); + + if (strcmp(dirname(tname + l_srctop + 1), thissrcrel) != 0) + srcdirdep_add(dirname(tname + l_srctop + 1)); + } + break; + + case 'M': + /* Skip the pid. */ + if (strsep(&p, " ") == NULL) + break; + + /* Get the src file name. */ + if (strsep(&p, "'") == NULL) + break; + p1 = p; + if (strsep(&p, "'") == NULL) + break; + if (strsep(&p, " ") == NULL) + break; + + /* Get the dst file name. */ + if (strsep(&p, "'") == NULL) + break; + p2 = p; + if (strsep(&p, "'") == NULL) + break; + + if (*p1 != '/') + snprintf(tname1, sizeof(tname1), "%s/%s/%s", + objtop, thissrcrel, p1); + else + strlcpy(tname1, p1, sizeof(tname1)); + + if (realpath(tname1, tname) == NULL) + break; + + if (*p2 != '/') + snprintf(tname1, sizeof(tname1), "%s/%s/%s", + objtop, thissrcrel, p2); + else + strlcpy(tname1, p2, sizeof(tname1)); + + if (realpath(tname1, tname2) == NULL) + break; + + move_dep(tname + l_objroot - 3, tname2 + l_objroot - 3, thissrcrel); + break; + default: + break; + } + } + } + + free(bufr); + fclose(fp); + } + + meta_dep_add(); + + file_track_reset(); +} + +static char lockf_created[MAXPATHLEN]; +static int lockf_fd = -1; + +static void +lockf_create(const char *curdir) +{ + int i; + + if (lockf_fd >= 0) + return; + + snprintf(lockf_created, sizeof(lockf_created), "%s/.jdirdep_lockf", curdir); + + for (i = 0; i < 300; i++) { + if ((lockf_fd = open(lockf_created, O_CREAT | O_EXCL, 0600)) >= 0) { + return; + } + + if (errno != EEXIST) + err(1, "Could not create lock file '%s'", lockf_created); + + sleep(1); + } + + err(1, "Could not create lock file '%s'", lockf_created); +} + +static void +lockf_delete(void) +{ + if (lockf_fd >= 0) { + close(lockf_fd); + if (unlink(lockf_created) != 0) + err(1, "Could not unlink file '%s'", lockf_created); + lockf_fd = -1; + } + lockf_created[0] = '\0'; +} + +static void +do_dirdep(const char *srctop, const char *curdir, const char *srcrel, const char *objroot, + const char *sharedobj, int options) +{ + DIR *d; + FILE *fp; + FILE *fp1; + char *bufr; + char cmd[MAXPATHLEN]; + char *dirdep = NULL; + char fname[MAXPATHLEN]; + char fname1[MAXPATHLEN]; + char fname2[MAXPATHLEN]; + char mname[MAXPATHLEN]; + char objdir[MAXPATHLEN]; + char objtop[MAXPATHLEN]; + char *s = NULL; + char *s1 = NULL; + char *srcdirdep = NULL; + int f_add = (options & JDIRDEP_OPT_ADD); + int f_dirdep = 1; + int f_doit = 0; + int f_error = 0; + int f_force = (options & JDIRDEP_OPT_FORCE); + int f_rewrite = 0; + int f_src = (options & JDIRDEP_OPT_SOURCE); + int f_update = (options & JDIRDEP_OPT_UPDATE); + int fd; + size_t l; + size_t ss; + size_t ss1; + struct dirdep *dd; + struct dirent *de; + struct march *march; + struct stat fs; + + if (strcmp(srcrel, "stage") != 0) + dirdep_add("stage", "", NULL); + snprintf(fname, sizeof(fname), "%s/%s", curdir, MAKEFILE); + snprintf(fname2, sizeof(fname2), "%s/%s", curdir, MAKEFILEDEP); + + if ((fp = fopen(fname, "r")) == NULL) + return; + + if (fstat(fileno(fp), &fs) != 0) + err(1, "Could not get file status of file '%s'", fname); + + if (f_db) + reldir_table_add(srcrel); + + if ((bufr = malloc(fs.st_size)) == NULL) + err(1, "Could not allocate %zd bytes for the dirdep buffer", (size_t) fs.st_size); + + /* + * Read through the Makefile/Buildfile to look for the .include system makefile + * to determine if this directory needs to have a .dep file. + */ + while (fgets(bufr, fs.st_size, fp) != NULL) { + /* Whack the trailing newline. */ + bufr[strlen(bufr) - 1] = '\0'; + + if (bufr[0] != '#' && strstr(bufr, "") != NULL) { + f_dirdep = 0; + f_rewrite = 0; + break; + } + + if (bufr[0] != '#' && strstr(bufr, "") != NULL) { + f_dirdep = 0; + f_rewrite = 0; + break; + } + + /* + * Check if this file needs to be rewritten to remove the old DIRDEP and/or + * SRCDIRDEP lines. + */ + if (strncmp(bufr, "DIRDEP", 6) == 0 || strncpy(bufr, "SRCDIRDEP", 9) == 0) { + f_rewrite = 1; + f_force = 1; + } + } + + fclose(fp); + + /* + * If this directory needs a .dep file, then try to read the current one. + * This initialises the global lists for DIRDEP and SRCDIRDEP. + */ + if (f_dirdep && (fp = fopen(fname2, "r")) != NULL) { + char *p = NULL; + char *p1; + char *p2; + + /* + * Get the size of the current .dep file to use it as a maximum + * length for the DIRDEP and SRCDIRDEP strings. + */ + if (fstat(fileno(fp), &fs) != 0) + err(1, "Could not get file status of file '%s'", fname2); + + if ((dirdep = malloc(fs.st_size)) == NULL) + err(1, "Could not allocate %zd bytes for the dirdep buffer", (size_t) fs.st_size); + + if ((srcdirdep = malloc(fs.st_size)) == NULL) + err(1, "Could not allocate %zd bytes for the dirdep buffer", (size_t) fs.st_size); + + *dirdep = '\0'; + *srcdirdep = '\0'; + + /* Always add the stage directory since there is nothing in the meta data to + * indicate that it is always needed. The stage directory itself obviously can't + * depend on itself, but this is handled in bsd.dirdep.mk. + */ + dirdep_add("stage", "", NULL); + + /* + * Read through the existing .dep file and add paths to the DIRDEP and + * SRCDIRDEP global lists. + */ + while (fgets(bufr, fs.st_size, fp) != NULL) { + if (bufr[0] == '#' || bufr[0] == '\n') + continue; + else if (strncmp(bufr, "DIRDEP", 6) == 0) + p = dirdep; + else if (strncmp(bufr, "SRCDIRDEP", 9) == 0) + p = srcdirdep; + else if (bufr[0] == '\t' && p != NULL) { + /* + * Found a continution line which should contain a source + * relative directory path. Skip the tab and point to the + * start of the path. + */ + p1 = bufr + 1; + + /* Get the path with always has a space after it. */ + if ((p2 = strsep(&p1, " ")) != NULL) { + if (p == dirdep) { + /* Append to the reference dirdep string. */ + strcat(dirdep, " "); + strcat(dirdep, p2); + + if (f_add) + dirdep_add(p2, "", NULL); + } + + if (p == srcdirdep) { + /* Append to the reference srcdirdep string. */ + strcat(srcdirdep, " "); + strcat(srcdirdep, p2); + + if (f_add) + srcdirdep_add(p2); + } + } + } + } + + fclose(fp); + } + + /* Check if the DIRDEP= isn't needed for this directory. */ + if (!f_force && !f_dirdep) { + if (dirdep != NULL) + free(dirdep); + if (srcdirdep != NULL) + free(srcdirdep); + return; + } else { + /* Loop through the supported machine types... */ + TAILQ_FOREACH(march, &marchs, link) { + /* + * Format the path to the current machine-specific object + * directory: + */ + snprintf(objdir, sizeof(objdir), "%s/%s/%s", + objroot, march->machine, srcrel); + snprintf(objtop, sizeof(objtop), "%s/%s", + objroot, march->machine); + + /* + * Open the object directory and parse all meta data files we + * can find in there. These tell us what was referenced when the + * objects were built. + */ + if ((d = opendir(objdir)) != NULL) { + while((de = readdir(d)) != NULL) { + if ((l = strlen(de->d_name)) < 6) + continue; + + if (strcmp(de->d_name + l - 5, ".meta") != 0) + continue; + + snprintf(mname, sizeof(mname), "%s/%s", objdir, de->d_name); + + /* + * Parse the meta data file and watch out that we don't get + * confused with references to the current directory -- they + * are almost certain to occur if there are include files + * released from here because that happens early in the + * build (so that there are no differences between the + * released headers and the local ones). + */ + parse_meta(srctop, srcrel, objtop, objroot, sharedobj, mname, march); + } + + closedir(d); + } + } + + ss = 1; + TAILQ_FOREACH(dd, &dirdeps, link) { + ss += strlen(dd->srcrel) + 1; + } + + if ((s = malloc(ss)) == NULL) + err(1, "Could not allocate %zd bytes for the dirdep buffer", ss); + + ss1 = 1; + TAILQ_FOREACH(dd, &srcdirdeps, link) { + ss1 += strlen(dd->srcrel) + 1; + } + + if ((s1 = malloc(ss1)) == NULL) + err(1, "Could not allocate %zd bytes for the srcdirdep buffer", ss1); + + l = 0; + *s = '\0'; + + /* + * There are a couple of special cases we have to handle here. If we've + * got source relative directory elements, then we simply report + * that list, but if we have none, then we still have to report that we + * depend on the stage directory (which doesn't have a .srcrel file + * for us to discover). And finally we have to avoid making the 'stage' + * directory depend on itself. + */ + if (!TAILQ_EMPTY(&dirdeps)) { + TAILQ_FOREACH(dd, &dirdeps, link) { + l += snprintf(s + l, ss - l, " %s", dd->srcrel); + } + } else if (strcmp(srcrel, "stage") != 0) + l += snprintf(s + l, ss - l, " stage"); + + l = 0; + *s1 = '\0'; + + TAILQ_FOREACH(dd, &srcdirdeps, link) { + l += snprintf(s1 + l, ss1 - l, " %s", dd->srcrel); + } + + if (f_update && dirdep != NULL && strcmp(s, dirdep) != 0) { + printf("Directory dependencies are being updated:\n"); + printf("%s\n", s); + fflush(stdout); + f_doit = 1; + } + + if (f_update && f_src && srcdirdep != NULL && strcmp(s1, srcdirdep) != 0) { + printf("Source dependencies are being updated:\n"); + printf("%s\n", s1); + fflush(stdout); + f_doit = 1; + } + + if (f_update && dirdep == NULL) { + printf("Directory dependencies are being added:\n"); + printf("%s\n", s); + fflush(stdout); + f_doit = 1; + } + + if (f_update && f_src && srcdirdep == NULL && ss1 > 11) { + printf("Source dependencies are being added:\n"); + printf("%s\n", s1); + fflush(stdout); + f_doit = 1; + } + + if (!f_update && f_src) { + printf("%s\n", s1); + fflush(stdout); + } + + if (f_update && f_doit) { + lockf_create(curdir); + + if (f_rewrite) { + snprintf(fname1, sizeof(fname1), "%s.XXXXXX", fname); + if ((fd = mkstemp(fname1)) < 0) + err(1, "Could not create temporary file '%s'", fname1); + + if ((fp1 = fdopen(fd, "w")) == NULL) + err(1, "Could not open stream for temporary file '%s'", fname1); + + if ((fp = fopen(fname, "r")) == NULL) { + f_error = 1; + warn("Could not open '%s' again", fname); + } else { + while (fgets(bufr, fs.st_size, fp) != NULL) { + /* Whack the trailing newline. */ + bufr[strlen(bufr) - 1] = '\0'; + + /* Ignore lines that start with DIRDEP. */ + if (strncmp(bufr, "DIRDEP", 6) == 0) + continue; + + if (f_src && strncmp(bufr, "SRCDIRDEP", 9) == 0) + continue; + + fprintf(fp1, "%s\n", bufr); + } + + fclose(fp); + } + + fclose(fp1); + + if (f_error) + unlink(fname1); + else { + if (unlink(fname) != 0) + err(1, "Could not delete old file '%s'", fname); + + if (rename(fname1, fname) != 0) + err(1, "Could not rename file '%s' to '%s'", fname1, fname); + + if (chmod(fname, fs.st_mode) != 0) + err(1, "Could not chmod file '%s'", fname); + } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon May 25 06:33:11 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CF77106568A; Mon, 25 May 2009 06:33:11 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7BE148FC08; Mon, 25 May 2009 06:33:11 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4P6XBtL013488; Mon, 25 May 2009 06:33:11 GMT (envelope-from jb@svn.freebsd.org) Received: (from jb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4P6XBDE013487; Mon, 25 May 2009 06:33:11 GMT (envelope-from jb@svn.freebsd.org) Message-Id: <200905250633.n4P6XBDE013487@svn.freebsd.org> From: John Birrell Date: Mon, 25 May 2009 06:33:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192729 - projects/jbuild/usr.bin/make X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 May 2009 06:33:11 -0000 Author: jb Date: Mon May 25 06:33:11 2009 New Revision: 192729 URL: http://svn.freebsd.org/changeset/base/192729 Log: Flag an arg as unused for the 'make' build. It is used when building as 'jbuild'. Modified: projects/jbuild/usr.bin/make/job.c Modified: projects/jbuild/usr.bin/make/job.c ============================================================================== --- projects/jbuild/usr.bin/make/job.c Mon May 25 06:29:02 2009 (r192728) +++ projects/jbuild/usr.bin/make/job.c Mon May 25 06:33:11 2009 (r192729) @@ -3287,7 +3287,7 @@ shellneed(ArgArray *aa, char *cmd) * The node's 'made' field may be set to ERROR. */ static int -Compat_RunCommand(char *cmd, GNode *gn, FILE *mfp) +Compat_RunCommand(char *cmd, GNode *gn, FILE *mfp __unused) { ArgArray aa; char *cmdStart; /* Start of expanded command */ From owner-svn-src-projects@FreeBSD.ORG Mon May 25 06:36:02 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DAA7710656EC; Mon, 25 May 2009 06:36:02 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C84198FC0C; Mon, 25 May 2009 06:36:02 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4P6a2B7013582; Mon, 25 May 2009 06:36:02 GMT (envelope-from jb@svn.freebsd.org) Received: (from jb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4P6a21K013578; Mon, 25 May 2009 06:36:02 GMT (envelope-from jb@svn.freebsd.org) Message-Id: <200905250636.n4P6a21K013578@svn.freebsd.org> From: John Birrell Date: Mon, 25 May 2009 06:36:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192730 - projects/jbuild/usr.bin/tar X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 May 2009 06:36:03 -0000 Author: jb Date: Mon May 25 06:36:02 2009 New Revision: 192730 URL: http://svn.freebsd.org/changeset/base/192730 Log: Rough merge of the manifest file support from p4. The merged code needs to be updated to handle the change which removed write_entry(). Not a big deal. Modified: projects/jbuild/usr.bin/tar/bsdtar.c projects/jbuild/usr.bin/tar/bsdtar.h projects/jbuild/usr.bin/tar/cmdline.c projects/jbuild/usr.bin/tar/write.c Modified: projects/jbuild/usr.bin/tar/bsdtar.c ============================================================================== --- projects/jbuild/usr.bin/tar/bsdtar.c Mon May 25 06:33:11 2009 (r192729) +++ projects/jbuild/usr.bin/tar/bsdtar.c Mon May 25 06:36:02 2009 (r192730) @@ -309,6 +309,13 @@ main(int argc, char **argv) case 'm': /* SUSv2 */ bsdtar->extract_flags &= ~ARCHIVE_EXTRACT_TIME; break; + case OPTION_MANIFEST: + /* The argument is the manifest file name. */ + bsdtar->manifest = optarg; + + /* Specifying a manifest implies creating an archive. */ + set_mode(bsdtar, 'c'); + break; case 'n': /* GNU tar */ bsdtar->option_no_subdirs = 1; break; Modified: projects/jbuild/usr.bin/tar/bsdtar.h ============================================================================== --- projects/jbuild/usr.bin/tar/bsdtar.h Mon May 25 06:33:11 2009 (r192729) +++ projects/jbuild/usr.bin/tar/bsdtar.h Mon May 25 06:36:02 2009 (r192730) @@ -63,6 +63,7 @@ struct bsdtar { const char *option_options; /* --options */ char option_honor_nodump; /* --nodump */ char option_interactive; /* -w */ + const char *manifest; /* --manifest */ char option_no_owner; /* -o */ char option_no_subdirs; /* -n */ char option_null; /* --null */ @@ -116,6 +117,7 @@ enum { OPTION_INCLUDE, OPTION_KEEP_NEWER_FILES, OPTION_LZMA, + OPTION_MANIFEST, OPTION_NEWER_CTIME, OPTION_NEWER_CTIME_THAN, OPTION_NEWER_MTIME, Modified: projects/jbuild/usr.bin/tar/cmdline.c ============================================================================== --- projects/jbuild/usr.bin/tar/cmdline.c Mon May 25 06:33:11 2009 (r192729) +++ projects/jbuild/usr.bin/tar/cmdline.c Mon May 25 06:36:02 2009 (r192730) @@ -94,6 +94,7 @@ static struct option { { "keep-old-files", 0, 'k' }, { "list", 0, 't' }, { "lzma", 0, OPTION_LZMA }, + { "manifest", 1, OPTION_MANIFEST }, { "modification-time", 0, 'm' }, { "newer", 1, OPTION_NEWER_CTIME }, { "newer-ctime", 1, OPTION_NEWER_CTIME }, Modified: projects/jbuild/usr.bin/tar/write.c ============================================================================== --- projects/jbuild/usr.bin/tar/write.c Mon May 25 06:33:11 2009 (r192729) +++ projects/jbuild/usr.bin/tar/write.c Mon May 25 06:36:02 2009 (r192730) @@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$"); #include #endif +#include #include "bsdtar.h" #include "tree.h" @@ -126,6 +127,8 @@ static void archive_names_from_file(st struct archive *a); static int archive_names_from_file_helper(struct bsdtar *bsdtar, const char *line); +static void archive_names_from_manifest(struct bsdtar *bsdtar, + struct archive *a); static int copy_file_data(struct bsdtar *bsdtar, struct archive *a, struct archive *ina); static int new_enough(struct bsdtar *, const char *path, @@ -145,7 +148,8 @@ tar_mode_c(struct bsdtar *bsdtar) struct archive *a; int r; - if (*bsdtar->argv == NULL && bsdtar->names_from_file == NULL) + if (*bsdtar->argv == NULL && bsdtar->names_from_file == NULL && + bsdtar->manifest == NULL) bsdtar_errc(bsdtar, 1, 0, "no files or directories specified"); a = archive_write_new(); @@ -431,6 +435,9 @@ write_archive(struct archive *a, struct if (bsdtar->names_from_file != NULL) archive_names_from_file(bsdtar, a); + if (bsdtar->manifest != NULL) + archive_names_from_manifest(bsdtar, a); + while (*bsdtar->argv) { arg = *bsdtar->argv; if (arg[0] == '-' && arg[1] == 'C') { @@ -518,6 +525,214 @@ archive_names_from_file(struct bsdtar *b "directory expected after -C"); } +/* + * Expand a file name from a manifest file. + */ +static void +manifest_expand_name(struct bsdtar *bsdtar, const char *src, char *dst, + size_t s_dst) +{ + char *pdst = dst; + char *p; + char env[64]; + const char *psrc = src; + size_t len; + + while (*psrc != '\0' && s_dst > 1) { + /* %% expands to % */ + if (*psrc == '%' && *(psrc + 1) == '%') { + *pdst++ = *psrc++; + s_dst--; + psrc++; + + /* %FOO% is an environment variable called FOO */ + } else if (*psrc == '%') { + psrc++; + + /* Expect a trailing % */ + if ((p = strchr(psrc, '%')) == NULL) + bsdtar_errc(bsdtar, 1, 0, + "Unterminated environment variable " + "name in '%s'", src); + + /* Check for overlength environment variable names. */ + if ((len = (size_t)(p - psrc)) > sizeof(env)) + bsdtar_errc(bsdtar, 1, 0, + "Environment variable name is too" + "long in '%s'", src); + + /* Copy the environment variable name and zero terminate it. */ + strncpy(env, psrc, len); + env[len] = '\0'; + psrc = p + 1; + + /* Get the environment variable string. */ + if ((p = getenv(env)) == NULL) + bsdtar_errc(bsdtar, 1, 0, + "Environment variable '%s' is undefined", + env); + + /* Copy the environment variable string into the buffer. */ + while (*p != '\0' && s_dst > 1) { + *pdst++ = *p++; + s_dst--; + } + } else { + /* Copy all other characters as-is. */ + *pdst++ = *psrc++; + s_dst--; + } + } + *pdst = '\0'; + + /* Expect all the source characters to have been consumed. */ + if (*psrc != '\0') + bsdtar_errc(bsdtar, 1, 0, + "Destination string not large enough to expand '%s'", src); +} + +/* + * Read and parse a manifest file. + */ +static void +manifest_read(struct bsdtar *bsdtar, const char *manifest_name) +{ + FILE *f; + char *bp; + char *bufr; + char *p; + long offset; + size_t s_bufr = 1024; + + if ((f = fopen(manifest_name, "r")) == NULL) + bsdtar_errc(bsdtar, 1, errno, "Couldn't open manifest %s", manifest_name); + + if ((bufr = malloc(s_bufr)) == NULL) + bsdtar_errc(bsdtar, 1, errno, "Couldn't allocate memory for manifest buffer"); + + while (1) { + int f_eval = 0; + int f_include = 0; + char *p_arg = NULL; + char *p_gid = NULL; + char *p_mode = NULL; + char *p_store = NULL; + char *p_symlink = NULL; + char *p_uid = NULL; + struct stat fs; + + /* Save the file offset in case we need to reallocate the buffer. */ + if ((offset = ftell(f)) < 0) + bsdtar_errc(bsdtar, 1, errno, "Couldn't get manifest file offset"); + + if (fgets(bufr, s_bufr, f) == NULL) + break; + + /* If there isn't a new line in the buffer, we need to reallocate it. */ + if ((p = strchr(bufr, '\n')) == NULL) { + s_bufr *= 2; + if ((bufr = realloc(bufr, s_bufr)) == NULL) + bsdtar_errc(bsdtar, 1, errno, + "Couldn't allocate memory for manifest buffer"); + + if (fseek(f, offset, SEEK_SET) == -1) + bsdtar_errc(bsdtar, 1, errno, + "Couldn't seek to offset in manifest file"); + continue; + } + + /* Ignore comments. */ + if (*bufr == '#') + continue; + + /* Remove the trailing new line character. */ + *p = '\0'; + bp = bufr; + + while (*bp != '\0' && isspace(*bp)) + bp++; + + /* Ignore empty lines. */ + if (*bufr == '\0') + continue; + + /* Parse the buffer into white-space separated fields. */ + while ((p = strsep(&bp, " \t")) != NULL) { + if (strcmp(p, "%EVAL%") == 0) { + /* XXX */ + f_eval = 1; + break; + } else if (strcmp(p, "%INCLUDE%") == 0) + f_include = 1; + else if (strncmp(p, "gid=", 4) == 0) + p_gid = p + 4; + else if (strncmp(p, "mode=", 5) == 0) + p_mode = p + 5; + else if (strncmp(p, "store=", 6) == 0) + p_store = p + 6; + else if (strncmp(p, "symlink=", 8) == 0) + p_symlink = p + 8; + else if (strncmp(p, "uid=", 4) == 0) + p_uid = p + 4; + else if (strncmp(p, "no_", 3) == 0) + printf("No code for: %s\n", p); + else + p_arg = p; + } + + if (f_eval) + ; /* XXX EVAL is not supported */ + else if (f_include) + manifest_read(bsdtar, p_arg); + else if (p_store != NULL) { + char fname[MAXNAMLEN]; + + manifest_expand_name(bsdtar, p_arg, fname, sizeof(fname)); + + if (stat(fname, &fs) != 0) + bsdtar_errc(bsdtar, 1, errno, + "Couldn't get file status of '%s'", fname); + + /* Reset the user/group by default. */ + fs.st_uid = 0; + fs.st_gid = 0; + + if (p_gid != NULL) + fs.st_gid = atoi(p_gid); + + if (p_uid != NULL) + fs.st_uid = atoi(p_uid); + + if (p_mode != NULL) { + fs.st_mode &= ~0777; + fs.st_mode |= strtol(p_mode, NULL, 8); + } + + /* write_entry_backend(bsdtar, bsdtar->archive, &fs, p_store, fname); */ + } else if (p_symlink != NULL) + printf("Symlink: %s\n", p_symlink); + else { + printf("Dunno: %s\n", p_arg); + } + } + + free(bufr); + + fclose(f); +} + +/* + * Archive names specified in a manifest file. + */ +static void +archive_names_from_manifest(struct bsdtar *bsdtar, struct archive *a) +{ + bsdtar->archive = a; + + /* Read and parse the top-level manifest file. */ + manifest_read(bsdtar, bsdtar->manifest); +} + static int archive_names_from_file_helper(struct bsdtar *bsdtar, const char *line) { From owner-svn-src-projects@FreeBSD.ORG Tue May 26 00:11:12 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 600EF106566B; Tue, 26 May 2009 00:11:12 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 34AE28FC16; Tue, 26 May 2009 00:11:12 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4Q0BC2Z040577; Tue, 26 May 2009 00:11:12 GMT (envelope-from jb@svn.freebsd.org) Received: (from jb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4Q0BBgI040573; Tue, 26 May 2009 00:11:11 GMT (envelope-from jb@svn.freebsd.org) Message-Id: <200905260011.n4Q0BBgI040573@svn.freebsd.org> From: John Birrell Date: Tue, 26 May 2009 00:11:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192777 - projects/jbuild/usr.bin/jbuild/port X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 00:11:13 -0000 Author: jb Date: Tue May 26 00:11:11 2009 New Revision: 192777 URL: http://svn.freebsd.org/changeset/base/192777 Log: Move the jbuild-port from p4. The handling of the filemon kernel module needs to be updated now that buildmon isn't being used Added: projects/jbuild/usr.bin/jbuild/port/ projects/jbuild/usr.bin/jbuild/port/Makefile projects/jbuild/usr.bin/jbuild/port/Makefile.port projects/jbuild/usr.bin/jbuild/port/pkg-descr projects/jbuild/usr.bin/jbuild/port/pkg-plist Added: projects/jbuild/usr.bin/jbuild/port/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/port/Makefile Tue May 26 00:11:11 2009 (r192777) @@ -0,0 +1,34 @@ +# Whom: rodrigc +# +# $FreeBSD$ +# + +PORTNAME= jbuild +PORTVERSION= 10 +CATEGORIES= devel + +MAINTAINER= rodrigc@FreeBSD.org +COMMENT= Utility for building software and tracking build dependencies. + +do-fetch: + ${DO_NADA} + +do-extract: + mkdir -p ${WRKSRC} + ( cd ${WRKSRC} ; ln -s ../../../* . ) + cp Makefile.port ${WRKSRC}/Makefile + +do-install: + ( cd ${WRKSRC}/filemon.ko; ${MAKE} install BINDIR=${PREFIX}/sbin ) + ( cd ${WRKSRC}/jbuild; ${MAKE} install BINDIR=${PREFIX}/bin ) + ( cd ${WRKSRC}/jdirdep; ${MAKE} install BINDIR=${PREFIX}/bin ) + cp ${WRKSRC}/jdirdep/jgetsrc ${PREFIX}/bin + +do-clean: + ( cd ${WRKSRC}/filemon; ${MAKE} clean ) + ( cd ${WRKSRC}/jbuild; ${MAKE} clean ) + ( cd ${WRKSRC}/jdirdep; ${MAKE} clean ) + rm -f ${WRKDIR}/\.[a-z]* + rm -fr ${WRKDIR} + +.include Added: projects/jbuild/usr.bin/jbuild/port/Makefile.port ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/port/Makefile.port Tue May 26 00:11:11 2009 (r192777) @@ -0,0 +1,6 @@ +SUBDIR = \ + filemon \ + jbuild \ + jdirdep + +.include Added: projects/jbuild/usr.bin/jbuild/port/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/port/pkg-descr Tue May 26 00:11:11 2009 (r192777) @@ -0,0 +1 @@ +Utility for building software and tracking build dependencies. Added: projects/jbuild/usr.bin/jbuild/port/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/jbuild/usr.bin/jbuild/port/pkg-plist Tue May 26 00:11:11 2009 (r192777) @@ -0,0 +1,4 @@ +bin/jbuild +bin/jdirdep +bin/jgetsrc +sbin/filemon.ko From owner-svn-src-projects@FreeBSD.ORG Tue May 26 00:16:17 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3F421106566B; Tue, 26 May 2009 00:16:17 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2F1298FC1E; Tue, 26 May 2009 00:16:17 +0000 (UTC) (envelope-from jb@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4Q0GHOt040705; Tue, 26 May 2009 00:16:17 GMT (envelope-from jb@svn.freebsd.org) Received: (from jb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4Q0GHSI040703; Tue, 26 May 2009 00:16:17 GMT (envelope-from jb@svn.freebsd.org) Message-Id: <200905260016.n4Q0GHSI040703@svn.freebsd.org> From: John Birrell Date: Tue, 26 May 2009 00:16:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192778 - projects/jbuild/usr.bin/jbuild/port X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 00:16:17 -0000 Author: jb Date: Tue May 26 00:16:16 2009 New Revision: 192778 URL: http://svn.freebsd.org/changeset/base/192778 Log: Update the install dir for the filemon kernel module Modified: projects/jbuild/usr.bin/jbuild/port/Makefile projects/jbuild/usr.bin/jbuild/port/pkg-plist Modified: projects/jbuild/usr.bin/jbuild/port/Makefile ============================================================================== --- projects/jbuild/usr.bin/jbuild/port/Makefile Tue May 26 00:11:11 2009 (r192777) +++ projects/jbuild/usr.bin/jbuild/port/Makefile Tue May 26 00:16:16 2009 (r192778) @@ -19,7 +19,7 @@ do-extract: cp Makefile.port ${WRKSRC}/Makefile do-install: - ( cd ${WRKSRC}/filemon.ko; ${MAKE} install BINDIR=${PREFIX}/sbin ) + ( cd ${WRKSRC}/filemon.ko; ${MAKE} install BINDIR=/boot/modules ) ( cd ${WRKSRC}/jbuild; ${MAKE} install BINDIR=${PREFIX}/bin ) ( cd ${WRKSRC}/jdirdep; ${MAKE} install BINDIR=${PREFIX}/bin ) cp ${WRKSRC}/jdirdep/jgetsrc ${PREFIX}/bin Modified: projects/jbuild/usr.bin/jbuild/port/pkg-plist ============================================================================== --- projects/jbuild/usr.bin/jbuild/port/pkg-plist Tue May 26 00:11:11 2009 (r192777) +++ projects/jbuild/usr.bin/jbuild/port/pkg-plist Tue May 26 00:16:16 2009 (r192778) @@ -1,4 +1,5 @@ bin/jbuild bin/jdirdep bin/jgetsrc -sbin/filemon.ko +@cwd /boot/modules +filemon.ko From owner-svn-src-projects@FreeBSD.ORG Tue May 26 03:45:58 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F400106564A; Tue, 26 May 2009 03:45:58 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7CD088FC17; Tue, 26 May 2009 03:45:58 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4Q3jw6Q045241; Tue, 26 May 2009 03:45:58 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4Q3jwtQ045239; Tue, 26 May 2009 03:45:58 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905260345.n4Q3jwtQ045239@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 03:45:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192783 - projects/mips/sys/mips/atheros X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 03:45:58 -0000 Author: gonzo Date: Tue May 26 03:45:58 2009 New Revision: 192783 URL: http://svn.freebsd.org/changeset/base/192783 Log: - Add polling support - Get rid of arge_fix_chain, use m_defrag like if_vr - Rework interrupt handling routine to avoid race that lead to disabling RX interrupts - Enable full duplex if requested - Properly set station MAC address - Slightly optimize RX loop - Initialize FILTERMATCH and FILTERMASK registers as linux driver does Modified: projects/mips/sys/mips/atheros/ar71xxreg.h projects/mips/sys/mips/atheros/if_arge.c Modified: projects/mips/sys/mips/atheros/ar71xxreg.h ============================================================================== --- projects/mips/sys/mips/atheros/ar71xxreg.h Tue May 26 01:47:37 2009 (r192782) +++ projects/mips/sys/mips/atheros/ar71xxreg.h Tue May 26 03:45:58 2009 (r192783) @@ -281,33 +281,92 @@ #define AR71XX_MAC_FIFO_CFG2 0x50 #define AR71XX_MAC_FIFO_TX_THRESHOLD 0x54 #define AR71XX_MAC_FIFO_RX_FILTMATCH 0x58 -#define FIFO_RX_FILTMATCH_ALL ((1 << 18) - 1) -#define AR71XX_MAC_FIFO_RX_FILTMASK 0x5C -#define FIFO_RX_FILTMASK_BYTE_MODE (1 << 19) -#define FIFO_RX_FILTMASK_NO_SHORT_FRAME (1 << 18) -#define FIFO_RX_FILTMASK_ALL ((1 << 20) - 1) /* * These flags applicable both to AR71XX_MAC_FIFO_RX_FILTMASK and * to AR71XX_MAC_FIFO_RX_FILTMATCH */ -#define FIFO_RX_FILT_UNICAST (1 << 17) -#define FIFO_RX_FILT_TRUNC_FRAME (1 << 16) -#define FIFO_RX_FILT_VLAN_TAG (1 << 15) -#define FIFO_RX_FILT_UNSUP_OPCODE (1 << 14) -#define FIFO_RX_FILT_PAUSE_FRAME (1 << 13) -#define FIFO_RX_FILT_CTRL_FRAME (1 << 12) -#define FIFO_RX_FILT_LONG_EVENT (1 << 11) -#define FIFO_RX_FILT_DRIBBLE_NIBBLE (1 << 10) -#define FIFO_RX_FILT_BCAST (1 << 9) -#define FIFO_RX_FILT_MCAST (1 << 8) -#define FIFO_RX_FILT_OK (1 << 7) -#define FIFO_RX_FILT_OORANGE (1 << 6) -#define FIFO_RX_FILT_LEN_MSMTCH (1 << 5) -#define FIFO_RX_FILT_CRC_ERROR (1 << 4) -#define FIFO_RX_FILT_CODE_ERROR (1 << 3) -#define FIFO_RX_FILT_FALSE_CARRIER (1 << 2) -#define FIFO_RX_FILT_RX_DV_EVENT (1 << 1) -#define FIFO_RX_FILT_DROP_EVENT (1 << 0) +#define FIFO_RX_MATCH_UNICAST (1 << 17) +#define FIFO_RX_MATCH_TRUNC_FRAME (1 << 16) +#define FIFO_RX_MATCH_VLAN_TAG (1 << 15) +#define FIFO_RX_MATCH_UNSUP_OPCODE (1 << 14) +#define FIFO_RX_MATCH_PAUSE_FRAME (1 << 13) +#define FIFO_RX_MATCH_CTRL_FRAME (1 << 12) +#define FIFO_RX_MATCH_LONG_EVENT (1 << 11) +#define FIFO_RX_MATCH_DRIBBLE_NIBBLE (1 << 10) +#define FIFO_RX_MATCH_BCAST (1 << 9) +#define FIFO_RX_MATCH_MCAST (1 << 8) +#define FIFO_RX_MATCH_OK (1 << 7) +#define FIFO_RX_MATCH_OORANGE (1 << 6) +#define FIFO_RX_MATCH_LEN_MSMTCH (1 << 5) +#define FIFO_RX_MATCH_CRC_ERROR (1 << 4) +#define FIFO_RX_MATCH_CODE_ERROR (1 << 3) +#define FIFO_RX_MATCH_FALSE_CARRIER (1 << 2) +#define FIFO_RX_MATCH_RX_DV_EVENT (1 << 1) +#define FIFO_RX_MATCH_DROP_EVENT (1 << 0) +/* + * Exclude unicast and truncated frames from matching + */ +#define FIFO_RX_FILTMATCH_DEFAULT \ + (FIFO_RX_MATCH_VLAN_TAG | \ + FIFO_RX_MATCH_UNSUP_OPCODE | \ + FIFO_RX_MATCH_PAUSE_FRAME | \ + FIFO_RX_MATCH_CTRL_FRAME | \ + FIFO_RX_MATCH_LONG_EVENT | \ + FIFO_RX_MATCH_DRIBBLE_NIBBLE | \ + FIFO_RX_MATCH_BCAST | \ + FIFO_RX_MATCH_MCAST | \ + FIFO_RX_MATCH_OK | \ + FIFO_RX_MATCH_OORANGE | \ + FIFO_RX_MATCH_LEN_MSMTCH | \ + FIFO_RX_MATCH_CRC_ERROR | \ + FIFO_RX_MATCH_CODE_ERROR | \ + FIFO_RX_MATCH_FALSE_CARRIER | \ + FIFO_RX_MATCH_RX_DV_EVENT | \ + FIFO_RX_MATCH_DROP_EVENT) +#define AR71XX_MAC_FIFO_RX_FILTMASK 0x5C +#define FIFO_RX_MASK_BYTE_MODE (1 << 19) +#define FIFO_RX_MASK_NO_SHORT_FRAME (1 << 18) +#define FIFO_RX_MASK_BIT17 (1 << 17) +#define FIFO_RX_MASK_BIT16 (1 << 16) +#define FIFO_RX_MASK_TRUNC_FRAME (1 << 15) +#define FIFO_RX_MASK_LONG_EVENT (1 << 14) +#define FIFO_RX_MASK_VLAN_TAG (1 << 13) +#define FIFO_RX_MASK_UNSUP_OPCODE (1 << 12) +#define FIFO_RX_MASK_PAUSE_FRAME (1 << 11) +#define FIFO_RX_MASK_CTRL_FRAME (1 << 10) +#define FIFO_RX_MASK_DRIBBLE_NIBBLE (1 << 9) +#define FIFO_RX_MASK_BCAST (1 << 8) +#define FIFO_RX_MASK_MCAST (1 << 7) +#define FIFO_RX_MASK_OK (1 << 6) +#define FIFO_RX_MASK_OORANGE (1 << 5) +#define FIFO_RX_MASK_LEN_MSMTCH (1 << 4) +#define FIFO_RX_MASK_CODE_ERROR (1 << 3) +#define FIFO_RX_MASK_FALSE_CARRIER (1 << 2) +#define FIFO_RX_MASK_RX_DV_EVENT (1 << 1) +#define FIFO_RX_MASK_DROP_EVENT (1 << 0) + +/* + * Len. mismatch, unsup. opcode and short frmae bits excluded + */ +#define FIFO_RX_FILTMASK_DEFAULT \ + (FIFO_RX_MASK_NO_SHORT_FRAME | \ + FIFO_RX_MASK_BIT17 | \ + FIFO_RX_MASK_BIT16 | \ + FIFO_RX_MASK_TRUNC_FRAME | \ + FIFO_RX_MASK_LONG_EVENT | \ + FIFO_RX_MASK_VLAN_TAG | \ + FIFO_RX_MASK_PAUSE_FRAME | \ + FIFO_RX_MASK_CTRL_FRAME | \ + FIFO_RX_MASK_DRIBBLE_NIBBLE | \ + FIFO_RX_MASK_BCAST | \ + FIFO_RX_MASK_MCAST | \ + FIFO_RX_MASK_OK | \ + FIFO_RX_MASK_OORANGE | \ + FIFO_RX_MASK_CODE_ERROR | \ + FIFO_RX_MASK_FALSE_CARRIER | \ + FIFO_RX_MASK_RX_DV_EVENT | \ + FIFO_RX_MASK_DROP_EVENT) + #define AR71XX_MAC_FIFO_RAM0 0x60 #define AR71XX_MAC_FIFO_RAM1 0x64 #define AR71XX_MAC_FIFO_RAM2 0x68 Modified: projects/mips/sys/mips/atheros/if_arge.c ============================================================================== --- projects/mips/sys/mips/atheros/if_arge.c Tue May 26 01:47:37 2009 (r192782) +++ projects/mips/sys/mips/atheros/if_arge.c Tue May 26 03:45:58 2009 (r192783) @@ -31,6 +31,10 @@ __FBSDID("$FreeBSD$"); /* * AR71XX gigabit ethernet driver */ +#ifdef HAVE_KERNEL_OPTION_HEADERS +#include "opt_device_polling.h" +#endif + #include #include #include @@ -84,7 +88,6 @@ MODULE_DEPEND(arge, miibus, 1, 1, 1); static int arge_attach(device_t); static int arge_detach(device_t); -static int arge_fix_chain(struct mbuf **mp); static void arge_flush_ddr(struct arge_softc *); static int arge_ifmedia_upd(struct ifnet *); static void arge_ifmedia_sts(struct ifnet *, struct ifmediareq *); @@ -100,6 +103,7 @@ static void arge_reset_dma(struct arge_s static int arge_resume(device_t); static int arge_rx_ring_init(struct arge_softc *); static int arge_tx_ring_init(struct arge_softc *); +static void arge_poll(struct ifnet *, enum poll_cmd, int); static void arge_shutdown(device_t); static void arge_start(struct ifnet *); static void arge_start_locked(struct ifnet *); @@ -110,8 +114,6 @@ static void arge_rx_locked(struct arge_s static void arge_tx_locked(struct arge_softc *); static void arge_intr(void *); static int arge_intr_filter(void *); -static void arge_tx_intr(struct arge_softc *, uint32_t); -static void arge_rx_intr(struct arge_softc *, uint32_t); static void arge_tick(void *); static void arge_dmamap_cb(void *, bus_dma_segment_t *, int, int); @@ -271,11 +273,14 @@ arge_attach(device_t dev) ifp->if_init = arge_init; /* XXX: add real size */ - IFQ_SET_MAXLEN(&ifp->if_snd, 9); - ifp->if_snd.ifq_maxlen = 9; + IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN); + ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; IFQ_SET_READY(&ifp->if_snd); ifp->if_capenable = ifp->if_capabilities; +#ifdef DEVICE_POLLING + ifp->if_capabilities |= IFCAP_POLLING; +#endif is_base_mac_empty = 1; for (i = 0; i < ETHER_ADDR_LEN; i++) { @@ -348,20 +353,20 @@ arge_attach(device_t dev) * Set all Ethernet address registers to the same initial values * set all four addresses to 66-88-aa-cc-dd-ee */ - ARGE_WRITE(sc, AR71XX_MAC_STA_ADDR1, 0x6dc1282e); - ARGE_WRITE(sc, AR71XX_MAC_STA_ADDR2, 0x00000015); + ARGE_WRITE(sc, AR71XX_MAC_STA_ADDR1, + (eaddr[2] << 24) | (eaddr[3] << 16) | (eaddr[4] << 8) | eaddr[5]); + ARGE_WRITE(sc, AR71XX_MAC_STA_ADDR2, (eaddr[0] << 8) | eaddr[1]); ARGE_WRITE(sc, AR71XX_MAC_FIFO_CFG0, FIFO_CFG0_ALL << FIFO_CFG0_ENABLE_SHIFT); ARGE_WRITE(sc, AR71XX_MAC_FIFO_CFG1, 0x0fff0000); ARGE_WRITE(sc, AR71XX_MAC_FIFO_CFG2, 0x00001fff); - reg = FIFO_RX_FILTMATCH_ALL; - ARGE_WRITE(sc, AR71XX_MAC_FIFO_RX_FILTMATCH, reg); + ARGE_WRITE(sc, AR71XX_MAC_FIFO_RX_FILTMATCH, + FIFO_RX_FILTMATCH_DEFAULT); - reg = FIFO_RX_FILTMASK_ALL; - reg &= ~FIFO_RX_FILTMASK_BYTE_MODE; - ARGE_WRITE(sc, AR71XX_MAC_FIFO_RX_FILTMASK, reg); + ARGE_WRITE(sc, AR71XX_MAC_FIFO_RX_FILTMASK, + FIFO_RX_FILTMASK_DEFAULT); /* Do MII setup. */ if (mii_phy_probe(dev, &sc->arge_miibus, @@ -394,7 +399,7 @@ fail: static int arge_detach(device_t dev) { - struct arge_softc *sc = device_get_softc(dev); + struct arge_softc *sc = device_get_softc(dev); struct ifnet *ifp = sc->arge_ifp; KASSERT(mtx_initialized(&sc->arge_mtx), ("arge mutex not initialized")); @@ -403,6 +408,11 @@ arge_detach(device_t dev) if (device_is_attached(dev)) { ARGE_LOCK(sc); sc->arge_detach = 1; +#ifdef DEVICE_POLLING + if (ifp->if_capenable & IFCAP_POLLING) + ether_poll_deregister(ifp); +#endif + arge_stop(sc); ARGE_UNLOCK(sc); taskqueue_drain(taskqueue_swi, &sc->arge_link_task); @@ -558,15 +568,18 @@ arge_link_task(void *arg, int pending) sc->arge_link_status = 1; cfg = ARGE_READ(sc, AR71XX_MAC_CFG2); - ifcontrol = ARGE_READ(sc, AR71XX_MAC_IFCONTROL); - rx_filtmask = - ARGE_READ(sc, AR71XX_MAC_FIFO_RX_FILTMASK); - cfg &= ~(MAC_CFG2_IFACE_MODE_1000 | MAC_CFG2_IFACE_MODE_10_100 | MAC_CFG2_FULL_DUPLEX); + + if ((mii->mii_media_active & IFM_GMASK) == IFM_FDX) + cfg |= MAC_CFG2_FULL_DUPLEX; + + ifcontrol = ARGE_READ(sc, AR71XX_MAC_IFCONTROL); ifcontrol &= ~MAC_IFCONTROL_SPEED; - rx_filtmask &= ~FIFO_RX_FILTMASK_BYTE_MODE; + rx_filtmask = + ARGE_READ(sc, AR71XX_MAC_FIFO_RX_FILTMASK); + rx_filtmask &= ~FIFO_RX_MASK_BYTE_MODE; switch(media) { case IFM_10_T: @@ -581,7 +594,7 @@ arge_link_task(void *arg, int pending) case IFM_1000_T: case IFM_1000_SX: cfg |= MAC_CFG2_IFACE_MODE_1000; - rx_filtmask |= FIFO_RX_FILTMASK_BYTE_MODE; + rx_filtmask |= FIFO_RX_MASK_BYTE_MODE; pll = PLL_ETH_INT_CLK_1000; break; default: @@ -694,6 +707,7 @@ arge_init_locked(struct arge_softc *sc) ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; callout_reset(&sc->arge_stat_callout, hz, arge_tick, sc); + ARGE_WRITE(sc, AR71XX_DMA_TX_DESC, ARGE_TX_RING_ADDR(sc, 0)); ARGE_WRITE(sc, AR71XX_DMA_RX_DESC, ARGE_RX_RING_ADDR(sc, 0)); @@ -715,9 +729,24 @@ arge_encap(struct arge_softc *sc, struct struct arge_desc *desc, *prev_desc; bus_dma_segment_t txsegs[ARGE_MAXFRAGS]; int error, i, nsegs, prod, prev_prod; + struct mbuf *m; ARGE_LOCK_ASSERT(sc); + /* + * Fix mbuf chain, all fragments should be 4 bytes aligned and + * even 4 bytes + */ + m = *m_head; + if((mtod(m, intptr_t) & 3) != 0) { + m = m_defrag(*m_head, M_DONTWAIT); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + *m_head = m; + } + prod = sc->arge_cdata.arge_tx_prod; txd = &sc->arge_cdata.arge_txdesc[prod]; error = bus_dmamap_load_mbuf_sg(sc->arge_cdata.arge_tx_tag, @@ -754,7 +783,11 @@ arge_encap(struct arge_softc *sc, struct desc = &sc->arge_rdata.arge_tx_ring[prod]; desc->packet_ctrl = ARGE_DMASIZE(txsegs[i].ds_len); + if (txsegs[i].ds_addr & 3) + panic("TX packet address unaligned\n"); + desc->packet_addr = txsegs[i].ds_addr; + /* link with previous descriptor */ if (prev_desc) prev_desc->packet_ctrl |= ARGE_DESC_MORE; @@ -812,15 +845,6 @@ arge_start_locked(struct ifnet *ifp) if (m_head == NULL) break; - /* - * Fix mbuf chain, all fragments should be 4 bytes aligned and - * even 4 bytes - */ - arge_fix_chain(&m_head); - - if (m_head == NULL) { - dprintf("failed to adjust mbuf chain\n"); - } /* * Pack the data into the transmit ring. @@ -867,6 +891,9 @@ arge_ioctl(struct ifnet *ifp, u_long com struct ifreq *ifr = (struct ifreq *) data; struct mii_data *mii; int error; +#ifdef DEVICE_POLLING + int mask; +#endif switch (command) { case SIOCSIFFLAGS: @@ -884,11 +911,30 @@ arge_ioctl(struct ifnet *ifp, u_long com mii = device_get_softc(sc->arge_miibus); error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command); break; - case SIOCSIFCAP: - error = 0; - ifp->if_hwassist = 0; + case SIOCSIFCAP: printf("Implement me: SIOCSIFCAP\n"); - break; +#ifdef DEVICE_POLLING + mask = ifp->if_capenable ^ ifr->ifr_reqcap; + error = 0; + if (mask & IFCAP_POLLING) { + if (ifr->ifr_reqcap & IFCAP_POLLING) { + ARGE_WRITE(sc, AR71XX_DMA_INTR, 0); + error = ether_poll_register(arge_poll, ifp); + if (error) + return error; + ARGE_LOCK(sc); + ifp->if_capenable |= IFCAP_POLLING; + ARGE_UNLOCK(sc); + } else { + ARGE_WRITE(sc, AR71XX_DMA_INTR, DMA_INTR_ALL); + error = ether_poll_deregister(ifp); + ARGE_LOCK(sc); + ifp->if_capenable &= ~IFCAP_POLLING; + ARGE_UNLOCK(sc); + } + } + break; +#endif default: error = ether_ioctl(ifp, command, data); break; @@ -1040,7 +1086,7 @@ arge_dma_alloc(struct arge_softc *sc) BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ MCLBYTES, /* maxsize */ - 1, /* nsegments */ + BUS_SPACE_UNRESTRICTED, /* nsegments */ MCLBYTES, /* maxsegsize */ 0, /* flags */ NULL, NULL, /* lockfunc, lockarg */ @@ -1265,10 +1311,10 @@ arge_rx_ring_init(struct arge_softc *sc) addr = ARGE_RX_RING_ADDR(sc, 0); else addr = ARGE_RX_RING_ADDR(sc, i + 1); - rd->arge_rx_ring[i].packet_ctrl = ARGE_DESC_EMPTY; rd->arge_rx_ring[i].next_desc = addr; - if (arge_newbuf(sc, i) != 0) + if (arge_newbuf(sc, i) != 0) { return (ENOBUFS); + } } bus_dmamap_sync(sc->arge_cdata.arge_rx_ring_tag, @@ -1313,13 +1359,12 @@ arge_newbuf(struct arge_softc *sc, int i map = rxd->rx_dmamap; rxd->rx_dmamap = sc->arge_cdata.arge_rx_sparemap; sc->arge_cdata.arge_rx_sparemap = map; - bus_dmamap_sync(sc->arge_cdata.arge_rx_tag, rxd->rx_dmamap, - BUS_DMASYNC_PREREAD); rxd->rx_m = m; desc = rxd->desc; + if (segs[0].ds_addr & 3) + panic("RX packet address unaligned"); desc->packet_addr = segs[0].ds_addr; - desc->packet_ctrl = (desc->packet_ctrl & ~ARGE_DESC_SIZE_MASK) - | ARGE_DMASIZE(segs[0].ds_len); + desc->packet_ctrl = ARGE_DESC_EMPTY | ARGE_DMASIZE(segs[0].ds_len); return (0); } @@ -1339,6 +1384,21 @@ arge_fixup_rx(struct mbuf *m) m->m_data -= ETHER_ALIGN; } +#ifdef DEVICE_POLLING +static void +arge_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) +{ + struct arge_softc *sc = ifp->if_softc; + + if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + ARGE_LOCK(sc); + arge_tx_locked(sc); + arge_rx_locked(sc); + ARGE_UNLOCK(sc); + } +} +#endif /* DEVICE_POLLING */ + static void arge_tx_locked(struct arge_softc *sc) @@ -1406,7 +1466,7 @@ arge_rx_locked(struct arge_softc *sc) { struct arge_rxdesc *rxd; struct ifnet *ifp = sc->arge_ifp; - int cons, prog, packet_len; + int cons, prog, packet_len, i; struct arge_desc *cur_rx; struct mbuf *m; @@ -1445,23 +1505,26 @@ arge_rx_locked(struct arge_softc *sc) ARGE_UNLOCK(sc); (*ifp->if_input)(ifp, m); ARGE_LOCK(sc); - - /* Reinit descriptor */ - cur_rx->packet_ctrl = ARGE_DESC_EMPTY; cur_rx->packet_addr = 0; - if (arge_newbuf(sc, cons) != 0) { - device_printf(sc->arge_dev, - "Failed to allocate buffer\n"); - break; + } + + if (prog > 0) { + + i = sc->arge_cdata.arge_rx_cons; + for (; prog > 0 ; prog--) { + if (arge_newbuf(sc, i) != 0) { + device_printf(sc->arge_dev, + "Failed to allocate buffer\n"); + break; + } + ARGE_INC(i, ARGE_RX_RING_COUNT); } bus_dmamap_sync(sc->arge_cdata.arge_rx_ring_tag, sc->arge_cdata.arge_rx_ring_map, BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); - } - if (prog > 0) { sc->arge_cdata.arge_rx_cons = cons; bus_dmamap_sync(sc->arge_cdata.arge_rx_ring_tag, @@ -1470,27 +1533,6 @@ arge_rx_locked(struct arge_softc *sc) } } -static void -arge_rx_intr(struct arge_softc *sc, uint32_t status) -{ - - ARGE_LOCK(sc); - /* interrupts are masked by filter */ - arge_rx_locked(sc); - - /* RX overrun disables the receiver. Clear indication and - re-enable rx. */ - if ( status & DMA_INTR_RX_OVERFLOW) { - ARGE_WRITE(sc, AR71XX_DMA_RX_STATUS, DMA_RX_STATUS_OVERFLOW); - ARGE_WRITE(sc, AR71XX_DMA_RX_CONTROL, DMA_RX_CONTROL_EN); - } - - /* unmask interrupts */ - ARGE_SET_BITS(sc, - AR71XX_DMA_INTR, DMA_INTR_RX_OVERFLOW | DMA_INTR_RX_PKT_RCVD); - ARGE_UNLOCK(sc); -} - static int arge_intr_filter(void *arg) { @@ -1510,17 +1552,10 @@ arge_intr_filter(void *arg) #endif if (status & DMA_INTR_ALL) { - if (status & (DMA_INTR_RX_PKT_RCVD | DMA_INTR_RX_OVERFLOW)) - ARGE_CLEAR_BITS(sc, AR71XX_DMA_INTR, - DMA_INTR_RX_OVERFLOW | DMA_INTR_RX_PKT_RCVD); - - if (status & (DMA_INTR_TX_PKT_SENT | DMA_INTR_TX_UNDERRUN)) - ARGE_CLEAR_BITS(sc, AR71XX_DMA_INTR, - DMA_INTR_TX_UNDERRUN | DMA_INTR_TX_PKT_SENT); - sc->arge_intr_status |= status; + ARGE_WRITE(sc, AR71XX_DMA_INTR, 0); return (FILTER_SCHEDULE_THREAD); - } + } sc->arge_intr_status = 0; return (FILTER_STRAY); @@ -1532,8 +1567,8 @@ arge_intr(void *arg) struct arge_softc *sc = arg; uint32_t status; - status = sc->arge_intr_status; - sc->arge_intr_status = 0; + status = ARGE_READ(sc, AR71XX_DMA_INTR_STATUS); + status |= sc->arge_intr_status; #if 0 dprintf("int status(intr) = %b\n", status, @@ -1559,37 +1594,42 @@ arge_intr(void *arg) return; } - if (status & (DMA_INTR_RX_PKT_RCVD | DMA_INTR_RX_OVERFLOW)) - arge_rx_intr(sc, status); - - if (status & (DMA_INTR_TX_PKT_SENT | DMA_INTR_TX_UNDERRUN)) - arge_tx_intr(sc, status); -} - -static void -arge_tx_intr(struct arge_softc *sc, uint32_t status) -{ ARGE_LOCK(sc); - /* Interrupts are masked by filter */ - arge_tx_locked(sc); + if (status & DMA_INTR_RX_PKT_RCVD) + arge_rx_locked(sc); + + /* + * RX overrun disables the receiver. + * Clear indication and re-enable rx. + */ + if ( status & DMA_INTR_RX_OVERFLOW) { + ARGE_WRITE(sc, AR71XX_DMA_RX_STATUS, DMA_RX_STATUS_OVERFLOW); + ARGE_WRITE(sc, AR71XX_DMA_RX_CONTROL, DMA_RX_CONTROL_EN); + } - /* Underrun turns off TX. Clear underrun indication. - If there's anything left in the ring, reactivate the tx. */ + if (status & DMA_INTR_TX_PKT_SENT) + arge_tx_locked(sc); + /* + * Underrun turns off TX. Clear underrun indication. + * If there's anything left in the ring, reactivate the tx. + */ if (status & DMA_INTR_TX_UNDERRUN) { ARGE_WRITE(sc, AR71XX_DMA_TX_STATUS, DMA_TX_STATUS_UNDERRUN); - if (sc->arge_cdata.arge_tx_pkts > 0 ) { - ARGE_WRITE(sc, AR71XX_DMA_TX_CONTROL, DMA_TX_CONTROL_EN); - } + if (sc->arge_cdata.arge_tx_pkts > 0 ) { + ARGE_WRITE(sc, AR71XX_DMA_TX_CONTROL, + DMA_TX_CONTROL_EN); + } } - /* unmask interrupts */ - ARGE_SET_BITS(sc, - AR71XX_DMA_INTR, DMA_INTR_TX_UNDERRUN | DMA_INTR_TX_PKT_SENT); - ARGE_UNLOCK(sc); + /* + * re-enable all interrupts + */ + ARGE_WRITE(sc, AR71XX_DMA_INTR, DMA_INTR_ALL); } + static void arge_tick(void *xsc) { @@ -1602,117 +1642,3 @@ arge_tick(void *xsc) mii_tick(mii); callout_reset(&sc->arge_stat_callout, hz, arge_tick, sc); } - -/* - * Create a copy of a single mbuf. It can have either internal or - * external data, it may have a packet header. External data is really - * copied, so the new buffer is writeable. - */ -static struct mbuf * -copy_mbuf(struct mbuf *m) -{ - struct mbuf *new; - - MGET(new, M_DONTWAIT, MT_DATA); - if (new == NULL) - return (NULL); - - if (m->m_flags & M_PKTHDR) { - M_MOVE_PKTHDR(new, m); - if (m->m_len > MHLEN) - MCLGET(new, M_WAIT); - } else { - if (m->m_len > MLEN) - MCLGET(new, M_WAIT); - } - - bcopy(m->m_data, new->m_data, m->m_len); - new->m_len = m->m_len; - new->m_flags &= ~M_RDONLY; - - return (new); -} - - - -static int -arge_fix_chain(struct mbuf **mp) -{ - struct mbuf *m = *mp, *prev = NULL, *next, *new; - u_int mlen = 0, fill = 0; - int first, off; - u_char *d, *cp; - - do { - next = m->m_next; - - if ((uintptr_t)mtod(m, void *) % 4 != 0 || - (m->m_len % 4 != 0 && next)) { - /* - * Needs fixing - */ - first = (m == *mp); - - d = mtod(m, u_char *); - if ((off = (uintptr_t)(void *)d % 4) != 0) { - if (M_WRITABLE(m)) { - bcopy(d, d - off, m->m_len); - m->m_data = (caddr_t)(d - off); - } else { - if ((new = copy_mbuf(m)) == NULL) { - goto fail; - } - if (prev) - prev->m_next = new; - new->m_next = next; - m_free(m); - m = new; - } - } - - if ((off = m->m_len % 4) != 0) { - if (!M_WRITABLE(m)) { - if ((new = copy_mbuf(m)) == NULL) { - goto fail; - } - if (prev) - prev->m_next = new; - new->m_next = next; - m_free(m); - m = new; - } - d = mtod(m, u_char *) + m->m_len; - off = 4 - off; - while (off) { - if (next == NULL) { - *d++ = 0; - fill++; - } else if (next->m_len == 0) { - next = m_free(next); - continue; - } else { - cp = mtod(next, u_char *); - *d++ = *cp++; - next->m_len--; - next->m_data = (caddr_t)cp; - } - off--; - m->m_len++; - } - } - - if (first) - *mp = m; - } - - mlen += m->m_len; - prev = m; - } while ((m = next) != NULL); - - return (mlen - fill); - - fail: - m_freem(*mp); - *mp = NULL; - return (0); -} From owner-svn-src-projects@FreeBSD.ORG Tue May 26 04:51:57 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12F02106566B; Tue, 26 May 2009 04:51:57 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 00CC68FC0A; Tue, 26 May 2009 04:51:57 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4Q4pue7046696; Tue, 26 May 2009 04:51:56 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4Q4puDT046695; Tue, 26 May 2009 04:51:56 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905260451.n4Q4puDT046695@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 04:51:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192788 - projects/mips/sys/mips/malta X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 04:51:57 -0000 Author: gonzo Date: Tue May 26 04:51:56 2009 New Revision: 192788 URL: http://svn.freebsd.org/changeset/base/192788 Log: - Provide proper pre_thread/post_ithread functions for GT PCI controller. Modified: projects/mips/sys/mips/malta/gt_pci.c Modified: projects/mips/sys/mips/malta/gt_pci.c ============================================================================== --- projects/mips/sys/mips/malta/gt_pci.c Tue May 26 04:42:31 2009 (r192787) +++ projects/mips/sys/mips/malta/gt_pci.c Tue May 26 04:51:56 2009 (r192788) @@ -91,6 +91,13 @@ __FBSDID("$FreeBSD$"); #define OCW3_POLL_IRQ(x) ((x) & 0x7f) #define OCW3_POLL_PENDING (1U << 7) +struct gt_pci_softc; + +struct gt_pci_intr_cookie { + int irq; + struct gt_pci_softc *sc; +}; + struct gt_pci_softc { device_t sc_dev; bus_space_tag_t sc_st; @@ -107,6 +114,7 @@ struct gt_pci_softc { struct resource *sc_irq; struct intr_event *sc_eventstab[ICU_LEN]; + struct gt_pci_intr_cookie sc_intr_cookies[ICU_LEN]; uint16_t sc_imask; uint16_t sc_elcr; @@ -115,6 +123,51 @@ struct gt_pci_softc { void *sc_ih; }; +static void gt_pci_set_icus(struct gt_pci_softc *); +static int gt_pci_intr(void *v); +static int gt_pci_probe(device_t); +static int gt_pci_attach(device_t); +static int gt_pci_activate_resource(device_t, device_t, int, int, + struct resource *); +static int gt_pci_setup_intr(device_t, device_t, struct resource *, + int, driver_filter_t *, driver_intr_t *, void *, void **); +static int gt_pci_teardown_intr(device_t, device_t, struct resource *, void*); +static int gt_pci_maxslots(device_t ); +static int gt_pci_conf_setup(struct gt_pci_softc *, int, int, int, int, + uint32_t *); +static uint32_t gt_pci_read_config(device_t, int, int, int, int, int); +static void gt_pci_write_config(device_t, int, int, int, int, uint32_t, int); +static int gt_pci_route_interrupt(device_t pcib, device_t dev, int pin); +static struct resource * gt_pci_alloc_resource(device_t, device_t, int, + int *, u_long, u_long, u_long, u_int); + +static void +gt_pci_mask_irq(void *source) +{ + struct gt_pci_intr_cookie *cookie = source; + struct gt_pci_softc *sc = cookie->sc; + int irq = cookie->irq; + + sc->sc_imask |= (1 << irq); + sc->sc_elcr |= (1 << irq); + + gt_pci_set_icus(sc); +} + +static void +gt_pci_unmask_irq(void *source) +{ + struct gt_pci_intr_cookie *cookie = source; + struct gt_pci_softc *sc = cookie->sc; + int irq = cookie->irq; + + /* Enable it, set trigger mode. */ + sc->sc_imask &= ~(1 << irq); + sc->sc_elcr &= ~(1 << irq); + + gt_pci_set_icus(sc); +} + static void gt_pci_set_icus(struct gt_pci_softc *sc) { @@ -629,10 +682,13 @@ gt_pci_setup_intr(device_t dev, device_t panic("%s: bad irq or type", __func__); event = sc->sc_eventstab[irq]; + sc->sc_intr_cookies[irq].irq = irq; + sc->sc_intr_cookies[irq].sc = sc; if (event == NULL) { - error = intr_event_create(&event, (void *)irq, 0, irq, - (mask_fn)mips_mask_irq, (mask_fn)mips_unmask_irq, - (mask_fn)mips_unmask_irq, NULL, "gt_pci intr%d:", irq); + error = intr_event_create(&event, + (void *)&sc->sc_intr_cookies[irq], 0, irq, + gt_pci_mask_irq, gt_pci_unmask_irq, + NULL, NULL, "gt_pci intr%d:", irq); if (error) return 0; sc->sc_eventstab[irq] = event; @@ -641,12 +697,7 @@ gt_pci_setup_intr(device_t dev, device_t intr_event_add_handler(event, device_get_nameunit(child), filt, handler, arg, intr_priority(flags), flags, cookiep); - /* Enable it, set trigger mode. */ - sc->sc_imask &= ~(1 << irq); - sc->sc_elcr &= ~(1 << irq); - - gt_pci_set_icus(sc); - + gt_pci_unmask_irq((void *)&sc->sc_intr_cookies[irq]); return 0; } @@ -654,6 +705,12 @@ static int gt_pci_teardown_intr(device_t dev, device_t child, struct resource *res, void *cookie) { + struct gt_pci_softc *sc = device_get_softc(dev); + int irq; + + irq = rman_get_start(res); + gt_pci_mask_irq((void *)&sc->sc_intr_cookies[irq]); + return (intr_event_remove_handler(cookie)); } From owner-svn-src-projects@FreeBSD.ORG Tue May 26 05:52:24 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75AF41065677; Tue, 26 May 2009 05:52:24 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 639938FC15; Tue, 26 May 2009 05:52:24 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4Q5qOSY047913; Tue, 26 May 2009 05:52:24 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4Q5qOZ6047912; Tue, 26 May 2009 05:52:24 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905260552.n4Q5qOZ6047912@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 05:52:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192790 - projects/mips/sys/mips/adm5120 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 05:52:24 -0000 Author: gonzo Date: Tue May 26 05:52:24 2009 New Revision: 192790 URL: http://svn.freebsd.org/changeset/base/192790 Log: - Provide proper pre_ithread/post_ithread functions Modified: projects/mips/sys/mips/adm5120/obio.c Modified: projects/mips/sys/mips/adm5120/obio.c ============================================================================== --- projects/mips/sys/mips/adm5120/obio.c Tue May 26 05:30:21 2009 (r192789) +++ projects/mips/sys/mips/adm5120/obio.c Tue May 26 05:52:24 2009 (r192790) @@ -120,6 +120,39 @@ static int obio_setup_intr(device_t, dev static int obio_teardown_intr(device_t, device_t, struct resource *, void *); + +static void +obio_mask_irq(void *source) +{ + int irq; + uint32_t irqmask; + uint32_t reg; + + irq = (int)source; + irqmask = 1 << irq; + + /* disable IRQ */ + reg = REG_READ(ICU_DISABLE_REG); + REG_WRITE(ICU_DISABLE_REG, (reg | irqmask)); +} + +static void +obio_unmask_irq(void *source) +{ + int irq; + uint32_t irqmask; + uint32_t reg; + + irq = (int)source; + irqmask = 1 << irq; + + /* disable IRQ */ + reg = REG_READ(ICU_DISABLE_REG); + REG_WRITE(ICU_DISABLE_REG, (reg & ~irqmask)); + +} + + static int obio_probe(device_t dev) { @@ -321,7 +354,7 @@ obio_setup_intr(device_t dev, device_t c event = sc->sc_eventstab[irq]; if (event == NULL) { error = intr_event_create(&event, (void *)irq, 0, irq, - (mask_fn)mips_mask_irq, (mask_fn)mips_unmask_irq, + obio_mask_irq, obio_unmask_irq, NULL, NULL, "obio intr%d:", irq); sc->sc_eventstab[irq] = event; @@ -343,6 +376,8 @@ obio_setup_intr(device_t dev, device_t c /* enable */ REG_WRITE(ICU_ENABLE_REG, irqmask); + obio_unmask_irq((void*)irq); + return (0); } @@ -351,7 +386,7 @@ obio_teardown_intr(device_t dev, device_ void *cookie) { struct obio_softc *sc = device_get_softc(dev); - int irq, result; + int irq, result, priority; uint32_t irqmask; irq = rman_get_start(ires); @@ -361,10 +396,18 @@ obio_teardown_intr(device_t dev, device_ if (sc->sc_eventstab[irq] == NULL) panic("Trying to teardown unoccupied IRQ"); - irqmask = 1 << irq; /* only used as a mask from here on */ + irqmask = (1 << irq); + priority = irq_priorities[irq]; - /* disable this irq in HW */ - REG_WRITE(ICU_DISABLE_REG, irqmask); + if (priority == INTR_FIQ) + REG_WRITE(ICU_MODE_REG, REG_READ(ICU_MODE_REG) & ~irqmask); + else + REG_WRITE(ICU_MODE_REG, REG_READ(ICU_MODE_REG) | irqmask); + + /* disable */ + irqmask = REG_READ(ICU_ENABLE_REG); + irqmask &= ~(1 << irq); + REG_WRITE(ICU_ENABLE_REG, irqmask); result = intr_event_remove_handler(cookie); if (!result) { From owner-svn-src-projects@FreeBSD.ORG Tue May 26 05:59:05 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0325106564A; Tue, 26 May 2009 05:59:05 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CD7CB8FC08; Tue, 26 May 2009 05:59:05 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4Q5x5iJ048078; Tue, 26 May 2009 05:59:05 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4Q5x5Au048077; Tue, 26 May 2009 05:59:05 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905260559.n4Q5x5Au048077@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 05:59:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192791 - projects/mips/sys/mips/mips X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 05:59:06 -0000 Author: gonzo Date: Tue May 26 05:59:05 2009 New Revision: 192791 URL: http://svn.freebsd.org/changeset/base/192791 Log: - Provide proper pre_ithread/post_ithread functions for both hard and soft interrupts - Do not handle masked interrupts - Do not write Cause register because most bytes are read-only and writing the same byte to RW fields are pointless. And in case of software interrupt utterly wrong Modified: projects/mips/sys/mips/mips/intr_machdep.c Modified: projects/mips/sys/mips/mips/intr_machdep.c ============================================================================== --- projects/mips/sys/mips/mips/intr_machdep.c Tue May 26 05:52:24 2009 (r192790) +++ projects/mips/sys/mips/mips/intr_machdep.c Tue May 26 05:59:05 2009 (r192791) @@ -53,18 +53,39 @@ static int intrcnt_index = 0; static int last_printed = 0; #endif -void -mips_mask_irq(void) +static void +mips_mask_hard_irq(void *source) { + int irq = (int)source; + mips_wr_status(mips_rd_status() & ~(((1 << irq) << 8) << 2)); } -void -mips_unmask_irq(void) +static void +mips_unmask_hard_irq(void *source) { + int irq = (int)source; + mips_wr_status(mips_rd_status() | (((1 << irq) << 8) << 2)); } +static void +mips_mask_soft_irq(void *source) +{ + int irq = (int)source; + + mips_wr_status(mips_rd_status() & ~((1 << irq) << 8)); +} + +static void +mips_unmask_soft_irq(void *source) +{ + int irq = (int)source; + + mips_wr_status(mips_rd_status() | ((1 << irq) << 8)); +} + + void cpu_establish_hardintr(const char *name, driver_filter_t *filt, void (*handler)(void*), void *arg, int irq, int flags, void **cookiep) @@ -72,8 +93,10 @@ cpu_establish_hardintr(const char *name, struct intr_event *event; int error; +#if 0 printf("Establish HARD IRQ %d: filt %p handler %p arg %p\n", irq, filt, handler, arg); +#endif /* * We have 6 levels, but thats 0 - 5 (not including 6) */ @@ -83,7 +106,7 @@ cpu_establish_hardintr(const char *name, event = hardintr_events[irq]; if (event == NULL) { error = intr_event_create(&event, (void *)irq, 0, irq, - (mask_fn)mips_mask_irq, (mask_fn)mips_unmask_irq, + mips_mask_hard_irq, mips_unmask_hard_irq, NULL, NULL, "hard intr%d:", irq); if (error) return; @@ -101,7 +124,7 @@ cpu_establish_hardintr(const char *name, intr_event_add_handler(event, name, filt, handler, arg, intr_priority(flags), flags, cookiep); - mips_wr_status(mips_rd_status() | (((1 << irq) << 8) << 2)); + mips_unmask_hard_irq((void*)irq); } void @@ -112,15 +135,17 @@ cpu_establish_softintr(const char *name, struct intr_event *event; int error; +#if 0 printf("Establish SOFT IRQ %d: filt %p handler %p arg %p\n", irq, filt, handler, arg); +#endif if (irq < 0 || irq > NSOFT_IRQS) panic("%s called for unknown hard intr %d", __func__, irq); event = softintr_events[irq]; if (event == NULL) { error = intr_event_create(&event, (void *)irq, 0, irq, - (mask_fn)mips_mask_irq, (mask_fn)mips_unmask_irq, + mips_mask_soft_irq, mips_unmask_soft_irq, NULL, NULL, "intr%d:", irq); if (error) return; @@ -130,22 +155,27 @@ cpu_establish_softintr(const char *name, intr_event_add_handler(event, name, filt, handler, arg, intr_priority(flags), flags, cookiep); - mips_wr_status(mips_rd_status() | (((1<< irq) << 8))); + mips_unmask_soft_irq((void*)irq); } void cpu_intr(struct trapframe *tf) { struct intr_event *event; - register_t cause; + register_t cause, status; int hard, i, intr; critical_enter(); cause = mips_rd_cause(); + status = mips_rd_status(); intr = (cause & MIPS_INT_MASK) >> 8; - cause &= ~MIPS_INT_MASK; - mips_wr_cause(cause); + /* + * Do not handle masked interrupts. They were masked by + * pre_ithread function (mips_mask_XXX_intr) and will be + * unmasked once ithread is through with handler + */ + intr &= (status & MIPS_INT_MASK) >> 8; while ((i = fls(intr)) != 0) { intr &= ~(1 << (i - 1)); switch (i) { From owner-svn-src-projects@FreeBSD.ORG Tue May 26 06:01:17 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0E761065673; Tue, 26 May 2009 06:01:17 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AEF1C8FC16; Tue, 26 May 2009 06:01:17 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4Q61Hhr048184; Tue, 26 May 2009 06:01:17 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4Q61Htj048182; Tue, 26 May 2009 06:01:17 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905260601.n4Q61Htj048182@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 06:01:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192792 - in projects/mips/sys/mips: include mips X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 06:01:18 -0000 Author: gonzo Date: Tue May 26 06:01:17 2009 New Revision: 192792 URL: http://svn.freebsd.org/changeset/base/192792 Log: - Remove now unused NetBSDism intr.h Deleted: projects/mips/sys/mips/include/intr.h Modified: projects/mips/sys/mips/include/psl.h projects/mips/sys/mips/mips/trap.c Modified: projects/mips/sys/mips/include/psl.h ============================================================================== --- projects/mips/sys/mips/include/psl.h Tue May 26 05:59:05 2009 (r192791) +++ projects/mips/sys/mips/include/psl.h Tue May 26 06:01:17 2009 (r192792) @@ -47,8 +47,4 @@ #define USERMODE(ps) (((ps) & SR_KSU_MASK) == SR_KSU_USER) #define BASEPRI(ps) (((ps) & (INT_MASK | SR_INT_ENA_PREV)) \ == (INT_MASK | SR_INT_ENA_PREV)) - -#ifdef _KERNEL -#include -#endif #endif /* _MACHINE_PSL_H_ */ Modified: projects/mips/sys/mips/mips/trap.c ============================================================================== --- projects/mips/sys/mips/mips/trap.c Tue May 26 05:59:05 2009 (r192791) +++ projects/mips/sys/mips/mips/trap.c Tue May 26 06:01:17 2009 (r192792) @@ -76,7 +76,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include From owner-svn-src-projects@FreeBSD.ORG Tue May 26 06:02:39 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 17298106564A; Tue, 26 May 2009 06:02:39 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 057A98FC16; Tue, 26 May 2009 06:02:39 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4Q62c6o048246; Tue, 26 May 2009 06:02:38 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4Q62cGk048245; Tue, 26 May 2009 06:02:38 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905260602.n4Q62cGk048245@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 06:02:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192793 - projects/mips/sys/mips/mips X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 06:02:39 -0000 Author: gonzo Date: Tue May 26 06:02:38 2009 New Revision: 192793 URL: http://svn.freebsd.org/changeset/base/192793 Log: - Remove erroneus "break" instruction, it was meant for debug Modified: projects/mips/sys/mips/mips/exception.S Modified: projects/mips/sys/mips/mips/exception.S ============================================================================== --- projects/mips/sys/mips/mips/exception.S Tue May 26 06:01:17 2009 (r192792) +++ projects/mips/sys/mips/mips/exception.S Tue May 26 06:02:38 2009 (r192793) @@ -689,7 +689,6 @@ NNON_LEAF(MipsUserIntr, STAND_FRAME_SIZE /* * Call the interrupt handler. */ - break la k0, _C_LABEL(cpu_intr) jalr k0 sw a3, STAND_RA_OFFSET(sp) # for debugging From owner-svn-src-projects@FreeBSD.ORG Tue May 26 06:20:50 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D862A1065675; Tue, 26 May 2009 06:20:50 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C61AB8FC15; Tue, 26 May 2009 06:20:50 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4Q6KoDm048656; Tue, 26 May 2009 06:20:50 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4Q6KoWH048651; Tue, 26 May 2009 06:20:50 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905260620.n4Q6KoWH048651@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 06:20:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192794 - projects/mips/sys/mips/mips X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 06:20:51 -0000 Author: gonzo Date: Tue May 26 06:20:50 2009 New Revision: 192794 URL: http://svn.freebsd.org/changeset/base/192794 Log: - Preserve INT_MASK fields in Status register across context switches. They should be modified only by interrupt setup/teardown and pre_ithread/post_ithread functions Modified: projects/mips/sys/mips/mips/exception.S projects/mips/sys/mips/mips/pm_machdep.c projects/mips/sys/mips/mips/swtch.S projects/mips/sys/mips/mips/vm_machdep.c Modified: projects/mips/sys/mips/mips/exception.S ============================================================================== --- projects/mips/sys/mips/mips/exception.S Tue May 26 06:02:38 2009 (r192793) +++ projects/mips/sys/mips/mips/exception.S Tue May 26 06:20:50 2009 (r192794) @@ -593,6 +593,19 @@ NNON_LEAF(MipsKernIntr, KERN_EXC_FRAME_S jalr k0 sw a3, STAND_RA_OFFSET + KERN_REG_SIZE(sp) /* Why no AST processing here? */ + + /* + * Update interrupt mask in saved status register + * Some of interrupts could be disabled by + * intr filters + */ + mfc0 a0, COP_0_STATUS_REG + and a0, a0, SR_INT_MASK + RESTORE_REG(a1, SR, sp) + and a1, a1, ~SR_INT_MASK + or a1, a1, a0 + SAVE_REG(a1, SR, sp) + /* * Restore registers and return from the interrupt. */ Modified: projects/mips/sys/mips/mips/pm_machdep.c ============================================================================== --- projects/mips/sys/mips/mips/pm_machdep.c Tue May 26 06:02:38 2009 (r192793) +++ projects/mips/sys/mips/mips/pm_machdep.c Tue May 26 06:20:50 2009 (r192794) @@ -482,7 +482,8 @@ exec_setregs(struct thread *td, u_long e // td->td_frame->sr = SR_KSU_USER | SR_EXL | SR_INT_ENAB; //? td->td_frame->sr |= idle_mask & ALL_INT_MASK; #else - td->td_frame->sr = SR_KSU_USER | SR_EXL;// mips2 also did COP_0_BIT + td->td_frame->sr = SR_KSU_USER | SR_EXL | SR_INT_ENAB | + (mips_rd_status() & ALL_INT_MASK); #endif #ifdef TARGET_OCTEON td->td_frame->sr |= MIPS_SR_COP_2_BIT | MIPS32_SR_PX | MIPS_SR_UX | Modified: projects/mips/sys/mips/mips/swtch.S ============================================================================== --- projects/mips/sys/mips/mips/swtch.S Tue May 26 06:02:38 2009 (r192793) +++ projects/mips/sys/mips/mips/swtch.S Tue May 26 06:20:50 2009 (r192794) @@ -224,6 +224,11 @@ LEAF(fork_trampoline) RESTORE_U_PCB_REG(s8, S8, k1) RESTORE_U_PCB_REG(ra, RA, k1) RESTORE_U_PCB_REG(sp, SP, k1) + li k1, ~SR_INT_MASK + and k0, k0, k1 + mfc0 k1, COP_0_STATUS_REG + and k1, k1, SR_INT_MASK + or k0, k0, k1 mtc0 k0, COP_0_STATUS_REG # switch to user mode (when eret...) HAZARD_DELAY sync @@ -410,6 +415,10 @@ sw2: * In case there are CPU-specific registers that need * to be restored with the other registers do so here. */ + mfc0 t0, COP_0_STATUS_REG + and t0, t0, SR_INT_MASK + and v0, v0, ~SR_INT_MASK + or v0, v0, t0 mtc0 v0, COP_0_STATUS_REG ITLBNOPFIX Modified: projects/mips/sys/mips/mips/vm_machdep.c ============================================================================== --- projects/mips/sys/mips/mips/vm_machdep.c Tue May 26 06:02:38 2009 (r192793) +++ projects/mips/sys/mips/mips/vm_machdep.c Tue May 26 06:20:50 2009 (r192794) @@ -148,7 +148,7 @@ cpu_fork(register struct thread *td1,reg pcb2->pcb_context.val[PCB_REG_S0] = (register_t)fork_return; pcb2->pcb_context.val[PCB_REG_S1] = (register_t)td2; pcb2->pcb_context.val[PCB_REG_S2] = (register_t)td2->td_frame; - pcb2->pcb_context.val[PCB_REG_SR] = SR_INT_MASK; + pcb2->pcb_context.val[PCB_REG_SR] = SR_INT_MASK & mips_rd_status(); /* * FREEBSD_DEVELOPERS_FIXME: * Setup any other CPU-Specific registers (Not MIPS Standard) @@ -298,11 +298,9 @@ cpu_set_upcall(struct thread *td, struct pcb2->pcb_context.val[PCB_REG_S0] = (register_t)fork_return; pcb2->pcb_context.val[PCB_REG_S1] = (register_t)td; pcb2->pcb_context.val[PCB_REG_S2] = (register_t)td->td_frame; - - /* Dont set IE bit in SR. sched lock release will take care of it */ -/* idle_mask is jmips pcb2->pcb_context.val[11] = (ALL_INT_MASK & idle_mask); */ - pcb2->pcb_context.val[PCB_REG_SR] = SR_INT_MASK; + pcb2->pcb_context.val[PCB_REG_SR] = SR_INT_MASK & mips_rd_status(); + #ifdef TARGET_OCTEON pcb2->pcb_context.val[PCB_REG_SR] |= MIPS_SR_COP_2_BIT | MIPS_SR_COP_0_BIT | MIPS32_SR_PX | MIPS_SR_UX | MIPS_SR_KX | MIPS_SR_SX; From owner-svn-src-projects@FreeBSD.ORG Tue May 26 14:43:13 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 058BD1065673; Tue, 26 May 2009 14:43:13 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E7AF48FC15; Tue, 26 May 2009 14:43:12 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4QEhCDO061123; Tue, 26 May 2009 14:43:12 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4QEhCXG061122; Tue, 26 May 2009 14:43:12 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905261443.n4QEhCXG061122@svn.freebsd.org> From: Robert Watson Date: Tue, 26 May 2009 14:43:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192809 - projects/pnet/sys/i386/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 14:43:13 -0000 Author: rwatson Date: Tue May 26 14:43:12 2009 New Revision: 192809 URL: http://svn.freebsd.org/changeset/base/192809 Log: Re-remove NETISR2 from GENERIC in the netisr2 branch. Modified: projects/pnet/sys/i386/conf/GENERIC Modified: projects/pnet/sys/i386/conf/GENERIC ============================================================================== --- projects/pnet/sys/i386/conf/GENERIC Tue May 26 14:15:06 2009 (r192808) +++ projects/pnet/sys/i386/conf/GENERIC Tue May 26 14:43:12 2009 (r192809) @@ -38,7 +38,6 @@ options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols -options NETISR2 # Parallel netisrs options SCTP # Stream Control Transmission Protocol options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support From owner-svn-src-projects@FreeBSD.ORG Tue May 26 14:43:44 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98DF71065670; Tue, 26 May 2009 14:43:44 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6C39E8FC22; Tue, 26 May 2009 14:43:44 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4QEhisg061166; Tue, 26 May 2009 14:43:44 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4QEhiXa061165; Tue, 26 May 2009 14:43:44 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <200905261443.n4QEhiXa061165@svn.freebsd.org> From: Robert Watson Date: Tue, 26 May 2009 14:43:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192810 - projects/pnet/sys/i386/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 14:43:45 -0000 Author: rwatson Date: Tue May 26 14:43:44 2009 New Revision: 192810 URL: http://svn.freebsd.org/changeset/base/192810 Log: Add a specific NETISR2 config file for side-by-side testing purposes. Added: projects/pnet/sys/i386/conf/NETISR2 Added: projects/pnet/sys/i386/conf/NETISR2 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pnet/sys/i386/conf/NETISR2 Tue May 26 14:43:44 2009 (r192810) @@ -0,0 +1,3 @@ +include GENERIC +ident NETISR2 +options NETISR2 From owner-svn-src-projects@FreeBSD.ORG Tue May 26 15:49:09 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B357A1065673; Tue, 26 May 2009 15:49:09 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 880E98FC16; Tue, 26 May 2009 15:49:09 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4QFn9dF062844; Tue, 26 May 2009 15:49:09 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4QFn98r062843; Tue, 26 May 2009 15:49:09 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <200905261549.n4QFn98r062843@svn.freebsd.org> From: Rui Paulo Date: Tue, 26 May 2009 15:49:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192814 - projects/mesh11s/sys/net80211 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 15:49:10 -0000 Author: rpaulo Date: Tue May 26 15:49:09 2009 New Revision: 192814 URL: http://svn.freebsd.org/changeset/base/192814 Log: Code cleanup in preparation for the first try at implemeting HWMP. Sponsored by: The FreeBSD Foundation Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c Modified: projects/mesh11s/sys/net80211/ieee80211_hwmp.c ============================================================================== --- projects/mesh11s/sys/net80211/ieee80211_hwmp.c Tue May 26 15:33:34 2009 (r192813) +++ projects/mesh11s/sys/net80211/ieee80211_hwmp.c Tue May 26 15:49:09 2009 (r192814) @@ -33,6 +33,8 @@ __FBSDID("$FreeBSD$"); /* * IEEE 802.11s Hybrid Wireless Mesh Protocol. + * + * Based on March 2009, D3.0 802.11s draft spec. */ #include "opt_inet.h" #include "opt_wlan.h" @@ -91,6 +93,12 @@ SYSCTL_INT(_net_wlan_hwmp, OID_AUTO, roo &ieee80211_hwmp_rootmode, 0, "Root Mesh Point Node"); #endif +static void hwmp_recv_preq(struct ieee80211vap *, + const struct ieee80211_meshpreq_ie *); +static void hwmp_recv_prep(struct ieee80211vap *, + const struct ieee80211_meshprep_ie *); +static void hwmp_recv_perr(struct ieee80211vap *, + const struct ieee80211_meshperr_ie *); void ieee80211_hwmp_recv_action(struct ieee80211vap *vap, struct ieee80211_node *ni, @@ -152,6 +160,7 @@ ieee80211_hwmp_recv_action(struct ieee80 vap->iv_stats.is_rx_mgtdiscard++; return; } + hwmp_recv_preq(vap, meshpreq); /* * Is the peer trying to find us? */ @@ -180,8 +189,10 @@ ieee80211_hwmp_recv_action(struct ieee80 } break; case IEEE80211_ACTION_MESHPATH_REP: + hwmp_recv_prep(vap, meshprep); break; case IEEE80211_ACTION_MESHPATH_ERR: + hwmp_recv_perr(vap, meshperr); break; default: IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_MESH, @@ -203,7 +214,7 @@ ieee80211_hwmp_recv_action(struct ieee80 * Add a Mesh Path Reply IE to a frame. */ uint8_t * -ieee80211_add_meshprep(uint8_t *frm, struct ieee80211_meshprep_ie *prep) +ieee80211_add_meshprep(uint8_t *frm, const struct ieee80211_meshprep_ie *prep) { *frm++ = IEEE80211_ELEMID_MESHPREP; @@ -222,3 +233,22 @@ ieee80211_add_meshprep(uint8_t *frm, str return frm; } + +static void +hwmp_recv_preq(struct ieee80211vap *vap, + const struct ieee80211_meshpreq_ie *preq) +{ +} + +static void +hwmp_recv_prep(struct ieee80211vap *vap, + const struct ieee80211_meshprep_ie *prep) +{ + +} +static void +hwmp_recv_perr(struct ieee80211vap *vap, + const struct ieee80211_meshprep_ie *perr) +{ + +} From owner-svn-src-projects@FreeBSD.ORG Tue May 26 16:29:36 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2266F1065675; Tue, 26 May 2009 16:29:36 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EA6498FC2F; Tue, 26 May 2009 16:29:35 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4QGTZLZ065382; Tue, 26 May 2009 16:29:35 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4QGTZkM065381; Tue, 26 May 2009 16:29:35 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905261629.n4QGTZkM065381@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 16:29:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192816 - projects/mips/sys/mips/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 16:29:36 -0000 Author: gonzo Date: Tue May 26 16:29:35 2009 New Revision: 192816 URL: http://svn.freebsd.org/changeset/base/192816 Log: - Add UFS support - Enable PCI - Add bpf and random devices for wpa_supplicant - Disable USB - Add SPI bus and MX25L support Modified: projects/mips/sys/mips/conf/AR71XX Modified: projects/mips/sys/mips/conf/AR71XX ============================================================================== --- projects/mips/sys/mips/conf/AR71XX Tue May 26 16:01:50 2009 (r192815) +++ projects/mips/sys/mips/conf/AR71XX Tue May 26 16:29:35 2009 (r192816) @@ -8,6 +8,7 @@ options CPU_NOFPU options ISA_MIPS32 makeoptions TARGET_BIG_ENDIAN makeoptions KERNLOADADDR=0x80050000 +options HZ=1000 files "../atheros/files.ar71xx" hints "AR71XX.hints" @@ -27,8 +28,15 @@ options _KPOSIX_PRIORITY_SCHEDULING #Po options NFS_LEGACYRPC # Debugging for use in -current -options INVARIANTS -options INVARIANT_SUPPORT +# options INVARIANTS +# options INVARIANT_SUPPORT +# options WITNESS +# options WITNESS_SKIPSPIN +options FFS #Berkeley Fast Filesystem +options SOFTUPDATES #Enable FFS soft updates support +options UFS_ACL #Support for access control lists +options UFS_DIRHASH #Improve performance on big directories + options BOOTP options BOOTP_NFSROOT @@ -37,29 +45,40 @@ options BOOTP_WIRED_TO=arge0 options BOOTP_COMPAT options ROOTDEVNAME=\"nfs:192.168.10.1:/mnt/bsd\" -# device pci +device pci + # Wireless NIC cards -# device wlan # 802.11 support -# device wlan_wep # 802.11 WEP support -# device wlan_ccmp # 802.11 CCMP support -# device wlan_tkip # 802.11 TKIP support - -# device ath # Atheros pci/cardbus NIC's -# option AH_SUPPORT_AR5416 -# device ath_hal -# device ath_ar5212 # Atheros HAL (Hardware Access Layer) -# device ath_rate_sample +options IEEE80211_DEBUG +options IEEE80211_SUPPORT_TDMA +device wlan # 802.11 support +device wlan_wep # 802.11 WEP support +device wlan_ccmp # 802.11 CCMP support +device wlan_tkip # 802.11 TKIP support + +device ath # Atheros pci/cardbus NIC's +options ATH_DEBUG +option AH_SUPPORT_AR5416 +device ath_hal +device ath_ar5212 # Atheros HAL (Hardware Access Layer) +device ath_rate_sample device mii device arge -device uart +# device usb +# options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order +# options USB_DEBUG +# device ehci + +device spibus +device ar71xx_spi +device mx25l +# device geom_redboot -device usb -options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order -options USB_DEBUG -device ehci +device uart device loop device ether device md +device bpf +device random From owner-svn-src-projects@FreeBSD.ORG Tue May 26 16:35:05 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ABB7F106564A; Tue, 26 May 2009 16:35:05 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 99FC58FC25; Tue, 26 May 2009 16:35:05 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4QGZ59r065534; Tue, 26 May 2009 16:35:05 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4QGZ54b065533; Tue, 26 May 2009 16:35:05 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905261635.n4QGZ54b065533@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 16:35:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192817 - projects/mips/sys/mips/include X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 16:35:06 -0000 Author: gonzo Date: Tue May 26 16:35:05 2009 New Revision: 192817 URL: http://svn.freebsd.org/changeset/base/192817 Log: - Add type cast for atomic_cmpset_acq_ptr arguments Modified: projects/mips/sys/mips/include/atomic.h Modified: projects/mips/sys/mips/include/atomic.h ============================================================================== --- projects/mips/sys/mips/include/atomic.h Tue May 26 16:29:35 2009 (r192816) +++ projects/mips/sys/mips/include/atomic.h Tue May 26 16:35:05 2009 (r192817) @@ -435,7 +435,9 @@ atomic_fetchadd_32(__volatile uint32_t * #define atomic_subtract_acq_ptr atomic_subtract_acq_32 #define atomic_subtract_rel_ptr atomic_subtract_rel_32 #define atomic_cmpset_ptr atomic_cmpset_32 -#define atomic_cmpset_acq_ptr atomic_cmpset_acq_32 +#define atomic_cmpset_acq_ptr(dst, old, new) \ + atomic_cmpset_acq_32((volatile u_int *)(dst), \ + (u_int)(old), (u_int)(new)) #define atomic_cmpset_rel_ptr atomic_cmpset_rel_32 #define atomic_load_acq_ptr atomic_load_acq_32 #define atomic_store_rel_ptr atomic_store_rel_32 From owner-svn-src-projects@FreeBSD.ORG Tue May 26 17:01:15 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 65554106598D; Tue, 26 May 2009 17:01:15 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4E8238FC2A; Tue, 26 May 2009 17:01:15 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4QH1F79066220; Tue, 26 May 2009 17:01:15 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4QH1Dau066187; Tue, 26 May 2009 17:01:13 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <200905261701.n4QH1Dau066187@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 26 May 2009 17:01:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192819 - in projects/mips: . bin/chflags bin/cp bin/pkill bin/ps cddl/contrib/opensolaris/lib/libzpool/common/sys cddl/lib/libzpool contrib/bind9 contrib/cpio contrib/csup contrib/file... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2009 17:01:15 -0000 Author: gonzo Date: Tue May 26 17:01:12 2009 New Revision: 192819 URL: http://svn.freebsd.org/changeset/base/192819 Log: Merge from HEAD Added: projects/mips/contrib/file/Magdir/kml - copied unchanged from r192817, head/contrib/file/Magdir/kml projects/mips/contrib/file/strlcat.c - copied unchanged from r192817, head/contrib/file/strlcat.c projects/mips/contrib/file/strlcpy.c - copied unchanged from r192817, head/contrib/file/strlcpy.c projects/mips/crypto/openssh/auth2-jpake.c - copied unchanged from r192817, head/crypto/openssh/auth2-jpake.c projects/mips/crypto/openssh/jpake.c - copied unchanged from r192817, head/crypto/openssh/jpake.c projects/mips/crypto/openssh/jpake.h - copied unchanged from r192817, head/crypto/openssh/jpake.h projects/mips/crypto/openssh/schnorr.c - copied unchanged from r192817, head/crypto/openssh/schnorr.c projects/mips/lib/libc/gen/tcsetsid.3 - copied unchanged from r192817, head/lib/libc/gen/tcsetsid.3 projects/mips/lib/libc/posix1e/acl_compat.c - copied unchanged from r192817, head/lib/libc/posix1e/acl_compat.c projects/mips/share/man/man4/bwi.4 - copied unchanged from r192817, head/share/man/man4/bwi.4 projects/mips/share/man/man4/iwnfw.4 - copied unchanged from r192817, head/share/man/man4/iwnfw.4 projects/mips/sys/amd64/amd64/mca.c - copied unchanged from r192817, head/sys/amd64/amd64/mca.c projects/mips/sys/amd64/include/mca.h - copied unchanged from r192817, head/sys/amd64/include/mca.h projects/mips/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c - copied unchanged from r192817, head/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c projects/mips/sys/cddl/compat/opensolaris/sys/acl.h - copied unchanged from r192817, head/sys/cddl/compat/opensolaris/sys/acl.h projects/mips/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S - copied unchanged from r192817, head/sys/cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S projects/mips/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S - copied unchanged from r192817, head/sys/cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S projects/mips/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S - copied unchanged from r192817, head/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S projects/mips/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S - copied unchanged from r192817, head/sys/cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S projects/mips/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c - copied unchanged from r192817, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c - copied unchanged from r192817, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c - copied unchanged from r192817, head/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c - copied unchanged from r192817, head/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c projects/mips/sys/contrib/dev/iwi/Makefile - copied unchanged from r192817, head/sys/contrib/dev/iwi/Makefile projects/mips/sys/dev/usb/controller/avr32dci.c - copied unchanged from r192817, head/sys/dev/usb/controller/avr32dci.c projects/mips/sys/dev/usb/controller/avr32dci.h - copied unchanged from r192817, head/sys/dev/usb/controller/avr32dci.h projects/mips/sys/dev/usb/wlan/if_upgt.c - copied unchanged from r192817, head/sys/dev/usb/wlan/if_upgt.c projects/mips/sys/dev/usb/wlan/if_upgtvar.h - copied unchanged from r192817, head/sys/dev/usb/wlan/if_upgtvar.h projects/mips/sys/i386/i386/mca.c - copied unchanged from r192817, head/sys/i386/i386/mca.c projects/mips/sys/i386/include/mca.h - copied unchanged from r192817, head/sys/i386/include/mca.h projects/mips/sys/modules/usb/upgt/ - copied from r192817, head/sys/modules/usb/upgt/ projects/mips/sys/net80211/ieee80211_radiotap.c - copied unchanged from r192817, head/sys/net80211/ieee80211_radiotap.c projects/mips/sys/netipx/spx_reass.c - copied unchanged from r192817, head/sys/netipx/spx_reass.c projects/mips/sys/pc98/include/mca.h - copied unchanged from r192817, head/sys/pc98/include/mca.h projects/mips/sys/powerpc/aim/platform_chrp.c - copied unchanged from r192817, head/sys/powerpc/aim/platform_chrp.c projects/mips/sys/powerpc/booke/mp_cpudep.c - copied unchanged from r192817, head/sys/powerpc/booke/mp_cpudep.c projects/mips/sys/powerpc/booke/platform_bare.c - copied unchanged from r192817, head/sys/powerpc/booke/platform_bare.c projects/mips/sys/powerpc/include/platform.h - copied unchanged from r192817, head/sys/powerpc/include/platform.h projects/mips/sys/powerpc/include/platformvar.h - copied unchanged from r192817, head/sys/powerpc/include/platformvar.h projects/mips/sys/powerpc/powerpc/platform.c - copied unchanged from r192817, head/sys/powerpc/powerpc/platform.c projects/mips/sys/powerpc/powerpc/platform_if.m - copied unchanged from r192817, head/sys/powerpc/powerpc/platform_if.m projects/mips/tools/regression/bin/date/ - copied from r192817, head/tools/regression/bin/date/ projects/mips/tools/regression/usr.bin/sed/regress.multitest.out/40_2.21 - copied unchanged from r192817, head/tools/regression/usr.bin/sed/regress.multitest.out/40_2.21 projects/mips/tools/regression/usr.bin/sed/regress.multitest.out/41_2.22 - copied unchanged from r192817, head/tools/regression/usr.bin/sed/regress.multitest.out/41_2.22 projects/mips/tools/tools/iso/ - copied from r192817, head/tools/tools/iso/ projects/mips/tools/tools/npe/ - copied from r192817, head/tools/tools/npe/ projects/mips/usr.bin/perror/ - copied from r192817, head/usr.bin/perror/ projects/mips/usr.sbin/nfscbd/ - copied from r192817, head/usr.sbin/nfscbd/ projects/mips/usr.sbin/nfsd/nfsv4.4 - copied unchanged from r192817, head/usr.sbin/nfsd/nfsv4.4 projects/mips/usr.sbin/nfsd/stablerestart.5 - copied unchanged from r192817, head/usr.sbin/nfsd/stablerestart.5 projects/mips/usr.sbin/nfsdumpstate/ - copied from r192817, head/usr.sbin/nfsdumpstate/ projects/mips/usr.sbin/nfsrevoke/ - copied from r192817, head/usr.sbin/nfsrevoke/ projects/mips/usr.sbin/nfsuserd/ - copied from r192817, head/usr.sbin/nfsuserd/ Deleted: projects/mips/contrib/file/config.guess projects/mips/contrib/file/config.sub projects/mips/etc/rc.d/idmapd projects/mips/libexec/makekey/ projects/mips/sbin/idmapd/ projects/mips/share/man/man4/usb2_core.4 projects/mips/sys/cddl/contrib/opensolaris/common/atomic/amd64/atomic.S projects/mips/sys/cddl/contrib/opensolaris/common/atomic/i386/atomic.S projects/mips/sys/cddl/contrib/opensolaris/common/atomic/ia64/atomic.S projects/mips/sys/cddl/contrib/opensolaris/common/atomic/sparc64/atomic.S projects/mips/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_array.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr_mem.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/zmod/crc32.c projects/mips/sys/compat/svr4/svr4_ttold.c projects/mips/sys/compat/svr4/svr4_ttold.h projects/mips/sys/dev/usb/README.TXT projects/mips/sys/gnu/fs/xfs/FreeBSD/xfsdmapistubs.c projects/mips/sys/gnu/fs/xfs/FreeBSD/xfsquotasstubs.c projects/mips/sys/gnu/fs/xfs/FreeBSD/xfsrtstubs.c projects/mips/sys/legacy/dev/usb/if_upgt.c projects/mips/sys/legacy/dev/usb/if_upgtvar.h projects/mips/sys/legacy/dev/usb/usb_ethersubr.c projects/mips/sys/legacy/dev/usb/usb_ethersubr.h projects/mips/sys/modules/nfs4client/ projects/mips/sys/nfs4client/ projects/mips/sys/powerpc/include/powerpc.h projects/mips/sys/rpc/rpcclnt.c projects/mips/sys/rpc/rpcclnt.h projects/mips/usr.sbin/zic/Arts.htm projects/mips/usr.sbin/zic/tz-art.htm projects/mips/usr.sbin/zic/tz-link.htm Modified: projects/mips/ (props changed) projects/mips/ObsoleteFiles.inc projects/mips/UPDATING projects/mips/bin/chflags/chflags.c projects/mips/bin/cp/Makefile projects/mips/bin/pkill/pkill.1 projects/mips/bin/pkill/pkill.c projects/mips/bin/ps/print.c projects/mips/bin/ps/ps.1 projects/mips/bin/ps/ps.c projects/mips/bin/ps/ps.h projects/mips/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h projects/mips/cddl/lib/libzpool/Makefile projects/mips/contrib/bind9/ (props changed) projects/mips/contrib/cpio/ (props changed) projects/mips/contrib/csup/ (props changed) projects/mips/contrib/csup/rcstokenizer.l (props changed) projects/mips/contrib/file/ (props changed) projects/mips/contrib/file/ChangeLog projects/mips/contrib/file/Magdir/cafebabe projects/mips/contrib/file/Magdir/compress projects/mips/contrib/file/Magdir/database projects/mips/contrib/file/Magdir/erlang projects/mips/contrib/file/Magdir/filesystems projects/mips/contrib/file/Magdir/fonts projects/mips/contrib/file/Magdir/fortran projects/mips/contrib/file/Magdir/linux projects/mips/contrib/file/Magdir/lisp projects/mips/contrib/file/Magdir/python projects/mips/contrib/file/Magdir/troff projects/mips/contrib/file/Magdir/windows projects/mips/contrib/file/Makefile.am projects/mips/contrib/file/Makefile.in projects/mips/contrib/file/README projects/mips/contrib/file/acinclude.m4 projects/mips/contrib/file/aclocal.m4 projects/mips/contrib/file/apprentice.c projects/mips/contrib/file/apptype.c projects/mips/contrib/file/cdf.c projects/mips/contrib/file/cdf.h projects/mips/contrib/file/cdf_time.c projects/mips/contrib/file/compress.c projects/mips/contrib/file/config.h.in projects/mips/contrib/file/configure projects/mips/contrib/file/configure.ac projects/mips/contrib/file/file.c projects/mips/contrib/file/file.h projects/mips/contrib/file/funcs.c projects/mips/contrib/file/getopt_long.c projects/mips/contrib/file/magic.c projects/mips/contrib/file/patchlevel.h projects/mips/contrib/file/readcdf.c projects/mips/contrib/file/softmagic.c projects/mips/contrib/file/tests/Makefile.in projects/mips/contrib/gcc/config/mips/freebsd.h (props changed) projects/mips/contrib/gdb/ (props changed) projects/mips/contrib/gdtoa/ (props changed) projects/mips/contrib/groff/font/devutf8/R.proto projects/mips/contrib/less/ (props changed) projects/mips/contrib/less/COPYING projects/mips/contrib/less/FREEBSD-upgrade projects/mips/contrib/less/LICENSE projects/mips/contrib/less/Makefile.in projects/mips/contrib/less/NEWS projects/mips/contrib/less/README projects/mips/contrib/less/brac.c projects/mips/contrib/less/ch.c projects/mips/contrib/less/charset.c projects/mips/contrib/less/charset.h projects/mips/contrib/less/cmd.h projects/mips/contrib/less/cmdbuf.c projects/mips/contrib/less/command.c projects/mips/contrib/less/configure projects/mips/contrib/less/configure.ac projects/mips/contrib/less/decode.c projects/mips/contrib/less/defines.ds projects/mips/contrib/less/defines.o2 projects/mips/contrib/less/defines.o9 projects/mips/contrib/less/defines.wn projects/mips/contrib/less/edit.c projects/mips/contrib/less/filename.c projects/mips/contrib/less/forwback.c projects/mips/contrib/less/funcs.h projects/mips/contrib/less/help.c projects/mips/contrib/less/ifile.c projects/mips/contrib/less/input.c projects/mips/contrib/less/install.sh projects/mips/contrib/less/jump.c projects/mips/contrib/less/less.h projects/mips/contrib/less/less.hlp projects/mips/contrib/less/less.man projects/mips/contrib/less/less.nro projects/mips/contrib/less/lessecho.c projects/mips/contrib/less/lessecho.man projects/mips/contrib/less/lessecho.nro projects/mips/contrib/less/lesskey.c projects/mips/contrib/less/lesskey.h projects/mips/contrib/less/lesskey.man projects/mips/contrib/less/lesskey.nro projects/mips/contrib/less/lglob.h projects/mips/contrib/less/line.c projects/mips/contrib/less/linenum.c projects/mips/contrib/less/lsystem.c projects/mips/contrib/less/main.c projects/mips/contrib/less/mark.c projects/mips/contrib/less/mkhelp.c projects/mips/contrib/less/optfunc.c projects/mips/contrib/less/option.c projects/mips/contrib/less/option.h projects/mips/contrib/less/opttbl.c projects/mips/contrib/less/os.c projects/mips/contrib/less/output.c projects/mips/contrib/less/pckeys.h projects/mips/contrib/less/position.c projects/mips/contrib/less/position.h projects/mips/contrib/less/prompt.c projects/mips/contrib/less/screen.c projects/mips/contrib/less/scrsize.c projects/mips/contrib/less/search.c projects/mips/contrib/less/signal.c projects/mips/contrib/less/tags.c projects/mips/contrib/less/ttyin.c projects/mips/contrib/less/version.c projects/mips/contrib/libpcap/ (props changed) projects/mips/contrib/libpcap/FREEBSD-Xlist (props changed) projects/mips/contrib/ncurses/ (props changed) projects/mips/contrib/netcat/ (props changed) projects/mips/contrib/ntp/ (props changed) projects/mips/contrib/openbsm/ (props changed) projects/mips/contrib/openpam/ (props changed) projects/mips/contrib/pf/ (props changed) projects/mips/contrib/sendmail/ (props changed) projects/mips/contrib/tcpdump/ (props changed) projects/mips/contrib/tcpdump/FREEBSD-Xlist (props changed) projects/mips/contrib/top/ (props changed) projects/mips/contrib/top/install-sh (props changed) projects/mips/crypto/openssh/ (props changed) projects/mips/crypto/openssh/ChangeLog projects/mips/crypto/openssh/PROTOCOL projects/mips/crypto/openssh/README projects/mips/crypto/openssh/addrmatch.c projects/mips/crypto/openssh/auth-options.c projects/mips/crypto/openssh/auth-pam.c (contents, props changed) projects/mips/crypto/openssh/auth.c projects/mips/crypto/openssh/auth.h projects/mips/crypto/openssh/auth2-chall.c projects/mips/crypto/openssh/auth2.c projects/mips/crypto/openssh/canohost.c projects/mips/crypto/openssh/canohost.h projects/mips/crypto/openssh/channels.c projects/mips/crypto/openssh/channels.h projects/mips/crypto/openssh/cipher.c projects/mips/crypto/openssh/cipher.h projects/mips/crypto/openssh/clientloop.c projects/mips/crypto/openssh/compat.c projects/mips/crypto/openssh/compat.h projects/mips/crypto/openssh/config.guess projects/mips/crypto/openssh/config.h projects/mips/crypto/openssh/config.h.in projects/mips/crypto/openssh/defines.h projects/mips/crypto/openssh/dispatch.c projects/mips/crypto/openssh/kex.c projects/mips/crypto/openssh/kexgexs.c projects/mips/crypto/openssh/key.c projects/mips/crypto/openssh/loginrec.c projects/mips/crypto/openssh/misc.c projects/mips/crypto/openssh/monitor.c projects/mips/crypto/openssh/monitor.h projects/mips/crypto/openssh/monitor_fdpass.c projects/mips/crypto/openssh/monitor_wrap.c projects/mips/crypto/openssh/monitor_wrap.h projects/mips/crypto/openssh/myproposal.h projects/mips/crypto/openssh/nchan.c projects/mips/crypto/openssh/openbsd-compat/bsd-poll.c projects/mips/crypto/openssh/openbsd-compat/port-uw.c projects/mips/crypto/openssh/openbsd-compat/xcrypt.c projects/mips/crypto/openssh/openbsd-compat/xmmap.c projects/mips/crypto/openssh/packet.c projects/mips/crypto/openssh/pathnames.h projects/mips/crypto/openssh/readconf.c projects/mips/crypto/openssh/readconf.h projects/mips/crypto/openssh/scp.c projects/mips/crypto/openssh/servconf.c projects/mips/crypto/openssh/servconf.h projects/mips/crypto/openssh/serverloop.c projects/mips/crypto/openssh/session.c projects/mips/crypto/openssh/sftp-server-main.c projects/mips/crypto/openssh/sftp.1 (contents, props changed) projects/mips/crypto/openssh/sftp.c projects/mips/crypto/openssh/ssh-keygen.1 (contents, props changed) projects/mips/crypto/openssh/ssh-keygen.c projects/mips/crypto/openssh/ssh-keyscan.1 (contents, props changed) projects/mips/crypto/openssh/ssh-keyscan.c projects/mips/crypto/openssh/ssh.1 projects/mips/crypto/openssh/ssh.c projects/mips/crypto/openssh/ssh2.h projects/mips/crypto/openssh/ssh_config projects/mips/crypto/openssh/ssh_config.5 projects/mips/crypto/openssh/ssh_namespace.h projects/mips/crypto/openssh/sshconnect.c projects/mips/crypto/openssh/sshconnect2.c projects/mips/crypto/openssh/sshd.8 projects/mips/crypto/openssh/sshd.c projects/mips/crypto/openssh/sshd_config projects/mips/crypto/openssh/sshd_config.5 projects/mips/crypto/openssh/sshpty.c projects/mips/crypto/openssh/ttymodes.c projects/mips/crypto/openssh/uidswap.c projects/mips/crypto/openssh/version.h projects/mips/crypto/openssl/ (props changed) projects/mips/etc/defaults/rc.conf projects/mips/etc/devd.conf projects/mips/etc/mtree/BSD.include.dist projects/mips/etc/namedb/named.conf projects/mips/etc/rc.d/Makefile projects/mips/etc/rc.d/named projects/mips/etc/rc.d/tmp projects/mips/gnu/usr.bin/patch/common.h projects/mips/gnu/usr.bin/patch/inp.c projects/mips/gnu/usr.bin/patch/patch.c projects/mips/gnu/usr.bin/patch/pch.c projects/mips/gnu/usr.bin/patch/pch.h projects/mips/gnu/usr.bin/patch/util.c projects/mips/include/Makefile projects/mips/lib/libarchive/archive_read_disk_entry_from_file.c projects/mips/lib/libarchive/archive_read_open_filename.c projects/mips/lib/libarchive/archive_read_support_compression_gzip.c projects/mips/lib/libbluetooth/hci.c projects/mips/lib/libc/ (props changed) projects/mips/lib/libc/gen/Makefile.inc projects/mips/lib/libc/gen/Symbol.map projects/mips/lib/libc/gen/getcap.c projects/mips/lib/libc/gen/tcgetsid.3 projects/mips/lib/libc/gen/termios.c projects/mips/lib/libc/gen/ttyname.3 projects/mips/lib/libc/nls/be_BY.UTF-8.msg (props changed) projects/mips/lib/libc/nls/el_GR.ISO8859-7.msg (props changed) projects/mips/lib/libc/nls/mn_MN.UTF-8.msg (props changed) projects/mips/lib/libc/nls/ru_RU.KOI8-R.msg (props changed) projects/mips/lib/libc/nls/uk_UA.UTF-8.msg (props changed) projects/mips/lib/libc/posix1e/Makefile.inc projects/mips/lib/libc/posix1e/Symbol.map projects/mips/lib/libc/posix1e/acl.3 projects/mips/lib/libc/posix1e/acl_add_perm.3 projects/mips/lib/libc/posix1e/acl_delete.c projects/mips/lib/libc/posix1e/acl_entry.c projects/mips/lib/libc/posix1e/acl_get.3 projects/mips/lib/libc/posix1e/acl_get.c projects/mips/lib/libc/posix1e/acl_init.c projects/mips/lib/libc/posix1e/acl_set.3 projects/mips/lib/libc/posix1e/acl_set.c projects/mips/lib/libc/posix1e/acl_set_tag_type.3 projects/mips/lib/libc/posix1e/acl_support.c projects/mips/lib/libc/posix1e/acl_support.h projects/mips/lib/libc/posix1e/acl_valid.c projects/mips/lib/libc/posix1e/posix1e.3 projects/mips/lib/libc/stdio/asprintf.c (props changed) projects/mips/lib/libc/stdtime/ (props changed) projects/mips/lib/libc/stdtime/asctime.c projects/mips/lib/libc/stdtime/difftime.c projects/mips/lib/libc/stdtime/localtime.c projects/mips/lib/libc/stdtime/private.h projects/mips/lib/libc/stdtime/strftime.c projects/mips/lib/libc/stdtime/time2posix.3 projects/mips/lib/libc/stdtime/tzfile.5 projects/mips/lib/libc/stdtime/tzfile.h projects/mips/lib/libc/string/ffsll.c (props changed) projects/mips/lib/libc/string/flsll.c (props changed) projects/mips/lib/libc/string/wcpcpy.c (props changed) projects/mips/lib/libc_r/arch/amd64/_atomic_lock.S projects/mips/lib/libc_r/arch/i386/_atomic_lock.S projects/mips/lib/libdisk/open_ia64_disk.c projects/mips/lib/libgeom/Makefile projects/mips/lib/libmemstat/memstat_malloc.c projects/mips/lib/libstand/i386/_setjmp.S projects/mips/lib/libstand/stand.h projects/mips/lib/libthr/thread/thr_fork.c projects/mips/lib/libusb/ (props changed) projects/mips/lib/libusb/libusb.3 projects/mips/lib/libusb/usb.h (props changed) projects/mips/lib/libutil/ (props changed) projects/mips/lib/libutil/login_tty.c projects/mips/lib/msun/amd64/e_sqrt.S projects/mips/lib/msun/amd64/e_sqrtf.S projects/mips/lib/msun/amd64/s_lrint.S projects/mips/lib/msun/amd64/s_lrintf.S projects/mips/lib/msun/amd64/s_remquo.S projects/mips/lib/msun/amd64/s_remquof.S projects/mips/lib/msun/amd64/s_scalbn.S projects/mips/lib/msun/amd64/s_scalbnf.S projects/mips/lib/msun/amd64/s_scalbnl.S projects/mips/lib/msun/i387/e_exp.S projects/mips/lib/msun/i387/e_fmod.S projects/mips/lib/msun/i387/e_log.S projects/mips/lib/msun/i387/e_log10.S projects/mips/lib/msun/i387/e_log10f.S projects/mips/lib/msun/i387/e_remainder.S projects/mips/lib/msun/i387/e_remainderf.S projects/mips/lib/msun/i387/e_sqrt.S projects/mips/lib/msun/i387/e_sqrtf.S projects/mips/lib/msun/i387/s_ceil.S projects/mips/lib/msun/i387/s_ceilf.S projects/mips/lib/msun/i387/s_ceill.S projects/mips/lib/msun/i387/s_copysign.S projects/mips/lib/msun/i387/s_copysignf.S projects/mips/lib/msun/i387/s_copysignl.S projects/mips/lib/msun/i387/s_cos.S projects/mips/lib/msun/i387/s_finite.S projects/mips/lib/msun/i387/s_floor.S projects/mips/lib/msun/i387/s_floorf.S projects/mips/lib/msun/i387/s_floorl.S projects/mips/lib/msun/i387/s_llrint.S projects/mips/lib/msun/i387/s_llrintf.S projects/mips/lib/msun/i387/s_logb.S projects/mips/lib/msun/i387/s_logbf.S projects/mips/lib/msun/i387/s_lrint.S projects/mips/lib/msun/i387/s_lrintf.S projects/mips/lib/msun/i387/s_remquo.S projects/mips/lib/msun/i387/s_remquof.S projects/mips/lib/msun/i387/s_rint.S projects/mips/lib/msun/i387/s_rintf.S projects/mips/lib/msun/i387/s_scalbn.S projects/mips/lib/msun/i387/s_scalbnf.S projects/mips/lib/msun/i387/s_scalbnl.S projects/mips/lib/msun/i387/s_significand.S projects/mips/lib/msun/i387/s_significandf.S projects/mips/lib/msun/i387/s_sin.S projects/mips/lib/msun/i387/s_tan.S projects/mips/lib/msun/i387/s_trunc.S projects/mips/lib/msun/i387/s_truncf.S projects/mips/lib/msun/i387/s_truncl.S projects/mips/lib/msun/ia64/s_fma.S projects/mips/lib/msun/ia64/s_fmaf.S projects/mips/lib/msun/ia64/s_fmal.S projects/mips/libexec/Makefile projects/mips/release/doc/en_US.ISO8859-1/hardware/article.sgml projects/mips/release/doc/en_US.ISO8859-1/relnotes/article.sgml projects/mips/release/doc/share/misc/dev.archlist.txt projects/mips/rescue/rescue/Makefile projects/mips/sbin/ (props changed) projects/mips/sbin/Makefile projects/mips/sbin/fdisk/fdisk.8 projects/mips/sbin/fdisk/fdisk.c projects/mips/sbin/geom/class/journal/gjournal.8 projects/mips/sbin/geom/core/geom.8 projects/mips/sbin/ipfw/ (props changed) projects/mips/sbin/mount_nfs/Makefile projects/mips/sbin/mount_nfs/mount_nfs.8 projects/mips/sbin/mount_nfs/mount_nfs.c projects/mips/sbin/restore/Makefile projects/mips/secure/lib/libssh/Makefile projects/mips/secure/usr.sbin/sshd/Makefile projects/mips/share/examples/ppp/ppp.linkup.sample projects/mips/share/man/man4/Makefile projects/mips/share/man/man4/altq.4 projects/mips/share/man/man4/ath.4 projects/mips/share/man/man4/bge.4 projects/mips/share/man/man4/geom.4 projects/mips/share/man/man4/hifn.4 projects/mips/share/man/man4/if_bridge.4 projects/mips/share/man/man4/ipsec.4 projects/mips/share/man/man4/md.4 projects/mips/share/man/man4/msk.4 projects/mips/share/man/man4/nge.4 projects/mips/share/man/man4/smp.4 projects/mips/share/man/man4/ubsec.4 projects/mips/share/man/man4/uchcom.4 projects/mips/share/man/man4/urtw.4 projects/mips/share/man/man4/usb.4 projects/mips/share/man/man4/wlan.4 projects/mips/share/man/man5/fstab.5 projects/mips/share/man/man5/rc.conf.5 projects/mips/share/man/man9/VFS_MOUNT.9 projects/mips/share/man/man9/VFS_QUOTACTL.9 projects/mips/share/man/man9/VFS_ROOT.9 projects/mips/share/man/man9/VFS_STATFS.9 projects/mips/share/man/man9/VFS_SYNC.9 projects/mips/share/man/man9/VFS_UNMOUNT.9 projects/mips/share/man/man9/acl.9 projects/mips/share/man/man9/atomic.9 projects/mips/share/man/man9/bus_dma.9 projects/mips/share/man/man9/sbuf.9 projects/mips/share/misc/committers-ports.dot projects/mips/share/misc/committers-src.dot projects/mips/share/misc/iso639 projects/mips/share/syscons/keymaps/uk.iso-ctrl.kbd projects/mips/share/zoneinfo/ (props changed) projects/mips/sys/ (props changed) projects/mips/sys/Makefile projects/mips/sys/amd64/amd64/machdep.c projects/mips/sys/amd64/amd64/mp_machdep.c projects/mips/sys/amd64/amd64/pmap.c projects/mips/sys/amd64/amd64/trap.c projects/mips/sys/amd64/conf/DEFAULTS projects/mips/sys/amd64/conf/GENERIC projects/mips/sys/amd64/conf/GENERIC.hints projects/mips/sys/amd64/conf/NOTES projects/mips/sys/amd64/conf/XENHVM projects/mips/sys/amd64/include/param.h projects/mips/sys/amd64/include/smp.h projects/mips/sys/amd64/include/specialreg.h projects/mips/sys/amd64/include/vmparam.h projects/mips/sys/amd64/include/xen/ (props changed) projects/mips/sys/amd64/linux32/linux.h projects/mips/sys/amd64/linux32/linux32_sysvec.c projects/mips/sys/amd64/pci/pci_cfgreg.c projects/mips/sys/arm/arm/machdep.c projects/mips/sys/arm/arm/pmap.c projects/mips/sys/arm/at91/at91_cfata.c projects/mips/sys/arm/at91/if_ate.c projects/mips/sys/arm/conf/AVILA projects/mips/sys/arm/conf/BWCT projects/mips/sys/arm/conf/CAMBRIA projects/mips/sys/arm/conf/CRB projects/mips/sys/arm/conf/DB-78XXX projects/mips/sys/arm/conf/DB-88F5XXX projects/mips/sys/arm/conf/DB-88F6XXX projects/mips/sys/arm/conf/EP80219 projects/mips/sys/arm/conf/GUMSTIX projects/mips/sys/arm/conf/HL200 projects/mips/sys/arm/conf/IQ31244 projects/mips/sys/arm/conf/KB920X projects/mips/sys/arm/conf/NSLU projects/mips/sys/arm/conf/SIMICS projects/mips/sys/arm/conf/SKYEYE projects/mips/sys/arm/include/pmap.h projects/mips/sys/arm/xscale/ixp425/if_npe.c projects/mips/sys/arm/xscale/ixp425/std.ixp435 (props changed) projects/mips/sys/boot/forth/loader.conf projects/mips/sys/boot/i386/zfsboot/zfsboot.c projects/mips/sys/boot/zfs/zfsimpl.c projects/mips/sys/cam/cam_periph.c projects/mips/sys/cam/scsi/scsi_pass.c projects/mips/sys/cam/scsi/scsi_sg.c projects/mips/sys/cddl/boot/zfs/README projects/mips/sys/cddl/boot/zfs/zfsimpl.h projects/mips/sys/cddl/boot/zfs/zfssubr.c projects/mips/sys/cddl/compat/opensolaris/kern/opensolaris.c projects/mips/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c projects/mips/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c projects/mips/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c projects/mips/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c projects/mips/sys/cddl/compat/opensolaris/sys/mutex.h projects/mips/sys/cddl/compat/opensolaris/sys/rwlock.h projects/mips/sys/cddl/compat/opensolaris/sys/vnode.h projects/mips/sys/cddl/contrib/opensolaris/common/acl/acl_common.c projects/mips/sys/cddl/contrib/opensolaris/common/acl/acl_common.h projects/mips/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h projects/mips/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/mips/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h projects/mips/sys/cddl/contrib/opensolaris/uts/common/sys/acl_impl.h projects/mips/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h projects/mips/sys/compat/linux/linux_futex.c projects/mips/sys/compat/linux/linux_ioctl.c projects/mips/sys/compat/linux/linux_mib.c projects/mips/sys/compat/linux/linux_mib.h projects/mips/sys/compat/linux/linux_misc.c projects/mips/sys/compat/linux/linux_misc.h projects/mips/sys/compat/linux/linux_socket.c projects/mips/sys/compat/linux/linux_socket.h projects/mips/sys/compat/linux/linux_stats.c projects/mips/sys/compat/linux/linux_util.h projects/mips/sys/compat/ndis/kern_ndis.c projects/mips/sys/compat/ndis/kern_windrv.c projects/mips/sys/compat/ndis/subr_ndis.c projects/mips/sys/compat/svr4/svr4_ioctl.c projects/mips/sys/compat/svr4/svr4_ioctl.h projects/mips/sys/compat/svr4/svr4_misc.c projects/mips/sys/compat/svr4/svr4_proto.h projects/mips/sys/compat/svr4/svr4_stat.c projects/mips/sys/compat/svr4/svr4_syscall.h projects/mips/sys/compat/svr4/svr4_syscallnames.c projects/mips/sys/compat/svr4/svr4_sysent.c projects/mips/sys/conf/NOTES projects/mips/sys/conf/files projects/mips/sys/conf/files.amd64 projects/mips/sys/conf/files.i386 projects/mips/sys/conf/files.pc98 projects/mips/sys/conf/files.powerpc projects/mips/sys/conf/options projects/mips/sys/contrib/altq/altq/altq_subr.c projects/mips/sys/contrib/dev/acpica/ (props changed) projects/mips/sys/contrib/dev/iwi/ipw2200-bss.fw.uu projects/mips/sys/contrib/dev/iwi/ipw2200-ibss.fw.uu projects/mips/sys/contrib/dev/iwi/ipw2200-sniffer.fw.uu projects/mips/sys/contrib/pf/ (props changed) projects/mips/sys/dev/aac/aac.c projects/mips/sys/dev/acpi_support/acpi_ibm.c projects/mips/sys/dev/acpi_support/acpi_sony.c projects/mips/sys/dev/acpica/acpi.c projects/mips/sys/dev/age/if_age.c projects/mips/sys/dev/aic/aic.c projects/mips/sys/dev/amr/amr.c projects/mips/sys/dev/amr/amr_linux.c projects/mips/sys/dev/arcmsr/arcmsr.c projects/mips/sys/dev/asr/asr.c projects/mips/sys/dev/ata/ata-pci.h projects/mips/sys/dev/ata/ata-usb.c (contents, props changed) projects/mips/sys/dev/ata/atapi-cam.c projects/mips/sys/dev/ata/chipsets/ata-acard.c projects/mips/sys/dev/ata/chipsets/ata-promise.c projects/mips/sys/dev/ata/chipsets/ata-siliconimage.c projects/mips/sys/dev/ath/ah_osdep.c projects/mips/sys/dev/ath/ah_osdep.h projects/mips/sys/dev/ath/ath_hal/ah.c projects/mips/sys/dev/ath/ath_hal/ah.h projects/mips/sys/dev/ath/ath_hal/ah_internal.h projects/mips/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/mips/sys/dev/ath/ath_hal/ar5210/ar5210_interrupts.c projects/mips/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/mips/sys/dev/ath/ath_hal/ar5211/ar5211_interrupts.c projects/mips/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/mips/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c projects/mips/sys/dev/ath/ath_hal/ar5212/ar5212reg.h projects/mips/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/mips/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/mips/sys/dev/ath/if_ath.c projects/mips/sys/dev/ath/if_ath_pci.c projects/mips/sys/dev/ath/if_athvar.h projects/mips/sys/dev/bce/if_bce.c projects/mips/sys/dev/bce/if_bcereg.h projects/mips/sys/dev/bge/if_bge.c projects/mips/sys/dev/bktr/bktr_os.c projects/mips/sys/dev/bwi/bwimac.c projects/mips/sys/dev/bwi/bwiphy.c projects/mips/sys/dev/bwi/if_bwi.c projects/mips/sys/dev/bwi/if_bwi_pci.c projects/mips/sys/dev/bwi/if_bwireg.h projects/mips/sys/dev/bwi/if_bwivar.h projects/mips/sys/dev/ciss/ciss.c projects/mips/sys/dev/cxgb/ (props changed) projects/mips/sys/dev/cxgb/common/cxgb_ael1002.c projects/mips/sys/dev/cxgb/common/cxgb_common.h projects/mips/sys/dev/cxgb/common/cxgb_t3_hw.c projects/mips/sys/dev/cxgb/cxgb_adapter.h projects/mips/sys/dev/cxgb/cxgb_main.c projects/mips/sys/dev/cxgb/cxgb_multiq.c projects/mips/sys/dev/cxgb/cxgb_sge.c projects/mips/sys/dev/e1000/if_em.c projects/mips/sys/dev/ed/if_ed.c projects/mips/sys/dev/ep/if_ep.c projects/mips/sys/dev/flash/at45d.c projects/mips/sys/dev/if_ndis/if_ndis.c projects/mips/sys/dev/if_ndis/if_ndis_usb.c projects/mips/sys/dev/iir/iir_ctrl.c projects/mips/sys/dev/iir/iir_pci.c projects/mips/sys/dev/ipw/if_ipw.c projects/mips/sys/dev/ipw/if_ipwvar.h projects/mips/sys/dev/isp/isp_freebsd.c projects/mips/sys/dev/iwi/if_iwi.c projects/mips/sys/dev/iwi/if_iwivar.h projects/mips/sys/dev/iwn/if_iwn.c projects/mips/sys/dev/iwn/if_iwnvar.h projects/mips/sys/dev/ixgb/if_ixgb.c projects/mips/sys/dev/lge/if_lge.c projects/mips/sys/dev/lmc/if_lmc.c projects/mips/sys/dev/malo/if_malo.c projects/mips/sys/dev/malo/if_malo.h projects/mips/sys/dev/malo/if_malo_pci.c projects/mips/sys/dev/md/md.c projects/mips/sys/dev/mfi/mfi.c projects/mips/sys/dev/mfi/mfi_linux.c projects/mips/sys/dev/mii/e1000phy.c projects/mips/sys/dev/mii/e1000phyreg.h projects/mips/sys/dev/mii/miidevs projects/mips/sys/dev/mpt/mpt_raid.c projects/mips/sys/dev/mpt/mpt_user.c projects/mips/sys/dev/msk/if_msk.c projects/mips/sys/dev/msk/if_mskreg.h projects/mips/sys/dev/nfe/if_nfe.c projects/mips/sys/dev/nge/if_nge.c projects/mips/sys/dev/nge/if_ngereg.h projects/mips/sys/dev/ral/rt2560.c projects/mips/sys/dev/ral/rt2560var.h projects/mips/sys/dev/ral/rt2661.c projects/mips/sys/dev/ral/rt2661var.h projects/mips/sys/dev/random/nehemiah.c projects/mips/sys/dev/random/randomdev_soft.c projects/mips/sys/dev/snp/snp.c projects/mips/sys/dev/sound/midi/midi.c projects/mips/sys/dev/sound/pci/emu10kx-midi.c projects/mips/sys/dev/sound/pci/ich.c projects/mips/sys/dev/sound/pci/via82c686.h projects/mips/sys/dev/sound/sbus/cs4231.h projects/mips/sys/dev/sound/usb/uaudio.c (contents, props changed) projects/mips/sys/dev/sound/usb/uaudio.h (props changed) projects/mips/sys/dev/sound/usb/uaudio_pcm.c (props changed) projects/mips/sys/dev/sound/usb/uaudioreg.h (contents, props changed) projects/mips/sys/dev/syscons/syscons.c projects/mips/sys/dev/twa/tw_osl_freebsd.c projects/mips/sys/dev/twe/twe_freebsd.c projects/mips/sys/dev/ubsec/ubsec.c projects/mips/sys/dev/ubsec/ubsecreg.h projects/mips/sys/dev/usb/bluetooth/TODO.TXT (props changed) projects/mips/sys/dev/usb/bluetooth/ng_ubt.c (contents, props changed) projects/mips/sys/dev/usb/bluetooth/ng_ubt_var.h (props changed) projects/mips/sys/dev/usb/bluetooth/ubtbcmfw.c (contents, props changed) projects/mips/sys/dev/usb/controller/at91dci.c (contents, props changed) projects/mips/sys/dev/usb/controller/at91dci.h (contents, props changed) projects/mips/sys/dev/usb/controller/at91dci_atmelarm.c (props changed) projects/mips/sys/dev/usb/controller/atmegadci.c projects/mips/sys/dev/usb/controller/atmegadci.h projects/mips/sys/dev/usb/controller/ehci.c (contents, props changed) projects/mips/sys/dev/usb/controller/ehci.h (props changed) projects/mips/sys/dev/usb/controller/ehci_pci.c (props changed) projects/mips/sys/dev/usb/controller/musb_otg.c (contents, props changed) projects/mips/sys/dev/usb/controller/musb_otg.h (contents, props changed) projects/mips/sys/dev/usb/controller/musb_otg_atmelarm.c (props changed) projects/mips/sys/dev/usb/controller/ohci.c (contents, props changed) projects/mips/sys/dev/usb/controller/ohci.h (props changed) projects/mips/sys/dev/usb/controller/ohci_atmelarm.c (props changed) projects/mips/sys/dev/usb/controller/ohci_pci.c (props changed) projects/mips/sys/dev/usb/controller/uhci.c (contents, props changed) projects/mips/sys/dev/usb/controller/uhci.h (props changed) projects/mips/sys/dev/usb/controller/uhci_pci.c (props changed) projects/mips/sys/dev/usb/controller/usb_controller.c (contents, props changed) projects/mips/sys/dev/usb/controller/uss820dci.c (contents, props changed) projects/mips/sys/dev/usb/controller/uss820dci.h (contents, props changed) projects/mips/sys/dev/usb/controller/uss820dci_atmelarm.c (contents, props changed) projects/mips/sys/dev/usb/input/uhid.c (contents, props changed) projects/mips/sys/dev/usb/input/ukbd.c (contents, props changed) projects/mips/sys/dev/usb/input/ums.c (contents, props changed) projects/mips/sys/dev/usb/input/usb_rdesc.h (props changed) projects/mips/sys/dev/usb/misc/udbp.c (contents, props changed) projects/mips/sys/dev/usb/misc/udbp.h (props changed) projects/mips/sys/dev/usb/misc/ufm.c (contents, props changed) projects/mips/sys/dev/usb/net/if_aue.c (contents, props changed) projects/mips/sys/dev/usb/net/if_auereg.h (props changed) projects/mips/sys/dev/usb/net/if_axe.c (contents, props changed) projects/mips/sys/dev/usb/net/if_axereg.h (props changed) projects/mips/sys/dev/usb/net/if_cdce.c (contents, props changed) projects/mips/sys/dev/usb/net/if_cdcereg.h (props changed) projects/mips/sys/dev/usb/net/if_cue.c (contents, props changed) projects/mips/sys/dev/usb/net/if_cuereg.h (props changed) projects/mips/sys/dev/usb/net/if_kue.c (contents, props changed) projects/mips/sys/dev/usb/net/if_kuefw.h (props changed) projects/mips/sys/dev/usb/net/if_kuereg.h (props changed) projects/mips/sys/dev/usb/net/if_rue.c (contents, props changed) projects/mips/sys/dev/usb/net/if_ruereg.h (props changed) projects/mips/sys/dev/usb/net/if_udav.c (contents, props changed) projects/mips/sys/dev/usb/net/if_udavreg.h (props changed) projects/mips/sys/dev/usb/net/usb_ethernet.c (props changed) projects/mips/sys/dev/usb/net/usb_ethernet.h (props changed) projects/mips/sys/dev/usb/quirk/usb_quirk.c (props changed) projects/mips/sys/dev/usb/quirk/usb_quirk.h (props changed) projects/mips/sys/dev/usb/serial/u3g.c (contents, props changed) projects/mips/sys/dev/usb/serial/uark.c (contents, props changed) projects/mips/sys/dev/usb/serial/ubsa.c (contents, props changed) projects/mips/sys/dev/usb/serial/ubser.c (contents, props changed) projects/mips/sys/dev/usb/serial/uchcom.c (contents, props changed) projects/mips/sys/dev/usb/serial/ucycom.c (contents, props changed) projects/mips/sys/dev/usb/serial/ufoma.c (contents, props changed) projects/mips/sys/dev/usb/serial/uftdi.c (contents, props changed) projects/mips/sys/dev/usb/serial/uftdi_reg.h (props changed) projects/mips/sys/dev/usb/serial/ugensa.c (contents, props changed) projects/mips/sys/dev/usb/serial/uipaq.c (contents, props changed) projects/mips/sys/dev/usb/serial/ulpt.c (contents, props changed) projects/mips/sys/dev/usb/serial/umct.c (contents, props changed) projects/mips/sys/dev/usb/serial/umodem.c (contents, props changed) projects/mips/sys/dev/usb/serial/umoscom.c (contents, props changed) projects/mips/sys/dev/usb/serial/uplcom.c (contents, props changed) projects/mips/sys/dev/usb/serial/usb_serial.c (contents, props changed) projects/mips/sys/dev/usb/serial/usb_serial.h (props changed) projects/mips/sys/dev/usb/serial/uslcom.c projects/mips/sys/dev/usb/serial/uvisor.c (contents, props changed) projects/mips/sys/dev/usb/serial/uvscom.c (contents, props changed) projects/mips/sys/dev/usb/storage/rio500_usb.h (props changed) projects/mips/sys/dev/usb/storage/umass.c (contents, props changed) projects/mips/sys/dev/usb/storage/urio.c (contents, props changed) projects/mips/sys/dev/usb/storage/ustorage_fs.c (contents, props changed) projects/mips/sys/dev/usb/template/usb_template.c (contents, props changed) projects/mips/sys/dev/usb/template/usb_template.h (props changed) projects/mips/sys/dev/usb/template/usb_template_cdce.c (props changed) projects/mips/sys/dev/usb/template/usb_template_msc.c (props changed) projects/mips/sys/dev/usb/template/usb_template_mtp.c (props changed) projects/mips/sys/dev/usb/ufm_ioctl.h (props changed) projects/mips/sys/dev/usb/usb.h (props changed) projects/mips/sys/dev/usb/usb_bus.h (contents, props changed) projects/mips/sys/dev/usb/usb_busdma.c (contents, props changed) projects/mips/sys/dev/usb/usb_busdma.h (props changed) projects/mips/sys/dev/usb/usb_cdc.h (props changed) projects/mips/sys/dev/usb/usb_compat_linux.c (contents, props changed) projects/mips/sys/dev/usb/usb_compat_linux.h (contents, props changed) projects/mips/sys/dev/usb/usb_controller.h (contents, props changed) projects/mips/sys/dev/usb/usb_core.c (props changed) projects/mips/sys/dev/usb/usb_core.h (contents, props changed) projects/mips/sys/dev/usb/usb_debug.c (contents, props changed) projects/mips/sys/dev/usb/usb_debug.h (contents, props changed) projects/mips/sys/dev/usb/usb_defs.h (props changed) projects/mips/sys/dev/usb/usb_dev.c (contents, props changed) projects/mips/sys/dev/usb/usb_dev.h (props changed) projects/mips/sys/dev/usb/usb_device.c (contents, props changed) projects/mips/sys/dev/usb/usb_device.h (contents, props changed) projects/mips/sys/dev/usb/usb_dynamic.c (props changed) projects/mips/sys/dev/usb/usb_dynamic.h (props changed) projects/mips/sys/dev/usb/usb_endian.h (props changed) projects/mips/sys/dev/usb/usb_error.c (props changed) projects/mips/sys/dev/usb/usb_error.h (props changed) projects/mips/sys/dev/usb/usb_generic.c (contents, props changed) projects/mips/sys/dev/usb/usb_generic.h (props changed) projects/mips/sys/dev/usb/usb_handle_request.c (props changed) projects/mips/sys/dev/usb/usb_handle_request.h (props changed) projects/mips/sys/dev/usb/usb_hid.c (contents, props changed) projects/mips/sys/dev/usb/usb_hid.h (props changed) projects/mips/sys/dev/usb/usb_hub.c (contents, props changed) projects/mips/sys/dev/usb/usb_hub.h (contents, props changed) projects/mips/sys/dev/usb/usb_if.m (props changed) projects/mips/sys/dev/usb/usb_ioctl.h (props changed) projects/mips/sys/dev/usb/usb_lookup.c (props changed) projects/mips/sys/dev/usb/usb_lookup.h (props changed) projects/mips/sys/dev/usb/usb_mbuf.c (props changed) projects/mips/sys/dev/usb/usb_mbuf.h (props changed) projects/mips/sys/dev/usb/usb_mfunc.h (props changed) projects/mips/sys/dev/usb/usb_msctest.c (props changed) projects/mips/sys/dev/usb/usb_msctest.h (props changed) projects/mips/sys/dev/usb/usb_parse.c (props changed) projects/mips/sys/dev/usb/usb_parse.h (props changed) projects/mips/sys/dev/usb/usb_pci.h (props changed) projects/mips/sys/dev/usb/usb_process.c (contents, props changed) projects/mips/sys/dev/usb/usb_process.h (props changed) projects/mips/sys/dev/usb/usb_request.c (contents, props changed) projects/mips/sys/dev/usb/usb_request.h (props changed) projects/mips/sys/dev/usb/usb_revision.h (contents, props changed) projects/mips/sys/dev/usb/usb_transfer.c (contents, props changed) projects/mips/sys/dev/usb/usb_transfer.h (contents, props changed) projects/mips/sys/dev/usb/usb_util.c (props changed) projects/mips/sys/dev/usb/usb_util.h (props changed) projects/mips/sys/dev/usb/usbdevs (contents, props changed) projects/mips/sys/dev/usb/usbhid.h (props changed) projects/mips/sys/dev/usb/wlan/if_rum.c (contents, props changed) projects/mips/sys/dev/usb/wlan/if_rumfw.h (props changed) projects/mips/sys/dev/usb/wlan/if_rumreg.h (props changed) projects/mips/sys/dev/usb/wlan/if_rumvar.h (contents, props changed) projects/mips/sys/dev/usb/wlan/if_uath.c projects/mips/sys/dev/usb/wlan/if_uathvar.h projects/mips/sys/dev/usb/wlan/if_ural.c (contents, props changed) projects/mips/sys/dev/usb/wlan/if_uralreg.h (props changed) projects/mips/sys/dev/usb/wlan/if_uralvar.h (contents, props changed) projects/mips/sys/dev/usb/wlan/if_zyd.c (contents, props changed) projects/mips/sys/dev/usb/wlan/if_zydfw.h (props changed) projects/mips/sys/dev/usb/wlan/if_zydreg.h (props changed) projects/mips/sys/dev/vge/if_vge.c projects/mips/sys/dev/wi/if_wi.c projects/mips/sys/dev/wi/if_wireg.h projects/mips/sys/dev/wi/if_wivar.h projects/mips/sys/dev/wpi/if_wpi.c projects/mips/sys/dev/wpi/if_wpivar.h projects/mips/sys/dev/xen/console/console.c projects/mips/sys/dev/xen/console/xencons_ring.c projects/mips/sys/dev/xen/console/xencons_ring.h projects/mips/sys/dev/xen/netfront/ (props changed) projects/mips/sys/dev/xen/netfront/netfront.c projects/mips/sys/dev/xen/xenpci/ (props changed) projects/mips/sys/fs/cd9660/cd9660_vfsops.c projects/mips/sys/fs/coda/coda_vfsops.c projects/mips/sys/fs/devfs/devfs.h projects/mips/sys/fs/devfs/devfs_vfsops.c projects/mips/sys/fs/devfs/devfs_vnops.c projects/mips/sys/fs/fdescfs/fdesc.h projects/mips/sys/fs/fdescfs/fdesc_vfsops.c projects/mips/sys/fs/fdescfs/fdesc_vnops.c projects/mips/sys/fs/hpfs/hpfs_vfsops.c projects/mips/sys/fs/msdosfs/msdosfs_vfsops.c projects/mips/sys/fs/nfs/nfs.h projects/mips/sys/fs/nfs/nfs_commonkrpc.c projects/mips/sys/fs/nfs/nfs_commonport.c projects/mips/sys/fs/nfs/nfs_commonsubs.c projects/mips/sys/fs/nfs/nfs_var.h projects/mips/sys/fs/nfs/nfsdport.h projects/mips/sys/fs/nfs/nfsport.h projects/mips/sys/fs/nfs/nfsproto.h projects/mips/sys/fs/nfsclient/nfs.h projec